Интеграция modbus TCP в Home Assistant

Часть 2.

Предыдущая часть1.

Для интеграции modbus TCP нам понадобится изменить конфигурационные файлы. В свою очередь, для этого нам нужно установить редактор. Сделать это можно, перейдя в «Настройки» на левой боковой панели, и выбрав пункт «Приложения». Справа внизу будет кнопка «Установить приложение». Нажав не нее, вы перейдете на вкладку с приложениями и поисковой строкой поверх приложений. Нужно набрать в поиске «file editor» (он уже предустановлен) и выбрать его (рис. 1).

Рис.1 Установка File Editor.

После автоматических процедур он появится в списках ваших приложений. Можно заходить в него через «Настройка»->«Приложения»->«File editor», а можно добавить на левую боковую панель. Для этого нужно зайти в это приложение и выбрать пункт «Показывать на боковой панели».

Для редактирования файлов нужно зайти в это приложение и нажать на кнопку «Открыть веб-интерфейс». Для выбора конкретного файла нужно в открывшемся окне нажать на папку сверху слева. Нам понадобятся 2 файла «configuration.yaml» и «automations.yaml».

Настройки файла «configuration.yaml» следующие:

# Loads default set of integrations. Do not remove.
default_config:

# Load frontend themes from the themes folder
frontend:
  themes: !include_dir_merge_named themes
  
# group: !include groups.yaml

automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml
input_select:
  boiler_mode:
    name: "Режим работы котла"
    options:
      - "Отопление"
      - "Недельный график1"
      - "Комнатный"
      - "Уличный"
      - "Антизамерзание"
      - "Недельный график2"
    
  max_tan_day:
    name: "Максимальное число ТЭНов днем"
    options:
      - "1 ТЭН"
      - "2 ТЭНа"
      - "3 ТЭНа"
    
  max_tan_night:
    name: "Максимальное число ТЭНов ночью"
    options:
      - "1 ТЭН"
      - "2 ТЭНа"
      - "3 ТЭНа"
  
  street_mode_value:
    name: "Температурная зависимость для уличного режима"
    options:
      - "Температурная зависимость номер 22"
      - "Температурная зависимость номер 25"
      - "Температурная зависимость номер 30"
      - "Температурная зависимость номер 35"
      - "Температурная зависимость номер 40"
      - "Температурная зависимость номер 45"
      - "Температурная зависимость номер 50"
      - "Температурная зависимость номер 55"
      - "Температурная зависимость номер 60"
    
  extern_cntrl:
    name: "Внешнее управление"
    options:
      - "Запрещено"
      - "Opentherm"
      - "Термостат"
    
input_boolean:
  dhw_switch:
    name: "Включение ГВС"
    icon: mdi:water
    
