{ pkgs, lib, config, ... }: # no need to set ZIGBEE2MQTT_DATA anymore assert lib.versionOlder lib.version "21.03"; { imports = [ ./mqtt.nix ./zigbee2mqtt/service.nix ./zigbee2mqtt/buttons.nix ./zigbee2mqtt/configurationHelper.nix ./zigbee2mqtt/doors.nix ./zigbee2mqtt/fyrtur.nix ./zigbee2mqtt/heater.nix ./zigbee2mqtt/leds.nix ./zigbee2mqtt/lights.nix ./zigbee2mqtt/motion.nix ./zigbee2mqtt/repeater.nix ./zigbee2mqtt/temperatur.nix ]; custom.services.zigbee2mqtt = { enable = true; #package = pkgs.own_zigbee2mqtt; #package = unstable.zigbee2mqtt; package = pkgs.unstable.zigbee2mqtt.overrideAttrs (old: rec { version = "1.18.1"; src = pkgs.fetchFromGitHub { owner = "Koenkk"; repo = "zigbee2mqtt"; rev = version; sha256 = "1x73k346ayik5hv5axa3nvmd82mgwyrpxqv3dxnffi8aa1r8pf8x"; }; }); config = { # Home Assistant integration (MQTT discovery) homeassistant = false; # allow new devices to join permit_join = false; # MQTT settings mqtt = { # MQTT base topic for zigbee2mqtt MQTT messages base_topic = "zigbee2mqtt"; # MQTT server URL server = "mqtt://127.0.0.1:1883"; # MQTT server authentication, uncomment if required: user = "zigbee"; password = lib.fileContents ; }; # Serial settings serial = { #port = "/dev/ttyACM0"; port = "/dev/ttyUSB0"; # disable LED of CC2531 USB sniffer #disable_led = true; }; # you own network key, # 16 numbers between 0 and 255 # see https://www.zigbee2mqtt.io/how_tos/how_to_secure_network.html advanced.network_key = import ; advanced.log_output = [ "console" ]; advanced.pan_id = 1337; # add last seen information advanced.last_seen = "ISO_8601_local"; # configure web ui frontend.port = 9666; frontend.host = "0.0.0.0"; experimental.new_api = true; }; }; #systemd.services.zigbee2mqtt.environment = { # ZIGBEE2MQTT_DATA = "/var/lib/zigbee2mqtt"; #}; services.nginx = { enable = true; recommendedProxySettings = true; virtualHosts = { "zigbee2mqtt.pepe.private" = { serverAliases = [ "zigbee.pepe.private" ]; locations."/" = { proxyPass = "http://localhost:${ toString config.custom.services.zigbee2mqtt.config.frontend.port }"; proxyWebsockets = true; }; }; }; }; }