Я посмотрел исходники и понял, что в описании 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"
]
}
- Попробуйте обновить вкладку Devices, посмотрите логи, mosquitto_sub выводит новые данные от подключенного устройства?
- Смотрите, никакого контрола, который бы мог непосредственно вводить числа с плавающей точкой, в веб-интерфейсе не предусмотрено. Используйте “range” и движок правил, чтобы в нужные регистры заносить значения в нужном вам представлении.
-
Нет, не выводит.
-
Это серьезная недоработка. Нужно сделать.
-
А логи? При добавлении шаблона? При рестарте и работе wb-mqtt-serial что показывают?
-
Задача такая есть, но не могу, к сожалению, сказать, когда она будет решена. А в каком 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-брокера. Дайте, пожалуйста, пример, как это сделать.
В этом случае, я вообще не буду трогать ваш интерфейс, а сделаю свой.
Мои вопросы проигнорировали! А они остались!
Сейчас опять проблема возникла с добавлением устройств.
- Создал свой шаблон config-fw-cpm712-test-06.json
- Добавил в файл wb-mqtt-serial.conf строки:
“devices”: [
{
“slave_id”: 9,
“device_type”: “FW-CPM712-TEST”,
“protocol”: “modbus”,
“enabled”: true
}
], - Перезагрузил сервисы wb-mqtt-serial, wb-mqtt-confed
config-fw-cpm712-test-06.json (99.7 КБ)
wb-mqtt-serial.conf (1.5 КБ)
messages.txt (35.2 КБ) - Устройство не добавляется в список Devices