Compare commits

..

3 Commits

Author SHA1 Message Date
nyanloutre 9c1c0d8e76 add challenge amandoline website 2023-06-29 10:54:22 +02:00
nyanloutre dad1bd43a1 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b6c73c5fe53bb3afbf65e870541e0645e9145171' (2023-06-20)
  → 'github:NixOS/nixpkgs/9790f3242da2152d5aa1976e3e4b8b414f4dd206' (2023-06-27)
• Updated input 'nixpkgs-unstable':
    'github:NixOS/nixpkgs/04af42f3b31dba0ef742d254456dc4c14eedac86' (2023-06-17)
  → 'github:NixOS/nixpkgs/e18dc963075ed115afb3e312b64643bf8fd4b474' (2023-06-27)
• Updated input 'simple-nixos-mailserver':
    'gitlab:simple-nixos-mailserver/nixos-mailserver/4966c0f63f04659015f064f2aa34b1893a16dfde' (2023-06-11)
  → 'gitlab:simple-nixos-mailserver/nixos-mailserver/24128c3052090311688b09a400aa408ba61c6ee5' (2023-06-22)
2023-06-29 10:51:44 +02:00
nyanloutre 0c8a0c3854 LoutreOS: replace zha with zigbee2mqtt 2023-06-22 18:40:32 +02:00
3 changed files with 82 additions and 301 deletions

View File

@ -91,11 +91,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1687288566, "lastModified": 1687829761,
"narHash": "sha256-VckkiJ88Gzdc2cstm0z5eFcrHbvkm4VjxavHBGssvZI=", "narHash": "sha256-QRe1Y8SS3M4GeC58F/6ajz6V0ZLUVWX3ZAMgov2N3/g=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b6c73c5fe53bb3afbf65e870541e0645e9145171", "rev": "9790f3242da2152d5aa1976e3e4b8b414f4dd206",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -121,11 +121,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1686960236, "lastModified": 1687898314,
"narHash": "sha256-AYCC9rXNLpUWzD9hm+askOfpliLEC9kwAo7ITJc4HIw=", "narHash": "sha256-B4BHon3uMXQw8ZdbwxRK1BmxVOGBV4viipKpGaIlGwk=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "04af42f3b31dba0ef742d254456dc4c14eedac86", "rev": "e18dc963075ed115afb3e312b64643bf8fd4b474",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -158,11 +158,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1686496219, "lastModified": 1687462267,
"narHash": "sha256-8zXZ/813yzaRA84js98G3XQ3GEEzFGnxhjvVyxkEey0=", "narHash": "sha256-rNSputjn/0HEHHnsKfQ8mQVEPVchcBw7DsbND7Wg8dk=",
"owner": "simple-nixos-mailserver", "owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver", "repo": "nixos-mailserver",
"rev": "4966c0f63f04659015f064f2aa34b1893a16dfde", "rev": "24128c3052090311688b09a400aa408ba61c6ee5",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {

View File

@ -182,6 +182,66 @@ in
enable = true; 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 = { home-assistant = {
enable = true; enable = true;
extraComponents = [ extraComponents = [
@ -192,37 +252,26 @@ in
config = { config = {
default_config = {}; default_config = {};
homeassistant = { homeassistant = {
country = "FR";
latitude = 48.60038; latitude = 48.60038;
longitude = 7.74063; longitude = 7.74063;
elevation = 146; elevation = 146;
}; };
meteo_france = null; meteo_france = null;
#influxdb = null;
#config = null;
#dhcp = null;
#frontend = null;
#history = null;
http = { http = {
use_x_forwarded_for = true; use_x_forwarded_for = true;
trusted_proxies = [ "127.0.0.1" ]; trusted_proxies = [ "127.0.0.1" ];
}; };
#logbook = null; mqtt = null;
#map = null;
#mobile_app = null;
#person = null;
#script = null;
#sun = null;
#system_health = null;
zha = null;
esphome = null; esphome = null;
light = [ light = [
{ {
platform = "group"; platform = "group";
name = "Salon"; name = "Salon";
entities = [ entities = [
"light.ikea_of_sweden_tradfri_bulb_e27_cws_806lm_e69e6dfe_level_light_color_on_off" "light.salon_light"
"light.ikea_of_sweden_tradfri_bulb_e27_cws_806lm_43c25efe_level_light_color_on_off" "light.cuisine_light"
"light.ikea_of_sweden_tradfri_bulb_e27_cws_806lm_3d0f76fe_level_light_color_on_off" "light.entree_light"
]; ];
} }
]; ];
@ -267,282 +316,6 @@ 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";
# };
# }
#];
}; };
}; };

View File

@ -269,6 +269,11 @@ in
proxyWebsockets = true; 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) { "apart.nyanlout.re" = recursiveUpdate (simpleReverse config.services.home-assistant.config.http.server_port) {
locations."/" = { locations."/" = {
proxyWebsockets = true; proxyWebsockets = true;
@ -337,6 +342,9 @@ in
forceSSL = true; forceSSL = true;
globalRedirect = "amandoline-creations.fr"; globalRedirect = "amandoline-creations.fr";
}; };
"challenge.amandoline-creations.fr" = base {
"/".alias = "/var/www/amandoline-challenge/";
};
}; };
}; };