modbus:
  - name: modbus_tcp_hub
    type: tcp
    host: 192.168.0.103
    port: 502
    delay: 500
    timeout: 10
    close_comm_on_error: false
   
    sensors:
      - name: "Текущий режим" # Текущий режим работы котла
        slave: 1
        scale: 1
        data_type: uint16
        input_type: holding
        address: 0
        unique_id: current_mode
        precision: 1
        
      - name: "Температура теплоносителя" # Измеренная температура теплоносителя
        unit_of_measurement: °C
        slave: 1
        scale: 0.1
        data_type: int16
        input_type: input
        address: 0
        device_class: temperature
        unique_id: "carrier_temp"
        precision: 1
        
      - name: "Температура в помещении" # Измеренная температура воздуха в помещении
        unit_of_measurement: °C
        slave: 1
        scale: 0.1
        data_type: int16
        input_type: input
        address: 1
        device_class: temperature
        unique_id: "room_temp"
        precision: 1
        
      - name: "Температура на улице" # Измеренная температура воздуха на улице
        unit_of_measurement: °C
        slave: 1
        scale: 0.1
        data_type: int16
        input_type: input
        address: 2
        device_class: temperature
        unique_id: "out_temp"
        precision: 1
       
      - name: "Температура ГВС" # Измеренная температура ГВС
        unit_of_measurement: °C
        slave: 1
        scale: 0.1
        data_type: int16
        input_type: input
        address: 4
        device_class: temperature
        unique_id: "dhw_temp"
        precision: 1
       
      - name: "Статус уантификации"
        slave: 1
        data_type: int16
        input_type: input
        address: 17
        unique_id: "code_value"
        precision: 1
        
      - name: "Текущая мощность" # Используемая мощность в %
        unit_of_measurement: "%"
        slave: 1
        scale: 0.01
        data_type: uint16
        input_type: input
        address: 3
        device_class: power_factor
        unique_id: "curr_pwr"
        precision: 1
        
      - name: "Текущее давление" # Текущее давление *100
        unit_of_measurement: "бар"
        slave: 1
        scale: 0.01
        data_type: uint16
        input_type: input
        address: 18
        device_class: pressure
        unique_id: "curr_prssr"
        precision: 0.01

    climates:
      - name: Set_Carrier_Temp
        address: 1
        input_type: holding
        data_type: int16
        max_temp: 85
        min_temp: 8
        slave: 1
        precision: 0.1
        scale: 0.1
        target_temp_register: 1
        temp_step: 0.5
        temperature_unit: °C
        unique_id: "Heat_mb"
        
      - name: set_air_temp
        address: 2
        input_type: holding
        data_type: int16
        max_temp: 85
        min_temp: 8
        slave: 1
        precision: 0.1
        scale: 0.1
        target_temp_register: 2
        temp_step: 0.5
        temperature_unit: °C
        unique_id: "air_mb"
        
      - name: "Максимальная температура теплоносителя"
        address: 4
        input_type: holding
        data_type: int16
        max_temp: 85
        min_temp: 18
        slave: 1
        precision: 0.1
        scale: 0.1
        target_temp_register: 4
        temp_step: 0.5
        temperature_unit: °C
        unique_id: "max_temp_mb"
        
      - name: DHW_temp_set_mb
        address: 5
        input_type: holding
        data_type: int16
        max_temp: 75
        min_temp: 40
        slave: 1
        precision: 1
        scale: 0.1
        target_temp_register: 5
        temp_step: 0.5
        temperature_unit: C
        unique_id: "DHW_mb"
        
mqtt: !include mqtt.yaml
logger:
  default: warning
  logs:
    homeassistant.components.modbus: debug
    pymodbus.client: debug

Настройки файла «automations.yaml» следующие

:

- alias: "Установить код доступа"
  id: set_key
  description: "Записать код в регистр 17 котла"
  trigger:
    - platform: state
      entity_id: input_boolean.boiler_code_trigger
      to: "on"
  action:
    - service: modbus.write_register
      data:
        hub: modbus_tcp_hub
        slave: 1
        address: 17
        value: 36704
    - delay:
        seconds: 2
    - service: input_boolean.turn_off
      target:
        entity_id: input_boolean.boiler_code_trigger
    - service: persistent_notification.create
      data:
        title: "Modbus"
        message: "Код отправлен в регистр 17 котла"
  mode: single
  max_exceeded: silent  # чтобы не засорять логи при частых срабатываниях
  
- alias: "Установить режим котла"
  description: "Записать код режима в регистр 0 при изменении режима"
  trigger:
    - platform: state
      entity_id: input_select.boiler_mode
  action:
    - choose:
        - conditions:
            - condition: state
              entity_id: input_select.boiler_mode
              state: "Отопление"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 0
                value: 0
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Режим: Отопление (код 0)"

        - conditions:
            - condition: state
              entity_id: input_select.boiler_mode
              state: "Недельный график1"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 0
                value: 1
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Режим: Недельный график1 (код 1)"

        - conditions:
            - condition: state
              entity_id: input_select.boiler_mode
              state: "Комнатный"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 0
                value: 2
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Режим: Комнатный (код 2)"

        - conditions:
            - condition: state
              entity_id: input_select.boiler_mode
              state: "Уличный"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 0
                value: 3
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Режим: Уличный (код 3)"

        - conditions:
            - condition: state
              entity_id: input_select.boiler_mode
              state: "Антизамерзание"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 0
                value: 4
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Режим: Антизамерзание (код 4)"

        - conditions:
            - condition: state
              entity_id: input_select.boiler_mode
              state: "Недельный график2"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 0
                value: 5
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Режим: Недельный график2 (код 5)"
        
