diff options
Diffstat (limited to 'makefu/2configs/home/ham')
-rw-r--r-- | makefu/2configs/home/ham/default.nix | 9 | ||||
-rw-r--r-- | makefu/2configs/home/ham/device_tracker/openwrt.nix | 2 | ||||
-rw-r--r-- | makefu/2configs/home/ham/nginx.nix | 2 | ||||
-rw-r--r-- | makefu/2configs/home/ham/zigbee2mqtt.nix | 130 |
4 files changed, 136 insertions, 7 deletions
diff --git a/makefu/2configs/home/ham/default.nix b/makefu/2configs/home/ham/default.nix index 33e406e0b..ee3b62428 100644 --- a/makefu/2configs/home/ham/default.nix +++ b/makefu/2configs/home/ham/default.nix @@ -5,7 +5,7 @@ ## let prefix = (import ./lib).prefix; - firetv_stick = "192.168.1.24"; + firetv_stick = "192.168.111.24"; hassdir = "/var/lib/hass"; unstable = import <nixpkgs-unstable> {}; @@ -17,7 +17,7 @@ in { ./signal-rest # hass config - ../zigbee2mqtt/hass.nix + ./zigbee2mqtt.nix # ./multi/flurlicht.nix ./multi/kurzzeitwecker.nix ./multi/the_playlist.nix @@ -48,8 +48,7 @@ in { })).override { extraPackages = p: [ (p.callPackage ./deps/dwdwfsapi.nix {}) - (p.callPackage ./deps/pykodi.nix {}) - p.APScheduler ]; + (p.callPackage ./deps/pykodi.nix {}) ]; }; config = { @@ -92,7 +91,7 @@ in { } ]; api = {}; - esphome = {}; + esphome = {}; # fails camera = []; #telegram_bot = [ # # secrets file: { diff --git a/makefu/2configs/home/ham/device_tracker/openwrt.nix b/makefu/2configs/home/ham/device_tracker/openwrt.nix index 0a34f702a..c2b0353c6 100644 --- a/makefu/2configs/home/ham/device_tracker/openwrt.nix +++ b/makefu/2configs/home/ham/device_tracker/openwrt.nix @@ -2,7 +2,7 @@ services.home-assistant.config.device_tracker = [ { platform = "luci"; - host = "192.168.1.5"; + host = "192.168.111.5"; username = "root"; password = import <secrets/hass/router.nix>; interval_seconds = 30; # instead of 12seconds diff --git a/makefu/2configs/home/ham/nginx.nix b/makefu/2configs/home/ham/nginx.nix index e166b2a4b..cd99c0739 100644 --- a/makefu/2configs/home/ham/nginx.nix +++ b/makefu/2configs/home/ham/nginx.nix @@ -1,5 +1,5 @@ let - internal-ip = "192.168.1.11"; + internal-ip = "192.168.111.11"; in { services.nginx.recommendedProxySettings = true; services.nginx.virtualHosts."hass" = { diff --git a/makefu/2configs/home/ham/zigbee2mqtt.nix b/makefu/2configs/home/ham/zigbee2mqtt.nix new file mode 100644 index 000000000..7809dbb51 --- /dev/null +++ b/makefu/2configs/home/ham/zigbee2mqtt.nix @@ -0,0 +1,130 @@ +# provides: +# switch +# automation +# binary_sensor +# sensor +# input_select +# timer +let + inherit (import ./lib) zigbee; + prefix = zigbee.prefix; +in +{ + services.home-assistant.config = { + sensor = + + [ + # Sensor for monitoring the bridge state + { + platform = "mqtt"; + name = "Zigbee2mqtt Bridge state"; + state_topic = "${prefix}/bridge/state"; + icon = "mdi:router-wireless"; + } + # Sensor for Showing the Zigbee2mqtt Version + { + platform = "mqtt"; + name = "Zigbee2mqtt Version"; + state_topic = "${prefix}/bridge/config"; + value_template = "{{ value_json.version }}"; + icon = "mdi:zigbee"; + } + # Sensor for Showing the Coordinator Version + { + platform = "mqtt"; + name = "Coordinator Version"; + state_topic = "${prefix}/bridge/config"; + value_template = "{{ value_json.coordinator }}"; + icon = "mdi:chip"; + } + ]; + switch = [ + { + platform = "mqtt"; + name = "Zigbee2mqtt Main join"; + state_topic = "${prefix}/bridge/config/permit_join"; + command_topic = "${prefix}/bridge/config/permit_join"; + payload_on = "true"; + payload_off = "false"; + } + ]; + automation = [ + { + alias = "Zigbee2mqtt Log Level"; + initial_state = "on"; + trigger = { + platform = "state"; + entity_id = "input_select.zigbee2mqtt_log_level"; + }; + action = [ + { + service = "mqtt.publish"; + data = { + payload_template = "{{ states('input_select.zigbee2mqtt_log_level') }}"; + topic = "${prefix}/bridge/config/log_level"; + }; + } + ]; + } + # Automation to start timer when enable join is turned on + { + id = "zigbee_join_enabled"; + alias = "Zigbee Join Enabled"; + trigger = + { + platform = "state"; + entity_id = "switch.zigbee2mqtt_main_join"; + to = "on"; + }; + action = + { + service = "timer.start"; + entity_id = "timer.zigbee_permit_join"; + }; + } + # # Automation to stop timer when switch turned off and turn off switch when timer finished + { + id = "zigbee_join_disabled"; + alias = "Zigbee Join Disabled"; + trigger = [ + { + platform = "event"; + event_type = "timer.finished"; + event_data.entity_id = "timer.zigbee_permit_join"; + } + { + platform = "state"; + entity_id = "switch.zigbee2mqtt_main_join"; + to = "off"; + } + ]; + action = [ + { service = "timer.cancel"; + data.entity_id = "timer.zigbee_permit_join"; + } + { service = "switch.turn_off"; + entity_id = "switch.zigbee2mqtt_main_join"; + } + ]; + } + ]; + input_select.zigbee2mqtt_log_level = + { + name = "Zigbee2mqtt Log Level"; + options = [ + "debug" + "info" + "warn" + "error" + ]; + initial = "info"; + icon = "mdi:format-list-bulleted"; + }; + + timer.zigbee_permit_join = + { + name = "Zigbee Time remaining"; + duration = 120; + }; + }; +} |