NEWS
Wert in Objekt über Blockly schreiben - NaN
-
Hallo,
ich habe eine Frage zu einem Verhalten was ich mir nicht ganz erklären kann vielleicht kann mir ja jemand einen Tipp geben warum das so ist bzw. was ich falsch mache.
Also ich habe einen Datenpunkt als Zahl angelegt und die min/max Werte und das % raus gelöscht.
Wenn ich jetzt über Blockly die on Zeit eines Schalter errechne mit Minuten seit Mitternacht und dass beim Ausschalten dann subtrahiere bekomme ich lt. Log-Ausgabe einen korrekten Wert. Wenn ich diesen Wert dann in den Datenpunkt schreiben will bekomme ich im Datenpunkt NaN angezeigt.
Wenn ich das Ergebnis in Blockly aber in einen String konvertiere und dann in den Datenpunkt schreibe funktioniert es - es kommt aber eine Warnung im Log.
Was habe ich hier übersehen? Das Ergebnis der Rechnung muss ja eine Zahl sein - warum kommt dann NaN? Irgendwas habe ich da anscheinend übersehen nur ich finde es nicht …
Danke für die Hilfe.
lg,
Thorsten
-
Vielleicht musst du die Minuten nach Zahl konvertieren.
Aber zeig doch mal bitte dein Blockly und den Datenpunkt mit seinen Einstellungen.
Enrico
-
Ich habe den Fehler gefunden - ich habe die Vorgabewerte min 0 max 100 und das % ja raus gelöscht - aber so wie es aussieht verhält sich das dann anders.
Wenn ich die MIN und MAX Werte raus nehme dann muss ich einen String übergeben - wenn ich Min und Max Werte definiere dann klappt es auch mit der Übergabe der Zahl.
Dachte das wären nur Grenzen für die Eingabe - aber anscheinend doch nicht.
7643_2018-06-07_18_28_06-iobroker.admin.png -
Dachte das wären nur Grenzen für die Eingabe - aber anscheinend doch nicht. `
Das sind nur die Grenzen und die können entfallen.NaN hat nichts mit den Datenpunkteigenschaften zu tun, sondern ensteht, wenn mathematische Operationen mit Werten vollzogen werden, von denen mind. ein Wert keine Zahl ist.
-
Nochmal einen Test gemacht - es verhält sich bei mir aber so wenn bei min-max-def nix drin steht dann geht das Skript nicht.
Anbei auch die Screenshots.
7643_2018-06-08_12_56_32-iobroker.admin.png
7643_2018-06-08_12_56_59-iobroker.admin.png
7643_2018-06-08_12_57_23-iobroker.admin.png
7643_2018-06-08_12_57_41-iobroker.admin.png
7643_2018-06-08_12_57_58-iobroker.admin.png -
null ist nicht "kein Wert" (undefined).
Wenn die Datenpunkteigenschaften min und max existieren, müssen auch vernünftige Werte eingetragen werden, denn es wird geprüft, ob der mit setState() übergebene Wert innerhalb der Grenzen liegt. Sollen keine Grenzen geprüft werden, dann müssen die Eigenschaften min bzw. max gelöscht werden (Mülleimersymbol rechts).
-
Danke! Das war genau mein Verständnis Problem - dachte wenn ich das raus nehme wird es nicht berücksichtigt. So blind muss man mal sein das man den Mistkübel nicht sieht 8-)
lg,
Thorsten