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

Ensystec-wiren-board-integration

Материал из XIOT Wiki
Версия от 16:15, 9 июня 2026; Admin (обсуждение | вклад) (Добавлен шаблон Ensystec для XIOT и инструкция по пользовательским шаблонам Wiren Board)

Подключение 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. Он нужен не вместо Modbus-документации Ensystec, а как слой согласования между регистрами Ensystec, MQTT-топиками Wiren Board и характеристиками XIOT.

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

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

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

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

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

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

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

См. также