Добрый день, недавно приобрел WB 8.5.1 (wb-3410 stable)
После установки пароля на MQTT(согласно инструкции на сайте) стал замечать, что после перезагрузки контроллера сервис wb-mqtt-gpio выдает ошибки,помогает только рестарт сервиса через командную строку и потом ошибок нет: но это все до следующей перезагрузки. В чем может быть причина?
5-01-2025 17:54:39.221 [wb-mqtt-gpio] WARNING: [mqtt] connection lost
25-01-2025 17:54:39.221 [wb-mqtt-gpio] INFO: [mqtt] connection estabilished with code "5" <unknown>
25-01-2025 17:54:39.220 [mosquitto] 1737816879: Client <unknown> disconnected, not authorised.
25-01-2025 17:54:39.219 [mosquitto] 1737816879: New connection from 127.0.0.1:36690 on port 1883.
25-01-2025 17:54:38.220 [wb-mqtt-gpio] WARNING: [mqtt] connection lost
25-01-2025 17:54:38.220 [wb-mqtt-gpio] INFO: [mqtt] connection estabilished with code "5" <unknown>
25-01-2025 17:54:38.219 [mosquitto] 1737816878: Client <unknown> disconnected, not authorised.
25-01-2025 17:54:38.216 [mosquitto] 1737816878: New connection from 127.0.0.1:36688 on port 1883.
приложен диагностический архив, доступен только сотрудникам поддержки
(271,2 КБ)
Провел тут эксперимент, убрал пароль на MQTT на контроллере и ошибка ушла, после перезагрузки данная ошибка не появляется. Но меня это не устраивает мне нужен пароль на MQTT.
Это - описание установки пароля для standalone брокера mosquitto. Тут совершенно не учтены сервисы контроллера.
Поэтому, для корректной работы совершенно необходимо обеспечить анонимный локальный доступ. Вот, для примера в документации именно по установке пароля на контроллере это учтено.
А зачем тогда выкладывать в wiki статью, тем более в вашей ссылке не установка пароля, а ограничение на использование MQTT внешними устройствами, и в конце там написано цитата: “Если ранее пароль на MQTT брокер устанавливался и необходимо оставить доступ к брокеру извне, то дополнительно mosquitto настраивать не нужно.”. Дело в том, что у меня есть устройства которые подключаются к WB извне для работы с Spruthub. Не хочется городить кучу брокеров для разных устройств. а использовать один.
Правильно я вас понял, установить по факту пароль на MQTT у WB нельзя иначе не будет работать часть сервисов, а можно только закрыть доступ из вне и все?
Почему тогда статья по установке пароля называется “MQTT в контроллерах Wiren Board” это сбивает с толку, тем болле что в конце написано чтоб сервисы работали нужно будет использовать установленное имя пользователя и пароль в разделе Настройки → Веб-интерфейс → Подключение к MQTT брокеру.
Скажите если закрою внешние подключения я могу как то добавить исключения по ip для определенных устройств?
В инструкции указано:
listener 1883 127.0.0.1
я могу после локального ip через запятую или точку с запятой или просто через пробел указать ip адреса тех mqqt устройств которые могут подключаться?
В каком виде это можно сделать, можете дать пример?
А есть инструкция как настроить аутентификацию для внешних? Или вы имеете в виду для внешних сделать отдельный брокер? И как настроить аутентификацию для внешних если доступ мы закрыли для этих внешних по той инструкции, что вы указали, а инструкция для установки пароля на брокер WB, не допонял ответа.
Типично, если требуются внешние подключения - для них создается отдельный listner,
Их может быть много. Один - для локальтных подключений без авторизации другой - для внешних.
В документации - просто примеры, которые по определению не могут быть универсальными.
Вот тутв секции “Authentication” про это подробно описано.
Use the per_listener_settings to control whether passwords are required globally or on a per-listener basis.
Спасибо за информацию, попробую разобраться.
Пока сделал проще, закрыл внешние подключения по вашей инструкции и так как на WB стоит Spruthub запустил на нем брокер для внешний устройств но на другом порту и там включил авторизацию по логину и паролю. Теперь просто у меня на Spruthub запущено 2 контроллера MQTT один для брокера WB, а другой для брокера Spruthub. Вроде все работает без ошибок и более менее все прикрыто.
Спасибо за помощь и консультацию.