LoutreOS: replace zha with zigbee2mqtt
This commit is contained in:
parent
1a525bb29a
commit
0c8a0c3854
@ -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";
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
#];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user