Пропала связь с контроллерами

Пригласил. Целевой контроллер AULO5S4H

1 лайк

Выполните на проблемных контроллерах
systemctl status mosquitto

Вывод одинаковый на всех ?

Nov 15 11:23:54 wirenboard-AULO5S4H mosquitto[12287]: 1731659034: Error: Out of memory.
Nov 15 11:23:54 wirenboard-AULO5S4H mosquitto[12287]: 1731659034: Error: Out of memory.
Nov 15 11:23:55 wirenboard-AULO5S4H mosquitto[12287]: 1731659034: Error: Out of memory.

Да

Попробуйте по данной еррате восстановить 1 контроллер должно помочь

Тот контроллер который сейчас я исследую пока не нужно восстанавливать, собираю диагностику для передачи разработчикам

Добрый день. Расскажите пожалуйста какое поведение запланировано проектом при текущей настройке брокера в случае недоступности моста?

В предложенной еррате речь о контроллерах до 7,3 с прошивкой до 2301. Мой контроллер версии 7,4 с прошивкой 2407 все равно следуем указаниям из раздела Пути обхода?

Посмотрел объем памяти БД Mosquitto - 151Мб вероятно проблема с разрастанием БД присутствует

Нет.
Причина - в грубой ошибке при настройке брокера.
Какого поведения ждете при отсутствии связи с мостом настроенным в брокере при недоступности этого моста?
Вы настраиваете QOS 2 длина очередей которого не ограничена. То есть - под очереди будет использоваться неограниченное место. Соответственно когда доступное заканчивается - брокер падает.

Да, этот момент не учтен. Каким образом можно ограничить объем очереди?

Для QOS 2 - такой опции не предусмотрено. Я бы использовал более низкий. Для них, насколько помню в конфигурациии уже есть максимальные длины очередей.
В общем - поменяйте значение в конфигурации моста.

Подскажите пожалуйста, как корректно это настроить

Добрый день, на вопрос как корректно настроить требуется уточнение, что вы именно ожидаете от контроллера.

Основная настройка MQTT расположена по данной ссылке

По выбору QOS есть такие примеры:

  • QoS 0: Датчик температуры отправляет данные каждые 5 секунд. Пропажа одного сообщения не критична.
  • QoS 1: Команда включения лампочки — важно, чтобы она дошла, даже если будет повторное включение.
  • QoS 2: Перевод денег — ошибка или дубликат недопустимы.

Для теста установил QoS в 0 на бридже, увеличил в 10 раз параметр memory_limit в файле /usr/share/wb-configs/mosquitto/30limits.conf

Mosqitto запустился и контроллер вышел на связь вэб-интерфейс заработал.

Выставил первоначальные значения memory_limit

Обратил внимание, что контроллер начал слать в бридж огромное количество сообщений (около 500к) за несколько минут прислал. Память опять переполнилась. В данный момент к контроллеру не подключены дополнительные блоки (wb-mr6c и WBIO-DO- HVD-8). С чем может быть связан такой объем сообщений?

Добрый день!

Рекомендую подписаться на топики и проверить, какие данные передаются:

mosquitto_sub -h <BROKER_IP> -t "#"

Это поможет выявить возможные проблемы, например:

  • Дублирование данных;
  • Зацикливание сообщений в топиках.
1 лайк

Вот, что идет в консоль при подписке со стороны внешнего сервера:
вывод.txt (158,1 КБ)

Добрый день!

Рекомендую проверить следующие моменты:

  1. Нет ли дублирования топиков в бриджах?
  • Убедитесь, что топики настроены корректно и не дублируются, так как это может вызывать конфликты.
  1. Работа контроллера без бриджа:
  • Отключите бридж и проверьте, как контроллер работает в этом режиме. Это поможет определить, связана ли проблема с настройками бриджа.

Подозрительно выглядят эти данные:

* `{"order":15,"readonly":false,"type":"switch"}` — повторяется **43 раза**.
* `{"order":16,"readonly":false,"type":"switch"}` — повторяется **43 раза**.
* `{"order":18,"readonly":false,"type":"switch"}` — повторяется **45 раз**.
* `{"order":20,"readonly":false,"type":"switch"}` — повторяется **46 раз**.
* `{"order":5,"readonly":true,"type":"switch"}` — повторяется **43 раза**.

Добрый день, удалось ли решить вопрос?

Добрый день, помог только полный сброс контроллера, выяснить причину такого поведения так и не удалось, настроил все в точности как было до сбоя кроме уровня qos в бридже mqtt три недели контроллеры работают

1 лайк