Контроллер LightHub прекрасно интегрируется в систему Home Assistant с использованием MQTT
В настоящее время, реализованы и используются следующие интеграции:
* Реле и дискретные выключатели
* Диммируемые одноцветные светильники
* Диммируемые цветные светильники (RGB/RGBW/RGBWW)
* Термостаты теплого пола, помещений
* Кондиционер
* Увлажнитель
* Сенсоры температуры
* Сенсоры влажности
* Сенсоры CO2
* Любые устройства, управляемые по протоколу Modbus
Документация скорректирована, так как HA внес большие изменения в компонент MQTT в 2023 году
Параметры брокера теперь настраиваются только через пользовательский интерфейс в разделе Настройки/Интеграции и в файле конфигурации настройки следует убрать
Теперь предполагается, что настройки MQTT вынесены в отдельный файл mqtt.yaml
который подгружается директивой
mqtt: !include mqtt.yaml
В файле configuration.yaml
Это, действительно, удобнее.
Далее, даны примеры разделов файла mqtt.yaml, которые можно скорректировать и использовать для своих нужд
===== Сенсоры =====
В примерах ниже:
Имя контроллера: light-d2
Предположим, что к этому контроллеру подключен датчик качества воздуха CCS811 и HDC1080 и в конфиге контроллера для этого заданы такие вот настройки:
"98":{"T":5,"emit":"myhome/sensor/airq"},
"99":{"T":6,"emit":"myhome/sensor/humidity"}
Также, на pin3 подключен сенсор температуры и влажности dht-22, расположенный в ванной, с такой вот настройкой в JSON конфиге контроллера:
"3":{"T":4,"emit":"dht"},
ну и к шине 1-wire подключен термометр в прихожей
"ow":{"28EEA76713160204":{"emit":"t_aentr"}
}
В этом случае, конфигурация HomeAssistant будет выглядеть вот таким образом:
sensor:
- name: "CO2"
icon: "mdi:periodic-table-co2"
expire_after: 600
state_topic: "myhome/sensor/airq/CO2"
unit_of_measurement: 'ppm'
availability_topic: "myhome/light-d2/$state"
payload_available: "ready"
payload_not_available: "disconnected"
- name: "TVOC"
expire_after: 600
state_topic: "myhome/sensor/airq/TVOC"
unit_of_measurement: 'ppm'
availability_topic: "myhome/light-d2/$state"
payload_available: "ready"
payload_not_available: "disconnected"
- name: "Влажность"
icon: "mdi:water-percent"
expire_after: 600
state_topic: "myhome/sensor/humidity/H"
unit_of_measurement: '%'
availability_topic: "myhome/light-d2/$state"
payload_available: "ready"
payload_not_available: "disconnected"
- name: "Влажность ванная DHT"
icon: "mdi:water-percent"
expire_after: 600
state_topic: "myhome/s_out/dhtH"
unit_of_measurement: '%'
- name: "Воздух ванная DHT"
icon: "mdi:thermometer"
expire_after: 600
state_topic: "myhome/s_out/dhtT"
unit_of_measurement: '°C'
- name: "Воздух прихожая DS"
icon: "mdi:thermometer"
expire_after: 600
state_topic: "myhome/s_out/t_aentr"
unit_of_measurement: '°C'
===== Светильники =====
light:
# дискретный выключатель света (вкл-выкл)
- name: "Прихожая"
state_topic: "myhome/s_out/spots_en"
command_topic: "myhome/in/spots_en"
qos: 1
# Диммируемый одноцветный светильник
- name: Кухня точки
command_topic: "myhome/in/ktc/cmd"
state_topic: "myhome/s_out/ktc/cmd"
# brightness_scale: 100 - начиная с версии 3.0.0 контроллера, настройка не нужна
brightness_command_topic: "myhome/in/ktc/set"
brightness_state_topic: "myhome/s_out/ktc/set"
# Цветной LED светильник
- name: Кухня LED
command_topic: "myhome/in/kuh/cmd"
state_topic: "myhome/s_out/kuh/cmd"
hs_command_topic: "myhome/in/kuh/set"
hs_state_topic: "myhome/s_out/kuh/set"
hs_value_template: "{%set a=value.split(',')%}
{% if a[1] -%}
{{a[0]+','+a[1]}}
{%- endif %}"
brightness_command_topic: "myhome/in/kuh/set"
brightness_state_topic: "myhome/s_out/kuh/set"
brightness_value_template: "{{ value.split(',')[2] }}"
color_temp_value_template: "{{ value.split(',')[3] }}" # Опционально
color_temp_command_topic: "myhome/in/kuh/temp" # Опционально
color_temp_state_topic: "myhome/s_out/kuh/set" # Опционально
#Новая версия интеграции. Поддерживает не только HSV но и RGBW нотацию цвета.
#Полезно, если на DMX вход контроллера подключена сенсорная панель, которая выдает значения каждого из каналов в отдельности
#- то есть RGBW. В этом случае контроллер прозрачно транслирует такой цвет в статусный топик, добавляя признак RGB в начало payload
# предполагается имя контроллера light
- name: Кухня по новому LED
command_topic: "myhome/light/kuh/cmd"
state_topic: "myhome/s_out/kuh/cmd"
hs_command_topic: "myhome/light/kuh/set"
hs_state_topic: "myhome/s_out/kuh/set"
brightness_command_topic: "myhome/light/kuh/set"
brightness_state_topic: "myhome/s_out/kuh/set"
color_temp_command_topic: "myhome/light/kuh/temp"
color_temp_state_topic: "myhome/s_out/kuh/set"
rgbw_state_topic: "myhome/s_out/kuh/set"
hs_value_template: "{%if not value is match('RGB')%}
{%set a=value.split(',')%}
{%if a[1]%}
{{a[0]+','+a[1]}}
{%endif%}
{% endif %}"
brightness_value_template: "{%if not value is match('RGB')%}
{%set a=value.split(',')%}
{% if a[2] %}
{{ a[2] }}
{% endif %}
{% endif %}"
color_temp_value_template: "{%if not value is match('RGB')%}
{%set a=value.split(',')%}
{% if a[3] %}
{{ a[3] }}
{% endif %}
{% endif %}"
rgbw_value_template: "{%if value is match('RGB')%}
{{value.split()[1]}}
{% endif %}"
===== Выключатели =====
switch:
- name: "Air heat"
icon: "mdi:radiator"
state_topic: "myhome/s_out/fm_t/cmd"
command_topic: "myhome/in/fm_t/cmd"
- name: "Air auto"
icon: "mdi:auto-fix"
state_topic: "myhome/s_out/fm_auto"
command_topic: "myhome/in/fm_auto"
- name: "Перекрыть воду"
icon: "mdi:water-off"
state_topic: "myhome/s_out/alock_leak"
command_topic: "myhome/in/alock"
qos: 1
- name: "Сушилки"
icon: "mdi:radiator"
state_topic: "myhome/s_out/h_polotenc"
command_topic: "myhome/in/h_polotenc"
qos: 1
- name: "Бойлер большой"
state_topic: "myhome/s_out/h_boil1"
command_topic: "myhome/in/h_boil1"
qos: 1
- name: "Бойлер малый"
state_topic: "myhome/s_out/h_boil2"
command_topic: "myhome/in/h_boil2"
qos: 1
===== Климат и термостаты =====
climate:
- name: Кондиционер
modes:
- "off"
- "cool"
- "fan_only"
- "heat"
- "auto"
fan_modes:
- "auto"
- "high"
- "medium"
- "low"
swing_modes:
- "on"
- "off"
swing_mode_state_topic: "myhome/s_out/ac/swing"
swing_mode_command_topic: "myhome/in/ac/swing"
swing_mode_state_template: "{{value|lower()}}"
mode_command_topic: "myhome/in/ac/cmd"
mode_state_topic: "myhome/s_out/ac/cmd"
mode_state_template: "{{value|lower()}}"
temperature_command_topic: "myhome/in/ac/set"
temperature_state_topic: "myhome/s_out/ac/set"
fan_mode_command_topic: "myhome/in/ac/fan"
fan_mode_state_topic: "myhome/s_out/ac/fan"
fan_mode_state_template: "{{value|lower()}}"
current_temperature_topic: "myhome/s_out/ac/temp"
- name: "Теплый пол душ"
modes:
- "off"
- "heat"
- "auto"
mode_command_topic: "myhome/in/h_bath1/cmd"
temperature_command_topic: "myhome/in/h_bath1/set"
mode_state_topic: "myhome/s_out/h_bath1/cmd"
mode_state_template: "{{value|lower()}}"
temperature_state_topic: "myhome/s_out/h_bath1/set"
current_temperature_topic: "myhome/s_out/t_bath1"
- name: "Климат спальня"
modes:
- "off"
- "heat"
- "auto"
- "cool"
- "fan_only"
mode_command_topic: "myhome/in/c_bedr/cmd"
temperature_command_topic: "myhome/in/c_bedr/set"
mode_state_topic: "myhome/s_out/c_bedr/cmd"
mode_state_template: "{{value|lower()}}"
temperature_state_topic: "myhome/s_out/c_bedr/set"
current_temperature_topic: "myhome/s_out/t_bedr"
===== Увлажнитель =====
humidifier:
- name: "Увлажнитель пар"
command_topic: "myhome/plug00/reghum/cmd"
state_topic: "myhome/s_out/reghum/cmd"
target_humidity_command_topic: "myhome/plug00/reghum/set"
target_humidity_state_topic: "myhome/s_out/reghum/set"
current_humidity_topic: "myhome/s_out/plughum"
max_humidity: 60
min_humidity: 20
===== Приточка =====
climate:
- name: Вентиляция
modes:
- "off"
- "fan_only"
- "heat"
- "auto"
mode_command_topic: "myhome/in/fm/cmd"
mode_state_topic: "myhome/s_out/fm/cmd"
mode_state_template: "{{value|lower()}}"
temperature_command_topic: "myhome/in/fm_t/set"
temperature_state_topic: "myhome/s_out/fm_t/set"
current_temperature_topic: "myhome/s_out/fm_stat"
current_temperature_template: "{{ value_json.t }}"
sensor:
- name: "Heater power"
state_topic: "myhome/s_out/fm_stat"
icon: "mdi:radiator"
unit_of_measurement: '%'
value_template: "{{ value_json.pwr }}"
- name: "Fan RPM"
icon: "mdi:fan"
state_topic: "myhome/s_out/fm_stat"
unit_of_measurement: 'RPM'
value_template: "{{ value_json.RPM }}"
- name: "Fan Current"
icon: "mdi:current-ac"
state_topic: "myhome/s_out/fm_stat"
unit_of_measurement: 'A'
value_template: "{{ value_json.I }}"
- name: "Fan Fault"
icon: "mdi:alert"
state_topic: "myhome/s_out/fm_stat"
value_template: "{{ value_json.flt }}"
# - platform: mqtt
# name: "Fan Temp"
# state_topic: "myhome/s_out/fm_stat"
# unit_of_measurement: '°C'
# value_template: "{{ value_json.t }}"
# - platform: mqtt
# name: "Fan Temp set"
# state_topic: "myhome/s_out/fm_stat"
# unit_of_measurement: '°C'
# value_template: "{{ value_json.set }}"