Blockly – Zeichenfolgen
In dieser Artikelserie möchte ich das Thema Blockly in ioBroker näher erklären. In diesem Artikel zeige ich Dir verschiedene Blöcke rund um Zeichenfolgen.
1. Zeichenfolgen anhängen
Im ersten Kapitel schauen wir uns den folgenden Block an:
Mit diesem Block können wir an eine Variable eine Zeichenfolge anhängen. Im umgewandelten JavaScript werden die beiden Zeichenfolgen test1 und test2 in einen String umgewandelt und addiert (konkateniert).
Zur Kontrolle des Ergebnisses gebe ich die Variable „test“ mit dem Block „debug output“ in das ioBroker-Log aus. Das Ergebnis wird wie folgt dargestellt:
2. Zeichenfolgen verbinden
Im zweiten Kapitel sehen wir uns nun den folgenden Block genauer an:
Mit dem Block können wir mehrere statische Texte oder variablen komfortabel verbinden. Der Block bietet zudem die Möglichkeit über die Konfiguration (blaues Zahnrad-Symbol im Block) die Eingangswerte zu erweitern. Ziehe dazu einfach den Block „etwas“ links nach rechts in die Verbinden-Liste.
Im Beispiel habe ich hier wieder einen Trigger auf den Datenpunkt „SensorA.level“ erstellt. Bei einer Änderung des Datenpunktes wird der Trigger ausgelöst. Im Trigger wird die Variable „test“ mit dem Block gefüllt. Dazu werden insgesamt 6 Zeichenketten angehängt. Im Anschluss wird die Variable „test“ wieder an den Block „debug output“ ausgegeben und somit ein Eintrag im ioBroker-Log angelegt.
Das Ergebnis wird wie folgt dargestellt:
3. Länge einer Zeichenfolge ermitteln
Im dritten Kapitel sehen wir uns nun den folgenden Block genauer an:
Mit dem Block „Länge von“ können wir die Länge einer Zeichenfolge ermitteln. Im folgenden Beispiel habe ich einen Trigger auf den Datenpunkt „TestString“ angelegt, welcher bei einer Änderung ausgelöst wird. Im ersten Schritt wird dann die Länge des neuen Wertes ermittelt. Die Ausgabe erfolgt mit Wert sowie der Textlänge über den Block „Zeichenfolge verbinden“ aus dem vorherigen Kapitel. Die Ausgabe erfolgt dann in das ioBroker-Log.
Das Ergebnis wird wie folgt dargestellt:
4. Zeichenfolge umwandeln
Im vierten Kapitel sehen wir uns nun den folgenden Block genauer an:
Mit dem Block kann die übergebene Zeichenfolge umgewandelt werden (in Großbuchstaben, in Kleinbuchstaben und in Substantive). Groß- und Kleinbuchstaben sind soweit klar, denke ich. Die Konvertierung in Substantive konvertiert die angegebene Zeichenfolge in große Anfangsbuchstaben (außer Wörtern, die vollständig in Großbuchstaben geschrieben sind, die als Akronyme betrachtet werden).
Das Ergebnis wird wie folgt dargestellt:
5. Leerzeichen an Zeichenfolge entfernen
Im fünften Kapitel sehen wir uns nun den folgenden Block genauer an:
Mit dem Block werden führende und endende Leerzeichen von der übergebenen Zeichenfolge entfernt.
6. Zeichenfolge bestimmtes Zeichen/Zeichenfolge ermitteln
In diesem Kapitel sehen wir uns nun den folgenden Block genauer an:
Mit dem Block können die folgenden Aktionen ausgeführt werden:
- nimm die ersten X Buchstaben
- nimm die letzten X Buchstaben
- nimm den ersten Buchstaben
- nimm den letzten Buchstaben
- nimm zufälligen Buchstaben
Im folgenden Beispiel werden nun die ersten beiden Buchstaben der Zeichenfolge ermittelt:
7. Buchstaben oder Zeichenfolge in Zeichenfolge suchen
In diesem Kapitel sehen wir uns nun den folgenden Block genauer an:
Im Beispiel wird ein Trigger auf den Datenpunkt „TestString“ erstellt, welcher bei einer Änderungen ausgeführt wird. Im Trigger wird nun mit dem Block nach der Zeichenfolge „on“ gesucht. Hierbei kann die Position des ersten sowie letzten Auftretens ermittelt werden. Wenn der Begriff nicht gefunden wurde, wird 0 zurückgegeben.
Das Ergebnis wird wie folgt dargestellt:
8. Nach mehreren Zeichenfolgen suchen
Im folgenden Beispiel suchen wir nun in einer Zeichenfolge nach mehreren Begriffen. Im Datenpunkt Test.String suchen wir nach den Begriffen Licht, Wohnzimmer und aus. Diese werden dann in einem Falls-Block mit drei Und-Verknüpfungen abgefragt.
Blockly - Nach mehreren Zeichenfolgen suchen (437 Downloads )Ich hoffe Dir gefällt der Artikel. Ich freue mich über Deinen Kommentar oder Fragen zum Thema 🙂
Hallo,
wie kann ich das umsetzen eine bestimmte Zahl mit einer unterschiedlichen Länge aus einem String zu exportieren?
Gruß
Stefan
Moin Stefan,
poste mal das Beispiel ein wenig genauer, wie sieht eine solche Zeichenfolge aus?
Dann kann ich das prüfen und dafür ein Beispiel erstellen 🙂
LG Matthias
Hey Matthias,
der String liefert diese Zeichenfolge:
{„status“:“OK“,“data“:{„time“:1629053400,“lastSeen“:1629053326,“reportedHashrate“:30444992,“currentHashrate“:34598875.59916667,“validShares“:29,“invalidShares“:0,“staleShares“:0,“averageHashrate“:30179565.19572917}}
Gruß
Stefan
Wie hier anhand Blockly eine Zahl gefunden werden kann würde mich auch brennend interessieren.
Am o.g. Szenario, wenn man z.B. die Zahl 30444992 aus „reportedHashrate“ extrahieren will.
Den Anfang der zu suchenden Zahl finde ich mit z.B. „suche erstes Auftreten des Begriffs ‚reportedHashrate'“ + 1. Ende-Kriterium der Zeichenfolge wäre dann das Kriterium „bis zum nächsten Komma“, aber ich wüsste nicht wie man das in Blockly schreibt.
Hallo Matthias
Danke für die schöne Beschreibung.
Meine Frage: Wie kann ich in Blockly 2 Leerzeichen hintereinander ausgeben. Die Schaltwerte meiner Thermostate sind mit zwei Leerzeichen getrennt, weiß der Himmel was die sich dabei gedacht haben. Jedenfalls trimmt Blockly egal was ich mache die doppelten Leerzeichen weg und der Thermostat liefert dann natürlich einen Fehler. Was kann ich tun?
Danke für eine Antwort.
Thomas