smarthome-tricks.de

Blockly – Zeichenfolge parsen

In dieser Artikelserie möchte ich das Thema Blockly in ioBroker näher erklären. Im Artikel zeige ich, wie Du eine Zeichenfolge parsen und einen entsprechenden Wert extrahieren kannst.

Bei manchen Sensoren oder Aktoren werden mehrere Informationen in einem Datenpunkt gespeichert. Dabei werden die verschiedenen Informationen mit einem Trennzeichen verkettet als Zeichenfolge gespeichert. Bei einem Vibrationssensor hatte ich z.B. folgende Werte in einem Datenpunkt stehen:

100,60,22

Wenn ich nun aus dieser Zeichenfolge z.B. nur den ersten Wert verarbeiten möchte, muss ich hier ein entsprechenden Parser aufbauen um den Wert zu extrahieren. Wir haben es hier mit einem wirklich sehr einfachen Parsing zu tuen, da wir dazu einfach die Zeichenfolge mittels dem Komma zerlegen und in eine Liste schreiben können. Für den Artikel habe ich folgenden Datenpunkt angelegt:

 

Im Datenpunkt „Datenpunkte.0.Test.TestString“ wird die Zeichenfolge „100,60,20“ gespeichert. Für diesen Datenpunkt erstellen wir uns nun ein Blockly-Trigger, mit dem wir das String-Parsing durchführen können. Bevor mit dem eigentlichen Parsing beginnen hier der Trigger mit einer Ausgabe in das ioBroker Log:

 

Im Log sehen wir nun die folgende Ausgabe:

 

Im nächsten Schritt erweitern wir nun das Script um die Funktionalität zum „Parsen“ des Strings. Dazu erstellen wir uns im ersten Schritt mit dem Block „setze … auf“ eine neue Liste, welche die einzelnen Elemente der Zeichenfolge aufnehmen soll. Gefüllt wird die Liste über den Block „Liste aus Text erstellen“. Dem Block übergeben wir dazu den neuen Wert des Datenpunktes (Wert) sowie das Trennzeichen „,“. Der Block erstellt nun eine Liste mit den Elementen des Strings. Nun können wir mit dem Block „In der Liste“ auf die Variable „StringDetails“ zugreifen und das 1. Element auswählen. Die Liste ist 1-basiert.

 

 

Im ioBroker Log sehen wir nun die Ausgabe des 1. Elements der Liste.

 

So einfach können wir auch mit Blockly Zeichenfolgen zerlegen. Ich hoffe Dir gefällt der Artikel. Ich freue mich über Deinen Kommentar oder Fragen 🙂

Die mobile Version verlassen