Астрономическое реле по прогнозу погоды

Вот так все работает как надо:

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;
    }
  }
});
2 лайка