diff --git a/flake.lock b/flake.lock index 448abd6..ca01781 100644 --- a/flake.lock +++ b/flake.lock @@ -91,11 +91,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1687829761, - "narHash": "sha256-QRe1Y8SS3M4GeC58F/6ajz6V0ZLUVWX3ZAMgov2N3/g=", + "lastModified": 1687288566, + "narHash": "sha256-VckkiJ88Gzdc2cstm0z5eFcrHbvkm4VjxavHBGssvZI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9790f3242da2152d5aa1976e3e4b8b414f4dd206", + "rev": "b6c73c5fe53bb3afbf65e870541e0645e9145171", "type": "github" }, "original": { @@ -121,11 +121,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1687898314, - "narHash": "sha256-B4BHon3uMXQw8ZdbwxRK1BmxVOGBV4viipKpGaIlGwk=", + "lastModified": 1686960236, + "narHash": "sha256-AYCC9rXNLpUWzD9hm+askOfpliLEC9kwAo7ITJc4HIw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e18dc963075ed115afb3e312b64643bf8fd4b474", + "rev": "04af42f3b31dba0ef742d254456dc4c14eedac86", "type": "github" }, "original": { @@ -158,11 +158,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1687462267, - "narHash": "sha256-rNSputjn/0HEHHnsKfQ8mQVEPVchcBw7DsbND7Wg8dk=", + "lastModified": 1686496219, + "narHash": "sha256-8zXZ/813yzaRA84js98G3XQ3GEEzFGnxhjvVyxkEey0=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "24128c3052090311688b09a400aa408ba61c6ee5", + "rev": "4966c0f63f04659015f064f2aa34b1893a16dfde", "type": "gitlab" }, "original": { diff --git a/systems/LoutreOS/services.nix b/systems/LoutreOS/services.nix index 81f4f91..39d1e2a 100644 --- a/systems/LoutreOS/services.nix +++ b/systems/LoutreOS/services.nix @@ -182,66 +182,6 @@ in enable = true; }; - mosquitto = { - enable = true; - listeners = [ - { - acl = [ "pattern readwrite #" ]; - omitPasswordAuth = true; - address = "127.0.0.1"; - settings.allow_anonymous = true; - } - ]; - }; - - zigbee2mqtt = { - enable = true; - settings = { - mqtt = { - server = "mqtt://${(head config.services.mosquitto.listeners).address}:${toString (head config.services.mosquitto.listeners).port}"; - }; - frontend = { - port = 8080; - host = "127.0.0.1"; - url = "https://zigbee.nyanlout.re"; - }; - groups = { - "101" = { - friendly_name = "salon"; - devices = [ - "0x94deb8fffe760f3d" - ]; - }; - "102" = { - friendly_name = "cuisine"; - devices = [ - "0x003c84fffe6d9ee6" - ]; - }; - "103" = { - friendly_name = "entrée"; - devices = [ - "0x84ba20fffe5ec243" - ]; - }; - "104" = { - friendly_name = "tout"; - devices = [ - "0x94deb8fffe760f3d" - "0x003c84fffe6d9ee6" - "0x84ba20fffe5ec243" - ]; - }; - "107" = { - friendly_name = "chambre"; - devices = [ - "0x84ba20fffe5eb120" - ]; - }; - }; - }; - }; - home-assistant = { enable = true; extraComponents = [ @@ -252,26 +192,37 @@ in config = { default_config = {}; homeassistant = { - country = "FR"; latitude = 48.60038; longitude = 7.74063; elevation = 146; }; meteo_france = null; + #influxdb = null; + #config = null; + #dhcp = null; + #frontend = null; + #history = null; http = { use_x_forwarded_for = true; trusted_proxies = [ "127.0.0.1" ]; }; - mqtt = null; + #logbook = null; + #map = null; + #mobile_app = null; + #person = null; + #script = null; + #sun = null; + #system_health = null; + zha = null; esphome = null; light = [ { platform = "group"; name = "Salon"; entities = [ - "light.salon_light" - "light.cuisine_light" - "light.entree_light" + "light.ikea_of_sweden_tradfri_bulb_e27_cws_806lm_e69e6dfe_level_light_color_on_off" + "light.ikea_of_sweden_tradfri_bulb_e27_cws_806lm_43c25efe_level_light_color_on_off" + "light.ikea_of_sweden_tradfri_bulb_e27_cws_806lm_3d0f76fe_level_light_color_on_off" ]; } ]; @@ -316,6 +267,282 @@ in # }; # } #]; + #switch = [ + # { + # platform = "wake_on_lan"; + # name = "PC Fixe"; + # mac = "b4:2e:99:ed:24:26"; + # host = "10.30.135.71"; + # broadcast_address = "10.30.255.255"; + # } + #]; + #device_tracker = [ + # { + # platform = "ping"; + # hosts = { telephone_paul = "10.30.50.2"; }; + # } + #]; + #scene = [ + # { + # name = "Movie"; + # icon = "mdi:movie-open"; + # entities = { + # "light.salon" = { + # state = "on"; + # xy_color = [0.299 0.115]; + # brightness = 50; + # }; + # "light.bande_led_tv" = { + # state = "on"; + # effect = "Movie"; + # brightness = 180; + # }; + # "light.bande_led_bureau" = { + # state = "on"; + # xy_color = [0.299 0.115]; + # brightness = 130; + # }; + # }; + # } + # { + # name = "Home"; + # icon = "mdi:home"; + # entities = { + # "light.salon" = { + # state = "on"; + # kelvin = 2700; + # brightness = 255; + # }; + # }; + # } + # { + # name = "Night"; + # icon = "mdi:weather-night"; + # entities = { + # "light.salon" = { + # state = "off"; + # }; + # "light.bande_led_tv" = { + # state = "off"; + # }; + # "light.bande_led_bureau" = { + # state = "off"; + # }; + # "light.chambre" = { + # state = "on"; + # kelvin = 1900; + # brightness = 50; + # }; + # }; + # } + #]; + #automation = let + # min_sun_elevation = 4; + + # switch_chambre = { + # domain = "zha"; + # platform = "device"; + # device_id = "3329ecdcad244e5e8fc0f4b96d52ffe1"; + # }; + + # switch_entree = { + # domain = "zha"; + # platform = "device"; + # device_id = "7cd814190ec543dba76a7aa7e7996c41"; + # }; + + # remote = { + # domain = "zha"; + # platform = "device"; + # device_id = "d1230b76264e483388a8fdaad4f44143"; + # }; + #in [ + # # ENTREE + + # { + # alias = "Aziz lumière"; + # trigger = [ + # { + # platform = "numeric_state"; + # entity_id = "sun.sun"; + # value_template = "{{ state.attributes.elevation }}"; + # below = min_sun_elevation; + # } + # ]; + # condition = [ + # { + # condition = "state"; + # entity_id = "person.paul"; + # state = "home"; + # } + # # Sun below max elevation + # { + # condition = "template"; + # value_template = "{{ state_attr('sun.sun', 'elevation') < ${toString min_sun_elevation} }}"; + # } + # ]; + # action = { + # scene = "scene.home"; + # }; + # } + # { + # alias = "Aziz lumière switch"; + # trigger = { + # type = "remote_button_short_press"; + # subtype = "turn_on"; + # } // switch_entree; + # action = { + # scene = "scene.home"; + # }; + # } + # { + # alias = "Adios"; + # trigger = [ + # { + # platform = "state"; + # entity_id = "person.paul"; + # to = "not_home"; + # } + # ({ + # type = "remote_button_short_press"; + # subtype = "turn_off"; + # } // switch_entree) + # ]; + # action = [ + # { + # service = "light.turn_off"; + # entity_id = "all"; + # } + # { + # service = "media_player.turn_off"; + # entity_id = "all"; + # } + # ]; + # } + + # # REMOTE + + # { + # alias = "Button toggle"; + # trigger = { + # type = "remote_button_short_press"; + # subtype = "turn_on"; + # } // remote; + # action = { + # choose = { + # conditions = { + # condition = "template"; + # value_template = '' + # {% set domain = 'light' %} + # {% set state = 'off' %} + # {{ states[domain] | count == states[domain] | selectattr('state','eq',state) | list | count }} + # ''; + # }; + # sequence = { + # scene = "scene.home"; + # }; + # }; + # default = { + # service = "light.turn_off"; + # entity_id = "all"; + # }; + # }; + # } + # { + # alias = "Button scene movie"; + # trigger = { + # type = "remote_button_short_press"; + # subtype = "right"; + # } // remote; + # action = { + # scene = "scene.movie"; + # }; + # } + # { + # alias = "Button scene home"; + # trigger = { + # type = "remote_button_short_press"; + # subtype = "left"; + # } // remote; + # action = { + # scene = "scene.home"; + # }; + # } + # { + # alias = "Button light up"; + # trigger = { + # type = "remote_button_short_press"; + # subtype = "dim_up"; + # } // remote; + # action = { + # service = "light.turn_on"; + # entity_id = "light.salon"; + # data = { + # brightness_step = 25; + # }; + # }; + # } + # { + # alias = "Button light down"; + # trigger = { + # type = "remote_button_short_press"; + # subtype = "dim_down"; + # } // remote; + # action = { + # service = "light.turn_on"; + # entity_id = "light.salon"; + # data = { + # brightness_step = -25; + # }; + # }; + # } + + # # CHAMBRE + + # { + # alias = "Button scene night"; + # trigger = { + # type = "remote_button_short_press"; + # subtype = "turn_on"; + # } // switch_chambre; + # action = { + # scene = "scene.night"; + # }; + # } + # { + # alias = "Button scene dodo"; + # trigger = { + # type = "remote_button_short_press"; + # subtype = "turn_off"; + # } // switch_chambre; + # action = { + # service = "light.turn_off"; + # entity_id = "all"; + # }; + # } + # { + # alias = "Button scene lumière chambre ON"; + # trigger = { + # type = "remote_button_long_press"; + # subtype = "dim_up"; + # } // switch_chambre; + # action = { + # service = "light.turn_on"; + # entity_id = "light.chambre"; + # }; + # } + # { + # alias = "Button scene lumière chambre OFF"; + # trigger = { + # type = "remote_button_long_press"; + # subtype = "dim_down"; + # } // switch_chambre; + # action = { + # service = "light.turn_off"; + # entity_id = "light.chambre"; + # }; + # } + #]; }; }; diff --git a/systems/LoutreOS/web.nix b/systems/LoutreOS/web.nix index 0d82934..52bf009 100644 --- a/systems/LoutreOS/web.nix +++ b/systems/LoutreOS/web.nix @@ -269,11 +269,6 @@ in proxyWebsockets = true; }; }; - "zigbee.nyanlout.re" = recursiveUpdate (authReverse config.services.zigbee2mqtt.settings.frontend.port) { - locations."/" = { - proxyWebsockets = true; - }; - }; "apart.nyanlout.re" = recursiveUpdate (simpleReverse config.services.home-assistant.config.http.server_port) { locations."/" = { proxyWebsockets = true; @@ -342,9 +337,6 @@ in forceSSL = true; globalRedirect = "amandoline-creations.fr"; }; - "challenge.amandoline-creations.fr" = base { - "/".alias = "/var/www/amandoline-challenge/"; - }; }; };