приложен диагностический архив, доступен только сотрудникам поддержки (168,3 КБ)
Подгрузил новый лог. Попробую описать ситуацию подробно.
У меня WB6, несколько реле, счетчик электричества, несколько датчиков температуры 1-Wire.
Также несколько устройств подключено по zigbee через модуль WBE2R-R-ZIGBEE - это датчики температуры и датчики присутствия Xiaomi.
Настроены правила wb-rules (они приложены выше в посте).
одно правило создает три виртуальных термостата (с датчиками Zigbee и реле WB), другое - включает/выключает свет по срабатыванию датчиков присутсвия.
После перезапуска wb-rules все работает быстро: моментально при срабатывании датчика присутсвия щелкает реле. Но через некоторое время (от нескольких часов до дней). Появляются заметные задержки, секунд на 5, потом больше, а потом свет перестает включатся совсем.
В логах mqtt при этом ERROR: [wbgo_mqtt] MQTT error: publish was broken by timeout
При этом на контроллере не видно большой нагрузки, память свободная есть, веб-интерфейс открывается (кроме страницы с правилами). Релюхи щелкают если на них нажать в вебинтерфейсе без всяких задержек.
При перезапуске службы wb-rules все опять начинает работать. Иногда она сама перезапускается и начинает работать.
Такое впечатление, что после какого-то количества сообщений брокер перестает быстро обрабатывать сообщения от wb-rules или замедляет их. Типа как начинает ее тротлить.
Думаю, что это связано с правилами от zigbee2mqtt - у нее же тоже есть какое то правило в wb-rules? У меня есть какая то неполадка в zigbee - постоянно ломится и не может настроиться какой то устройство. Если в zigbee2mqtt не включить это устройство в черный список эти события пролезают в интерфейс wirenboard и wb-rules валится быстро. Что это за устройство я не знаю, все мои устройства работают.
Хотел попробовать настроить в mosquitto какой-нибудь принудительный дисконнект клиентов. Думаю тогда она будет рубить подключение к wb-rules раз в 20 минут и wb-rules переподключиться и продолжит работу. Может это поможет?