NEWS
Heizungssteuerung zeitabhängig
-
Möchte in einem Skript abfragen ob eine Variable einen Wert 1 hat und dies dem angegebenen Zeitfenster entspricht.
Leider funktioniert es nicht, denke mal getState(Ka).val === 1 passt nicht aber komm nicht weiter. Hat einer ne Idee?
//schreibe den Wert in die variable Ka var Ka = getState("javascript.1.Heizung.Temperaturkategorie").val; log("---> Temperaturkategorie " + Ka,"info"); //frage ab ob der Wert Ka dem Wert 1 entspricht und im Zeitfenster liegt if (getState(Ka).val === 1 && isTimeInRange('21:00:00', '24:00:00')) setState('javascript.1.Heizung.Willy_Soll"/*Heizung.Willy_Soll*/', willye); log("---> Willy Soll gesetzt (21-24 Uhr) auf " + willyg + " ° Grad","info");
-
Du hast die getState Abfrage doppelt. Und benutzt ein Gleichheitszeichen zu viel. Verwende:
If (Ka == 1 && isTimeInRange(…))
Gesendet von meinem Nexus 5 mit Tapatalk
-
//schreibe den Wert in die variable Ka var Ka = getState("javascript.1.Heizung.Temperaturkategorie").val; log("---> Temperaturkategorie " + Ka); //frage ab ob der Wert Ka dem Wert 1 entspricht und im Zeitfenster liegt if (Ka == 1 && isTimeInRange('21:00:00', '24:00:00')) setState('javascript.1.Heizung.Willy_Soll'/*Heizung.Willy_Soll*/, willye); log("---> Willy Soll gesetzt (21-24 Uhr) auf " + willyg + " ° Grad","info"); ...
–----------------
Fehler:
getState(Ka).val === 1
Muss
Ka == 1
Mann kann auch Ka === 1 lassen, wenn du sicher bist, dass Ka den Typ "number" hat.
–---------------
Fehler:
setState('javascript.1.Heizung.Willy_Soll"/Heizung.Willy_Soll/', willye);
Muss
setState('javascript.1.Heizung.Willy_Soll'/Heizung.Willy_Soll/, willye);
Es wird versucht die Variable 'javascript.1.Heizung.Willy_Soll"/Heizung.Willy_Soll/' zu setzen, du willst aber vermutlich 'javascript.1.Heizung.Willy_Soll'
-
Dem kann ich nur zu stimmen.
Eine Anfänger Frage… Macht es einen unterschied, ob man' oder " benutzt? Ich denke nicht. Oder?
-
Dem kann ich nur zu stimmen.
Eine Anfänger Frage… Macht es einen unterschied, ob man' oder " benutzt? Ich denke nicht. Oder? `
Kein Unterschied. -
Danke für die Infos.
hab nun folgende Problem:
Mein Skript sieht so aus
if (isTimeInRange('21:00:00', '24:00:00')); setState('javascript.1.Heizung.Willy_Soll', willyg); log("---> Willy Soll gesetzt (21-24 Uhr) auf " + willyg + " ° Grad","info");
Ich erhalte aber im Log den folgenden Fehler. IsTime gane sei nicht definiert, Was mach ich da falsch?
javascript.1 2015-10-16 23:01:00 error uncaught exception: isTimeInRange is not defined
Nehme ich die If Bedinung raus dann gehts.
setState('javascript.1.Heizung.Willy_Soll', willyg); log("---> Willy Soll gesetzt (21-24 Uhr) auf " + willyg + " ° Grad","info");
Sprich so wie ich es verstehe kann er die Zeitraumsangabe von bis nicht lesen - zuordnen.
-
Ich denke du hast isTimeInRange nicht als variable bzw Funktion deklarierte.
Schau dir das an…http://forum.iobroker.de/viewtopic.php? ... imeinrange