Добавление описания канала в шаблон wb-mqtt-serial

Добрый день!

Часто работаю с modbus slave контроллерами вентиляции и холодильными установками, которые имеют много функций и сотни регистров.
Есть ли возможность оставлять комментарий или короткое описание к каждому каналу, которое будет отображаться в meta данных в топиках?
Часто по короткому названию канала сложно понять что он делает, приходятся каждый раз лезть в документацию.

Добрый день.

Имеете ввиду встроенными средствами веб-интерфейса? Для устройств используете готовый шаблон?

Нет, web интерфейс не использую совсем.
Всё в терминале. Пишу шаблоны самостоятельно.

Я нашел, что можно задать name и id, но в топиках по mosquitto_sub информация о name не выводится:

mosquitto_sub -t /devices/ventilation_2/controls/stu_y01/# -v
/devices/ventilation_2/controls/stu_y01/meta {"max":1.0,"min":0.0,"order":1,"readonly":false,"title":{"en":"\u0420\u0435\u0436\u0438\u043c \u0412\u041a\u041b/\u0412\u042b\u041a\u041b"},"type":"value"}
/devices/ventilation_2/controls/stu_y01/meta/error r
/devices/ventilation_2/controls/stu_y01/meta/max 1
/devices/ventilation_2/controls/stu_y01/meta/min 0
/devices/ventilation_2/controls/stu_y01/meta/order 1
/devices/ventilation_2/controls/stu_y01/meta/readonly 0
/devices/ventilation_2/controls/stu_y01/meta/type value
/devices/ventilation_2/controls/stu_y01 1

При этом другая meta информация в топиках есть. Странно.
Еще подписи на русском не читабельны.

apt-cache policy wb-mqtt-serial
wb-mqtt-serial:
  Installed: 2.68.6-wb109
  Candidate: 2.68.6-wb109
  Version table:
 *** 2.68.6-wb109 990
        990 http://deb.wirenboard.com/wb7/stretch stable/main armhf Packages
        100 /var/lib/dpkg/status

Структура топика должна соответствовать GitHub - wirenboard/conventions: Wiren Board MQTT Conventions.

Это скорее всего вопрос кодировки. В топиках одна, а mosquitto_sub - другая. Файл вашего шаблона в какой кодировке?

Я плохо понимаю как это относится к шаблонам устройств wb-mqtt-serial.

Я смотрю документацию для wb-mqtt-serial. Там не указана возможность указать Title для канала, по крайней мере в топиках такой информации нет:

Топик /devices/ventilation_2/controls/stu_y01/meta не в счет. Title должен быть в /devices/ventilation_2/controls/stu_y01/meta/title

Если это не так, пожалуйста поправьте документацию и приведите пример шаблона.

UTF-8

Провел тест, назвал канал кириллицей.

Кусок из шаблона:


            {
                "name": "Режим ВКЛ/ВЫКЛ",
                "min": 0,
                "max": 1,
                "readonly": false,
                "reg_type": "holding",
                "id": "Тестовое сообщение",
                "address": "3001"
            },

В топиках:


mosquitto_sub -t /devices/# -v | grep Тест
/devices/ventilation_2/controls/Тестовое сообщение 0
/devices/ventilation_2/controls/Тестовое сообщение/meta {"max":1.0,"min":0.0,"order":1,"readonly":false,"title":{"en":"\u0420\u0435\u0436\u0438\u043c \u0412\u041a\u041b/\u0412\u042b\u041a\u041b"},"type":"value"}
/devices/ventilation_2/controls/Тестовое сообщение/meta/error r
/devices/ventilation_2/controls/Тестовое сообщение/meta/max 1
/devices/ventilation_2/controls/Тестовое сообщение/meta/min 0
/devices/ventilation_2/controls/Тестовое сообщение/meta/order 1
/devices/ventilation_2/controls/Тестовое сообщение/meta/readonly 0
/devices/ventilation_2/controls/Тестовое сообщение/meta/type value

Не выглядит как проблема кодировки.

В данном топике данные в “title” хранятся в Unicode. Там где вы их обрабатываете преобразуйте строку в соответствующую кодировку.

В общем чтобы вывести в топик Title, например в
/devices/ventilation_2/controls/Тестовое сообщение/meta/title
нужно написать свой софт?
Я был уверен, что ключи из json автоматически разбираются в сабтопики или, что title не поддерживается в принципе.
Теперь я не понимаю логики, по которой часть ключей, кажется важных, не попадает в сабтопики, выглядит сложно и не логично.

Это не так. title хранится в формате JSON в топике /meta — так спроектировано наше ПО, это наш формат, который описан в конвенции.

Да, так как это не соответствует нашей конвенции.

Все подтопики в /meta — это легаси, которое накладывало ограничения, например, нельзя было сделать мультиязычный интерфейс. Мы изменили формат представления на JSON — это добавило новых возможностей. Интерфейс и софт развиваются, старое отмирает, новое приживается.

В любом случае, описание в title не решает вашей изначальной задачи — иметь место для дополнительной информации. Title используется веб-интерфейсом для отображения имён топиков на разных языках.

Наверное, здесь нужен параметр Description для шаблонов драйвера, которые бы транслировался в MQTT. Но тогда его должен поддерживать и наш веб-интерфейс, чтобы был смысл вкладывать ресурсы в доработку драйвера.

Если бы вы подробнее рассказали о том, как работает ваше ПО, может быть мы смогли бы что-то посоветовать, так как это описание не объясняет ничего:

Теперь понял вашу концепцию, спасибо!

Парадокс в том, что мы совсем не ипользуем web интерфейс контроллера. При отладке софта или наладке оборудования на объекте используем ssh. Но и ssh больше для нештатных ситуаций.
Из-за такого подхода, гораздо удобнее читать информацию “глазами”, подписываясь на конкретные топики в том числе и meta.
Когда информация в JSON и заголовок кириллицей в Unicode, через mosquitto_sub не совсем удобно получать информацию о названии.

Можете подсказать, вы планируете полностью удалять meta/+ ?

Когда-нибудь да, оно уже два года как не используется в новом софте и оставлено для обратной совместимости.

Так название топика, именно название, видно в его пути. В JSON только перевод для людей. Или вы задаёте там что-то своё в шаблонах?

Была идея куда-то в meta добавить полное название контрола и короткое описание.
Например в системах вентиляции куча параметров, которые обозначены кодом.
На практике удобнее задавать именно коды в качестве названия контрола, так как это позволяет однозначно и быстро иденцифицировать нужный параметр. Но по коду и без документации часто сложно понять, что именно означает той или иной параметр. Хотелось где-то хранить описание в шаблоне, чтобы небыло необходимости заглядывать в документацию.

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.