Mqtt мост

Товарищи, помогите создать правило обьединяющее 10-12 контроллеров в один) задача: собирать данные по mqtt с WB на разных обьектах и получать их одним центральным WB на котором все топики будут отображаться)

А в чем собственно проблема? Один контроллер в качестве mqtt-сервера (настроен из коробки), а остальные в качестве мостов. На первом контроллере или белый ip или все контроллеры объединить через vpn.

Суть вопроса больше в том, будут ли отображаться топики с мостов на центральном контроллере в вэб интерфейсе?

Если просто сконфигурировать mqtt в качестве моста на контроллере, то устройства с контроллеров-мостов в веб-интерфейсе контроллера сервера отображаться не будут.
В данном случае лучше использовать в качестве центрального узла, например, SCADA-систему.

Может все таки есть способ вывести на интерфейс?) мост настроен, данные прилетают, и доступны

root@wirenboard-AMPKHTVF:~# mosquitto_sub -h 192.168.0.103 -p 1883 -v -t “/controller/#” -i Test_Client -u root -P wirenboard

Чтобы данные устройства автоматически появились в веб-интерфейсе нужно, чтобы его топики соответствовали конвенции . То есть имели следующий вид

/devices/$SystemId/meta/name
/devices/$SystemId/controls/$deviceUniqueControlId
/devices/$SystemId/controls/$deviceUniqueControlId/meta/type

Поэтому в данном случае необходимо в правилах анализировать все эти “внешние” топики. Не уверен, что это хороший вариант для вашей конфигурации.

Есть вариант автоматического подхвата устройств, но тогда не получится забирать, скажем так, системные топики, так они они будут перекрываться и возникнет хаос. В свойствах устройства


удаленного контроллера указать уникальное имя, не повторяющееся ни на одном контроллере, а в настройках каждого моста явно указать, какие топики пересылать, исключить пересылку одинаковых топиков, например, “/devices/hwmon/controls/Board Temperature”. Т.е. при такой схеме не получится получать “системные” топики.

В любом случае, все решения не простые и не однозначные.

Будем думать) благодарствую!

Но вообще на главном контроллере и не планируется считывание системных топиков, только с wb-msv4 и с wb-map3e, ну и статус соединения.
Можете описать как настроить мост, что бы он пересылал именно согласно конвенции топики уникальные, в настройках устройства по rs485 выставлю уникальные названия

Добавить в конец файла настройки моста, например, следующее:

topic /remote_wb-msv4/# out 0
topic /remote_wb-map3e/# out 0

Вечером опробую, спасибо!

все супер, соединение есть, данные выводятся на центральный, но настиг новый вопрос, как теперь менять значения, что бы они в ведомом менялись?) ибо на ведомом меняю значение, прилетает на ведущий, в ведущем меняю, в ведомый не прилетает…я так понял только чтение возможно данных?
и есть ли возможность вывести статус соединения так же в интерфейс?

Благодарю!)

Добрый день.
Я просто подумал, что вам только мониторинг нужен.

Здесь вместо out прописать both

2 Likes

чтение-запись заработало, а по поводу статуса соединения? сейчас файл с настройками моста выглядит так:

connection bridge1
#address of server
address ...
notifications true
notification_topic /devices/clientnotification/controls/bridge1_status
remote_username root
remote_password wirenboard
topic /devices/wbe2-i-opentherm_11/controls/# both 0

MQTT Explorer видит статус соединения по такому пути

/devices/clientnotification/controls/bridge1_status

Но в контроллере не отображается((

Как вариант может виртуальное устройство создать для топика “/devices/clientnotification/controls/bridge1_status” и контролировать его состояние.

Точняк!) благодарю!)

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