- alias: "Количество ТЭНов днем"
  id: tan_day_switch
  description: "Выбрать количество"
  trigger:
    - platform: state
      entity_id: input_select.max_tan_day
  action:
    - choose:
        - conditions:
            - condition: state
              entity_id: input_select.max_tan_day
              state: "1 ТЭН"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 7
                value: 1
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Выбор днем: 1 ТЭН (код 1)"
        - conditions:
            - condition: state
              entity_id: input_select.max_tan_day
              state: "2 ТЭНа"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 7
                value: 2
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Выбор днем: 2 ТЭНа (код 2)"
        - conditions:
            - condition: state
              entity_id: input_select.max_tan_day
              state: "3 ТЭНа"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 7
                value: 3
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Выбор днем: 3 ТЭНа (код 3)"
        
- alias: "Количество ТЭНов ночью"
  id: tan_night_switch
  description: "Выбрать количество"
  trigger:
    - platform: state
      entity_id: input_select.max_tan_night
  action:
    - choose:
        - conditions:
            - condition: state
              entity_id: input_select.max_tan_night
              state: "1 ТЭН"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 3
                value: 1
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Выбор ночью: 1 ТЭН (код 1)"
        - conditions:
            - condition: state
              entity_id: input_select.max_tan_night
              state: "2 ТЭНа"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 3
                value: 2
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Выбор ночью: 2 ТЭНа (код 2)"
        - conditions:
            - condition: state
              entity_id: input_select.max_tan_night
              state: "3 ТЭНа"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 3
                value: 3
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Выбор ночью: 3 ТЭНа (код 3)"  

- alias: "Установить температурную зависимость"
  description: "Установить номер температурной зависимости для уличного режима"
  trigger:
    - platform: state
      entity_id: input_select.street_mode_value
  action:
    - choose:
        - conditions:
            - condition: state
              entity_id: input_select.street_mode_value
              state: "Температурная зависимость номер 22"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 14
                value: 0
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Режим уличный"
                message: "№22 (код 0)"

        - conditions:
            - condition: state
              entity_id: input_select.street_mode_value
              state: "Температурная зависимость номер 25"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 14
                value: 1
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Режим уличный"
                message: "№25 (код 1)"

        - conditions:
            - condition: state
              entity_id: input_select.street_mode_value
              state: "Температурная зависимость номер 30"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 14
                value: 2
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Режим уличный"
                message: "№30 (код 2)"

        - conditions:
            - condition: state
              entity_id: input_select.street_mode_value
              state: "Температурная зависимость номер 35"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 14
                value: 3
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Режим уличный"
                message: "№35 (код 3)"

        - conditions:
            - condition: state
              entity_id: input_select.street_mode_value
              state: "Температурная зависимость номер 40"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 14
                value: 4
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Режим уличный"
                message: "№40 (код 4)"

        - conditions:
            - condition: state
              entity_id: input_select.street_mode_value
              state: "Температурная зависимость номер 45"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 14
                value: 5
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Режим уличный"
                message: "№45 (код 5)"

        - conditions:
            - condition: state
              entity_id: input_select.street_mode_value
              state: "Температурная зависимость номер 50"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 14
                value: 6
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Режим уличный"
                message: "№50 (код 6)"

        - conditions:
            - condition: state
              entity_id: input_select.street_mode_value
              state: "Температурная зависимость номер 55"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 14
                value: 7
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Режим уличный"
                message: "№55 (код 7)"

        - conditions:
            - condition: state
              entity_id: input_select.street_mode_value
              state: "Температурная зависимость номер 60"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 14
                value: 8
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Режим уличный"
                message: "№60 (код 8)"
        
- alias: "Внешнее управление"
  id: extern_cntrl_switch
  description: "Подключить внешнее управление"
  trigger:
    - platform: state
      entity_id: input_select.extern_cntrl
  action:
    - choose:
        - conditions:
            - condition: state
              entity_id: input_select.extern_cntrl
              state: "Запрещено"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 16
                value: 0
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Запрет внешнего управления"
        - conditions:
            - condition: state
              entity_id: input_select.extern_cntrl
              state: "Opentherm"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 16
                value: 1
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Выбан opentherm"
        - conditions:
            - condition: state
              entity_id: input_select.extern_cntrl
              state: "Термостат"
          sequence:
            - service: modbus.write_register
              data:
                hub: modbus_tcp_hub
                slave: 1
                address: 16
                value: 2
            - delay:
                seconds: 2
            - service: persistent_notification.create
              data:
                title: "Котёл"
                message: "Выбран термостат"
                
