Добавление собственного устройства в /etc/wb-mqtt-serial.conf

Я ваши файлы шаблонов тоже пытался проверить - аналогично.

Подробной документации нет, но достаточно детально можно посмотреть в файле /usr/share/wb-mqtt-confed/schemas/wb-mqtt-serial.schema.json , тем все эти параметры приведены с кратким описанием.

Готового решения, к сожалению, нет. Возьму тайм-аут подумать. Цифровые типы – что вы имеете в виду? Вот в диммере яркость канала, смотрите, задается контролом с “type”: “range”.

Отлично! Я нашел. На этот вопрос вы ответили.

Нет, range не подходит. Мне нужно сделать поле ввода значения типа float.
Через эти поля я буду задавать уставки для САУ.

Я посмотрел исходники и понял, что в описании WebUI искать решение моих проблем бессмысленно, т. к. там есть только форматированный вывод данных.
Проблемы возникают на уровне реализации протокола MQTT в WB6. Т. е. если на этом уровне что-то не выводится, то и в веб-интерфейсе этого не будет.
Я в этом без вашей помощи точно не разберусь!

Я правильно вас понимаю, что среди перечисленных форматов
["s16", "u16", "s8", "u8", "s24", "u24", "s32", "u32", "s64", "u64", "bcd8", "bcd16", "bcd24", "bcd32", "float", "double", "char8"]
нет того, который бы представлял ваше значение с плавающей точкой?

MQTT довольно прост, он передает байты, поэтому умеет всё, а у вас затруднения с тем,к ак прочитать или записать нужными байтами ваше float-значение?

Нет, неправильно.

Проблема 1.

После выполнения команды mqtt-delete-retained пытаюсь снова добавить устройство через wb-mqtt-serial.conf устройство на странице Devices не отображается. Что с этим делать?

Файл шаблона онлайн-валидацию проходит.

Проблема 2.

Мне нужно сделать поле ввода значения уставки типа float.

Вот скажите, где у вас среди перечисленных нужный мне тип?

"control_type": {
  "type": "string",
  "title": "Control type",
  "description": "Defaults to 'switch' for coils and discrete inputs, 'text' for others",
  "enum": [
    "switch", "wo-switch", "pushbutton", "range", "rgb", "text",
    "value", "temperature", "rel_humidity",
    "atmospheric_pressure", "rainfall", "wind_speed", "power",
    "power_consumption", "voltage", "water_flow",
    "water_consumption", "resistance", "concentration",
    "heat_energy", "heat_power",
    // FIXME: "dimmer", "lux" and "pressure" aren't present in
    // conventions but is present in config-test.json in
    // wb-mqtt-serial
    "dimmer", "lux", "pressure"
  ]
}
  1. Попробуйте обновить вкладку Devices, посмотрите логи, mosquitto_sub выводит новые данные от подключенного устройства?
  2. Смотрите, никакого контрола, который бы мог непосредственно вводить числа с плавающей точкой, в веб-интерфейсе не предусмотрено. Используйте “range” и движок правил, чтобы в нужные регистры заносить значения в нужном вам представлении.
  1. Нет, не выводит.

  2. Это серьезная недоработка. Нужно сделать.

  1. А логи? При добавлении шаблона? При рестарте и работе wb-mqtt-serial что показывают?

  2. Задача такая есть, но не могу, к сожалению, сказать, когда она будет решена. А в каком float-формате в регистрах хранятся значения, которые нужно изменять?

Я не смог найти в логах, т. к. там все забито сообщениями от GSM-модуля.

Как отключить сообщения от GSM-модуля? У меня лог за 45 минут работы занял 650кБ на диске.
Опять вся память скоро забьется!

Напишите, какие фразы искать в логе. Я же не могу просмотреть все 650кБ!

Повысил уровень выводимых сообщений до 3. Не помогло.

ну раз уж есть такая тема, спрошу тут.

Я правильно понимаю, что нет возможности стандартно описать параметры устройства которые занимают несколько бит в регистре? Ну то есть например 16-битный регистр содержит данные отвечающие за разный функционал, при том длина этих данных может быть более одного бита?

Пока в разработке, есть только в бета-версии.

Удалил устройство через веб-интерфейс, потом добавил еще раз, перешел на вкладку Devices.
Вот лог:
Sep 27 08:00:56 wirenboard-AUCPMJ6J user.notice serial: address: 1
Sep 27 08:00:57 wirenboard-AUCPMJ6J user.notice serial: address: 2
Sep 27 08:00:57 wirenboard-AUCPMJ6J user.notice serial: address: 3
Sep 27 08:00:57 wirenboard-AUCPMJ6J user.notice serial: address: 4
Sep 27 08:00:57 wirenboard-AUCPMJ6J user.notice serial: address: 5
Sep 27 08:00:57 wirenboard-AUCPMJ6J user.notice serial: address: 6
Sep 27 08:00:57 wirenboard-AUCPMJ6J user.notice serial: address: 7
Sep 27 08:00:57 wirenboard-AUCPMJ6J user.notice serial: address: 8
Sep 27 08:00:57 wirenboard-AUCPMJ6J user.notice serial: address: 9
Sep 27 08:00:57 wirenboard-AUCPMJ6J user.notice serial: address: 10
Sep 27 08:00:57 wirenboard-AUCPMJ6J user.notice serial: terminate called after throwing an instance of ‘Json::LogicError’
Sep 27 08:00:57 wirenboard-AUCPMJ6J user.notice serial: what(): Value is not convertible to double.

После перезагрузки сервиса ничего нового в логе не появилось.

Отправил вам на почту файл шаблона. Валидацию он проходит.

"scale": "0.015625"

тут текст, а должно быть число. Думаю дело в этом

Ну как да такого додуматься! Мне бы в голову не пришло!
Получилось.

Рекомендую сначала добавлять каналы через веб-интерфейс прямо в конфиге /etc/wb-mqtt-serial.conf, он вам не даст такое сохранить. Дальше уже переносить кусок в шаблон, когда всё заработает.