LoutreOS: replace zha with zigbee2mqtt
This commit is contained in:
parent
1a525bb29a
commit
0c8a0c3854
@ -182,6 +182,66 @@ 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 = [
|
||||
@ -192,37 +252,26 @@ 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" ];
|
||||
};
|
||||
#logbook = null;
|
||||
#map = null;
|
||||
#mobile_app = null;
|
||||
#person = null;
|
||||
#script = null;
|
||||
#sun = null;
|
||||
#system_health = null;
|
||||
zha = null;
|
||||
mqtt = null;
|
||||
esphome = null;
|
||||
light = [
|
||||
{
|
||||
platform = "group";
|
||||
name = "Salon";
|
||||
entities = [
|
||||
"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"
|
||||
"light.salon_light"
|
||||
"light.cuisine_light"
|
||||
"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;
|
||||
};
|
||||
};
|
||||
"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;
|
||||
|
Loading…
Reference in New Issue
Block a user