MQTT-брокер mosquitto на WB7

Добрый день!
В нашем проекте используется WB7, моноблок и сторонние устройства. В данный момент на моноблоке установлен MQTT-брокер Mosquitto, устройства отправляют аналоговые значения на моноблок, а мы их забираем через WB. Сейчас мы хотим убрать моноблок из конфигурации и заменить его брокер на брокер контроллера.
Как нам нужно отредактировать конфигурацию Mosquitto на Вайренборде и какие действия необходимо предпринять для настройки связи с устройствами?

Добрый день!

А что за устройства? Как подключаются?

Радиоканальные ДБУ. К wb никак.

А как они подключаются к моноблоку? Правильно понимаю, что хотите убрать моноблок и подключить устройства к контроллеру? В таком случае нужно больше информации, что это за устройства, желательно документацию на них.

Добрый день.
Попробуйте с компьютера подключиться к брокеру контроллера, для проверки. Пример:

sysadmin@brain:~# mosquitto_sub -v -t '/devices/#' -h 10.0.0.80 -C 30
/devices/wbrules/meta {"driver":"wb-rules","title":{"en":"Rule engine settings","ru":"Настройки движка правил"}}
/devices/wbrules/meta/name Rule engine settings
/devices/wbrules/meta/driver wb-rules
/devices/wbrules/controls/Rule debugging/meta {"order":1,"readonly":false,"title":{"en":"Rule debugging","ru":"Отладка правил"},"type":"switch"}
/devices/wbrules/controls/Rule debugging/meta/order 1
/devices/wbrules/controls/Rule debugging/meta/readonly 0
/devices/wbrules/controls/Rule debugging/meta/type switch
/devices/buzzer/meta {"driver":"wb-rules","title":{"en":"Buzzer","ru":"Зуммер"}}
/devices/buzzer/meta/name Buzzer
/devices/buzzer/meta/driver wb-rules
/devices/buzzer/controls/enabled 0
/devices/buzzer/controls/enabled/meta {"order":1,"readonly":false,"title":{"en":"Enabled","ru":"Включен"},"type":"switch"}
/devices/buzzer/controls/enabled/meta/readonly 0
/devices/buzzer/controls/enabled/meta/type switch
/devices/buzzer/controls/enabled/meta/order 1
/devices/buzzer/controls/frequency 3000
/devices/buzzer/controls/frequency/meta {"max":7000,"order":2,"readonly":false,"title":{"en":"Frequency","ru":"Частота"},"type":"range"}
/devices/buzzer/controls/frequency/meta/max 7000
/devices/buzzer/controls/frequency/meta/order 2
/devices/buzzer/controls/frequency/meta/readonly 0
/devices/buzzer/controls/frequency/meta/type range
/devices/buzzer/controls/volume 10
/devices/buzzer/controls/volume/meta {"max":100,"order":3,"readonly":false,"title":{"en":"Volume","ru":"Громкость"},"type":"range"}
/devices/buzzer/controls/volume/meta/max 100
/devices/buzzer/controls/volume/meta/order 3
/devices/buzzer/controls/volume/meta/readonly 0
/devices/buzzer/controls/volume/meta/type range
/devices/metrics/meta {"driver": "wb-mqtt-metrics", "title": {"en": "Metrics", "ru": "\u041c\u0435\u0442\u0440\u0438\u043a\u0438"}}
/devices/metrics/meta/driver wb-mqtt-metrics
/devices/metrics/meta/name Metrics

Ну и - что именно хотите изменить в настройках?

Мы хотим, чтобы Mosquitto на контроллере принимал топики от устройств так же, как это делал Mosquitto на моноблоке. Конф файл прилагаю
mosquitto.conf (59 байтов)