- alias: "Включение ГВС"
  description: "Включить ГВС"
  trigger:
    - platform: state
      entity_id: input_boolean.dhw_switch
      to: "on"
  action:
    - service: modbus.write_register
      data:
        hub: modbus_tcp_hub
        slave: 1
        address: 6
        value: 1            # код для включения ГВС

- alias: "Выключение ГВС"
  description: "Выключить ГВС"
  trigger:
    - platform: state
      entity_id: input_boolean.dhw_switch
      to: "off"
  action:
    - service: modbus.write_register
      data:
        hub: modbus_tcp_hub
        slave: 1
        address: 6 
        value: 0            # код для выключения ГВС

Эти два файла создают сущности параметров управления котлом, а также указывают, что нужно делать при нажатии или выборе того или иного параметра. IP-адрес в настройках modbus в разделе «host» указать нужно тот, что у котла (чтобы он не менялся, его можно задать статически при подключении к WiFi-сети, в противном случае, с включенным dhcp, он будет периодически меняться).

Важно также заметить, что среди создаваемых автоматизаций есть одна особая — «Установить код доступа». Без отправки этого кода задание настроек котлу (если код ранее не вводился) не будет применяться. Для отправки кода нужно посмотреть код modbus в локальном веб-интерфейсе (рис.2).

Рис.2 Ключ modbus.

И прописать в automations.yaml (рис.3).

Рис.3 Запись ключа modbus.

Запуск же этой автоматизации происходит при нажатии на «Запустить действия», если зайти в автоматизацию. А подтверждение о том, что авторизация прошла можно увидеть в «Состоянии подключения», если 1, то прошла, если 0, то нет.

Немаловажно сделать также правильную организацию рабочего пространства. Чтобы все параметры котла находились в одном рабочем пространстве. Например, я создал для этого рабочее пространство «Котел» и переместил все, что к нему относится туда (рис.4).

Рис.4 Организация рабочего пространства.

Создается пространство в разделе «Настройки»->«Пространства, зоны и ярлыки» нажатием на кнопку в нижнем правом углу «Добавить пространство». А перемещается сущность в это пространство при заходе в ее настройки и выборе пространства (рис.5).

Рис.5 Выбор пространства для сущности.

После выбора пространства сущность перемещается туда.

Если все сделано верно, то в течение минуты с момента включения должны появиться значения температур и выбранных режимов, и котлом можно управлять через Home Assistant.

В завершении хочу отметить, что представлены не все параметры котла, а только самые основные. Однако все они могут быть настроены по аналогии. С полным списком параметров, а также их регистрами можно ознакомиться ниже.

код- 0х06 write registers (Запись одного AO).

смещение параметр
0 Задание режима работы: 0 — отопление, 1 — недельный график1, 2 — комнатный, 3 — уличный, 4 — антизамерзание, 5 — недельный график2.
1 Заданная температура теплоносителя от 8 до 85
2 Заданная температура воздуха от 5 до 35
3 Задание максимального количества ступеней мощности ночью(ограничение)
4 Задание максимальной температуры теплоносителя
5 Заданная температура ГВС от 40 до 75
6 Задание работы ГВС: 1 — включено, 0 — выключено.
7 Задание максимального количества ступеней мощности днем(ограничение)
8 Задание начала ночного времени. 0хММЧЧ, ММ — минуты, ЧЧ — часы.
9 Задание начала дневного времени. 0хММЧЧ, ММ — минуты, ЧЧ — часы.
10 Задание алгоритма нагрева. Бит 0 — алгоритм теплоносителя, бит 1 — ГВС.
11 Команда на перезагрузку пульта управления.
12 Не задан.
13 Не задан.
14 Задание номера температурной кривой для уличного режима:

0 — кривая номер 22;
1 — кривая номер 25;
2 — кривая номер 30;
3 — кривая номер 35;
4 — кривая номер 40;
5 — кривая номер 45;
6 — кривая номер 50;
7 — кривая номер 55;
8 — кривая номер 60;

15 Задание времени выбега насоса (доступно для «Эксперт» и «Stout»)

Бит 7 = 0 — настройка скрыта. 0х80- постоянная работа насоса; 0х81 — выбег 5 мин; 0х82 — выбег 10 мин; 0х83 — выбег 15 мин.

16 Подключить внешнее управление. 0 — запрещено,  1 — opentherm, 2 — термостат.
17 Ввод ключа для авторизации.
18 Не задан.
19 Не задан.
20 Не задан.
21 Не задан.

