NEWS
Variable an Cron übergeben
-
Hallo zusammen
Ich habe die letzten Tage damit verbracht eine Funktion in meine selbst geschriebene Rollladensteuerung zu integrieren.
Mein Ziel war es eine "Ausschlafen" Funktion für die Schlafzimmer zu erstellen. Dabei sollen die Rollläden zu einer gewissen Uhrzeit auf fahren. Sonst fahren diese auf, wenn ein Sonnenstand erreicht ist.
Folgendes Skript habe ich nun erstellt, jedoch weiß ich nicht wie ich die Variable cron_uhrzeit an cron übergebe.
var cron_uhrzeit; on({id: 'javascript.0.Rollladen.Steuerung.Funktion_Ausschlafen_Uhrzeit', change: "ne"}, async function (obj) { if (getState("javascript.0.Rollladen.Steuerung.Funktion_Ausschlafen_Uhrzeit").val == '1') { cron_uhrzeit = ['0 ','9 ','* ','* ','*'].join(''); } if (getState("javascript.0.Rollladen.Steuerung.Funktion_Ausschlafen_Uhrzeit").val == '2') { cron_uhrzeit = ['30 ','9 ','* ','* ','*'].join(''); } if (getState("javascript.0.Rollladen.Steuerung.Funktion_Ausschlafen_Uhrzeit").val == '3') { cron_uhrzeit = ['0 ','10 ','* ','* ','*'].join(''); } }); schedule("0 10 * * *", function () { if (getState("javascript.0.Rollladen.Steuerung.Funktion_Ausschlafen").val == true) { if (getState("hm-rpc.0.NEQ1793331.1.LEVEL").val < 5) { setState("javascript.0.Rollladen.Obergeschoss.Terrasse1", 100); } if (getState("hm-rpc.0.NEQ1793684.1.LEVEL").val < 5) { setState("javascript.0.Rollladen.Obergeschoss.Terrasse2", 100); } if (getState("hm-rpc.0.NEQ1795826.1.LEVEL").val < 5) { setState("javascript.0.Rollladen.Obergeschoss.Rheinsicht", 100); } if (getState("hm-rpc.0.NEQ1793335.1.LEVEL").val < 5) { setState("javascript.0.Rollladen.Obergeschoss.Ankleidezimmer", 100); } } });
In dem gezeigten Skript fahren 4 Rollläden zu einer festen Uhrzeit auf. Ich habe verschiedene Dinge schon ausprobiert, aber bisher hat nichts geklappt. Vielleicht kann mir jemand da weiterhelfen.
Danke.
Gruß aus dem Rheinland
Tobi -
@dontobi
Versuche es mal so:var cron_uhrzeit = '0 10 * * *'; on({id: 'javascript.0.Rollladen.Steuerung.Funktion_Ausschlafen_Uhrzeit', change: "ne"}, async function (obj) { if (obj.state.val == 1) { cron_uhrzeit = '0 9 * * *'; } if (obj.state.val == 2) { cron_uhrzeit = '30 9 * * *'; } if (obj.state.val == 3) { cron_uhrzeit = '0 10 * * *'; } }); schedule(cron_uhrzeit, function () {
-
@paul53 Danke für die schnelle Antwort. Ich hatte das mit der Variable direkt im schedule schon getestet, aber die variable vorher nicht initialisiert. Vielleicht liegt es daran. Hab es gerade mal eingetragen und lasse es morgen testen.