Nœud switch
Le nœud switch route les messages selon leur contenu, leur structure ou d'autres conditions. Il permet de créer une logique conditionnelle dans les flux.
Paramètres du nœud switch

1. Name
Nom du nœud.
Il s'affiche dans l'espace de travail et permet d'identifier le nœud.
Si vous laissez ce champ vide, le nœud s'appelle switch.
Exemple :
- Nom du nœud :
check status
2. Property
Propriété de l'objet message msg sur laquelle les conditions sont vérifiées. Par défaut : payload.
Exemple :
msg.payloadmsg.topicmsg.device.temperature
Les propriétés d'environnement (flow, global) sont aussi prises en charge.
3. Check
- check all rules (par défaut) :
si le message remplit plusieurs conditions, il peut être envoyé vers plusieurs sorties. - stop after first match :
le message n'est envoyé que vers la première sortie dont il remplit la condition.
4. Rules
Les règles définissent la logique de routage. Chaque règle est liée à une sortie du nœud : il y a autant de sorties que de règles. Lorsque plusieurs règles correspondent, c'est le champ Check qui détermine vers combien de sorties le message est envoyé.
Une règle comporte deux champs : Condition, le type de condition, et Value, la valeur de comparaison. Pour les conditions equals true, equals false, equals null, not equals null, empty et not empty, le champ Value n'est pas affiché.
Types de conditions disponibles :
==: vérifie si la valeur est égale.!=: vérifie si la valeur est différente.<: 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é indiquée.between: vérifie si la valeur se situe dans la plage indiquée (bornes incluses).contains: vérifie si la chaîne ou le tableau contient la valeur indiqué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 est du type indiqué (par exemplestring,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'applique si aucune autre condition n'est remplie.
Exemple :
- Condition :
>, Value :50
Données d'entrée
Le nœud reçoit un objet msg.
Les propriétés vérifiées sont définies dans le champ Property.
Données de sortie
Le nœud envoie le message msg vers la sortie dont il remplit la condition.
Si le message ne remplit aucune condition, il n'est envoyé vers aucune sortie.
Exemples d'utilisation
Exemple 1 : filtrer des données de température
Tâche :
Répartir 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 nœud switch :
- Property :
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 sont routées selon leur valeur.