NEWS
Variable Zeit/Schedule Funktion
-
Hab ein kleines Script für ein Wakeup Light mit einer Hue:
schedule("8 5 * * 1-5", function () { var schicht = getState("javascript.0.schichten").val; if(schicht === "Fruehschicht"); setState("hue.0.Philips_hue.Hue_Nachttisch.command", '{"bri":"150","ct":"400","transitiontime":"600"}'); //langsam log("Nachtischlampe Auto Ein"); setStateDelayed("hue.0.Philips_hue.Hue_Nachttisch.command", '{"bri":"0","on":"off"}', 360000); });
Stelle aber auch mittlerweile meinen Wecker über Vis mit einem "jqui-control-Input Datetime" Widget, die eingestellte Zeit wird in eine Variable eingetragen.
Wie kann ich jetzt diese Zeit in der Variable nutzen, um damit das WAkeup Light variable einzuschalten?
Frage 2: Muss ich das eigentlich so schreiben
var schicht = getState("javascript.0.schichten").val; if(schicht === "Fruehschicht");
oder sollte es so auch gehen
if(getState("javascript.0.schichten").val === "Fruehschicht");
Diese Variante sollte doch auch funktionieren, da "javascript.0.schichten" ja schon ne Variable ist.
-
Hi,
schau dir mal hier den VORLETZTEN Beitrag an, vielleicht ist das was für dich.
-
Also mit dem zweitletzten Post komm ich nicht so richtig klar, aber ich denke das script von paul53 kann ich dafür nutzen, also das script, dass du auch nutzt.
Muss mal damit etwas rumspielen, aber denke das funktioniert. Brauche ja nur eine Funktion, die bei Variabler Zeit etwas auslöst, vllt geht das auch noch einfacher
-
Das Skript von paul53, was ich auch nutze!(DANKE NOCHMAL) Funktioniert TOP, du has nur keine Möglichkeit auf Wochentage oder ähnliches zu reagieren zumindest nicht ohne weiteren Skript Aufwand.
-
Ach Mist, da hab ich gerade gar nicht dran gedacht. Stimmt, die Wochentage möchte ich ja auch mit rein nehmen.
-
Na dann würde ich dir schon mein Script (wurde ja bereits verlinkt) empfehlen. Jetzt läuft es perfekt, den Fehler das beim ersten Start die Zeit nicht gesetzt wurde, habe ich durch ändern/ zurückschreiben der Minuten Variable am Ende umgangen.
function szeit() { // ##################### Wochenplan ##################### // 0 1 2 3 4 5 6 // M D M D F S S // o i i o r a o //................................................................... var TagStunde = new Array("6", "6", "6", "6", "6", "9", "9"); // Weckzeit: Stunde var TagMinute = new Array("30", "30", "45", "45", "30","00", "00"); // Weckzeit: Minute var WAktiv = new Array("1", "1", "1", "1", "1", "0", "0"); // Wecker Aktiv = 1, Wecker Aus = 0 var jetzt = new Date(); var tag = jetzt.getDay(); // Achtung Mo = 1, Arry beginnt aber bei 0 if ( tag == "7" ) tag = "0"; if (WAktiv[tag] == "1") { setState("Timer.Wecker.XXX.Aktiv", true);} else { setState("Timer.Wecker.XXX.Aktiv", false);} log ('Weckzeit XXX morgen: ' + TagStunde[tag] + ':' + TagMinute[tag] + ' Uhr'); setState("javascript.0.Timer.Wecker.XXX.Stunde",TagStunde[tag]); setState("javascript.0.Timer.Wecker.XXX.Minute",TagMinute[tag]); } schedule("0 10 * * *", function (){ // Zeitplan - wird jeden Tag um 10:00 Uhr für nächsten Tag gesetzt szeit(); }); // ##################### variable ZEITSTEUERUNG ##################### var He_Auf = "00 12 * * *"; on(/^javascript.0.Timer.Wecker.XXX.Stunde|javascript.0.Timer.Wecker.XXX.Minute/, function(obj) { clearSchedule(He_Auf); var id_Stunde = getState("javascript.0.Timer.Wecker.XXX.Stunde").val, id_Minute = getState("javascript.0.Timer.Wecker.XXX.Minute").val; AufZeit = id_Minute + ' ' + id_Stunde + ' * * *'; log("HE Aufstehen geändert auf: " + AufZeit); He_Auf = schedule(AufZeit, function(){ var WStatus = getState("Timer.Wecker.XXX.Aktiv").val; if (WStatus === true) { setStateDelayed(".......... bzw hier das Kommando einfügen;} }); }); createState("Timer.Wecker.XXX.Stunde"); createState("Timer.Wecker.XXX.Minute"); createState("Timer.Wecker.XXX.Aktiv"); var Temp_Minute = getState("Timer.Wecker.XXX.Minute").val; setState("Timer.Wecker.XXX.Minute", 59); setState("Timer.Wecker.XXX.Minute", Temp_Minute);
Grüße
Brati
-
Ja ich werde mir dein Script nochmal genauer ansehen. Hab da noch nicht so den Durchblick Ich probiere einfach mal aus
Gesendet von meinem Nexus 5X mit Tapatalk