код- 0х03 holding registers (Чтение AO).

смещение параметр
0 Режим работы: 0 — отопление, 1 — недельный, 2 — комнатный, 3 — уличный, 4 — антизамерзание.
1 Заданная температура теплоносителя от 8 до 85
2 Заданная температура воздуха от 0 до 35
3 Максимальное количество ступеней мощности ночью (ограничение)
4 Максимальная температура теплоносителя
5 Заданная температура ГВС от 40 до 75
6 Задано состояние ГВС 1 — включено, 0 — выключено.
7 Роль первого датчика т. воздуха: 1 — не задан; 2 — уличный; 3 — комн; 4 -откл-ся.
8 Роль второго датчика т. воздуха: 1 — не задан; 2 — уличный; 3 — комн; 4 — откл-ся.
9 Роль третьего датчика т. воздуха: 1 — не задан; 2 — уличный; 3 — комн; 4 — откл-ся.
10 Роль первого радиодатчика: 1 — не задан; 2-уличный; 3-комн;4 -откл-ся(доступно для «Эксперт»).
11 Роль второго радиодатчика:1 -не задан; 2-уличный; 3-комн; 4 -откл-ся(доступно для «Эксперт»).
12 Тип котла, 1 — Эксперт, 2 — Стаут, 3 — Практик.
13 Количество ступеней мощности в котле.
14 Номер температурной кривой для уличного режима.
15 Время выбега насоса (доступно для «Эксперт» и «Stout»), 0 — постоянная работа, 1 -5, 2- 10, 3 — 15 минут. 0..6 биты – значение , 7 – бит поддерживаемость выбега насоса силовой платой, 1 – поддерживает, 0 – нет.
16 Версия ПО платы контроллера 1 и 2 байт (символы char)
17 Версия ПО платы контроллера 3 и 4 байт (символы char)
18 Версия ПО платы контроллера 5 байт (символы char)
19 Версия ПО платы управления 1 и 2 байт (символы char)
20 Версия ПО платы управления 3 и 4 байт (символы char)
21 Версия ПО платы управления 5 байт (символы char)
22 Роль метеосервера: 1- не задан; 2- уличный; 3 — комн; 4 — откл-ся.
23 Максимальное количество ступеней мощности днем(ограничение)
24 Значение регистра котла flagsIn

 

код- 0х04 input registers (Чтение AI).

 

смещение параметр
0 Измеренная температура теплоносителя (int16_t)
1 Измеренная температура воздуха в помещении (int16_t)
2 Измеренная температура воздуха на улице (int16_t)
3 Процент задействованной мощности в текущий момент (uint8_t)
4 Измеренная температура ГВС от 40 до 75 (int16_t)
5 Фактическое состояние ГВС: 1 — ГВС, 0 — Отопление.
6 Флаги ошибок:

0x0001 — обрыв датчика давления

0x0002 — давление ниже разрешенного

0x0004 — давление выше разрешенного

0x0008 — обрыв датчика температуры теплоносителя

0x0010 — сработал датчик перегрева

0x0100 — обрыв комнатного датчика температуры в режимах: комнатный, недельный, теплый пол

0x0200 — обрыв уличного датчика температуры в режиме уличный

0x0400 — есть активные сообщения (проблемы с реле)

0x8000 — нет связи по rs485

7 10 *Температура воздуха — датчик 1 (int16_t).
8 10 *Температура воздуха — датчик 2 (int16_t).
9 10 *Температура воздуха — датчик 3 (int16_t).
10 Режим внешнего управления:

0 — запрещено;

1 — OpenTherm;

2 — Thermostat.

11 10 *Температура воздуха первого радиодатчика (int16_t, доступно для «Эксперт»).
12 10 *Температура воздуха второго радиодатчика (int16_t, доступно для «Эксперт»).
13 10 *Температура воздуха полученная от метеосервера (int16_t).
14 Мак-адрес1 и 2 байт
15 Мак-адрес 3 и 4 байт
16 Мак-адрес 5 и 6 байт
17 Состояние активации modbus, 1 — вкл., 0 — выкл.
18 Текущее давление умноженное на 100

 

 

Spread the love
Запись опубликована в рубрике IT рецепты. Добавьте в закладки постоянную ссылку.

One Response to Интеграция modbus TCP в Home Assistant

  1. Уведомление: Установка Home Assistant на ПК | Жизнь, бизнес и IT