# Gestion des variables

<details id="bkmrk-rappel-sur-les-varia"><summary>Rappel sur les variables</summary>

<p class="callout info">Une variable est une zone mémoire contenant une **valeur susceptible d’évoluer** au cours du temps (températures, états des relais, consignes, compteurs ...)</p>

Les variables sont des **éléments essentiels** pour le fonctionnement **des scénarios,** elles permettent de stocker, échanger et exploiter les informations par le module local ou être diffusées sur le réseau pour être partagées avec d'autres modules.

Les variables peuvent être :

- **Lues** → utilisées dans des blocs de test pour prendre des décisions
- **Modifiées** → via des blocs d’action
- **Comparées** → pour orienter le déroulement

Les variables sont utilisées pour :

- **mémoriser** des valeurs ou l'état d'un appareil
- réaliser des **tests et des conditions**
- déclencher des **actions** ;
- **échanger des information**s entre modules du réseau.
- <span style="color: rgb(0, 0, 0);">E<span style="color: rgb(68, 68, 68);">ffectuer des **calculs simples**</span></span>
- <span style="color: rgb(68, 68, 68);">Gérer des **temporisations et des compteurs**</span>

<p class="callout info"><span style="color: rgb(35, 111, 161);">Les variables peuvent être :  
- **préconfigurées** et disponibles immédiatement sur un module  
- créées par l'utilisateur selon les besoins du scénario   
- utilisées localement, **partagées entre les modules d'un réseau** ou **exposées vers les systèmes tiers**</span></p>

</details><p class="callout success"><span style="color: rgb(0, 0, 0);"><span style="text-decoration: underline;">Bonnes pratiques</span> :  
*une variable bien définie et correctement documentée sera plus facile à comprendre, à configurer et à utiliser*  
</span>**<span style="color: rgb(0, 0, 0);">  
</span>**- **Définir le besoin** : déterminer précisément ce que la variable doit mesurer, représenter ou contrôler dans le scénario  
- **Vérifier les variables préconfigurées** : identifier celles qui sont déjà disponibles afin d’éviter de créer des doublons  
- **Choisir un nom explicite** : utiliser une appellation qui reflète clairement la fonction de la variable et facilite son identification dans les scénarios  
- **Vérifier le type de variable** : s’assurer qu’il est compatible avec les actions et les scénarios prévus (numérique, booléen, texte, etc.)  
- **Définir une valeur initiale** : attribuer une valeur à la variable avant de l’utiliser  
- **Préciser son rôle** : renseigner un commentaire décrivant sa fonction afin de faciliter la compréhension et la maintenance de la configuration  
</p>

### 1- Afficher les variables

Pour afficher les variables d'un module :

- allez dans le menu "*I/O*"
- puis sélectionner le mode "*Local*"

[![Capture d’écran 2026-07-24 144252.jpg](https://modlink.fr/help/uploads/images/gallery/2026-07/scaled-1680-/capture-decran-2026-07-24-144252.jpg)](https://modlink.fr/help/uploads/images/gallery/2026-07/capture-decran-2026-07-24-144252.jpg)

<span style="color: rgb(68, 68, 68);">Les variables disponibles sur le module s'affichent alors</span>

### 2- Créer une nouvelle variable

Certaines variables sont préconfigurées sur le module et peuvent être utilisées immédiatement dans les scénarios.   
*Elles couvrent les besoins les plus courants et ne nécessitent aucune configuration préalable.*

Toutefois, pour répondre à des besoins fonctionnels spécifiques ou mettre en œuvre des logiques d'automatisation plus avancées, il peut être nécessaire de **créer des variables supplémentaires**. Ces variables personnalisées permettent d'adapter précisément le fonctionnement des scénarios aux exigences de l'installation.

- Aller dans le menu « *I/O* »
- Cliquer sur le bouton "*<span style="background-color: rgb(53, 152, 219);">+Ajouter</span>*"

[![Capture d’écran 2026-07-24 153854.jpg](https://modlink.fr/help/uploads/images/gallery/2026-07/scaled-1680-/capture-decran-2026-07-24-153854.jpg)](https://modlink.fr/help/uploads/images/gallery/2026-07/capture-decran-2026-07-24-153854.jpg)

- Compléter les informations pour la création de la nouvelle variable

[![Capture d’écran 2026-11-03 172419.jpg](https://modlink.fr/help/uploads/images/gallery/2026-11/scaled-1680-/capture-decran-2026-11-03-172419.jpg)](https://modlink.fr/help/uploads/images/gallery/2026-11/capture-decran-2026-11-03-172419.jpg)

<p class="callout info">La variable créée apparaitra à la suite des variables déjà configurées.  
Le nombre de variables maximal est limité à 32.  
Une variable peut être utilisée simultanément dans plusieurs scénarios. </p>

#### 2.1- Paramétrer une variable

- Sélectionner la variable que vous souhaitez configurer et cliquer sur *l’icône pinceau.*

[![Capture d’écran 2026-11-03 174632.jpg](https://modlink.fr/help/uploads/images/gallery/2026-11/scaled-1680-/0grcapture-decran-2026-11-03-174632.jpg)](https://modlink.fr/help/uploads/images/gallery/2026-11/0grcapture-decran-2026-11-03-174632.jpg)

- Renseignez ensuite les informations de la variable dans la fenêtre qui s'ouvre

[![Capture d’écran 2026-11-03 174421.jpg](https://modlink.fr/help/uploads/images/gallery/2026-11/scaled-1680-/capture-decran-2026-11-03-174421.jpg)](https://modlink.fr/help/uploads/images/gallery/2026-11/capture-decran-2026-11-03-174421.jpg)

- **le nom**  
    il est recommandé d'utiliser un nom explicite afin d’identifier clairement la variable dans les scénarios et la supervision

<p class="callout warning">Choisissez soigneusement le nom des variables lors de leur création.   
Si une variable est renommée par la suite, **son nouveau nom ne sera pas automatiquement mis à jour dans les scénarios et les widgets qui l'utilisent** et il faudra nécessairement la remplacer manuellement</p>

- **la valeur par défaut**  
    Valeur appliquée à la variable lors du démarrage du module ou après un redémarrage.  
    Ce paramètre permet de garantir un état de fonctionnement sûr au lancement.
- **l’unité et le type d’unité**  
    Précise l’unité de mesure associée à la variable (par exemple : température et degrés celcius).  
    Important pour la cohérence des scénarios et l’affichage correct dans la supervision
- **le type de variable Home Assistant**  
    Ce paramètre est essentiel pour assurer la bonne communication et l’interopérabilité avec les plateformes domotiques
- **les droits d’accès**  
    Ils permettent de définir comment la variable peut être utilisée :
    
    \- lecture seule : elle peut être consultée mais non modifiée
    
    \- écriture seule : elle peut être modifiée sans possibilité de lecture
    
    \- lecture et écriture : elle peut être à la fois consultée et modifiée
    
    Ce paramétrage garantit un contrôle sécurisé de l’utilisation des variables dans les scénarios et les interfaces externes
- **un commentaire, descriptif personnalisé** Champ libre permettant de saisir tout type de remarque ou d'information complémentaire pour documenter l’usage spécifique ou les particularités de la variable
- les **options d'exposition et de diffusion** sur le réseau  
    Permettent de définir la visibilité des variables sur d'autres interfaces, avec d'autres protocoles  
    Facilitent l’intégration avec des systèmes tiers et le pilotage à distance.  
    - ***Scénario distant*** Permet l’utilisation de la variable par des scénarios exécutés à distance (supervision ...)  
    - ***Home Assistant***  
    Expose la variable dans <span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">Home Assistant</span></span>.  
    *Exemple : récupération d’un état (alarme, disjoncteur) ou commande d’un équipement depuis Home Assistant  
    - **Wireless***  
    Autorise l’échange direct avec les modules 2PIO distants  
    - ***Modbus***  
    Expose la variable via le protocole <span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">Modbus (</span></span>utilisé en automatisme, GTB)  
    - ***Site Web***  
    Rend la variable accessible depuis l’interface Web locale ou distante du système  
    - ***OPC UA***  
    Permet l’intégration avec des superviseurs industriels (SCADA, GTB ...)  
    - ***Non sécurisé***  
    Permet un accès simplifié à la variable sans mécanisme de sécurité renforcé.  
    *À utiliser uniquement dans des environnements maîtrisés*

Appuyer sur le bouton "<span style="background-color: rgb(53, 152, 219); color: rgb(0, 0, 0);">Sauvegarder</span>" pour enregistrer les modifications

#### 2.2- Configurer les valeurs d'une variable


<div class="relative basis-auto flex-col -mb-(--composer-overlap-px) pb-(--composer-overlap-px) [--composer-overlap-px:28px] grow flex" id="bkmrk-1.2--configurer-les-"><div class="flex flex-col text-sm"><section class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&:has([data-writing-block])>*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="false" data-testid="conversation-turn-20" data-turn="assistant" data-turn-id="request-WEB:cd531812-22c7-41a6-983f-660fdcbfd53e-9" dir="auto">
[![Capture d’écran 2026-07-24 154404.jpg](https://modlink.fr/help/uploads/images/gallery/2026-07/scaled-1680-/capture-decran-2026-07-24-154404.jpg)](https://modlink.fr/help/uploads/images/gallery/2026-07/capture-decran-2026-07-24-154404.jpg)

En cliquant sur le *bouton vert (lien)*, une fenêtre de configuration s’ouvre et permet de définir les valeurs associées à une variable pour les rendre plus lisibles dans les scénarios.  
Il est possible d’ajouter autant de lignes que nécessaire afin de détailler les différentes valeurs et leurs significations.   
Chaque ligne doit comporter :

- un champ **valeur**
- un **libellé associé**

Cette configuration facilite la compréhension et l’interprétation des variables lors de la programmation des scénarios, en associant chaque valeur à une action ou un état clairement identifié.

<span style="text-decoration: underline;">Exemple :</span>

- Valeur : 1 → Libellé : Allumage
- Valeur : 2 → Libellé : Extinction

</section><section class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&:has([data-writing-block])>*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="false" data-testid="conversation-turn-20" data-turn="assistant" data-turn-id="request-WEB:cd531812-22c7-41a6-983f-660fdcbfd53e-9" dir="auto"></section></div></div><section class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&:has([data-writing-block])>*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="false" data-testid="conversation-turn-32" data-turn="assistant" data-turn-id="request-WEB:cd531812-22c7-41a6-983f-660fdcbfd53e-15" dir="auto" id="bkmrk-seules-les-variables"></section>
<div class="relative basis-auto flex-col -mb-(--composer-overlap-px) pb-(--composer-overlap-px) [--composer-overlap-px:28px] grow flex" id="bkmrk-1.2--configurer-les--2"></div><section class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&:has([data-writing-block])>*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="false" data-testid="conversation-turn-32" data-turn="assistant" data-turn-id="request-WEB:cd531812-22c7-41a6-983f-660fdcbfd53e-15" dir="auto" id="bkmrk--8"></section>### 3- Supprimer une variable

[![Capture d’écran 2026-07-24 154404.jpg](https://modlink.fr/help/uploads/images/gallery/2026-07/scaled-1680-/hL4capture-decran-2026-07-24-154404.jpg)](https://modlink.fr/help/uploads/images/gallery/2026-07/hL4capture-decran-2026-07-24-154404.jpg)

<div class="TyagGW_tableContainer" id="bkmrk--10"></div><section class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&:has([data-writing-block])>*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="false" data-testid="conversation-turn-32" data-turn="assistant" data-turn-id="request-WEB:cd531812-22c7-41a6-983f-660fdcbfd53e-15" dir="auto" id="bkmrk-utiliser-le-bouton-r">Utiliser le bouton rouge (corbeille) pour supprimer une variable créée par un utilisateur, sous réserve des droits d’accès octroyés.

Les variables préconfigurées nécessaires au fonctionnement du système, ne peuvent pas être supprimées.

</section>