NEWS
Schedule - Licht an bei fester Zeit
-
Hallo zusammen,
eigentlich ist das doch ziemlich simpel, aber irgendwie zweifel ich langsam an mir selbst.
Ich will einfach nur bei einer gewissen Uhrzeit einen Schalter (Licht) aktivieren.
// Ab 7.30 Uhr am Wochenende schedule("30 7 * * 6-7", function () { setState("hm-rpc.0.NEQ182xxx.1.STATE", true) });
hab ich irgendwo einen Gedankenfehler oder seh ich ein Komma vor lauter Semikolons nicht?
Der reine setState-Befehl funktioniert, nur halt nicht in Kombi mit schedule…
Gruß Michael
edit: Problem gelöst, nach einem Neustart geht alles :roll:
-
Probier mal so:
// Ab 7.30 Uhr am Wochenende function Licht (){ setState("hm-rpc.0.NEQ182xxx.1.STATE", true); } schedule("30 7 * * 0,6", function () { Licht(); });
mfg
dna909
-
schedule("30 7 * * 0,6", function () { Licht(); }); ```` `
geht auch kürzer (beachte die fehlenden Klammern hinter "Licht"):
schedule("30 7 * * 0,6", Licht);
Aber das extrahieren in ne eigene Funktion sollte keinen Unterschied machen.
-
Viele Wege führen nach Rom
-
Viele Wege führen nach Rom `
das ist wohl wahr. Auch ohne Programmierung ueber den Adapter:- Calendar schedule Adapter benutzt Kalender für Planung
-
schedule("30 7 * * 0,6", function () { Licht(); }); ```` `
geht auch kürzer (beachte die fehlenden Klammern hinter "Licht"):
schedule("30 7 * * 0,6", Licht);
Aber das extrahieren in ne eigene Funktion sollte keinen Unterschied machen. `
Könntest du mich erleuchten, wann (und warum) ich die Klammern weglasse? Das habe ich noch nicht verstanden
-
Schedule (und setTimeout, setInterval) erwarten als zweiten Parameter eine Funktion, die verzögert aufgerufen werden soll. Das kannst du jetzt entweder inline machen mit
function() { ... }
oder du kannst eine Referenz auf eine Funktion übergeben. Die Referenz ist einfach der Name einer Funktion ohne ().
Mit dem Konstrukt
function () { Licht(); }
erzeugst du eine Funktion, deren einzige Aufgabe es ist, die Funktion "Licht" aufzurufen. Also
schedule |--> anonyme Funktion |--> Licht
Übergibst du schedule als zweiten Parameter den Verweis auf die Licht-Funktion, sieht die Aufrufliste so aus:
schedule |--> Licht
–-
Zur Syntax:
function test() { return 5; } var result1 = test(); // enthält 5, den Rückgabewert der Funktion test var result2 = test; // enthält die Funktion test var result3 = result2(); // enthält 5, den Rückgabewert der Funktion test bzw. jetzt auch result2
Das geht, weil in JavaScript Funktionen einfach Variablen sind, die durch Hinzufügen der Klammern ausgeführt werden können.
-
Das drucke ich mir gleich aus, vielen Dank!
Ich kriege zwar inzwischen das eine oder das andere hin, aber ich fürchte, häufig ist da doch eher Glück im Spiel :lol: :lol:
-
von mir auch nochmal einen Dank an alle…
So hab ich auch wieder etwas dazu gelernt