Уменьшил код по максимуму. В целом правило можно заставить работать, если править его в вебинтерфейсе, и там сохранить, при работающем движке правил. Но если Движек перезапустить, то он виснет (ну и при рестарте контроллера тоже самое).
WB6/
Такое ощущение, что не все MQTT-топики успевают подгрузится при старте движка правил.
Попробуйте остановить его сервис и запустить в командной строке, будут ли ошибки?
(В этом сообщении описано как: WB-rules срабатывают несколько раз)
Я думаю, вы столкнулись как раз с неопределенными последствиями, которые описаны в документации : Не следует использовать объектdevвне кода правил. Не следует присваивать значения параметрам черезdevвнеthen-функций правил и функций обработки таймеров (коллбэкиsetInterval/setTimeout). В обоих случаях последствия не определены.
Как-то надо переписать вам код, чтобы не использовать dev не внутри обработчика.
Похоже Вы очень даже правы! Жаль я уже все переделал. Но это очень хорошая новость.
А как обрабатываются несколько файлов правил?
Можно в отдельном файле прописать функции, в отдельном параметры и алиасы, в отдельном описание виртуального устройства, в отдельном сами правила?