NEWS
[gelöst] shedule starten und stoppen
-
hallo, habe ein script geschustert, welches bei verschiedenen Triggern einen shedule starten und stoppen soll. mit dem stoppen klappt es nicht zuverlässig.
kann da aber keinen Fehler erkennen. Kann mal jemand drüber schauen?
var logging = true; var timer = null; const id1 = 'javascript.0.Rolladen.ZeitfensterMorgen'; const id2 = 'javascript.0.Rolladen.ZeitfensterAbend'; const id3 = 'javascript.0.Rolladen.ZeitfensterMorgen_OG'; const id4 = 'javascript.0.Rolladen.ZeitfensterAbend_OG'; function Trigger() { setStateDelayed(id5, true, 2*1000); setStateDelayed(id6, true, 4*1000); } function ScheduleStart() { var Meg = getState(id1).val; var Aeg = getState(id2).val; var Mog = getState(id3).val; var Aog = getState(id4).val; if(Meg === true || Aeg ===true || Mog === true || Aog === true){ timer = schedule("*/3 * * * *", Trigger); if (logging) log('Schedule Rolladen gesetzt'); }else{ if(Meg === false && Aeg === false && Mog === false && Aog === false){ clearSchedule(timer); setStateDelayed(id5, false, 2*1000); setStateDelayed(id6, false, 4*1000); if (logging) log('Schedule Rolladen gestoppt'); } } } ScheduleStart(); // Skriptstart on(id1, function(dp) { ScheduleStart(); }); on(id2, function(dp) { ScheduleStart(); }); on(id3, function(dp) { ScheduleStart(); }); on(id4, function(dp) { ScheduleStart(); });
-
function ScheduleStart() { if(timer) clearSchedule(timer); var Meg = getState(id1).val; var Aeg = getState(id2).val; var Mog = getState(id3).val; var Aog = getState(id4).val; if(Meg || Aeg || Mog || Aog) { timer = schedule("*/3 * * * *", Trigger); if (logging) log('Schedule Rolladen gesetzt'); } else { setStateDelayed(id5, false, 2*1000); setStateDelayed(id6, false, 4*1000); if (logging) log('Schedule Rolladen gestoppt'); } }
-
Hallo Paul,
vielen Dank für die Korrektur…Werde ich gleich heute abend ausprobieren...
-
Habs korrigiert… Im ersten Lauf hat es gut geklappt... Denke das wars auch... Gute Idee den clear schedule nach oben zu nehmen um ihn sofort auszulösen...
Die Aufzählung nach der Else war natürlich auch unnötig...
Danke nochmal...
Gesendet von meinem CLT-L09 mit Tapatalk