Создание устройства, mqtt

Подскажите пожалуйста, как методически верно создавать новое устройство в WB?
В Wiren Board MQTT Conventions (https://github.com/contactless/homeui/blob/contactless/conventions.md) указано что нужно сдалать - поддержать определенную meta структуру.
Но как это сделать?

Понятно, можно вручную создавать через mosquitto_pub, сделав несколько вызовов.Можно их прописать в shell скрипте, чтобы потом при случае повторить этот опыт.
Но может быть уже существует какой-то кошерный способ описать структуру через тот же JSON фомрат и прокатать через какую-то утилиту из имеющихся?

Спасибо

А какова конечная цель?
Что будет делать устройство?
Например, один из “кошерных” способов - скрипт в интерфейсе WB (defineVirtualDevice)

ну например, у меня есть sms команды к Wb. Внешнее приложение слушает модем, и, получив sms, кладет сообщение в /devices/sms/commands/message. A уже javascript rule на onchange этого свойства обрабатывает команду.
Вот мне надо чтобы существовала ветка /devices/sms/commands/message со всеми необходимыми метатегами

Для такого применения defineVirtualDevice отличный вариант.
Удобно определить виртуальное устройство в том же скрипте, что и OnChange.

Движок правил: примеры кода - отличный пример

Спасибо. Да, так удобно.