Не получается настроить бридж

или лыжи не едут, или что-то со мной…
есть два wb 6.6, пытаюсь настроить обмен топиками между ними по https://wirenboard.com/wiki/MQTT#.D0.9D.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_MQTT_.D0.BC.D0.BE.D1.81.D1.82.D0.B0_.28bridge.29
ip 122 и 125.
настраиваю bridge.conf на 125 контроллере на получение статуса вирт. устр test122 с 122
connection wb_122
address 192.168.100.122
notifications true
notification_topic /devices/bridge_122/controls/bridge_status
keepalive_interval 20
restart_timeout 20

topic /devices/test122/controls/on in 2 “” /devices/wb122

после записи рестартую сервис москитто и проверяю статус. все ок.
статус бриджа 0

попробовал настроить бридж c cloudmqtt
connection cloudmqtt
address m24.cloudmqtt.com:15620
remote_username ххххх
remote_password ххххх
clientid nbsrfhbrhcjb
try_private false
start_type automatic

topic # both

коннект не устанавливается.
месяцев пять назад с другим контроллером бридж с cloudmqtt настраивал в виде пробы пера.
итак, лыжи или я косячу?

и второй вопрос - если нужно передавать некоторые топики то будет перечисление вроде такого:
topic /devices/test1_122/# in 2 “” /devices/wb122
topic /devices/test2_122/# in 2 “” /devices/wb122
?

Так, судя по команде вы хотите:
топик с брокера “122” с адресом /devices/wb122/devices/test122/controls/on сбриджевать в “/” брокера “125”?
Предполагаю что надо использовать конструкцию вида:
topic что in 2 куда(На_приемнике) откуда(На_источнике)
то есть

topic /test122/controls/on in 2 /devices/wb122 /devices

А “вручную” с помощью mosquitto_sub - подключается к облаку с контроллера?

Да, можно перечислять.

на wb_122 есть виртуальное устройство с топиком /devices/test122/controls/on
на wb_125 хочу поймать его состояние в такой же топик /devices/test122/controls/on

topic /devices/test122/controls/on in 2 /devices/ /devices
вот так получается и на wb_125 появляется вирт. устройство, причем независимо от направления in, out или both изменения идут только со 122 в сторону 125. если переключать на 125 этот контрол, то на 122 состояние не меняется.
может так и должно быть.

попробовал еще топики со 122 закинуть на 125 такой командой
topic /devices/knx_group_addrs/controls/1-1-10 in 2 /devices/ /devices
думал зайдет только один адрес 1.1.10
добавились все групповые адреса knx, которые были на 122, корректно отображали статус при изменении на wb_122. после этого заремил этот топик, перезагрузил москитто.
после этого топики на 125 существовали по-прежнему и дублировали состояние топиков адресов knx на wb_122.
удалил их mqtt-delete-retained.
такое поведение топиков на wb_125 норма?

Тут “ключевое” - это то, что топик on
Попробую объяснить:
Этот топик обрабатывается драйвером, причем сразу же. Если остановить драйвер - то состояние топика меняться драйвером не будет.

В результате такой записи бридж будет пытаться создать из исходного брокера по пути /devices/devices/test122/controls/on такой же топик на целевом.
Надо:

topic /test122/controls/on in 2 /devices /devices

Нет. А точно был перезапущен брокер?

создал вирт.устр test2/controls/vkl
переправил его на другой контроллер, все норм, после рема топика и перезапуска службы - на втором контроллере вирт.устр не реагирует на изменение состояния этого устройства на первом.
но путь был такой: topic /test2/controls/vkl both 2 /devices/ /devices
значит ли это что изменения test2 на wb2 также должны были менять состояние на исх wb1?

дальше

В результате такой записи бридж будет пытаться создать из исходного брокера по пути /devices/devices/test122/controls/on такой же топик на целевом.
был (и есть) топик на wb2 по вашему стандартному шаблону /devices/test122/controls/on
topic /devices/test122/controls/on in 2 /devices/ /devices в настройках бриджа пока не меняю, раз все работает как надо.

финал-

Нет. А точно был перезапущен брокер?

146%, сразу после любых изменений bridge.conf рестартую москитто и проверяю статус службы.

Попробовал вопроизвести - после комментирования topic и перезапуска - значения меняться на целевом перестают сразу.

воспроизводить уже не буду knx. с топиками более-менее ясно, бридж настроился и работает.
если что-то проявится, создам новую тему.
спасибо!

Всем здравия и с наступившими!
Аналогичная проблема - не получается настроить Бридж на передачу топиков из WB 6.7 в Облако.
В bridge.conf пишу -
connection vscale
address 82.148.28.xxx:1883
notifications true
notification_topic /client/WB_SerNum/bridge_status
keepalive_interval 20
restart_timeout 20
topic /devices/# both 2 “” /client/WB_SerNum
Соответственно перезапускаю Москито и с помощью MQTT Explorer смотрю в Облаке, но там появляется только один топик /client/WB_SerNum/bridge_status со значением = 0.
Пробовал и так -
topic /devices/# out 2 “” /client/WB_SerNum
результат одинаковый.
Смотрел mosquitto.log там при перезапуске появляется - Error socket ДлинноеНазвание, но в конце - Москито запущен.
Может в Облаке тоже надо Москито перезапускать?
Также изучая тему настройки Бриджа столкнулся с непоняткой - Какой .conf нужно редактировать? Одни правят mosquitto.conf, а другие как и я bridge.conf
Короче - Или лыжи не едут, или ноги кривые :slight_smile:

