Пользовательские шаблоны устройств Wiren Board
Пользовательские шаблоны устройств Wiren Board
Статья описывает, куда размещать свои JSON-шаблоны устройств для драйвера wb-mqtt-serial и как безопасно обновлять шаблон без правки штатных файлов пакета.
Когда нужен пользовательский шаблон
Пользовательский шаблон нужен, если устройство работает по поддерживаемому протоколу, но штатного шаблона нет, либо штатный шаблон нужно расширить под конкретную интеграцию. Например, для 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.