Wb-rules - MQTT Error: Connection lost before Subscribe completed

Добрый день.

Wb-rules не может подключиться к MQTT. при этом mosquitto работает, управление через MQTT работает, не работают только правила wb-rules. лог mosquitto чистый, все ок. z2m тоже на этом же брокере живёт нормально.

Он не сразу так делает, а некоторое время (несколько часов) работает нормально. а потом отваливается, и больше не подключается. При этом перезапуск wb-rules помогает на время.

Добрый день.

Проверьте для начала - установлен ли актуальный релиз ПО на контроллере.

Для диагностики проблемы пришлите, пожалуйста, архив с диагностической информацией контроллера. Создание архива описано в документации.

Проблема как раз возникла после перехода на новый релиз (2304), обновлялся через fit. На прошлом релизе до обновления таких проблем не было.

Диагностику приложил, сейчас сервис работает, примерно в 9 утра я его перегрузил. До этого времени можно будет найти указанную ошибку.
приложен диагностический архив, доступен только сотрудникам поддержки (77,5 КБ)

Посмотрите пожалуйста - какие процессы занимают больше всего ресурсов? Весьма похоже симптомами на критическую нехватку ресурсов.
Стоит какое-то стороннее ПО?

Из стороннего ПО только telegraf, но он не много ресурсов кушает. Сейчас опять та же ошибка началась.
Прикладываю свежую диагностику + top по памяти и CPU.
приложен диагностический архив, доступен только сотрудникам поддержки (87,2 КБ)

Память:

CPU:

И еще раз ошибка в realtime:

Еще - отредактируйте конфиг /etc/mosquitto/mosquitto.conf
Поменяйте в нем persistence true
на persistence false и перезапустите контроллер.
Ну и после перезапуска - остановите nodejs и посмотрм, будут ли ошибки.

Поменял, telegraf для чистоты эксперимента вообще удалил - теперь чистая система без стороннего ПО вообще. Не сильно помогло. Ниже скрин + лог москиты + топ + df


mosquitto.log (171,1 КБ)

Еще не знаю насколько принципиально, но при запуске WB-Rules получаю вот такие warnings:

Процесс 6131 - (node). Что за процесс?

nodejs видимо. я его пока не глушил, т.к. на zigbee2mqtt очень много автоматизации. нужно остановить для эксперимента?

Занимает 14% памяти. Ну и да, лучше остановить, конечно.

Проблему удалось решить, она была не в nodeJS.
Рассказываю на случай, если у кого-то будет аналогичная история. У меня есть часы, которые показывают температуру, СО2, потребление тока, температуру в комнате и на улице на основании сообщений MQTT, на ESP8266. Вот такие.
image

Исходный код для них писался лет 6 назад примерно. С появлением проблемы на WB они тоже стали зависать - я думал из-за зависания на WB. Но по всей видимости новый Mosquitto плохо дружит со старыми библиотеками и версиями протоколов MQTT - в логах увидел, что часы постоянно подключаются и отключаются от брокера.
После переписывания исходников часов на новую версию библиотеки PubSub уже почти двое суток полёт нормальный. По всей видимости забивалась очередь сообщений от постоянных подключений/отключений и mosquitto “уходил в себя”.

1 лайк

Благодарю за описание, да, подозревал все ж nodejs. Ну и воспроизвести не получалось.

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.