У меня стоит задача организовать прием и передачу информации на MQTT брокер контролера для разработчиков приложения. Подскажите, пожалуйста, есть ли сейчас возможность получить доступ к mqtt брокеру контролера через wb-cloud? Или надо настраивать доступ через OpenVPN для таких целей? Или может лучше использовать пересылку сообщений на внешний MQTT брокер? Задача стоит отслеживать статус топиков и передавать команды по нескольких контроллерам, поэтому хотелось бы использовать wb-cloud если это возможно. Какой бы вы способ посоветовали в моем случае?
Добрый день.
Да, можно. Веб-интерфейс при работе через облачный сервис имеет доступ через /mqtt URL, используя Web socket. Но как можно использовать этот же механизм в сторонних приложениях - не подскажу, не пробовал.
Возможно, но не совсем соответствует задаче.
Да, интеграторы так делали - это вполне работает.
Спасибо за ответ. Пытаюсь протестировать связь через WebSocket в Postman, но не удается установить соединение, несмотря на то, что получаю статус 101 Switching Protocols. Получаю следующую ошибку:
**Error:** Invalid Sec-WebSocket-Accept header
###### Handshake Details
Request URL: https://ahh6gwts.http.wirenboard.cloud/mqtt
Request Method: GET
Status Code: 101 Switching Protocols
▶Request Headers
sec-websocket-version: 13
sec-websocket-key: dY2QeIy5olJ8O5x9r123yA==
Connection: Upgrade
Upgrade: websocket
cookie: tunnel_key=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiODY1ODlkZi02NWUxLTQ1MWEtYmU5Ni1iNTFlMDEwZDZhNjgiLCJpYXQiOjE3NjM3MjA5MDUsImV4cCI6MTc2MzcyMTgwNSwidHVubmVsX2lkIjoiM2QxMmVkNGItZjE4NC00YmI2LTkzZWUtYmUwMGYxMTZmODBkIiwidHVubmVsX3BvcnQiOiI0NzI2MyIsInR1bm5lbF90eXBlIjoiaHR0cCIsIm93bmVyX2lkIjoiNjdjZWFkNDktNzdkMC00MGMyLWI3NjgtZTZjZGNiYjkzMmQyIn0.cb5aG2Kibi6YJy5W6Mpf5470i9MEjeOjDWDDVhT9Y84nSPC04ZYR1v9WAd3t-21dmF_5e4hOC9TL28G9RWW2w2iXhMhwZSssMl4x15vSsuge0mRenwF6vVFSE_sLNj8Ekp9n8u90r6VYJDgxrZX0-pBYTdxBqTCgPgOaCy8uTCLrIIqJYliYXpo_8PSXFVQ08bfhaOsrjM5_qSNgstfAYcxL5PSHXV_d1Na5bTxOOJJtXztbX6JJayavnn5-jr294ee8cTWlwo7e0fesE3PQ6kdj-oTXO8iIs-LjoupnNVd06ZRY-10a05EhYYQ5mgmnbaZIjXTlPvo8Jiq7rw9XUnJaRj5Qh0uo-kxkRhXwRjrxNGvBjNMFil60dGgVDH7PEHTai5h2MkOrYDp55j6VZl1Ju6jeimfIs9yCjMH9SCVQyTrn9aykcVDVM2AnTsbghTGXca0Xtmny3iL5RCKgicx7OEYBUjEJawJkqyMCa90cERs87akZIGCmDZv6EpDQTa0VAQHrzISjiPOsjLMwxSR44TWzFl-coMgxbXZQ0bMRAkM6pgXMqCwYCanVywtrHND668BGK2jRZ393c0Ik1N1nMihVb1Andn6OrTajJ6KSf7c_ih5VFB9olhfAefOJjnP6WJUPya1JbNjv3KZ55OoSIXQ-CNCqlVpKj18OMkQ
Sec-WebSocket-Protocol: mqtt
server: nginx
origin: https://ahh6gwts.http.wirenboard.cloud
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Host: ahh6gwts.http.wirenboard.cloud
▶Response Headers
Connection: upgrade
Date: Fri, 21 Nov 2025 10:37:24 GMT
Sec-Websocket-Accept: V9k0ByQdnbrktZrXfLmpG35wCoA=
Sec-Websocket-Protocol: mqtt
Server: nginx
Upgrade: WebSocket
Все данные скопировал из devtools. Мне нужно как-то поправить запрос или есть другой способ протестировать соединение с MQTT брокером через wb cloud?
для ws не используются, насколько знаю http методы. Но на самом деле по методу подключения через сервис облака не подскажу - у меня не хватает компетенций.
Но могу проверить локально
npm install -g wscat
added 9 packages in 11s
npm notice
npm notice New major version of npm available! 10.9.2 -> 11.6.3
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.6.3
npm notice To update run: npm install -g npm@11.6.3
npm notice
sysadmin@brain:~# wscat -c ws://localhost:18883/mqtt
Connected (press CTRL+C to quit)
> {"topic":"/devices/wb-gpio/controls/EXT1_IN1","qos":0,"retain":false,"command":"subscribe"}
> {"topic":"/devices/wb-adc/controls/Vin","qos":0,"retain":false,"command":"subscribe"}
Спасибо, буду пробовать дальше. Убрал хэдеры Sec-Websocket-Accept и Sec-Websocket-key и соединение установилось. Но пока после отправки сообщения идет дисконнект
Поделитесь результатами пожалуйста.
В итоге через postman и wscat сообщения не принимались и соединение закрывалось. Но удалось подсоединиться к брокеру через js скрипт. Теперь успешно получаются сообщения об изменениях в топике. Но при публикации в топик /devices/buzzer/controls/enabled значения 1 брокер успешно его записывает, и даже в веб-интерфейсе меняется значение переключателя на вкл, но при этом сирена звуков не издает. Прикладываю скрипт и вывод в консоли
test_mqtt.js (3,1 КБ)
node test_auto.js
Connecting with MQTT.js...
MQTT Connected! Subscribing...
MESSAGE RECEIVED - Topic: /devices/buzzer/controls/enabled, Message: 0
Subscribed to /devices/buzzer/controls/enabled
Now try switching the buzzer on/off...
Publishing to turn buzzer ON...
Published: 1 (buzzer ON)
MESSAGE RECEIVED - Topic: /devices/buzzer/controls/enabled, Message: 1
Publishing to turn buzzer OFF...
Published: 0 (buzzer OFF)
MESSAGE RECEIVED - Topic: /devices/buzzer/controls/enabled, Message: 0
MESSAGE RECEIVED - Topic: /devices/buzzer/controls/enabled, Message: 1
MESSAGE RECEIVED - Topic: /devices/buzzer/controls/enabled, Message: 0
MESSAGE RECEIVED - Topic: /devices/buzzer/controls/enabled, Message: 1
MESSAGE RECEIVED - Topic: /devices/buzzer/controls/enabled, Message: 0
MESSAGE RECEIVED - Topic: /devices/buzzer/controls/enabled, Message: 1
MESSAGE RECEIVED - Topic: /devices/buzzer/controls/enabled, Message: 0
MQTT connection closed
В истории эти значения также отражаются.
При этом ручное управление через веб-интерфейс работает, сирена успешно издает звуки
Обратите пожалуйста внимание: MQTT в контроллерах Wiren Board — Wiren Board
на то что уставки пишутся в /on
То есть вы пишете не в тот топик.
И выложите сам текст скрипта в txt например пожалуйста, js форум режет.
Спасибо, совсем забыл про /on. Теперь всё работает. Вот полный скрипт:
test_mqtt.txt (3,6 КБ)
Отредактировал ваше сообщение, испортив в файле сохраненный ключ.
Благодарю что делитесь!
Может у вас есть информация, как можно сгенерировать tunnel_key для авторизации и как его следует обновлять?
К сожалению не подскажу - могу в понедельник спросить у разработчиков.
Хорошо, спасибо большое, буду ждать!
Пока, к сожалению не ответили.
По получению первичного tunnelKey нашел в апи wb-cloud подходящий запрос https://wirenboard.cloud/api/v1/controllers/{serialNumber}/tcp-tunnels/http/
А с обновлением токена еще не успел разобраться, так что буду ждать информации!
Добрый день! Появилась ли какая-то информация от разработчиков?
Да. К сожалению нет точной инструкции.
“API-ручка возвращает не ws-endpoint, а ссылку на web tunnel.
web tunnel — это живая сессия, которая запускается только через браузер и автоматически поддерживается фронтендом.
Без открытия в браузере туннель не активируется, не обновляется и автоматически закрывается FRP.”
“токен получается сразу когда дергается ручка туннеля, но потом надо каждые несколько секунд слать правильные пост запросы в облако что бы поддерживать его работу”
То есть механизм работы на такое использование не рассчитывался, нельзя гарантировать что работать будет как ожидается - существуют лимиты и таймауты, которые достаточны для работы web-интерфейса но внешним сервисом легко в них упереться.

