Правило запускаемое единожды при загрузке


#1

Как реализовать правило запускаемое единожды при загрузке/перезагрузке контроллера?


#2

Вот тут подобное обсуждали


#3

WB6.5
wb-rules 1.7.1

Что-то поменялось?
После перезагрузки правило не хочет запускаться (при инициализации rule engine) ни в каком виде.

Ни реле не включаются, ни в лог ничего не выводится.
PS При сохранении срабатывает - правило единственное и работоспособное.

Правило для начальной загрузки
// Раздел программы для начальных установок и загрузки данных

// -----------------Блок начальной установки состояния розеток----------------

setTimeout(function() { 
  dev["wb-gpio"]["EXT3_R3A1"] = 1;
  log("initial load");
}, 0);

log("added in 01_initial.js");
[/details]

#4

По моей просьбе сделана проверка на ещё одном экземпляре. Правила при загрузке не запускаются.
Нужно ждать возвращения Александра после 05.08.19?


#5

Flagman, добрый день!
Кажется, такая проблема при старте движка после перезагрузки контроллера воспроизводится, попробуйте заменить в setTimeout задержку на с 0 на 1000, например. После этого движок корректно должен выполнить коллбек из setTimeout: возможно, что до установления подключения по MQTT движок его не выполняет


#6

Это я проверил сразу.
Однако даже задержка в 10000 не приводит к запуску.
Сейчас сделал 60000 - сработало!

Спасибо!
Возник другой вопрос - открою в новой теме.


#7

Большие задержки, у меня на чистом контроллере хватило 1000: странно, что правило единственное, а так много времени требуется. Можете показать лог с сообщениями от движка правил после перезагрузки?


#8

Убрал все правила кроме тестового
Опытным путем подобрал задержку 20000мс
С этой задержкой правило подхватывается.
Возможно влияют сервисы openvpn, spruthub, z-wave server
messages.txt (53.3 КБ)