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:
-
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.
-
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 result2Das geht, weil in JavaScript Funktionen einfach Variablen sind, die durch Hinzufügen der Klammern ausgeführt werden können.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden