Чтение сообщения из произвольного топика в Web UI

Добрый день!
Пытаюсь прочитать в Web UI сообщение из опубликованного мной топика.
Топик публикую с помощью mqttClient.send();. Через mosquitto_sub в консоли этот топик просматривается.
Прочитать пытаюсь через сервис HomeUIData в dataServiceModule, но он просто не улавливает мой топик.
Подскажите пожалуйста, в чём может быть проблема.

А расскажите пожалуйста, что за задачу вы решаете?

Вот тут нужно сильно больше подробностей.

Я создаю виджет для конфигурирования и запуска правила. В нём есть поля для ввода параметров и кнопка запуска. После ввода параметров и запуска, по rpc вызывается python метод, он конфигурирует правило и помещает в нужную папку.
Я хочу, что бы значения, введённые в поля после обновления страницы оставались в полях.
Подумав, как это можно реализовать, я увидел, что в WEB UI некоторые конфиги хранятся в топиках. И я решил, что так же можно поступить со значениями параметров для правил. Это нужно только для их отображения в полях ввода.
В WEB UI я нашёл сервис, который отвечает за работу с такими конфигами (scripts\services\dataService.js). Добавил в data объект parameters и реализовал метод для обработки этого топика (по аналогии обработки widgets, rooms, dashboards и. т. д.). Однако топик /config/parameters этот сервис как бы не видит и даже сообщение WARNING: Unknown config message: не выдаёт в консоль.

Возможно есть более подходящий решение для подобной задачи?

Думаю да, есть более подходящий способ. Для хранения настроек лучше использовать JSON-конфиги и сервис wb-mqtt-confed. Там можно довольно гибко настраивать в итоге отображение, пример можно посмотреть в конфигурации алармов, в урезанной конфигурации алармов (https://github.com/contactless/wb-rules/blob/master/rules/alarms-restricted.schema.json) и вообще в документации по json schema editor.

В правилах настройки можно читать через loadConfig(). Пример конфигурируемого правила есть тут: https://github.com/contactless/wb-mqtt-dac

1 Like