Доброго времени суток!
Пытаюсь решить следующую задачу: последовательное включение реле К1-К6 с отложенным запуском после отключения питания. Функция MR6CU (запоминать последнее состояние реле) не совсем подходит, ибо нужен последовательный запуск с задержкой между замыканием реле в 120 сек.
Пересмотрев разные вариации реализации кодов, пересмотрев примеры - набросал следующее (пока работаю с реле К1):
var motion_timer_id = null;
var timeout_ms = 120000;
defineRule(“autorelay_switcher”, {
whenChanged: “autorelay_switcher/K1”,
then: function (newValue, devName, cellName) {
if (newValue === false) {
if (motion_timer_id) {
clearTimeout(motion_timer_id);
}
motion_timer_id = setTimeout(function() {
dev["autorelay_switcher"]["K1"] = true;
motion_timer_id = null;
}, timeout_ms);
runRule(autorelay_switcher.js);
}
}
});
Данный код работает только при физической смене состояния autorelay_switcher/K1, т.е. скрипт начинает работу только после того, как я сменю value на false.
Последней функцией runRule хотел реализовать цикличный перезапуск скрипта, но видимо вариация с применением cron будет более правильная и самое главное рабочая.
К сожалению не имею фундаментальных знаний JS, посему прошу помощи в реализации. Хотел взять за основу триггер изменения значения Vin самого контроллера, но понимаю, что без внешнего аккумулятора - значение не успет обработаться и будет неизменным (+24V). Поэтому нужно как-то проверить состояние того или иного реле и если оно в состоянии false - запустить таймер в 120 сек. до вызова dev[“autorelay_switcher”][“K1”] = true;.