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

Я посмотрел исходники и понял, что в описании 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, он вам не даст такое сохранить. Дальше уже переносить кусок в шаблон, когда всё заработает.

Поле с типом text выглядит в интерфейсе как поле ввода.
В него можно вводить значения?

Почему для поля типа range нельзя также задать минимальное значение?
А почему нельзя вводить дробные числа? Например, мне нужно ввести число в диапазоне: 0 - 1 с шагом 0.01.

Это недоработка!

Установил новый интерфейс на WB6.
Теперь возник вопрос: как добавлять собственные типы данных для устройств, которые отображаются внутри виджета?
Раньше это делалось редактированием html-файлов в папке devices.
Насколько я понимаю, от всех этих файлов остался только /views/devices.html,
а все остальное вы поместили в файлы .js?
Но поскольку код этих файлов зашифрован, то я не могу понять, что там происходит!

В общем-то, я и не хочу туда лезть. Мне нужен какой-то способ, чтобы я мог наложить на готовый html-файл, который представляет собой тег <svg>, значения, которые я получаю из MQTT-брокера. Дайте, пожалуйста, пример, как это сделать.
В этом случае, я вообще не буду трогать ваш интерфейс, а сделаю свой.

Мои вопросы проигнорировали! А они остались!

Сейчас опять проблема возникла с добавлением устройств.

  1. Создал свой шаблон config-fw-cpm712-test-06.json
  2. Добавил в файл wb-mqtt-serial.conf строки:
    “devices”: [
    {
    “slave_id”: 9,
    “device_type”: “FW-CPM712-TEST”,
    “protocol”: “modbus”,
    “enabled”: true
    }
    ],
  3. Перезагрузил сервисы wb-mqtt-serial, wb-mqtt-confed
    config-fw-cpm712-test-06.json (99.7 КБ)
    wb-mqtt-serial.conf (1.5 КБ)
    messages.txt (35.2 КБ)
  4. Устройство не добавляется в список Devices