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

Custom-wiren-board-device-templates: различия между версиями

Материал из XIOT Wiki
Добавлен шаблон Ensystec для XIOT и инструкция по пользовательским шаблонам Wiren Board
 
COR-06: единый словарь действий и адресов управления/состояния
Строка 1: Строка 1:
__NOTOC__
Статья описывает, куда размещать свои JSON-шаблоны устройств для системной службы Wiren Board <code>wb-mqtt-serial</code> и как безопасно обновлять шаблон без правки штатных файлов пакета. Эта служба производителя не является драйвером XIOT: драйвер XIOT — интеграционный модуль XIOT-PLC, через который проект получает физические адреса.
= Пользовательские шаблоны устройств Wiren Board =
 
Статья описывает, куда размещать свои JSON-шаблоны устройств для драйвера <code>wb-mqtt-serial</code> и как безопасно обновлять шаблон без правки штатных файлов пакета.


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


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


== Куда класть шаблон ==
== Куда класть шаблон ==
Строка 43: Строка 40:
</pre>
</pre>


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


<pre>
<pre>
Строка 65: Строка 62:
== Источники ==
== Источники ==


* [https://wiki.wirenboard.com/wiki/Wb-mqtt-serial_driver Драйвер wb-mqtt-serial — Wiren Board]
* [https://wiki.wirenboard.com/wiki/Wb-mqtt-serial_driver Служба wb-mqtt-serial — Wiren Board]
* [https://github.com/wirenboard/wb-mqtt-serial Описание wb-mqtt-serial на GitHub]
* [https://github.com/wirenboard/wb-mqtt-serial Описание wb-mqtt-serial на GitHub]
* [https://wiki.wirenboard.com/wiki/index.php?title=Wb-mqtt-serial_templates/en WB-mqtt-serial driver: examples of writing templates]
* [https://wiki.wirenboard.com/wiki/index.php?title=Wb-mqtt-serial_templates/en WB-mqtt-serial driver: examples of writing templates]

Версия от 16:11, 23 августа 2026

Статья описывает, куда размещать свои 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.

Источники