From ce2aadff1c8d1d44a51c3be27570c64e14fd13c1 Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 9 Mar 2021 22:14:51 +0100 Subject: ma ham -> ma home/ham --- makefu/2configs/home/ham/zigbee2mqtt/default.nix | 28 ++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 makefu/2configs/home/ham/zigbee2mqtt/default.nix (limited to 'makefu/2configs/home/ham/zigbee2mqtt/default.nix') diff --git a/makefu/2configs/home/ham/zigbee2mqtt/default.nix b/makefu/2configs/home/ham/zigbee2mqtt/default.nix new file mode 100644 index 000000000..a75075273 --- /dev/null +++ b/makefu/2configs/home/ham/zigbee2mqtt/default.nix @@ -0,0 +1,28 @@ +{config, pkgs, lib, ...}: + +let + dataDir = "/var/lib/zigbee2mqtt"; +in + { + # symlink the zigbee controller + services.udev.extraRules = '' + SUBSYSTEM=="tty", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="16a8", SYMLINK+="cc2531", MODE="0660", GROUP="dialout" + ''; + + services.zigbee2mqtt = { + enable = true; + inherit dataDir; + }; + + state = [ "${dataDir}/configuration.yaml" "${dataDir}/state.json" ]; + + systemd.services.zigbee2mqtt = { + # override automatic configuration.yaml deployment + serviceConfig.ExecStartPre = lib.mkForce "${pkgs.coreutils}/bin/true"; + after = [ + "home-assistant.service" + "mosquitto.service" + "network-online.target" + ]; + }; +} -- cgit v1.2.3 From 52035a5ce4b7d0ff71826e6e63c0a5a410e69e12 Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 9 Mar 2021 22:16:13 +0100 Subject: ma ham/zigbee2mqtt: add secrets --- makefu/2configs/home/ham/zigbee2mqtt/default.nix | 49 ++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) (limited to 'makefu/2configs/home/ham/zigbee2mqtt/default.nix') diff --git a/makefu/2configs/home/ham/zigbee2mqtt/default.nix b/makefu/2configs/home/ham/zigbee2mqtt/default.nix index a75075273..83c3c187c 100644 --- a/makefu/2configs/home/ham/zigbee2mqtt/default.nix +++ b/makefu/2configs/home/ham/zigbee2mqtt/default.nix @@ -2,23 +2,66 @@ let dataDir = "/var/lib/zigbee2mqtt"; + sec = import ; in { # symlink the zigbee controller + #services.udev.extraRules = '' + # SUBSYSTEM=="tty", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="16a8", SYMLINK+="cc2531", MODE="0660", GROUP="dialout" + #''; services.udev.extraRules = '' - SUBSYSTEM=="tty", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="16a8", SYMLINK+="cc2531", MODE="0660", GROUP="dialout" + SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="cc2531", MODE="0660", GROUP="dialout" ''; services.zigbee2mqtt = { enable = true; inherit dataDir; + config = { + permit_join = true; + serial.port = "/dev/cc2531"; + homeassistant = true; + mqtt = { + server = "mqtt://omo.lan:1883"; + base_topic = "/ham/zigbee"; + user = sec.mqtt.username; + password = sec.mqtt.password; + include_device_information = true; + client_id = "zigbee2mqtt"; + }; + advanced = { + log_level = "debug"; + log_output = [ "console" ]; + last_seen = "ISO_8601"; + elapsed = true; + reporting = true; # TODO test if it is better with groups + pan_id = 6755; + inherit (sec.zigbee) network_key; + }; + map_options.graphviz.colors = { + fill = { + enddevice = "#fff8ce" ; + coordinator = "#e04e5d"; + router = "#4ea3e0"; + }; + font = { + coordinator= "#ffffff"; + router = "#ffffff"; + enddevice = "#000000"; + }; + line = { + active = "#009900"; + inactive = "#994444"; + }; + }; + }; }; - state = [ "${dataDir}/configuration.yaml" "${dataDir}/state.json" ]; + state = [ "${dataDir}/devices.yaml" "${dataDir}/state.json" ]; systemd.services.zigbee2mqtt = { # override automatic configuration.yaml deployment - serviceConfig.ExecStartPre = lib.mkForce "${pkgs.coreutils}/bin/true"; + environment.ZIGBEE2MQTT_DATA = dataDir; + #serviceConfig.ExecStartPre = lib.mkForce "${pkgs.coreutils}/bin/true"; after = [ "home-assistant.service" "mosquitto.service" -- cgit v1.2.3 From 31cb697190ea6d5c50925048a897880278eaf511 Mon Sep 17 00:00:00 2001 From: makefu Date: Fri, 12 Mar 2021 20:28:20 +0100 Subject: ma ham/zigbee2mqtt: enable frontend --- makefu/2configs/home/ham/zigbee2mqtt/default.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'makefu/2configs/home/ham/zigbee2mqtt/default.nix') diff --git a/makefu/2configs/home/ham/zigbee2mqtt/default.nix b/makefu/2configs/home/ham/zigbee2mqtt/default.nix index 83c3c187c..6ccf8b241 100644 --- a/makefu/2configs/home/ham/zigbee2mqtt/default.nix +++ b/makefu/2configs/home/ham/zigbee2mqtt/default.nix @@ -3,12 +3,16 @@ let dataDir = "/var/lib/zigbee2mqtt"; sec = import ; + internal-ip = "192.168.1.11"; + webport = 8521; in { # symlink the zigbee controller #services.udev.extraRules = '' # SUBSYSTEM=="tty", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="16a8", SYMLINK+="cc2531", MODE="0660", GROUP="dialout" #''; + + # /dev/serial/by-id/usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_12_4B_00_21_CC_45_BD-if00-port0 services.udev.extraRules = '' SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="cc2531", MODE="0660", GROUP="dialout" ''; @@ -28,6 +32,9 @@ in include_device_information = true; client_id = "zigbee2mqtt"; }; + frontend = { + port = webport; + }; advanced = { log_level = "debug"; log_output = [ "console" ]; @@ -56,6 +63,19 @@ in }; }; + services.nginx.recommendedProxySettings = true; + services.nginx.virtualHosts."zigbee" = { + serverAliases = [ "zigbee.lan" ]; + locations."/".proxyPass = "http://localhost:${toString webport}"; + locations."/api".proxyPass = "http://localhost:${toString webport}"; + locations."/api".proxyWebsockets = true; + extraConfig = '' + if ( $server_addr != "${internal-ip}" ) { + return 403; + } + ''; + }; + state = [ "${dataDir}/devices.yaml" "${dataDir}/state.json" ]; systemd.services.zigbee2mqtt = { -- cgit v1.2.3