При перезагрузке WB8 ошибки wb-mqtt-gpio

Добрый день, недавно приобрел 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.

Добрый день.

Пл какой именно инструкции?

Вот по этой из wiki.
Установка_пароля_на_MQTT_брокер

Это - описание установки пароля для standalone брокера mosquitto. Тут совершенно не учтены сервисы контроллера.
Поэтому, для корректной работы совершенно необходимо обеспечить анонимный локальный доступ. Вот, для примера в документации именно по установке пароля на контроллере это учтено.

А зачем тогда выкладывать в wiki статью, тем более в вашей ссылке не установка пароля, а ограничение на использование MQTT внешними устройствами, и в конце там написано цитата: “Если ранее пароль на MQTT брокер устанавливался и необходимо оставить доступ к брокеру извне, то дополнительно mosquitto настраивать не нужно.”. Дело в том, что у меня есть устройства которые подключаются к WB извне для работы с Spruthub. Не хочется городить кучу брокеров для разных устройств. а использовать один.

Статьи про mqtt описывают брокер и работу с ним, без контекста контроллера.
В статье про установку пароля на контроллер - уже с учетом его специфики.

Правильно я вас понял, установить по факту пароль на MQTT у WB нельзя иначе не будет работать часть сервисов, а можно только закрыть доступ из вне и все?
Почему тогда статья по установке пароля называется “MQTT в контроллерах Wiren Board” это сбивает с толку, тем болле что в конце написано чтоб сервисы работали нужно будет использовать установленное имя пользователя и пароль в разделе НастройкиВеб-интерфейсПодключение к MQTT брокеру.

Пароль для подключений с localhost - нет, нельзя. Для всех внешних - конечно можно.

Скажите если закрою внешние подключения я могу как то добавить исключения по 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. Вроде все работает без ошибок и более менее все прикрыто.
Спасибо за помощь и консультацию.

1 лайк