> For the complete documentation index, see [llms.txt](https://navixy.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://navixy.com/docs/user/fr/guide/account/iot-logic/nodes/logic-node.md).

# Logique

Orientez les flux de données IoT Logic selon des conditions avec le nœud Logique. Évaluez les valeurs de télémétrie, déclenchez des actions pour les enregistrements correspondants et ignorez le reste.

## Vue d'ensemble technique et capacités

{% columns %}
{% column %}
Le **Logique** Le nœud crée des points de branchement intelligents qui acheminent les données entrantes vers différents chemins en fonction de conditions logiques. Il reçoit des données d'autres nœuds, les valide par rapport aux conditions que vous avez définies, et achemine les résultats vers différents chemins selon que la validation réussit ou échoue. Le nœud vous permet de créer des flux de travail IF->THEN/ELSE où différentes actions se produisent automatiquement en fonction des conditions de données en temps réel.
{% endcolumn %}

{% column %}

<figure><img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-82bc1f63ee59856cd086bcafb471df3874d45cb5%2Fiot-logic-logic-node-tile.png?alt=media" alt="IF/THEN Logic node tile"><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
Le **Logique** Les nœuds sont configurés séparément pour chaque flux dans l'interface utilisateur de la plateforme Navixy. Chaque nœud ne contient qu'une seule formule logique, en s'appuyant sur [le langage d'expression Navixy IoT Logic](/docs/iot-logic-api/technologies/navixy-iot-logic-expression-language.md).\
Pour les options de syntaxe spécifiques liées aux expressions logiques, consultez [Expressions et syntaxe de Logique](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md).
{% endhint %}

<figure><img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-4501f0ee515603cadec633c0b982378708c29190%2Fiot-logic-logic-node-in-flow.png?alt=media" alt="IF/THEN Logic node positioning in the flow architecture (with inbound and outbound connections)"><figcaption></figcaption></figure>

### Comment fonctionnent les nœuds Logique IF/THEN

Lorsque les données atteignent pour la première fois un **Logique** nœud, IoT Logic crée un attribut booléen défini par l'utilisateur qui stocke les résultats de l'évaluation. Chaque paquet de données suivant est évalué par rapport à votre expression logique, ce qui met à jour la valeur de cet attribut et achemine les données en conséquence :

* **Résultats vrais** : Les données passent par la connexion THEN (verte) avec l'attribut booléen défini sur `true`.
* **Résultats faux** : Les données passent par la connexion ELSE (rouge) avec l'attribut booléen défini sur `false`. C'est le cas habituel, mais pas le seul : en cas de valeur manquante, certains opérateurs acheminent vers ELSE tout en laissant l'attribut `null` au lieu de `false`. Voir [Valeurs manquantes et routage vers null](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).

Cette évaluation s'effectue indépendamment pour chaque paquet de données, ce qui permet à différents enregistrements provenant du même appareil de suivre des chemins différents en fonction des conditions en temps réel.

### Intégration à l'architecture du flux

Les attributs booléens créés par **Logique** les nœuds vont au-delà du routage du flux et s'intègrent aux capacités de surveillance plus larges de Navixy. Comme il s'agit d'attributs personnalisés définis par l'utilisateur, ils peuvent être :

* **Surveillés en temps réel** : Consultez les résultats de l'évaluation dans [Analyseur de données](/docs/user/fr/guide/account/iot-logic/data-stream-analyzer.md) pour dépanner les conditions et vérifier la logique
* **Ajoutés en tant que capteurs personnalisés** : Intégrer à l'interface principale de Navixy pour une surveillance continue

En tant que capteurs personnalisés, ces attributs offrent deux capacités clés :

* **Déclenchement de règles d’alertes** : Vous pouvez créer des règles personnalisées basées sur la valeur d'un capteur afin de recevoir des notifications en cas d'écarts. Pour plus de détails sur la création des règles, consultez [Règles et notifications](/docs/user/fr/guide/events-and-notifications.md).
* **Surveillance des entités** : Vous pouvez ajouter un attribut au [Liste de traceurs](/docs/user/fr/guide/tracking/objects-list.md) widget pour surveiller sa valeur avec les autres mesures de l'appareil. Pour plus de détails sur la création d'un capteur personnalisé à partir d'un attribut IoT Logic, consultez [Affichage de nouveaux attributs calculés sur la plateforme Navixy](/docs/user/fr/guide/account/iot-logic/nodes/initiate-attribute-node/displaying-new-calculated-attributes-on-the-navixy-platform.md).

