Перестает работать wb-rules

Никак… Скорее всего watchdog его тушит, т.к. система на время фризится и даже по ssh перестает отвечать.

Странно, как-то мало активности в этой теме.
Я начал самостоятельное изучение причин проблемы. Есть пара вопросов к разработчикам:

  1. Какие именно сообщения попадают в очередь handleMessage, какие сервисы/библиотеки в неё пишут и читают?
  2. Драйвер wb-mqtt-serial пишет считанное из порта значение в топик mqtt только когда значение изменилось относительно предыдущего? Или не хранит предыдущих значений каналов и безусловно по каждому чтению пишет в mqtt?

А вы не пробовали, кстати, бету 2.0 ставить? Вдруг там пофиксили. Я зимой экспериментировать боюсь - у меня WB котлом управляет, поэтому все глюки пока подпираю костылями.

Только когда изменилось.

Проблема выглядит сложной.
По предварительным данным, в зоне риска находятся только скрипты, использующие таймер или cron-правила (если в вашем правиле они не используются, но проблемы всё равно появляются, пожалуйста, напишите нам).
Лучшей помощью для нас будет выкладывание полных ваших скриптов (чтобы мы могли их скопировать и воспроизвести проблему), описаний проблемы, логов ошибок. Было бы идеально, если бы всё это, упакованное в архив, вы отправляли на info@contactless.ru с темой “Проблема wb-rules”.
В целях дополнительного изучения, не на критичных объектах, могу посоветовать попробовать:

Тут Экземпляры мигалок на Timer - #16 от пользователя Flagman выяснили, что зависает и без таймеров и cron, даже при использовании простых setTimeout/setInterval (а без них не обходится практически ни один реальный скрипт).
Там же есть конкретные примеры правил, с которыми проблема воспроизводится.

setTimeout/setInterval тоже работают через таймеры.
За ссылку на пример скрипта спасибо.

Чем дело кончилось?

Программист работает над глобальным фиксом wb-rules, так что ждём.

Пользуйтесь startTimer - норм!

Есть ли какие-то продвижения? Тоже столкнулись с этой проблемой.

Может можно как-то сразу определять, что wb-rules не работают и рестартовать? Watchdog перезапустил wb-rules лишь через 5 минут, что довольно долго.

Это попробуйте пожалуйста.

Я использовал выход Vout на контроллере, чтобы через правила на него подавать импульсы на реле времени. Чтобы когда они зависнут, управление переходило на резерв. В процессе эксплуатации выяснилось, что правила могу зависать не полностью. Т.к. этот мой ватчдог продолжал работать, а часть функций прикрывалась. Ребут помогал.

Могу сказать, что версия рулей из сборки 2110 ложится сама по себе (без внешних причин) раза в два реже предыдущей: крутится около месяца против «стандартных» двух недель. Похоже, проблему нащупать смогли? Осталось только прибить ее.

Это только через кровь, боль и рефакторинг. :frowning:

А кому щас легко. (ц)

wb5 Version: 1.7.1 Проблема сохраняется.
Active: active (running) since Wed 2022-12-21 16:36:18 MSK; 1 weeks 6 days ago

янв 04 04:00:00 wirenboard-AEUQHNW4 wb-rules[22164]: ERROR: queue Events is almost filled! 2048/2048
янв 04 06:25:07 wirenboard-AEUQHNW4 wb-rules[22164]: WARNING: MQTT connection lost
янв 04 06:25:07 wirenboard-AEUQHNW4 wb-rules[22164]: INFO: MQTT connection established
янв 04 06:30:00 wirenboard-AEUQHNW4 wb-rules[22164]: ERROR: queue Events is almost filled! 2048/2048
янв 04 06:50:00 wirenboard-AEUQHNW4 wb-rules[22164]: ERROR: queue Events is almost filled! 2048/2048
янв 04

А что при этом с брокером? Весьма непохоже что дело в движке.