Пользовательские шаблоны устройств Wiren Board

Материал из XIOT Wiki
Перейти к навигации Перейти к поиску

Пользовательские шаблоны устройств 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.

Источники

Источник — https://wiki.xiot.ru/index.php?title=Пользовательские_шаблоны_устройств_Wiren_Board&oldid=3584