Перейти к содержанию

Ensystec-wiren-board-integration: различия между версиями

Материал из XIOT Wiki
Добавлен шаблон Ensystec для XIOT и инструкция по пользовательским шаблонам Wiren Board
Исправлена публикация шаблона Ensystec: файл вынесен во вложение
Строка 77: Строка 77:
== Кастомный шаблон Wiren Board для XIOT ==
== Кастомный шаблон Wiren Board для XIOT ==


Для интеграции Ensystec с XIOT используется кастомный шаблон Wiren Board: [[Шаблон Wiren Board Ensystec Leak Protect для XIOT]]. Он нужен не вместо Modbus-документации Ensystec, а как слой согласования между регистрами Ensystec, MQTT-топиками Wiren Board и характеристиками XIOT.
Для интеграции Ensystec с XIOT используется кастомный шаблон Wiren Board: [[Шаблон Wiren Board Ensystec Leak Protect для XIOT]]. Шаблон нужен как слой согласования между регистрами Ensystec, MQTT-топиками Wiren Board и характеристиками XIOT.


Штатный шаблон Wiren Board показывает основные состояния устройства и умеет отправлять низкоуровневые команды. Для XIOT этого недостаточно, потому что виртуальное устройство защиты воды ожидает раздельные теги состояния и управления. У Ensystec часть команд находится в одном регистре <code>CONTROL0</code> и имеет инверсную/масочную семантику: например, отдельный бит отвечает за сброс аварии, отдельный бит — за временное отключение защиты. Если привязать эти низкоуровневые биты напрямую к характеристикам XIOT, команда может повторяться и возвращать защиту в предыдущее состояние.
Файл шаблона для скачивания:


Кастомный шаблон оставляет штатные контролы Ensystec, но добавляет безопасные для XIOT пары «статус + управление» и прячет низкоуровневые команды, которые не нужно связывать напрямую:
<pre>
Config-ensystec.xiot-final.json
</pre>
 
Скачать файл: [[Медиа:Config-ensystec.xiot-final.json|Config-ensystec.xiot-final.json]]
 
Штатный шаблон Wiren Board показывает основные состояния устройства и умеет отправлять низкоуровневые команды. Для XIOT нужны раздельные теги состояния и управления, чтобы не привязывать характеристики напрямую к битовым командам Ensystec.
 
Кастомный шаблон оставляет штатные контролы Ensystec, но добавляет пары «статус + управление» для XIOT:


{| class="wikitable"
{| class="wikitable"
! Назначение в XIOT !! Тег состояния !! Тег управления !! Примечание
! Назначение в XIOT !! Тег состояния !! Тег управления
|-
| Флаг протечки || <code>/wb/ensystec_leak_protect_XX/leakage_sensor</code> || <code>/wb/ensystec_leak_protect_XX/leakage_sensor_control</code> || <code>leakage_sensor</code> показывает реальную аварию, <code>leakage_sensor_control</code> используется для сброса протечки.
|-
|-
| Защита от протечки || <code>/wb/ensystec_leak_protect_XX/leak_protection_enabled</code> || <code>/wb/ensystec_leak_protect_XX/leak_protection_control</code> || Статус показывает, включена ли защита. Управление отправляет правильную маску в регистр <code>CONTROL0</code>.
| Флаг протечки || <code>/wb/ensystec_leak_protect_XX/leakage_sensor</code> || <code>/wb/ensystec_leak_protect_XX/leakage_sensor_control</code>
|-
|-
| Кран N || <code>/wb/ensystec_leak_protect_XX/output_kN_status_switch</code> || <code>/wb/ensystec_leak_protect_XX/output_kN</code> || Для XIOT-статуса используется read-only switch: закрыт только при статусе <code>0</code>, остальные состояния трактуются как «не закрыт».
| Защита от протечки || <code>/wb/ensystec_leak_protect_XX/leak_protection_enabled</code> || <code>/wb/ensystec_leak_protect_XX/leak_protection_control</code>
|-
|-
| Диагностика крана N || <code>/wb/ensystec_leak_protect_XX/output_kN_status</code> || — || Enum-статус оставлен для диагностики: <code>0</code> закрыт, <code>1</code> открыт, <code>2</code> не определено, <code>3</code> не подключен.
| Кран N || <code>/wb/ensystec_leak_protect_XX/output_kN_status_switch</code> || <code>/wb/ensystec_leak_protect_XX/output_kN</code>
|}
|}


В названиях топиков <code>XX</code> нужно заменить на Modbus-адрес контроллера Ensystec, например <code>11</code>, <code>12</code>, <code>13</code> или <code>14</code>.
В названиях топиков <code>XX</code> нужно заменить на Modbus-адрес контроллера Ensystec.


