Knoten switch
Der Knoten switch
dient der Weiterleitung von Nachrichten basierend auf ihrem Inhalt, ihrer Struktur oder anderen Bedingungen. Dies ist ein leistungsstarkes Werkzeug zur Erstellung von bedingter Logik in Flows.
Einstellungen des Knotens switch
1. Name
Feld zur Angabe des Knotennamens.
Der Name wird im Arbeitsbereich angezeigt und hilft, den Knoten leicht zu identifizieren.
Wenn das Feld leer bleibt, wird der Knoten inject
genannt.
Beispiel:
- Knotenname:
check status
2. Property
Gibt an, welches Attribut des Nachrichtenobjekts msg
zur Überprüfung der Bedingungen verwendet wird.
Beispiel:
msg.payload
msg.topic
msg.device.temperature
Auch Umgebungsvariablen (flow
, global
) und JSONata-Ausdrücke (beginnen mit $
) werden unterstützt.
3. Check
- Überprüfung bis zur ersten Übereinstimmung (Standard):
Die Nachricht wird nur an den ersten Ausgang gesendet, der die Bedingung erfüllt. - Überprüfung aller Übereinstimmungen:
Die Nachricht kann an mehrere Ausgänge gesendet werden, wenn sie mehreren Bedingungen entspricht.
3. Rules
Definieren die Logik der Weiterleitung. Jede Bedingung ist einem der Ausgänge des Knotens zugeordnet. Die Nachricht wird an den ersten passenden Ausgang gesendet.
Verfügbare Bedingungstypen:
==
: Überprüft die Gleichheit des Wertes.!=
: Überprüft die Ungleichheit.<
: Überprüft, ob der Wert kleiner ist.<=
: Überprüft, ob der Wert kleiner oder gleich ist.>
: Überprüft, ob der Wert größer ist.>=
: Überprüft, ob der Wert größer oder gleich ist.has key
: Überprüft, ob das Objekt den angegebenen Schlüssel enthält.between
: Überprüft, ob der Wert im angegebenen Bereich liegt (einschließlich).contains
: Überprüft, ob die Zeichenkette oder das Array den angegebenen Wert enthält.matches regex
: Überprüft, ob die Zeichenkette dem regulären Ausdruck entspricht.equals true
: Überprüft, ob der Werttrue
ist.equals false
: Überprüft, ob der Wertfalse
ist.equals null
: Überprüft, ob der Wertnull
ist.not equals null
: Überprüft, ob der Wert nichtnull
ist.is of type
: Überprüft, ob der Wert dem angegebenen Typ entspricht (z. B.string
,number
,boolean
).empty
: Überprüft, ob die Zeichenkette, das Array oder das Objekt leer ist.not empty
: Überprüft, ob die Zeichenkette, das Array oder das Objekt nicht leer ist.else
: Wird ausgeführt, wenn keine der anderen Bedingungen erfüllt ist.
Beispiel:
msg.payload
ist größer als50
Eingabedaten
Der Knoten akzeptiert das Objekt msg
.
Welche spezifischen Eigenschaften überprüft werden, wird im Feld Property festgelegt.
Ausgabedaten
Der Knoten sendet die Nachricht msg
an den Ausgang, der der angegebenen Bedingung entspricht.
Wenn die Nachricht keiner Bedingung entspricht, wird sie nicht an die Ausgänge gesendet.
Anwendungsbeispiele
Beispiel 1: Filterung von Temperaturdaten
Aufgabe:
Die Daten in drei Kategorien unterteilen: niedrige, normale und hohe Temperatur.
Flow:
[inject] ---> [function] ---> [switch] ---> [debug (low temp)]
| [debug (normal temp)]
| [debug (high temp)]
Einstellungen des Knotens switch
:
- Property:
msg.payload
- Bedingungen:
is less than 10
→ Ausgang 1is between 10 and 30
→ Ausgang 2is greater than 30
→ Ausgang 3
Ergebnis:
Die Temperaturen werden basierend auf ihrem Wert weitergeleitet.