Не открываются скрипты

После очередных правок кода скриптов, не могу открыть ни один скрипт. Появляется сообщение : «Error listing the scripts: MQTT RPC request timed out». Пытался работать с функциями таймера. Возможно они стали причиной некорректной работы скрипта. Перезагрузка не помогла. Как поступить, подскажите?

Обнаружил, что скрипты не работали из-за отсутствия mqtt connection. Помогло исправить командой /etc/init.d/wb-rules force-reload.

Как избежать подобных случаев отключения mqtt?

Вполне возможно, что при ошибках в скрипте движок правил отключается. Попробуйте удалить подозрительные скрипты через консоль (в директории /etc/wb-rules). Когда обнаружите проблемный скрипт, можете прислать его, попробуем найти проблему.

У меня похожая проблема, после неск. часов работы скрипта возникает такая же ситуация. Что делать?

(ч-з некоторое время):
А сейчас очень интересно… Удалил скрипт, запустил его в работу заново - заработало, потом зависло. Опять удалил рестартанул - не работает скрипт… Как такое возмжно? Он или не должен работать или должен, я же ничего не меняю в нем!

(еще чер-з небольшое время):
удалил-вставил - работает. Мистика. Не стабильное поведение… Прислать скрипт?

Добрый день, polygon!
Пришлите скрипт, пожалуйста!
Для отладки иногда удобно запускать движок правил не как сервис, а как исполняемый файл из командной строки:

~# service wb-rules stop
~# /usr/bin/wb-rules -debug -syslog -queue-len 2048 -editdir /etc/wb-rules /usr/share/wb-rules-system/rules/ /etc/wb-rules /usr/share/wb-rules/

Здравствуйте, Kilpio!
Спасибо за быстрый отзыв!
А что дает такой способ запуска движка?

Ну и по скрипту, наверное, нужны пояснения, чтобы вы долго в него не вникали, время не тратили…
Почтой на саппорт отправить? Сюда не вставляется(

Я, не понимая, что будет)) все-таки сделал как Вы мне сказали, вот что консоль мне выдала:
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

чер-з неск. минут.
У меня опять завис скрипт и нет доступа к скриптам(

Да, давайте почтой на support. напишите, что для меня. Присылайте. я попробую разобраться, если что – спрошу.

В выводе откровенных ошибок нет по работе скриптов, есть проблемы с системными правилами, но они не влияют.
При запуске движка из командной строки просто удобно отлаживать правила. Вы примерно понимаете, в каком месте правило зависает?

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

Скрипт сейчас отправлю, в письме все поясню.

Вот сейчас проверил. Удалил скрипт, потом рестарт правил, потом загрузил скрипт, кликнул два раза - включил и потом выключил канал и оставил как есть. Через неск. минут проверил - зависли правила, не реагирует, скрипты не открываются( Пожалуйста, сообщите, вам письмо пришло или нет? отправил на info с темой для вас.
Еще дополнение - через морду во время такого зависания даже не ребутится. Только через putty

polygon, спасибо — получил скрипт, но пока не смотрел.

polygon, запустил ваш скрипт, работает, как вы написали в письме. Жду зависания.

Зависает. Посмотрю, где.

Добрый день!
Я переделал скрипт, зависать перестал, пока работает нормально. Если вы еще не тратили на него время, предлагаю пока что не трогать его, вдруг не повторится, я мог там наделать ошибок.

Добрый день! Очень интересно, что вы изменили. Ваш скрипт, в том виде, в каком вы прислали, у меня не приводил к аварийному завершению движка правил: процесс движка правил продолжал висеть, но скрипт выполняться переставал.
Вы что-то сделали с таймерами?

За выходные, пока никто не нажимал “кнопку”, движок не завис и скрипты по-прежнему выполняются.

если хотите, пришлю вам последний релиз на сег. момент. там, правда в стиле ООП, но у меня два скрипта параллельно вот уже нес. дней работают

Присылайте! А можете описать вкратце, что вы изменили?

Сейчас отправлю. Я написал скрипт заново и в парадигме ООП. Так что поменял все) Не понимаю еще, зачем вы в функции таймера и интервала присваиваете null ID. У меня и без этого работает.

Насколько я понимаю, если не сбрасывать в null, то можно словтиь ситуацию, когда таймер не запустится, если он был определен раньше.

Заметил ситуацию, о которой вы уже говорили, но я так и не понял, как с ней бороться.
Есть скрипт, который создает необх. кол-во вирт устройств, и, в зависимости от положения ползунка на каждом из них отрабатывает.

Если ранее не было этих вирт устройств и я запускаю скрипт впервые - они появляются и все работает штатно.
Если я выполняю ребут, то скрипты не видны, правила зависают.
Чтобы отлипло, мне надо удалить файл этого скрипта, рестартануть правила, после чего wb отлипает, затем опять скопировать файл с правилами - все работает.

Если вирт девайсы уже были, то та же картина. Ребут все завешивает.
Вы уже как-то говорили, что если в MQTT что-то не появляется, а правило к нему обращается, то это сбой системы.
Ребут штука штатная, я не могу ручками после перезагрузки каждый раз пускать все в работу. Что посоветуете, как справиться с проблемой?