Вот так все работает как надо:
defineVirtualDevice('AstroRele', {
title: 'AstroRele' ,
cells: {
Osv: {
title: "Osv",
type: "switch",
value: ""
},
Prj: {
title: "Prj",
type: "switch",
value: ""
},
}
});
defineRule({
whenChanged: ["AstroRele/Osv", "AstroRele/Prj"],
then: function() {
if (dev["AstroRele/Osv"] == true){
enableRule(kontrolvkl5); // разрешить выполнение правила
} else {
disableRule(kontrolvkl5); // отключить проверку и выполнение правила
}
if (dev["AstroRele/Prj"] == true){
enableRule(kontrolvkl6); // разрешить выполнение правила
} else {
disableRule(kontrolvkl6); // отключить проверку и выполнение правила
}
}
});
var kontrolvkl5 = defineRule({
whenChanged: "actual_date/timeunix",
then: function () {
if (dev["weather/sunset"]==dev["actual_date/timeunix"]){
log("Свет включился")
dev["wb-mr6cu_74/K5"] = true;
} else if (dev["weather/sunrise"]==dev["actual_date/timeunix"]){
log("Свет выключился")
dev["wb-mr6cu_74/K5"] = false;
}
}
});
var kontrolvkl6 = defineRule({
whenChanged: "actual_date/timeunix",
then: function () {
if (dev["weather/sunset"]==dev["actual_date/timeunix"]){
log("Прожектор включился")
dev["wb-mr6cu_74/K6"] = true;
} else if (dev["weather/sunrise"]==dev["actual_date/timeunix"]){
log("Прожектор выключился")
dev["wb-mr6cu_74/K6"] = false;
}
}
});