{% hint style="info" %}
Le **Logique** nœud nécessite une connexion à au moins un nœud précédent (**Source de données** ou d'autres nœuds de traitement) afin de recevoir les données d'entrée à des fins de validation.
{% endhint %}

### Capacités du nœud

Le **Logique** Le nœud offre :

* **Routage conditionnel des données** : Créez des flux de travail à branches qui dirigent automatiquement les données en fonction d'expressions logiques renvoyant des résultats true ou false.
* **Validation en temps réel** : Testez les données entrantes de l'appareil par rapport aux règles métier et aux seuils opérationnels au fur et à mesure de leur arrivée.
* **Prise en charge de conditions complexes** : Combinez plusieurs paramètres à l'aide d'opérateurs logiques (ET, OU, etc.) pour une prise de décision sophistiquée.
* **Conditions basées sur des zones géographiques** : Référencez directement des zones géographiques Navixy nommées dans les expressions à l'aide des `inGeofence()`, `enterGeofence()` et `leaveGeofence()` fonctions, sans comparaison manuelle des coordonnées. `geofenceName()` renvoie le nom de la zone géographique dans laquelle se trouve l'appareil, de sorte qu'une seule condition peut couvrir de nombreuses zones. Consultez [Fonctions de zone géographique](/docs/user/fr/guide/account/iot-logic/nodes/geofence-functions.md).
* **Création d'attributs** : Générez des attributs booléens qui enregistrent les résultats de validation pour les utiliser dans d'autres nœuds, les systèmes de surveillance de Navixy et des services tiers.
* **Chemins de sortie flexibles** : Acheminez les données via les connexions THEN (true) et ELSE (false, ou parfois null en cas de valeur manquante) pour déclencher différentes actions ultérieures.

## Options de configuration

{% columns %}
{% column valign="middle" %}
Le **Logique** Le nœud vous permet de définir des expressions conditionnelles qui évaluent les données entrantes et créent des chemins de branchement dans votre flux en fonction des résultats.
{% endcolumn %}

{% column %}

<figure><img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-b6c0a06da08316f5e17ead42e1e5b2083b59603a%2FLogic_node_edit.png?alt=media" alt=""><figcaption></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

Voyons quels éléments ce nœud utilise et ce que vous pouvez configurer lorsque vous travaillez avec lui.

### Étapes de configuration

{% stepper %}
{% step %}

#### Spécifiez le nom du nœud

Saisissez un nom descriptif pour ce **Logique** nœud.

* Utilisez un nom qui identifie clairement l'objectif de la validation (par exemple, *Vérification d'alerte de température*, *Détection d'excès de vitesse*).
* Ce nom sera affiché dans le diagramme de flux pour faciliter l'identification.
  {% endstep %}

{% step %}

#### Définir le nom de l'expression

Saisissez le nom de l'attribut booléen qui stockera le résultat de la validation.

* Cet attribut apparaîtra dans [Analyseur de données](/docs/user/fr/guide/account/iot-logic/data-stream-analyzer.md) et sera disponible pour une utilisation dans les nœuds suivants.
* Utilisez des noms descriptifs comme *high\_temperature\_alert* ou speed\_violation\_detected.
* Le système générera automatiquement des noms comme *logic\_1*, *logic\_2* si rien n'est spécifié.
  {% endstep %}

{% step %}

#### Créez une expression conditionnelle

Construisez votre énoncé logique à l'aide du champ d'expression.

* Utilisez [des opérateurs logiques conformément à la syntaxe du langage d'expression Navixy](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md) pour faire référence aux paramètres de l'appareil et aux attributs calculés.
* L'expression doit renvoyer une valeur booléenne (true/false) pour le bon fonctionnement du nœud. Une valeur manquante peut se comporter différemment. Consultez [Valeurs manquantes et routage vers null](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).
* Utilisez l’ [fonction d'autocomplétion](/docs/user/fr/guide/account/iot-logic/nodes/initiate-attribute-node/managing-attributes.md#autofill-attribute-names) pour sélectionner les attributs disponibles à partir des sources de données connectées.
* Pour faire référence à une zone géographique Navixy comme condition, utilisez le [sélecteur de zones géographiques](/docs/user/fr/guide/account/iot-logic/nodes/geofence-functions.md#how-to-add-a-geofence-condition) dans le champ d'expression.
  {% endstep %}

{% step %}

#### Enregistrez la configuration du nœud

Cliquez sur **Appliquez les modifications** pour terminer la création du nœud.
{% endstep %}

{% step %}

#### Connectez les chemins de sortie

Après avoir configuré le nœud, vous devez établir des connexions pour les résultats de validation.

* **Connexion THEN** (verte) : se connecte aux nœuds qui doivent traiter les données lorsque l'expression renvoie true.
* **Connexion ELSE** (rouge) : se connecte aux nœuds qui doivent traiter les données chaque fois que l'expression ne s'évalue pas à true. Cela inclut un résultat false ou une valeur manquante que le nœud n'a pas pu évaluer.
* La connexion THEN est obligatoire, tandis que la connexion ELSE est facultative.
  {% endstep %}
  {% endstepper %}

{% hint style="warning" %}
Les données manquantes sont souvent acheminées vers le chemin ELSE, mais pas toujours. Un `!=` comparatif avec une valeur manquante et un littéral non nul s'évalue à `true` et est acheminé vers THEN à la place, de même que `!~` et `!^` et `!$` lorsque la valeur provient de `value()`. Les erreurs de syntaxe sont également acheminées vers ELSE, mais stockent l'attribut en tant que `null`, et non `false`. Voir [Valeurs manquantes et routage vers null](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing) pour l'ensemble complet des modèles tolérants à null et des tableaux d'opérateurs.
{% endhint %}

Pour des informations détaillées sur la syntaxe des expressions, les opérateurs et le comportement du flux de données, consultez [Expressions et syntaxe de Logique](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md).

## Connexions de sortie et flux de données

Le **Logique** Le nœud crée deux chemins de sortie distincts en fonction des résultats de l'évaluation de l'expression.

<figure><img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-4501f0ee515603cadec633c0b982378708c29190%2Fiot-logic-logic-node-in-flow.png?alt=media" alt="IF/THEN Logic node showing THEN and ELSE connections with green and red color coding"><figcaption></figcaption></figure>

### Connexion THEN (<mark style="color:vert;">vert</mark>)

* **S'active lorsque** : L'expression logique renvoie `true`.
* **Exigence de connexion** : Obligatoire. Chaque nœud Logique IF/THEN doit avoir au moins une sortie THEN.
* **Connexions multiples** : Peut se connecter à plusieurs nœuds suivants pour un traitement parallèle.
* **Utilisations typiques** : Déclenchement de règles d’alertes, traitement spécial, calculs conditionnels ou acheminement des données vers des points de terminaison spécifiques.

### Connexion ELSE (<mark style="color:rouge;">rouge</mark>)

* **S'active lorsque** : L'expression logique renvoie `false`, s'évalue à `null`, ou ne peut pas être évaluée.
* **Exceptions à surveiller** : La plupart des comparaisons avec une valeur manquante sont acheminées ici. Un `!=` comparatif entre une valeur manquante et un littéral non nul est acheminé vers THEN à la place, de même que `!~` et `!^` et `!$` sur une valeur manquante `value()` résultat.
* **La valeur stockée n'est pas toujours `false`** : L'acheminement vers ELSE ne garantit pas que l'attribut booléen sera stocké comme `false`. Les comparaisons relationnelles (`<`, `<=`, `>`, `>=`) et une référence brute à une valeur manquante aboutissent à ELSE, avec l'attribut laissé `null`. Voir [Valeurs manquantes et routage vers null](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).
* **Exigence de connexion** : Facultative. Utilisez-la seulement lorsque vous devez gérer des résultats négatifs.
* **Gestion des erreurs** : Traite les cas où les expressions ne peuvent pas être évaluées en raison d'erreurs de syntaxe ou de types de données invalides. L'acheminement des données manquantes dépend de l'opérateur. Consultez [Valeurs manquantes et routage vers null](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).
* **Utilisations typiques** : Enregistrement des validations échouées, acheminement des données via des chemins de traitement alternatifs ou poursuite des opérations normales.

### **Exigence de nœud terminal**

Lors de la connexion à des nœuds terminaux ([Action](/docs/user/fr/guide/account/iot-logic/nodes/action-node.md), [Webhook](/docs/user/fr/guide/account/iot-logic/nodes/webhook-node.md)) qui ne prennent pas en charge les connexions sortantes, créez des connexions parallèles pour garantir que le nœud terminal et un Point de sortie reçoivent des données :

<figure><img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-4501f0ee515603cadec633c0b982378708c29190%2Fiot-logic-logic-node-in-flow.png?alt=media" alt=""><figcaption></figcaption></figure>

**Pourquoi les deux branches ont besoin de Points de sortie :**

* Garantit la persistance des données et la visibilité du système
* Permet la validation du flux
* Les deux branches peuvent partager le même Point de sortie si nécessaire

{% hint style="danger" %}
**Erreur de validation :** Les flux sans Points de sortie sur toutes les branches échoueront à l'enregistrement avec cette erreur.
{% endhint %}

## Foire aux questions

#### Puis-je utiliser des attributs créés par d'autres nœuds dans les expressions Logique IF/THEN ?

Oui. **Logique** Les nœuds peuvent faire référence à tous les attributs disponibles à partir des sources de données connectées, y compris les paramètres d'origine de l'appareil et les attributs calculés par les nœuds **Initialiser un Attribut** précédents. La fonction d'autocomplétion vous aide à sélectionner parmi tous les attributs disponibles.

#### Que se passe-t-il si mon expression contient des erreurs de syntaxe ?

Si une expression contient des erreurs de syntaxe ou ne peut pas être évaluée, le **Logique** nœud achemine les données via la connexion ELSE et stocke l'attribut en tant que `null`, et non `false`. Vérifiez la syntaxe de l'expression et assurez-vous que tous les attributs référencés existent dans votre flux de données.

#### Puis-je connecter plusieurs nœuds à la même sortie du nœud Logique IF/THEN ?

Oui. Les connexions THEN et ELSE prennent toutes deux en charge plusieurs connexions sortantes, ce qui vous permet de déclencher plusieurs actions différentes en fonction de la même condition logique. Cela permet un traitement parallèle pour des flux de travail métier complexes.

#### Comment surveiller les résultats du nœud Logique IF/THEN ?

Les résultats du nœud Logique IF/THEN apparaissent sous forme d'attributs booléens dans le [Analyseur de données](/docs/user/fr/guide/account/iot-logic/data-stream-analyzer.md) tableau. Sélectionnez vos appareils et recherchez le nom d'attribut que vous avez spécifié dans le champ du nom de l'expression. Les valeurs s'affichent généralement comme `true` ou `false`, mais une valeur manquante peut laisser l'attribut `null` à la place, selon l'opérateur. Consultez [Valeurs manquantes et routage vers null](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).

#### Pourquoi ma condition s'est-elle déclenchée alors que l'attribut n'a pas encore de valeur ?

Il est très probable que la condition utilise `!=` avec une comparaison à un littéral non nul, ou `!~`, sur une valeur qui n'a jamais été reçue. Les deux opérateurs considèrent « aucune valeur » comme différente du littéral auquel vous la comparez, ils s'évaluent donc à `true` et acheminent vers THEN. Une valeur par défaut sûre ferait l'inverse. Les `!^` et `!$` opérateurs font de même sur un `value()` résultat manquant, et renvoient `null` lorsque l'attribut est référencé par son nom. Ajoutez une vérification de présence (`value('attr', 0, 'all') != null && ...`) ou une `== null` vérification == null si la condition ne doit se déclencher qu'une fois que l'attribut a une valeur réelle. Consultez [Valeurs manquantes et routage vers null](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing) pour l'analyse complète opérateur par opérateur.

#### Puis-je enchaîner plusieurs nœuds Logique IF/THEN ?

Oui. Vous pouvez connecter **Logique** des nœuds séquentiellement pour créer des arbres de décision complexes. Chaque **Logique** nœud peut faire référence aux attributs booléens créés par les **Logique** nœuds précédents, ce qui permet des flux de travail de validation sophistiqués en plusieurs étapes.

<figure><img src="https://2196179364-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F446mKak1zDrGv70ahuYZ%2Fuploads%2Fgit-blob-ee4829400641ec381aa3dec65b7dbb1d01d6ebc1%2Fiot-logic-logic-node-chained.png?alt=media" alt="Example flow showing multiple IF/THEN Logic nodes connected in sequence for complex decision trees"><figcaption></figcaption></figure>

#### Pourquoi les branches Logique IF/THEN doivent-elles se connecter à des Points de sortie ?

Chaque branche Logique IF/THEN doit se terminer par un Point de sortie pour la validation du flux de données et la visibilité du système. Lorsque vous utilisez des nœuds terminaux (Action, Webhook) qui ne prennent pas en charge les connexions sortantes, créez une connexion parallèle depuis le nœud Logique IF/THEN directement vers un Point de sortie. Les deux branches peuvent partager le même Point de sortie si nécessaire.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://navixy.com/docs/user/fr/guide/account/iot-logic/nodes/logic-node.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
