NEWS
Set state to null?
-
Mir gelingt es nicht, einen State mit setState() im Javascript auf null zu setzen.
Bzw. finde ich bisher nicht, wie es geht.Hintergrund: Ich möchte nicht "expire" nutzen sondern im Script entscheiden, wann ich keinen Zustand mehr habe und diesen auf null setzen damit über den History-Adapter / Grafana auch tatsächlich dokumentiert ist, dass es zu diesem Zeitpunkt keinen Wert gab.
Sollte es gar nicht gehen, muss ich wohl Werte weit außerhalb des Wertebereichs nehmen und per SQL dann als null an Grafana liefern...
(Edit: Argh, bin versehentlich im ioBroker Allgemein gelandet. Verschieben kann ich selbst wohl nicht?
Edit2: Danke für‘s Verschieben :)) -
@arndl nimm liber ein wertebereich z
99 den du selber setzten kannst..
eine null ist ein nicht definierter Wert und das ist nur dan nwenn das Object nicht initialisiiert wurde... solle eigentlich NIE passieren.
mann sollte die Variablen immer ninitialisieren (ok ausser in ABAP da ist initial auch space)
-
@arteck
Genau das möchte ich ja erreichen: einen undefinierten Wert.
Lege ich einen State neu an, ist der Wert zunächst undefiniert. Ich kann dann einen Wert setzen, komme aber nicht wieder in diesen Zustand zurück wenn es keinen gültigen Wert mehr gibt.Beispiel: Ein Ping auf eine IP Adresse. Ein Timeout kann nur sinnvoll als null abgebildet werden. 5000 ms wäre ebenso falsch wie 0 ms.
Im Screenshot ist zu sehen, dass ab 11 Uhr das Internet ausgefallen ist. Es wird der letzte Ping Wert angezeigt, was jedoch nicht korrekt ist. Könnte ich den Wert auf null setzen, wäre der Graf dort unterbrochen.
-
@arndl sagte in Set state to null?:
Mir gelingt es nicht, einen State mit setState() im Javascript auf null zu setzen.
Bzw. finde ich bisher nicht, wie es geht.Hintergrund: Ich möchte nicht "expire" nutzen sondern im Script entscheiden, wann ich keinen Zustand mehr habe und diesen auf null setzen damit über den History-Adapter / Grafana auch tatsächlich dokumentiert ist, dass es zu diesem Zeitpunkt keinen Wert gab.
Sollte es gar nicht gehen, muss ich wohl Werte weit außerhalb des Wertebereichs nehmen und per SQL dann als null an Grafana liefern...
(Edit: Argh, bin versehentlich im ioBroker Allgemein gelandet. Verschieben kann ich selbst wohl nicht?)
dann musst du den datentyp des datenpunkts auf object setzen.
wahrscheinlich ist der bei dir nummer.
null ist für nummer kein gültiger wert.
optional kannst du dann in dein skript eine eigene formatprüfung einbauen. -
@oliverio
Danke für den Hinweis! Das probiere ich heute Abend aus.
Ja, der Typ ist number. -
Mit object funktioniert es nicht aber mit dem Typ „mixed“.