Noeud switch
Le noeud switch
est conçu pour router des messages en fonction de leur contenu, structure ou d'autres conditions. C'est un outil puissant pour créer une logique conditionnelle dans les flux.
Paramètres du noeud switch
1. Nom
Champ pour indiquer le nom du noeud.
Le nom s'affiche dans l'espace de travail et aide à identifier facilement le noeud.
S'il est laissé vide, le noeud sera appelé inject
.
Exemple :
- Nom du noeud :
check status
2. Propriété
Indique quelle propriété de l'objet message msg
sera utilisée pour vérifier les conditions.
Exemple :
msg.payload
msg.topic
msg.device.temperature
Les propriétés d'environnement (flow
, global
) et les expressions JSONata (commençant par $
) sont également prises en charge.
3. Vérification
- Vérification jusqu'à la première correspondance (Par défaut) :
Le message est envoyé uniquement à la première sortie qui satisfait la condition. - Vérification de toutes les correspondances :
Le message peut être envoyé à plusieurs sorties s'il correspond à plusieurs conditions.
3. Règles
Définissent la logique de routage. Chaque condition est liée à l'une des sorties du noeud. Le message sera envoyé à la première sortie appropriée.
Types de conditions disponibles :
==
: Vérifie l'égalité de la valeur.!=
: Vérifie l'inégalité.<
: Vérifie si la valeur est inférieure.<=
: Vérifie si la valeur est inférieure ou égale.>
: Vérifie si la valeur est supérieure.>=
: Vérifie si la valeur est supérieure ou égale.has key
: Vérifie si l'objet contient la clé spécifiée.between
: Vérifie si la valeur se situe dans la plage spécifiée (inclus).contains
: Vérifie si la chaîne ou le tableau contient la valeur spécifiée.matches regex
: Vérifie si la chaîne correspond à l'expression régulière.equals true
: Vérifie si la valeur est égale àtrue
.equals false
: Vérifie si la valeur est égale àfalse
.equals null
: Vérifie si la valeur est égale ànull
.not equals null
: Vérifie si la valeur n'est pas égale ànull
.is of type
: Vérifie si la valeur correspond au type spécifié (par exemple,string
,number
,boolean
).empty
: Vérifie si la chaîne, le tableau ou l'objet est vide.not empty
: Vérifie si la chaîne, le tableau ou l'objet n'est pas vide.else
: S'exécute si aucune des autres conditions n'est remplie.
Exemple :
msg.payload
est supérieur à50
Données d'entrée
Le noeud accepte un objet msg
.
Les propriétés exactes qui seront vérifiées sont définies dans le champ Propriété.
Données de sortie
Le noeud envoie le message msg
à la sortie qui correspond à la condition spécifiée.
Si le message ne correspond à aucune condition, il n'est pas envoyé aux sorties.
Exemples d'utilisation
Exemple 1 : Filtrage des données de température
Tâche :
Diviser les données en trois catégories : température basse, normale et élevée.
Flux :
[inject] ---> [function] ---> [switch] ---> [debug (low temp)]
| [debug (normal temp)]
| [debug (high temp)]
Paramètres du noeud switch
:
- Propriété :
msg.payload
- Conditions :
is less than 10
→ Sortie 1is between 10 and 30
→ Sortie 2is greater than 30
→ Sortie 3
Résultat :
Les températures seront routées en fonction de leur valeur.