Для установки шаблона на Wiren Board используйте пользовательскую директорию шаблонов:
Для установки шаблона на Wiren Board используйте пользовательскую директорию шаблонов:
Строка 103: Строка 109:
</pre>
</pre>


Не рекомендуется хранить рабочий кастомный шаблон только в <code>/usr/share/wb-mqtt-serial/templates</code>: это директория предустановленных шаблонов пакета, и при обновлении <code>wb-mqtt-serial</code> файл может быть заменён. Общая инструкция вынесена в отдельную статью: [[Пользовательские шаблоны устройств Wiren Board]].
Общая инструкция вынесена в отдельную статью: [[Пользовательские шаблоны устройств Wiren Board]].


== Получение MQTT-топиков из Wiren Board в XIOT ==
== Получение MQTT-топиков из Wiren Board в XIOT ==

Версия от 16:20, 9 июня 2026

Подключение Ensystec в XIOT через Wirenboard

Статья описывает подключение системы защиты от протечки Ensystec Leak Protect в проекте XIOT через контроллер Wiren Board. Материал основан на реальном объекте, где защита воды разделена на несколько независимых зон.

Щит защиты от протечки с 4 контроллерами Ensystec

Щит защиты от протечки с четырьмя контроллерами Ensystec
Щит защиты от протечки с четырьмя контроллерами Ensystec

На объекте установлен отдельный щит защиты от протечки с четырьмя контроллерами Ensystec Leak Protect. Каждый контроллер обслуживает свою зону воды и управляет своими кранами перекрытия.

Контроллер Маркировка в щите Зона защиты Логика перекрытия
1 Б-1 Котельная и главный ввод воды Перекрывает главный ввод воды при протечке в котельной, в месте ввода воды и в коллекторах водоснабжения.
2 Б-2 Санузел и кухня цокольного этажа Перекрывает воду локально в зоне санузла и кухни цокольного этажа.
3 Б-3 Санузел 1 на первом этаже Перекрывает воду локально в зоне первого санузла на первом этаже.
4 Б-4 Санузел 2 на первом этаже и мастер-санузел на втором этаже Перекрывает воду локально в зоне второго санузла на первом этаже и мастер-санузла на втором этаже.

Такое разделение делает защиту более гибкой: при протечке или неисправности в одной зоне можно перекрыть только проблемный участок и не оставлять весь дом без воды на время ремонта или устранения аварии.

Подключение Ensystec в Wiren Board и изменение Modbus-адресов

Контроллеры Ensystec по умолчанию имеют Modbus-адрес 247. Если подключить к одной RS-485 линии несколько новых контроллеров с одинаковым адресом, Wiren Board не сможет корректно обращаться к ним по Modbus. Поэтому контроллеры подключаются и адресуются последовательно.

Порядок пусконаладки:

  1. Подключить к RS-485 линии только один контроллер Ensystec с заводским адресом 247.
  2. Через SSH-консоль Wiren Board изменить его Modbus-адрес. Подробная команда приведена в статье Смена Modbus адреса Ensystec через консоль Wiren Board.
  3. Добавить следующий контроллер Ensystec с заводским адресом 247.
  4. Назначить ему следующий свободный адрес.
  5. Повторить процедуру для всех контроллеров.

На объекте использованы адреса 11, 12, 13 и 14.

Адрес Modbus Контроллер Название в Wiren Board Зона
11 Б-1 Котельная ввод воды Котельная, главный ввод воды и коллекторы водоснабжения
12 Б-2 Санузел и кухня цоколь Санузел и кухня цокольного этажа
13 Б-3 Санузел 1 Санузел 1 на первом этаже
14 Б-4 Санузел 2 и мастер-санузел Санузел 2 на первом этаже и мастер-санузел на втором этаже

После назначения адресов контроллеры добавляются в веб-интерфейсе Wiren Board: Устройства → нужный порт RS-485 → Добавить любые устройства вручную. В списке выбирается шаблон Ensystec - защита от протечки, затем указывается адрес устройства и понятное название зоны.

Контроллеры Ensystec на порту RS485-2 в веб-интерфейсе Wiren Board
Контроллеры Ensystec на порту RS485-2 в веб-интерфейсе Wiren Board

В этом проекте все четыре контроллера добавлены на порт RS485-2 с адресами 11, 12, 13 и 14. Для первого контроллера указано название Котельная ввод воды.

После сохранения настроек в Wiren Board контроллер появляется отдельной карточкой устройства. В карточке видны статусы внешнего питания, заряда, протечки, обрыва датчика, входов, кранов и версии контроллера.

