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

Custom-wiren-board-device-templates

Материал из XIOT Wiki
Версия от 16:11, 23 августа 2026; Admin (обсуждение | вклад) (COR-06: единый словарь действий и адресов управления/состояния)

Статья описывает, куда размещать свои JSON-шаблоны устройств для системной службы Wiren Board wb-mqtt-serial и как безопасно обновлять шаблон без правки штатных файлов пакета. Эта служба производителя не является драйвером XIOT: драйвер XIOT — интеграционный модуль XIOT-PLC, через который проект получает физические адреса.

Когда нужен пользовательский шаблон

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

Куда класть шаблон

На Wiren Board используются две основные директории шаблонов wb-mqtt-serial:

Путь Назначение
/usr/share/wb-mqtt-serial/templates Предустановленные шаблоны из пакета wb-mqtt-serial. Эти файлы не стоит редактировать вручную: обновление пакета может заменить изменения.
/etc/wb-mqtt-serial.conf.d/templates Пользовательские шаблоны. Эта директория имеет приоритет над предустановленными шаблонами и подходит для кастомных правок.

Если нужно переопределить штатный тип устройства, сохраните шаблон в пользовательскую директорию и оставьте тот же device_type, который используется в настройках устройства. Если создаётся новый тип устройства, задайте новый уникальный device_type.

Установка шаблона

Пример для файла config-ensystec.json:

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

Если шаблон является обычным строгим JSON без комментариев, можно проверить синтаксис командой:

python3 -m json.tool /etc/wb-mqtt-serial.conf.d/templates/config-ensystec.json >/dev/null

После добавления или изменения шаблона подождите около 20 секунд и обновите страницу конфигуратора Wiren Board через Ctrl+F5. Если шаблон не появился в веб-интерфейсе, перезапустите конфигуратор:

systemctl restart wb-mqtt-confed

Если устройство уже добавлено и используется службой wb-mqtt-serial, после замены шаблона перезапустите службу:

systemctl restart wb-mqtt-serial
systemctl status wb-mqtt-serial

Ошибки загрузки шаблона и конфигурации смотрите в журнале:

journalctl -u wb-mqtt-serial -n 100 --no-pager

Важные нюансы

  • Не правьте /etc/wb-mqtt-serial.conf вручную без необходимости: основной путь настройки устройств — веб-интерфейс Wiren Board.
  • Параметры каналов, заданные прямо в конфигурации устройства, имеют приоритет над параметрами из шаблона. Поэтому если канал в шаблоне добавлен, но в интерфейсе не появился, проверьте, нет ли для него переопределения enabled: false в конфигурации устройства.
  • Перед заменой рабочего шаблона сделайте копию текущего файла и запишите, какая версия установлена на объекте.
  • Для шаблонов с комментариями проверка через python3 -m json.tool не подходит, потому что это уже не строгий JSON. В этом случае ориентируйтесь на проверку через сервисы Wiren Board и журнал wb-mqtt-serial.

Источники