Инструменты пользователя

Инструменты сайта


интеграция_с_homeassistant

Контроллер 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 }}"     
    
интеграция_с_homeassistant.txt · Последнее изменение: 2023/11/23 19:50 — Admin