Карточка контроллера Ensystec в веб-интерфейсе Wiren Board
Карточка контроллера Ensystec в веб-интерфейсе Wiren Board

Для локальных зон используется по три крана:

  • холодная вода;
  • горячая вода;
  • циркуляция горячей воды с полотенцесушителем.

Для главного ввода установлен один кран на холодную воду. Горячая вода подготавливается в котельной через бойлер косвенного нагрева; при перекрытии холодной воды давление на контуре горячего водоснабжения также пропадает.


Кастомный шаблон Wiren Board для XIOT

Для интеграции Ensystec с XIOT используется кастомный шаблон Wiren Board: Шаблон Wiren Board Ensystec Leak Protect для XIOT. Шаблон нужен как слой согласования между регистрами Ensystec, MQTT-топиками Wiren Board и характеристиками XIOT.

Файл шаблона для скачивания:

Config-ensystec.xiot-final.json

Скачать файл: Config-ensystec.xiot-final.json

Штатный шаблон Wiren Board показывает основные состояния устройства и умеет отправлять низкоуровневые команды. Для XIOT нужны раздельные теги состояния и управления, чтобы не привязывать характеристики напрямую к битовым командам Ensystec.

Кастомный шаблон оставляет штатные контролы Ensystec, но добавляет пары «статус + управление» для XIOT:

Назначение в XIOT Тег состояния Тег управления
Флаг протечки /wb/ensystec_leak_protect_XX/leakage_sensor /wb/ensystec_leak_protect_XX/leakage_sensor_control
Защита от протечки /wb/ensystec_leak_protect_XX/leak_protection_enabled /wb/ensystec_leak_protect_XX/leak_protection_control
Кран N /wb/ensystec_leak_protect_XX/output_kN_status_switch /wb/ensystec_leak_protect_XX/output_kN

В названиях топиков XX нужно заменить на Modbus-адрес контроллера Ensystec.

Для установки шаблона на Wiren Board используйте пользовательскую директорию шаблонов:

/etc/wb-mqtt-serial.conf.d/templates/config-ensystec.json

Общая инструкция вынесена в отдельную статью: Пользовательские шаблоны устройств Wiren Board.

Получение MQTT-топиков из Wiren Board в XIOT

После добавления контроллеров Ensystec в веб-интерфейсе Wiren Board их MQTT-топики нужно загрузить в XIOT-EDITOR. Через эти топики XIOT получает состояния физических устройств и дальше связывает их с виртуальными устройствами проекта.

В XIOT-EDITOR откройте раздел Драйверы и выберите драйвер WirenBoard. Если XIOT-PLC установлен на том же контроллере Wiren Board, используются параметры:

Параметр Значение
IP localhost
Порт MQTT 1883
Логин и пароль не заполняются, если MQTT-брокер Wiren Board работает без авторизации

Включите драйвер и нажмите Получить топики. Во время загрузки отображается процесс опроса MQTT-структуры Wiren Board.

Получение MQTT-топиков Wiren Board в XIOT-EDITOR
Получение MQTT-топиков Wiren Board в XIOT-EDITOR

После успешного подключения в правой части панели появляется статус Подключен, а ниже отображается список полученных устройств и групп.

Полученные MQTT-топики Wiren Board в XIOT-EDITOR
Полученные MQTT-топики Wiren Board в XIOT-EDITOR

Для этого проекта из Wiren Board получены зоны Ensystec:

  • Котельная ввод воды;
  • Цоколь - санузел;
  • 1 этаж - санузел 1;
  • 1 этаж санузел 2 + 2 этаж мастер санузел.
Список зон Ensystec, полученных из Wiren Board
Список зон Ensystec, полученных из Wiren Board

При раскрытии зоны видны отдельные MQTT-топики контроллера Ensystec. Например, для зоны 1 этаж - санузел 1 доступны топики внешнего питания, низкого заряда, протечки, обрыва датчика и входов контроллера.

MQTT-топики Ensystec для зоны Санузел 1
MQTT-топики Ensystec для зоны Санузел 1

Примеры топиков:

/wb/ensystec_leak_protect_13/external_power_220_ac
/wb/ensystec_leak_protect_13/low_battery_voltage
/wb/ensystec_leak_protect_13/leakage_sensor
/wb/ensystec_leak_protect_13/failure_sensor
/wb/ensystec_leak_protect_13/input_1
/wb/ensystec_leak_protect_13/input_2

На этом этапе важно получить полный список топиков от Wiren Board и убедиться, что нужные зоны Ensystec присутствуют в XIOT. Привязка этих топиков к виртуальным устройствам XIOT выполняется следующим этапом.

См. также