NEWS
Schedules nach Strommausfall off ?!?!
-
Hallo,
hatte Gestern einen Stromausfall, nach dem starten waren die Timer bzw. die Schedules anscheinent aus.
denn Abends gingen die Rollläden nicht runter….
// Licht_Jens_Aus_Abends_SUN-THU const idWeckzeitTimerLichtJensAusAbendsSUNTHU = ".Meine_Geraete.P.5_Set.Timer_Licht_Jens_Aus_Abends_SUN-THU"/*Timer_Licht_Jens_Aus_Abends_SUN-THU_*/; // Weckzeit als String "hh:mm" var zeitTimerLichtJensAusAbendsSUNTHU; var timerTimerLichtJensAusAbendsSUNTHU = null; on(idWeckzeitTimerLichtJensAusAbendsSUNTHU, function(dp) { zeitTimerLichtJensAusAbendsSUNTHU = getState(".Meine_Geraete.P.5_Set.Timer_Licht_Jens_Aus_Abends_SUN-THU"/*Timer_Licht_Jens_Aus_Abends_SUN-THU_*/).val; log("Geänderte Zeit LichtJensAusAbendsSUNTHU: " + zeitTimerLichtJensAusAbendsSUNTHU); var tTimerLichtJensAusAbendsSUNTHU = dp.state.val.split(':'); clearSchedule(timerTimerLichtJensAusAbendsSUNTHU); timerTimerLichtJensAusAbendsSUNTHU = schedule(tTimerLichtJensAusAbendsSUNTHU[1] + ' ' + tTimerLichtJensAusAbendsSUNTHU[0] + ' * * 0,1,2,3,4', function() { if (getState(".Meine_Geraete.P.5_Set.Timer_Licht_Jens_Aus_Abends_SUN-THU_Aktiv"/*Timer_Licht_Jens_Aus_Abends_SUN-THU_Aktiv_*/).val === true){ log(tTimerLichtJensAusAbendsSUNTHU + " Licht Jens Aus"); setState(".Meine_Geraete.P.3_OG.1_EZ.Lampe_2_Jens"/*Lampe_2_Jens_*/, false); } }); });beim letzten mal hatte ich es ebenso, und musste erst alle Zeiten wieder neu setzen, damit die Schedules neu geschreiben werden?
Wie kann ich das verhindern, bzw. bewirken, dass die beim Neustart auch gleich angelegt werden?
Danke
Gruß Jens
-
Die Zeiten für die Schedules setzte ich ja mittels Datenpunkt über vis.
wenn sich diese Ändern, werden die Schedules gelöscht und neu gesetzt mit den aktuellen Werten.
Anscheinend werden beim Neustart des ioBrokers die Scripte dazu zwar gestartet, aber die alten Schedules
sind alle weg.
Da aber die Werte der Datenpunkte sich nicht geändert haben, werden die schedules nicht gelöscht und neu geschrieben.
Ich hätte gedacht, die Schedules sind ebenfalls fix irgendwo hinterlegt und sind dann nach Stromausfall, Neustart trotzdem
noch vorhanden. ist aber anscheinend nicht so.
wie kann ich das denn bewirken, dass die entweder erhalten bleiben beim Neustart von iobroker oder beim Neustart
alle neu gesetzt werden?
Danke
-
Die Wandlung vom Datenpunktwert in ein Schedule muss auch beim Skriptstart erfolgen. Dazu packt man es in eine Funktion, die sowohl vom Datenpunkt-Trigger als auch bei Skriptstart aufgerufen wird.
// Licht_Jens_Aus_Abends_SUN-THU const idWeckzeitTimerLichtJensAusAbendsSUNTHU = ".Meine_Geraete.P.5_Set.Timer_Licht_Jens_Aus_Abends_SUN-THU"/*Timer_Licht_Jens_Aus_Abends_SUN-THU_*/; // Weckzeit als String "hh:mm" var timerTimerLichtJensAusAbendsSUNTHU = null; function setSched(val) { log("Geänderte Zeit LichtJensAusAbendsSUNTHU: " + val); var tTimerLichtJensAusAbendsSUNTHU = val.split(':'); clearSchedule(timerTimerLichtJensAusAbendsSUNTHU); timerTimerLichtJensAusAbendsSUNTHU = schedule(tTimerLichtJensAusAbendsSUNTHU[1] + ' ' + tTimerLichtJensAusAbendsSUNTHU[0] + ' * * 0,1,2,3,4', function() { if (getState(".Meine_Geraete.P.3_OG.1_EZ.Lampe_2_Jens"/*Lampe_2_Jens_*/).val) { log("Licht Jens Aus"); setState(".Meine_Geraete.P.3_OG.1_EZ.Lampe_2_Jens"/*Lampe_2_Jens_*/, false); } }); } setSched(getState(idWeckzeitTimerLichtJensAusAbendsSUNTHU).val); // Skripstart on(idWeckzeitTimerLichtJensAusAbendsSUNTHU, function(dp) { setShed(dp.state.val); }); -