Mosquitto bridge topics

Добрый день!
Вопрос по настройкам конфигурации bridge.
Если отправлять к примеру из коммандной строки то сервер принимает сообщения
mosquitto_pub -u USER -P PASSWORD -t channels/CHANNEL_ID/messages -h HOST -m ‘23’
если использовать такую конфигурацию bridge, то ничего не получается
address HOST
remote_username USER
remote_password PASSWORD
на примере датчика температуры
topic # out 0 /devices/wb-w1/controls/28-00000a1d48e1 channels/CHANNEL_ID/messages
Где ошибка?

Двойные кавычки в конце добавьте через пробел

кавычки ничего не меняют, wirenboard усердно паблишит в стандартный топик


хотя отписывается от нужно топика

если делать с командной строки, то все нормально

Добрый день!
Напишите, пожалуйста, словами, какую именно задачу вы пытаетесь решить. То есть из какого именно локального топика/группы топиков в какие удалённые топики вы хотите передавать данные.

Добрый день!
Есть сервер с MQTT адаптером который принимает сообщения в JSON формате
при выполнении команды на контроллере сообщения принимаются т.к. все условия соблюдены
mosquitto_pub -u 4a27b1b5-1d2e-425b-999a-7830ef4bc08e -P 72cbc131-8b23-4b05-9b9d-493fbfcb6eb5 -t channels/0ff09433-a9eb-4ff2-85a9-f9cc1c0abce3/messages -h 172.28.3.238 -m ‘[{“n”:“temp”,“v”:24.687}, {“n”:“cpu_temp”,“v”:61.417}, {“n”:“board_temp”,“v”:36.375}]’

Теперь делаем тоже через bridge.
Есть к примеру топик с температурой

при помощи скриптов делаем из него JSON формат

настройки бриджа:
address 172.28.3.238:1883
remote_username 4a27b1b5-1d2e-425b-999a-7830ef4bc08e
remote_password 72cbc131-8b23-4b05-9b9d-493fbfcb6eb5
try_private false
start_type automatic
topic # out 0 /devices/power_status/controls/28-00000a1d48e2 channels/0ff09433-a9eb-4ff2-85a9-f9cc1c0abce3/messages “”
получаем совсем другую картину

так а что вас беспокоит? В этот топик бридж просто пишет единичку, когда подключается, про это есть отдельная настройка.

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

Сервер не принимает никакие сообщения в свой канал кроме как channels/0ff09433-a9eb-4ff2-85a9-f9cc1c0abce3/messages, поэтому если бридж пытается куда-то записать единицу у него это не получится.
Если есть отдельная настройка, это даже радует, возможно бриджу нужно сразу высылать сообщение в нужный топик. Хотелось бы узнать, где эти настройки.

Это полный конфиг бриджа.
Вывод mosquitto_sub
mosquitto_sub -u 4a27b1b5-1d2e-425b-999a-7830ef4bc08e -P 72cbc131-8b23-4b05-9b9d-493fbfcb6eb5 -t channels/0ff09433-a9eb-4ff2-85a9-f9cc1c0abce3/messages -h 172.28.3.238
0
[{“n”:“temp”,“v”:25}, {“n”:“cpu_temp”,“v”:61.417}, {“n”:“board_temp”,“v”:36.125}]
[{“n”:“temp”,“v”:25}, {“n”:“cpu_temp”,“v”:62.014}, {“n”:“board_temp”,“v”:36.125}]
[{“n”:“temp”,“v”:25}, {“n”:“cpu_temp”,“v”:61.417}, {“n”:“board_temp”,“v”:36.125}]
[{“n”:“temp”,“v”:25}, {“n”:“cpu_temp”,“v”:60.820}, {“n”:“board_temp”,“v”:36.125}]
[{“n”:“temp”,“v”:25}, {“n”:“cpu_temp”,“v”:61.417}, {“n”:“board_temp”,“v”:36.125}]

Ну так а эти сообщения - это не то, что вы пытаетесь отправить?

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

7test, хотел уточнить: какой именно компонент формирует у вас на контрроллере JSON-структуру и отправляет ее в топик /devices/power_status/controls/28-00000a1d48e2? Движок правил?

Если вы подписываетесь на этот топик на mosquitto контроллера, данные в виде JSON-структуры приходят? Скриншот хотелось бы посмотреть, пожалуйста.

Я так понимаю, что вы хотите, чтобы сообщения, публикуемые локально на контроллере в топик /devices/power_status/controls/28-00000a1d48e2 отправлялись бы бриджем на удаленный сервер в топик /devices/power_status/controls/28-00000a1d48e2 , верно?

Да, движок правил.

хочу из /devices/power_status/controls/28-00000a1d48e2 пересылать на channels/0ff09433-a9eb-4ff2-85a9-f9cc1c0abce3/messages

Смотрите, в брокере не получится транслировать один топик в другой целиком, только все (префикс) до последней части.

Чтобы пересылать через брокер с подменой вам надо
/devices/power_status/controls/28-00000a1d48e2
назвать
/devices/power_status/controls/messages

а в брокере прописать:
topic # both 0 /devices/power_status/controls/ channels/0ff09433-a9eb-4ff2-85a9-f9cc1c0abce3/

тогда отправленное контроллером что-то типа
mosquitto_pub -t "/devices/power_status/controls/messages" -m [{\"a\":\"a\"},{\"c\":\"f\"}]

(ну, или из движка правил)

будет приходить через брокер на ваш сервер в виде

channels/0ff09433-a9eb-4ff2-85a9-f9cc1c0abce3/messages [{"a":"a"},{"c":"f"}]

не хочет он паблишить в нужный мне канал/топик


файл дампа dump.txt (1.4 КБ)

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