Добрый день!
Устанавливал авторизацию на MQTT по инструкции (MQTT в контроллерах Wiren Board — Wiren Board). После установки веб интерфейс не смог получать данные (скрин), хотя пишет, что connected.
Без авторизации - все работает, естественно.
Перегружал сервисы mosquitto и wb-mqtt-serial (на всякий), и даже контроллер - не помогло.
В чем может быть дело?
Файлы конфигурации следующие:
/mnt/data/etc/mosquitto/acl.conf:
user zebra
topic readwrite #
topic readwrite $SYS/#
/etc/mosquitto/mosquitto.conf:
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
pid_file /var/run/mosquitto.pid
persistence true
persistence_location /var/lib/mosquitto/
log_dest file /var/log/mosquitto/mosquitto.log
include_dir /etc/mosquitto/conf.d
Добрый день.
А с компьютера топики на брокере читаются?
То есть - проверте сначала работу через прокси, поменяв порт mqtt в настройках интерфейса на 80.
Потом - попробуйте подписаться на топики с компьютера или другого устройства, проверив авторизацию.
Ну и - в дебаге браузега нет смысла смотреть на вывод всех сервисов, проверьте что происходит отфильтровав websockets (WS).
Через порт 80 Web интерфейс коннектится (зеленая лампочка горит), но также нет никаких событий и через какое-то время появляется то же сообщение про таймаут, никаких других сообщений по веб-сокету нет:
Не знаю, может ли это быть связано или нет - но по SSH долго входит в консоль (секунд 30).
Место свободное есть. Процессор не перегружен, активные только MQTT процессы что-то на 20% CPU.
В итоге решилось, но я параллельно переехал на релиз 2304, так что трудно сказать, что тут было причиной, тем более, что в 2304 что-то там поменялось в авторизации.
В итоге конфиг, с которым заработало отличается на один файл: /etc/mosquitto/listeners.conf:
listener 1883
listener 18883
protocol websockets
Здесь без указания 0.0.0.0 после портов все работает. Теперь и UI и MQTT защищен. Соответственно в UI потребовалось прописать авторизацию.