Files
lighthub/documentation/reference/dokuwiki-2026-10-02/интеграция_с_homeassistant.txt
T
andry 718e6cb603 docs: add dokuwiki snapshot 2026-10-02 as verification baseline
Frozen copy of the official wiki (lazyhome.ru) used as the audit reference
while the repo documentation is brought in line with the code.
2026-10-03 00:41:24 +03:00

352 lines
12 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Контроллер LightHub прекрасно интегрируется в систему Home Assistant с использованием MQTT
В настоящее время, реализованы и используются следующие интеграции:
* Реле и дискретные выключатели
* Диммируемые одноцветные светильники
* Диммируемые цветные светильники (RGB/RGBW/RGBWW)
* Термостаты теплого пола, помещений
* Кондиционер
* Увлажнитель
* Сенсоры температуры
* Сенсоры влажности
* Сенсоры CO2
* Любые устройства, управляемые по протоколу Modbus
Документация скорректирована, так как HA внес большие изменения в компонент MQTT в 2023 году
Параметры брокера теперь настраиваются только через пользовательский интерфейс в разделе Настройки/Интеграции и в файле конфигурации настройки следует убрать
Теперь предполагается, что настройки MQTT вынесены в отдельный файл mqtt.yaml
который подгружается директивой
<code>
mqtt: !include mqtt.yaml
</code>
В файле 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 будет выглядеть вот таким образом:
<code>
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'
</code>
===== Светильники =====
<code>
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 %}"
</code>
===== Выключатели =====
<code>
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
</code>
===== Климат и термостаты =====
<code>
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"
</code>
===== Увлажнитель =====
<code>
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
</code>
===== Приточка =====
<code>
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 }}"
</code>