Добрый день коллеги!
Столкнулся с задачей сделать виртуальный переключатель при значении true которого должно происходить включение одного или двух реальных реле (K1, K2 к примеру), далее через заданный промежуток времени (30 минут) реле должны выключиться и включиться через новый промежуток времени (8 мин) и так далее по кругу пока переключатель находится в значении true.
Смог реализовать вот таким правилом:
defineVirtualDevice("heater_3", {
title: "heater_3",
cells: {
"Switch-ON": {
type: "switch",
value: "false"
}
}
});
defineRule({
when: function() {
return dev["heater_3/Switch-ON"];
},
then: function() {
if (!timers.seconds_5.firing) {
dev["wb-mr6c_140/K3"] = true;
dev["wb-mr6c_140/K4"] = true;
startTimer("seconds_5", 4000);
}
if (timers.seconds_5.firing) {
dev["wb-mr6c_140/K3"] = false;
dev["wb-mr6c_140/K4"] = false;
startTimer("seconds_1", 4000);
}
}
});
defineRule({
when: function() {
return !dev["heater_3/Switch-ON"];
},
then: function() {
dev["wb-mr6c_140/K3"] = false;
dev["wb-mr6c_140/K4"] = false;
}
});
Однако при создании двух аналогичных правил столкнулся с тем что при включении обоих работает только то у которого интервалы работы таймеров меньше.
Для сравнения прикрепляю оба правила.