NEWS
Wert einer Variablen anzeigen?
-
Moin zusammen - ich habe folgendes Problem.
Ich bekomme immer die folgende Fehlermeldung nach dem ausführen eines Blockly. Speziell der letzte Eintrag macht mich ganz kirre, da ich nicht erkennen kann was in dem Blockly falsch sein soll.
javascript.0 2022-02-18 07:36:16.461 warn at processImmediate (internal/timers.js:461:21) javascript.0 2022-02-18 07:36:16.461 warn at Immediate._onImmediate (C:\iobroker\GLT\node_modules\@iobroker\js-controller-adapter\src\lib\adapter\adapter.js:5909:56) javascript.0 2022-02-18 07:36:16.461 warn at Object.stateChange (C:\iobroker\GLT\node_modules\iobroker.javascript\main.js:530:29) javascript.0 2022-02-18 07:36:16.461 warn at Object.callback (C:\iobroker\GLT\node_modules\iobroker.javascript\lib\sandbox.js:1082:38) javascript.0 2022-02-18 07:36:16.461 warn at Object.<anonymous> (script.js.Aktiv.Heizung_Steuerung_Flur:23:5) javascript.0 2022-02-18 07:36:16.460 warn at setState (C:\iobroker\GLT\node_modules\iobroker.javascript\lib\sandbox.js:1437:20) javascript.0 2022-02-18 07:36:16.459 warn You are assigning a undefined to the state "innogy-smarthome.0.Flur.Heizkörper-Flur.PointTemperature" which expects a number. Please fix your code to use a number or change the state type to undefined. This warning might become an error in future versions.
Da ich hier absolut keinen Fehler bezüglich der übergebenen Werte feststellen kann, stellt sich mir die Frage, was in die Variable "Heizung Flur" für ein Wert geschrieben wird.
Kann ich diesen Wert irgendwie sichtbar machen? Ich vermute, das die Fehlermeldung zustande kommt, wenn der in der Variablen gespeicherte Wert wieder aufgerufen wird.
Aber nichts genaues weiß ich nicht
-
@jb_sullivan Ich sehe so einige Stellen im Script, die verbessert werden könnten. Aber Dein Fehler kommt aus dem "sonst falls" Zweig. In diesem Fall wird "Point Temperature" auf "Heizung Flur" gesetzt, diese Variable wird aber in diesem Fall gar nicht gesetzt (sonder nur beim ersten "falls".
-
@jb_sullivan
Wenn das Skript bei offener Tür gestartet wird, ist die Variable Heizung_Flur undefined, wenn die Tür geschlossen wird. Deshalb sollte sie bei Skriptstart mit einer sinnvollen Zahl initialisiert werden. -
OK, jetzt bin ich ob Eurer beiden Antworten verwirrt.
Ich verwende exakt das gleiche Script 12 x im ganzen Haus für alle Fenster und Türen. Alle anderen Scripte funktionieren ohne Fehlermeldungen und im Real Life Betrieb werden die Thermostate auch entsprechend angesteuer bzw. im Sommer eben nicht angesteuert.
Nur das Flur Script beglückt mich mit der Fehlermeldung. Darum war ich der Annahme das dass Script als solches OK ist.
Der einzige Unterschied ist, das es sich bei dem Tür Sensor im Flur um ein anderes Modell (ZigBee) handelt. Alle anderen Sensoren für Fenster sind Innogy Sensoren. Jedoch werden beide als False ausgegeben wenn sie geschlossen sind.
-
@jb_sullivan Wenn das Script/der Adapter/der Server zufällig genau dann neu gestartet wurde, wenn es Winter ist und das Fenster offen war, läufst Du in den Fehler.
-
Einfach die Variable außerhalb deines Triggers initialisieren
-
@frana120500 Nicht ganz. Schon innerhalb des Triggers, aber vor dem ganzen "falls" Zweig. Sonst hast Du ja irgendeinen Wert....
-
@ahnungsbefreit Würde ich nicht vor den falls setzen sondern tatsächlich außerhalb... quasi das die Variable sagt "huhuu, hier bin ich und ich bin 0"
Das ist die Initialisierung der Variable. Er kann da auch 587 reinschreiben oder irgendwas anderes. Wenn der Trigger auslöst, wird die Variable, die ja jetzt da ist, ja eh auf den geänderten Wert gesetzt.
-
@frana120500 Mir ist schon klar, was eine Initialisierung ist.