Blockly – Beispiel – Zahl in Klartext konvertieren
In dieser Artikelserie möchte ich das Thema Blockly in ioBroker näher erklären. In diesem Beispiele zeige ich, wie man einen Wert eines Datenpunkts in einen Klartext umwandeln kann.
Datenpunkte speichern Werte in der Regel nicht im Klartext, sondern in Form von numerischen oder alphanumerischen Kürzeln. Für den Status einer Heizungssteuerung standen zum Beispiel folgende Werte zur Verfügung:
- 0 = Standby
- 1 = Automatikbetrieb
- 2 = Heizbetrieb
- …
In einem Trigger auf den Datenpunkt möchte ich mir nun bei einer Wertänderung den aktuellen Wert des Datenpunktes per E-Mail zusenden lassen. Ich möchte hier aber nicht den numerischen Wert (0,1,2,3…) sondern direkt den aufgelösten Wert im Klartext versenden. Mit dem folgenden Blockly-Script habe ich das Problem wie folgt gelöst:
Im Script erstelle ich im ersten Schritt einen Trigger auf den entsprechenden Datenpunkt. Bei einer Veränderung des Datenpunktes führt der Trigger nun die Blöcke im Body aus. Im ersten Schritt wird dazu eine Variable „StatusText“ erstellt und mit dem Wert „“ initialisiert. Nun folgenden die einzelnen Abfragen auf die entsprechenden Werte. Ich vergleiche hier jeweils in einem Falls-Block mit einem Logik-Block den Wert des Triggers mit den entsprechenden numerischen Werten des Status. Wenn der Wert des Triggers 0 entspricht wird die Variable „StatusText“ auf „Standby“ gesetzt. Mit den restlichen Werten wird genauso verfahren. Im Anschluss an die Falls-Blöcke wird nun die Variable „StatusText“ mit dem E-Mail-Block versendet. Anhand diesem Beispiel siehst Du nun, wie einfach Du numerische Werte in den jeweiligen Klartext umwandeln kannst.
Weitere Artikel zum Thema:
Anbei das oben gezeigte Blockly-Script auch Download, welches direkt im Script importiert werden kann:
Blockly – Beispielscript – Zahl in Klartext (518 Downloads)
Ich hoffe Dir gefällt der Artikel. Ich freue mich über Deinen Kommentar oder Fragen zum Thema 🙂
Hallo Matthias, ich wollt deinen Artikel als Vorlage für mein Skript nutzen. Ich möchte im Habpanel (iobroker) gerne die verschiedenen Stadien meines Rasenmähers als Text anzeigen lasen , nicht als Zahlenwert. Leider weiß ich nicht, welches Widget dafür in Frage kommt. Bisher bekomme ich die Anzeige nur als Zahl. Im datenpunkt sind aber die Texte für die Zahlen hinterlegt bspw. Zahl 1 = Home. Hast du einen Tipp für mich? Danke . Rico