ioBrokerioBroker Blockly

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 (433 Downloads)

Ich hoffe Dir gefällt der Artikel. Ich freue mich über Deinen Kommentar oder Fragen zum Thema 🙂

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

5 Gedanken zu „Blockly – Zeichenfolgen

  • Stefan

    Hallo,

    wie kann ich das umsetzen eine bestimmte Zahl mit einer unterschiedlichen Länge aus einem String zu exportieren?

    Gruß
    Stefan

    Antwort
    • Matthias Korte

      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

      Antwort
  • Stefan

    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

    Antwort
    • Sven

      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.

      Antwort
  • Thomas

    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

    Antwort

Schreibe einen Kommentar zu Sven Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht.