> 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

Acheminez 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 les autres.

## Vue d'ensemble technique et fonctionnalités

{% columns %}
{% column %}
Le **Logique** 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, puis achemine les résultats vers différents chemins selon que la validation réussit ou échoue. Le nœud vous permet de construire des flux de travail IF->THEN/ELSE où différentes actions se déclenchent automatiquement selon les 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, s'appuyant sur [le langage d'expressions 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 [les expressions et la syntaxe de la 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

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 circulent via la connexion THEN (verte) avec l'attribut booléen défini sur `true`.
* **Résultats faux** : Les données circulent via 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` à la place de `false`. [Valeurs manquantes et routage null](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).

Cette évaluation se fait 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 d'évaluation dans [Analyseur de données](/docs/user/fr/guide/account/iot-logic/data-stream-analyzer.md) pour diagnostiquer les conditions et vérifier la logique
* **Ajoutés en tant que capteurs personnalisés** : Intégration à l'interface principale de Navixy pour une surveillance continue

En tant que capteurs personnalisés, ces attributs permettent deux fonctionnalités clés :

* **Déclenchement des règles d’alertes** : Vous pouvez créer des règles personnalisées basées sur la valeur d'un capteur pour 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 [widget Liste des traceurs](/docs/user/fr/guide/tracking/objects-list.md) pour surveiller sa valeur avec les autres mesures de l'appareil. Pour savoir comment créer un capteur personnalisé à partir d'un attribut IoT Logic, consultez [Affichage des 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** Le nœud nécessite une connexion à au moins un nœud précédent (**Source de données** ou autres nœuds de traitement) pour recevoir des données d'entrée à valider.
{% endhint %}

### Fonctionnalités du nœud

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

* **Acheminement conditionnel des données** : Créez des flux de travail à embranchements qui dirigent automatiquement les données en fonction d'expressions logiques renvoyant des résultats vrais ou faux.
* **Validation en temps réel** : Testez les données d'appareil entrantes par rapport aux règles métier et aux seuils opérationnels dès leur arrivée.
* **Prise en charge de conditions complexes** : Combinez plusieurs paramètres à l'aide d'opérateurs logiques (AND, OR, etc.) pour une prise de décision sophistiquée.
* **Conditions basées sur une zone géographique** : 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. Voir [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 (vrai) et ELSE (faux, 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 lors de son utilisation.

### Étapes de configuration

{% stepper %}
{% step %}

#### Indiquez 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’un excès de vitesse*).
* Ce nom s'affichera dans le diagramme du flux pour faciliter l'identification.
  {% endstep %}

{% step %}

#### Définissez 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 aucun n'est spécifié.
  {% endstep %}

{% step %}

#### Créez une expression conditionnelle

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

* Utilisez [des opérateurs logiques conformément à la syntaxe du langage d'expressions 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 (vrai/faux) pour que le nœud fonctionne correctement. Une valeur manquante peut se comporter différemment. Voir [Valeurs manquantes et routage null](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).
* Utilisez la [fonction de saisie semi-automatique](/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 zone géographique](/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 Appliquer les modifications** pour terminer la création du nœud.
{% endstep %}

{% step %}

#### Connectez les chemins de sortie

Une fois le nœud configuré, 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 est évaluée à vrai.
* **Connexion ELSE** (rouge) : se connecte aux nœuds qui doivent traiter les données chaque fois que l'expression n'est pas évaluée à vrai. Cela inclut un résultat faux 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 `!=` comparaison avec une valeur manquante et un littéral non nul s'évalue à `true` et est acheminée vers THEN à la place, et il en va de même pour `!~`et `!^` et `!$` lorsque la valeur provient de `value()`. Les erreurs de syntaxe sont également acheminées vers ELSE, mais stockent l'attribut comme `null`, et non `false`. [Valeurs manquantes et routage 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 sûrs pour les valeurs nulles 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, voir [les expressions et la syntaxe de la 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 d'é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:verte;">verte</mark>)

* **S'active lorsque** : L'expression logique renvoie `true`.
* **Exigence de connexion** : Obligatoire. Chaque nœud Logique 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 des règles d’alertes, traitement spécial, calculs conditionnels ou acheminement des données vers des points de sortie spécifiques.

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

* **S'active lorsque** : L'expression logique renvoie `false` est évaluée à `null` ou ne peut pas être évaluée.
* **Exceptions à surveiller** : La plupart des comparaisons avec valeur manquante sont acheminées ici. Un `!=` comparaison avec une valeur manquante et un littéral non nul est acheminée vers THEN à la place, et il en va de même pour `!~`et `!^` et `!$` sur une `value()` résultat.
* **La valeur stockée n'est pas toujours `false`** : Le routage vers ELSE ne garantit pas que l'attribut booléen soit stocké comme `false`. Les comparaisons relationnelles (`<`, `<=`, `>`, `>=`) et une simple référence à une valeur manquante aboutissent sur ELSE avec l'attribut laissé `null`. [Valeurs manquantes et routage 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 uniquement lorsque vous devez traiter les 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. Le routage des données manquantes dépend de l'opérateur. Voir [Valeurs manquantes et routage null](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing).
* **Utilisations typiques** : Journalisation 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**

Lorsque vous vous connectez à 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 les 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 nœud Point de sortie

{% hint style="danger" %}
**Erreur de validation :** Les flux sans Points de sortie sur toutes les branches ne pourront pas être enregistrés et renverront l'erreur.
{% endhint %}

## Questions fréquentes

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

Oui. **Logique** Les nœuds peuvent faire référence à n'importe quels attributs disponibles à partir des sources de données connectées, y compris les paramètres d'appareil d'origine et les attributs calculés par les nœuds **Initialiser un Attribut** précédents. La fonction de saisie semi-automatique 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 comme `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 ?

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 ?

Les résultats du nœud Logique 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 sous la forme de `true` vrai `false`ou `null` faux, mais une valeur manquante peut laisser l'attribut [Valeurs manquantes et routage 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 fort probable que la condition utilise `!=` face à un littéral non nul, ou `!~`sur une valeur qui n'a jamais été reçue. Ces deux opérateurs considèrent « aucune valeur » comme différente du littéral avec lequel vous la comparez, ils s'évaluent donc à `true` et sont acheminés vers THEN. Une valeur par défaut sûre ferait l'inverse. Les `!^` et `!$` opérateurs font de même sur un résultat manquant `value()` , et donnent `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 si la condition ne doit se déclencher qu'une fois que l'attribut possède une valeur réelle. Voir [Valeurs manquantes et routage null](/docs/user/fr/guide/account/iot-logic/nodes/logic-node/logic-node-expressions-and-syntax.md#missing-values-and-null-routing) pour le détail complet opérateur par opérateur.

#### Puis-je enchaîner plusieurs nœuds Logique ensemble ?

Oui. Vous pouvez connecter **Logique** des nœuds de manière séquentielle 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 précédents **Logique** nœuds, ce qui permet des workflows 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 de la Logique doivent-elles se connecter à des Points de sortie ?

Chaque branche de la Logique 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 entre le nœud Logique et 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
