Aller au contenu principal

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

IMG2

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 :
    1. is less than 10 → Sortie 1
    2. is between 10 and 30 → Sortie 2
    3. is greater than 30 → Sortie 3

Résultat :
Les températures seront routées en fonction de leur valeur.