/devices/wbrules/meta {“driver”:“wb-rules”,“title”:{“en”:“Rule engine settings”,“ru”:“Настройки движка правил”}}
/devices/wbrules/meta/name Rule engine settings
/devices/wbrules/meta/driver wb-rules
/devices/wbrules/controls/Rule debugging/meta {“order”:1,“readonly”:false,“title”:{“en”:“Rule debugging”,“ru”:“Отладка правил”},“type”:“switch”}
/devices/wbrules/controls/Rule debugging/meta/type switch
/devices/wbrules/controls/Rule debugging/meta/order 1
/devices/wbrules/controls/Rule debugging/meta/readonly 0
/devices/buzzer/meta {“driver”:“wb-rules”,“title”:{“en”:“Buzzer”,“ru”:“Зуммер”}}
/devices/buzzer/meta/driver wb-rules
/devices/buzzer/meta/name Buzzer
/devices/buzzer/controls/enabled 0
/devices/buzzer/controls/enabled/meta {“order”:1,“readonly”:false,“title”:{“en”:“Enabled”,“ru”:“Включен”},“type”:“switch”}
/devices/buzzer/controls/enabled/meta/type switch
/devices/buzzer/controls/enabled/meta/order 1
/devices/buzzer/controls/enabled/meta/readonly 0
/devices/buzzer/controls/frequency 3000
/devices/buzzer/controls/frequency/meta {“max”:7000,“order”:2,“readonly”:false,“title”:{“en”:“Frequency”,“ru”:“Частота”},“type”:“range”}
/devices/buzzer/controls/frequency/meta/type range
/devices/buzzer/controls/frequency/meta/max 7000
/devices/buzzer/controls/frequency/meta/order 2
/devices/buzzer/controls/frequency/meta/readonly 0
/devices/buzzer/controls/volume 10
/devices/buzzer/controls/volume/meta {“max”:100,“order”:3,“readonly”:false,“title”:{“en”:“Volume”,“ru”:“Громкость”},“type”:“range”}
/devices/buzzer/controls/volume/meta/order 3
/devices/buzzer/controls/volume/meta/readonly 0
/devices/buzzer/controls/volume/meta/type range
/devices/buzzer/controls/volume/meta/max 100
/devices/network/meta {“driver”:“wb-rules”,“title”:{“en”:“Network”,“ru”:“Сеть”}}
/devices/network/meta/name Network
/devices/network/meta/driver wb-rules

А чем конфиг отличается от действующего на контроллере?

Конфигурацию на WB мы не изменяли. Мы хотим узнать, какие действия нужно предпринять (с конфигурацией или с чем-то другим), чтобы брокер WB начал принимать сторонние топики.

Так. Попробуйте опубликовать что-либо. Я, простите, пока не могу понять что именно делаете, какого результата хотите достичь.
Предполагаю что проблема - с публикацией? Какая?

Да, проверьте - публикуется ли то же самое на “моноблоке”. Есть ли какие-то отличия?

Мы уже настроили публикацию на ip WB, но новые топики не появились в каналах mqtt

Публикация успешна?
Как я понимаю - вы создаете топики в соответствии с конвенцией и они не обрабатываются веб-интерфейсом?
Покажите структуру пожалуйста, проверю.

Пример стороннего топика: /ctr/2E-E8-20-02-83-F6/cmd/dim/av. В этом топике находятся аналоговые значения с устройств. С брокером на моноблоке мы успешно получаем эти данные. Однако, когда мы настраиваем работу с WB, данные из этих топиков не приходят (мы проверяли это в mqttfx).

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

В конф. файле mosquitto моноблока:
listener 1883 0.0.0.0
protocol mqtt
allow_anonymous true

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

Если топики полностью соответствую конвенции - да, отобразятся автоматически.
Судя по приведенному топику - они как минимум не используют верный путь /devices
Привести к обрабатываемому виду можно так: Использование Tasmota-устройств с контроллером Wiren Board — Wiren Board
Или так: Восстановление базы после обновления - #10 от пользователя Pistonov
Ну и как пример конвертор GitHub - wirenboard/wb-zigbee2mqtt: zigbee2mqtt to Wiren Board MQTT Conventions bridge

Ну, публикация успешна. Да, значит то что писал в предыдущем сообщении - справедливо.