NEWS
Schedule
-
Ich habe eine Frage zu Schedule. Ich möchte damit die Sollwerte meiner Heizung steuern. Für Werktags und Wochenende habe ich verschiedene Zeiten an denen die Heizung anfährt. Das kann ich mit Schedule ja auch gut lösen. Mein aktuelles Problem, ich habe eine Variable Zuhause, hier wird aus dem Kalender gelesen, ob ich Urlaub habe oder nicht. Habe ich an einem Werktag Urlaub soll das Schedule bzw. die Zeiten vom Wochenende gefahren werden. Kann mir da mal jemand eine Richtung weisen?
Ich habe es erstmal über zwei functionen gelöst, die innerhalb wochenende abfragen. Für schlauere Tipps bin ich aber trotzdem dankbar um zu lernen
-
Moin,
wie sieht dein Script denn bis jetzt aus?
Ich würde das setzen der Schedules in eine Funktion packen welche vor dem eigentlichen setzen der schedules prüft ob Urlaub true oder false ist und dementsprechend reagiert.
Wenn Urlaub false und Wochenende false dann schedule anlegen mit Wochenzeit. Wenn Urlaub true oder Wochenende true dann schedule mit Wochenendzeit setzen.
Gruß
-
Ich hatte schon probiert den cron als String zu übergeben, leider klappt das nicht. Es wird immer nur der cron ausgeführt der bei starten drin steht. Schedule in eine Funktion müsste man nochmal testen ob das geht.
Ich habe es aktuell so, dass ich zwei Funktionen gemacht habe.
funktion wochenende prüft ob zuhause und wochenende und führt nur dann aus
funktion werktag prüft und führt dann nicht aus.
Über schedule dann der jeweilige aufruf zu unterschiedlichen zeiten.
-
Also bei mir gehts..
Ich setze die Zeit für mein Schedule sogar aus mehreren Datenpunkten zusammen.
(Minute und Stunde wann ausgeführt werden soll steht in verschiedenen Datenpunkten)..
Wie gesagt, wäre es hilfreich zu wissen wie dein Script denn nun aussieht?
Gruß
-
schedule("0 19 * * *", function(){konnexwe("knx.0.Heizungssteuerung_OG.Bad.KONNEX_",1)}); schedule("0 23 * * *", function(){konnexwe("knx.0.Heizungssteuerung_OG.Bad.KONNEX_",3)}); function konnex(id,state,sperrid,sperrstate) { if (getState("knx.0.Zentralfunktionen.Zeitfunktionen.Feiertag").val == false){ setState(id,state); log(idname(id)+": "+statename(state)); if (arguments.length>2) { setState(sperrid,sperrstate); log(idname(id)+": "+sperrstate); } } } function konnexwe(id,state,sperrid,sperrstate) { if (getState("knx.0.Zentralfunktionen.Zeitfunktionen.Feiertag").val == true){ setState(id,state); log(idname(id)+": "+statename(state)); if (arguments.length>2) { setState(sperrid,sperrstate); log(idname(id)+": "+sperrstate); } } }
-
Man kann auf den Feiertag triggern und das Schedule anpassen.
var sched1 = null; // Schedule-Objekt für Wochen-/Feiertage function konnex(...) { ... } schedule('0 23 * * 6,7', function() { // Wochenende konnex(...); }); on('knx.0.Zentralfunktionen.Zeitfunktionen.Feiertag', function(dp) { if(sched1) clearSchedule(sched1); if(dp.state.val) { // Feiertag sched1 = schedule('0 23 * * 1-5', function() { konnex(...); }); } else { sched1 = schedule('0 19 * * 1-5', function() { konnex(...); }); } });