Логин и пароль, надеюсь, не забыт? (не надо его здесь указывать)
Судя по тому что notification появляется - связь есть.
Как писал выше:

То есть:

topic /devices/# out 2 /client/WB_SerNum ""

Собственно говоря нет разницы. Но правильно, идеологически - bridge.conf
В основном конфиге есть строчка “include_dir /etc/mosquitto/conf.d”
То есть все конфиги которые распологаются по этому пути (их содержимое) подставляются “вместо” нее.

Спасибо что ответили!
Поменял на такую запись -
topic /devices/# out 2 /client/AC57A3KJ “”
потом на такую
topic /devices/mercury230ar02_62 out 2 /client/AC57A3KJ/mercury230 “”
перезапускал, но результат тот же - топики не появлются, bridge_status=0.
Может попробовать ручную публикацию с контроллера в облако?
И еще у Москито который в облаке обязательна авторизация, а то пока ее нет ?!

последний аргумент - это источник
То есть

  • это верно, можно попробовать
topic /devices/# both 2 /client/AC57A3KJ /

А запись вида

верна только если есть топик “/devices/mercury230ar02”
У вас в “облаке” что за брокер? Либо дайте доступ к вашему либо подробную о нем информацию - воспроизведу.

Топик /devices/mercury230ar02_62 существует в контроллере.
Брокер в облаке такой же как в контроллере - Mosquitto MQTT.
Версии не сравнивал, стоит на Ubuntu 20.04 64bit, вот его Статус


Ниже последние записи из облака, из лога

Повторяющиеся ошибки об Отсутствующем клиенте. Выше я спрашивал - Обязательна ли авторизация (захожу без пароля) на Брокере облака?!

Без авторизации - отсканят и попользуются кто угодно. воспроизведу примерно через час.

Проект в стадии разработки и тестирования.
Про безопасность я помню и обязательно это поправлю.
Вопрос то в другом - Почему Бридж не работает !?

таки есть вопросы еще по бриджу. до этого я создавал вирт.устр на приемном wb. и все было нормально. сейчас удалил их и пробую настроить обмен только через конф-файл бриджа

connection 122
address 192.168.0.122
notifications true
notification_topic /devices/bridge_122/controls/bridge_status
#keepalive_interval 20
#restart_timeout 20

topic /devices/test122/controls/on in 2 “” /devices
topic /devices/test2/controls/vkl in 2 /devices /devices
тут просто пробовал по-всякому прописать путь.
так тоже:
topic /test2/controls/vkl in 2 /devices /devices

на приемнике test122 и test2 не появляются, ЗАТО появляется топик и вирт устр-во knx
/devices/knx/controls/data. каждый раз сразу после перезагрузки москитто. причем даже не нужно обновлять страницу
настройка бриджа скопипащена из файла и никаких упоминаний о knx там нет давно. где нужно искать следы?
mqt-box у приемного wb /devices/test2/controls/vkl видит и отображает состояние корректно.
нужно каждый раз создавать вирт. устройство на приемнике? хотя случай с knx-топиком говорит об обратном.

На контроллере выполняю команду -
mosquitto_pub -h 82.148.28.ххх -p 1883 -t “/client/AC57A3KJ/hwmon/CPU_Temp” -m “30” -u “user” -P “psw”
Смотрю в облаке с помощью MQTT Explorer (класная прога) - Опубликовалось, в дереве Брокера появилось практически мгновенно!
mosquitto_pub -h 82.148.28.ххх -p 1883 -t “/client/AC57A3KJ/mercury230/U1” -m “230” -u “user” -P “psw”
Аналогично опубликовалось!
bridge_status=0 и не менялся, хотя количество его сообщений растет.
Делаю вывод - Бридж на стороне контроллера не отрабатывает!
Что еще посмотреть?

Дополняю статью. Допишу туда, в статью еще примеров.

Уважаемый, Андрей Р., то что вы пишите в качестве примеров касается ручной публикации (mosquitto_pub) и в моем случае работает на 100%. У меня не отрабатывает Бридж, даже такое -
topic # out 0
topic # in 0
Может дело в значении QOS ?! В моем WB WebUi 2 / MQTT Channel их нет, не указаны.
Какой QOS нужно писать в bridge.conf ?
Вчера был момент - при попытке update mosquitto, перед этим сделал service mosquitto stop, контроллер ушел в перезагрузку. После загрузки WB и повторной командой обновление mosquitto прошло успешно. Но, результата нет!
Разъясните пожалуйста какие механизмы задействует Бридж в своей работе? Понятно что им рулит Брокер, но где затык происходит, как его отследить на пути WB брокер > Бридж > Облачный брокер?!

connection mybridge1
try_private false
bridge_attempt_unsubscribe false
cleansession false
notifications true
notification_topic /AC57A3KJ/bridge_status
start_type automatic
remote_username user
remote_password psw
address 82.148.28.xxx:1883
topic /devices/# out 0 “” /AC57A3KJ

С таким bridge.conf заработало. Свой вопрос считаю исчерпанным.