# Notions clés de ModLink

**Présentation des concepts fondamentaux nécessaires à la compréhension du fonctionnement du système.**  
**Ces notions sont utilisées dans l’ensemble de la configuration et de l’exploitation.**

# Interface d'administration

L’interface d’administration constitue le point d’accès central aux fonctions de **configuration, de supervision et de maintenance** de l’installation. Elle permet à l’intégrateur de paramétrer les équipements, configurer le WiFi, gérer les variables et concevoir les scénarios d’automatisation.   
L’accès à l’interface se fait directement depuis un navigateur internet - que ce soit sur un ordinateur ou un smartphone - sans nécessiter de télécharger une application dédiée. Pour certaines opérations, comme la conception et la gestion des scénarios, il est toutefois recommandé d’utiliser un ordinateur afin de bénéficier d’une meilleure visibilité et d’un confort d’édition optimal.

La **page d’accueil** se présente sous la forme d’un tableau de bord regroupant des **raccourcis d’accès direct** aux fonctionnalités principales de l’interface. Ces raccourcis permettent de naviguer et d'accéder rapidement aux fonctions essentielles pour effectuer des opérations de configuration, de diagnostic ou de maintenance :

- widgets
- scénarios
- objets
- variables

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

### 1- Administration d’un ou de plusieurs modules

L’intégrateur peut utiliser l’interface pour administrer :

- **Un module unique** : accéder et configurer directement les paramètres, variables et scénarios spécifiques à ce module
- **Un groupe de modules** : appliquer des configurations communes, synchroniser des scénarios ou superviser plusieurs modules simultanément

Cette flexibilité permet de gérer efficacement des installations individuelles comme des parcs multi-modules.

### 2- Paramètres d’affichage et de langue

L’interface permet également de personnaliser l’expérience utilisateur :

- **Choix de la langue** de l’interface
- **Mode d’affichage** : possibilité de choisir entre **mode clair** et **mode sombre** pour optimiser la lisibilité et le confort visuel selon l’environnement

### 3- Navigation et ergonomie

<p class="callout info">La **barre d’icônes de visualisation** affichée sur la droite de l'écran permet de :  
- agrandir la vue  
- réduire la vue  
- recentrer l’affichage sur la zone des blocs scénario  
- verrouiller et déverrouiller les blocs  
- réinitialiser l'édition de blocs</p>

# Connectivité et accès distant

### 1- Accès distant au module ModLink

- Se connecter au réseau Wi‑Fi du module
- Dans un navigateur, entrer directement dans la barre d'adresse : ### <span style="color: rgb(52, 73, 94);">**2pio\_ \_ \_ \_.modlink.fr** </span>
    
    **\_ \_ \_ \_** *identifiant du module composé de 4 caractères (chiffres &amp; lettres)*
- Le portail web du module s’ouvre automatiquement sans configuration IP préalable  
    *simplifie l'accès et évite les erreurs liées à l'adresse IP*

<p class="callout success">- fonctionne en mode AP et en mode client (sur le même réseau local)  
- aucun cloud applicatif  
- chaque module ouvre un tunnel SSH sortant vers un serveur  
- accès sécurisé depuis n'importe où</p>

### 2- Modes de connexion à Internet

- **Mode AP** avec portail captif  
    \- ModLink crée son propre réseau Wi‑Fi  
    \- Connexion directe via portail captif pour accéder à Internet
- **Mode client / serveur** - connexion via un routeur Wi‑Fi   
    \- réseau local existant  
    \- réseau isolé dédié aux IoT  
    ModLink se connecte comme client à un réseau local Wi-Fi
- Connexion via un **routeur 4G** ModLink se conncte à Internet via un réseau cellulaire

<p class="callout success">**Bonnes pratiques** :   
- Utiliser le mode AP pour la *configuration initiale*  
- Privilégier un *réseau isolé* pour les IoT  
- *Sécuriser* les réseaux, documenter les paramètres, vérifier la *stabilité du signal*</p>

### 3- Adressage IP

- DHCP avec annonce mDNS
- Découverte automatique des autres modules par mDNS

# Comptes utilisateurs, rôles et permissions

Les **comptes utilisateurs** permettent d’identifier les personnes accédant au système et de définir leurs droits.   
Chaque compte possède un identifiant, un mot de passe et un rôle déterminant les actions autorisées.  
Le système permet de créer, modifier et supprimer des comptes, d’attribuer des rôles, des permissions et de restreindre l'accès aux pages de l'interface.

Deux **rôles** sont disponibles pour les comptes utilisateurs :

### 1- Installateur

<p class="callout info"><span style="color: rgb(52, 73, 94);">Nombre d'accès autorisés : 5  
  
</span><span style="color: rgb(52, 73, 94);">Destiné aux personnes chargées de l'installation, de la configuration et de la maintenance du système.   
Ce rôle permet d'accéder à </span><span style="color: rgb(52, 73, 94);">l'ensemble des fonctions avancées de configuration, d'administration et de mise en service selon les permissions accordées</span>  
</p>

### 2- Utilisateur

<p class="callout info"><span style="color: rgb(52, 73, 94);">Nombre d'accès autorisés : 10  
  
Destiné à l'exploitation quotidienne du système par l'utilisateur final.   
Ce rôle dispose d'un accès limité aux fonctionnalités et ne peut pas accéder à la gestion ni à l'administration des comptes</span></p>

# Variables d'état et d'action

Les **variables** sont des éléments essentiels pour le fonctionnement des scénarios, elles permettant de **suivre, stocker et transmettre des informations** au sein du système.  
Elles sont notamment utilisées pour :

- mémoriser l’état d’un appareil
- suivre des mesures
- gérer des délais ou événements
- déclencher des actions automatiques

<p class="callout info">Une **variable**, c'est comme une lampe témoin sur un tableau de bord</p>

### 1- Types de variables

<p class="callout info">On distingue deux principaux types de variables :  
- Les **variables d’état** (variables en lecture) reflètent une situation ou l'état d'un équipement, d'un processus  
- Les **variables de commande** (variables en écriture) utilisées pour piloter un équipement ou modifier un état</p>

Une variable peut représenter :

- l'état ou la commande d'une entrée
- l’état ou la commande d’une sortie
- une valeur intermédiaire de calcul
- un état destiné à l’interface utilisateur

#### <span role="text">1.1- Variables pour un interrupteur</span>

Un interrupteur peut avoir des variables liées à son état et à son fonctionnement. Ces variables sont souvent mises à jour automatiquement par le système en temps réel.

- **État** : ON / OFF (1 ou 0)
- **Historique** : dernière action, timestamp du dernier changement
- **Mode** : manuel / automatique / scénario
- **Durée d’activation** : combien de temps il est resté actif

*Exemple de nommage* : `interrupteur_salon_etat`, `interrupteur_chambre_mode`

#### <span role="text">1.2- Variables pour un capteur</span>

Ces variables stockent des valeurs numériques ou textuelles utilisées dans les calculs ou scénarios, elles peuvent être modifiées manuellement ou automatiquement par le système.  
Selon le type de capteur, on peut créer des variables spécifiques :

- **Capteur de mouvement** : 
    - `mouvement_detecte` (booléen)
    - `derniere_detection` (timestamp)

- **Capteur de température / humidité** : 
    - `temperature_salon` (float, en °C)
    - `humidite_salon` (float, en %)

- **Capteur de luminosité** : 
    - `luminosite_salon` (lux)
    - `luminosite_seuil` (valeur pour déclencher scénario)

#### 1.3- Variables combinées pour scénarios

Ces variables sont utilisées pour piloter la logique des scénarios d’automatisation. Elles peuvent servir de conditions ou de déclencheurs pour activer des actions spécifiques.  
On peut ainsi créer des variables logiques basées sur plusieurs entrées :

- `presence_detectee = mouvement_detecte AND luminosite_salon < seuil`
- `interrupteur_auto = ON si presence_detectee = true`

### 2- Communication entre modules : les drapeaux partagés

<p class="callout info">Lorsque plusieurs modules sont utilisés ensemble, ils peuvent échanger des informations grâce au **partage de variables et de scénarios**</p>

<p class="callout success">Imaginez deux agents indépendants qui font leur ronde chacun dans leur coin : *ils ne se parlent pas directement mais ils peuvent voir les mêmes lampes témoin sur leur tableau de bord respectif.*  
  
C'est comme un *fil électrique invisible entre deux modules*. Lorsqu'un scénario sur le premier module « lève un drapeau » en modifiant une variable partagée, le second module voit ce changement et peut immédiatement exécuter les actions prévues dans son propre scénario. Les variables partagées servent ainsi de moyen de communication entre les modules</p>

#### 2.1- Exposition des variables

Lors de la création ou du paramétrage, chaque variable peut être exposée vers :

- scénarios locaux
- autres modules ModLink
- Modbus
- OPC UA
- accès non sécurisé (si autorisé)

La **<span style="mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast;">portée</span>** (locale ou distante) dépend exclusivement de ce paramétrage.

#### 2.2- Utilisation des variables

- Les variables permettent de **centraliser les informations** et de les rendre accessibles à différents modules et scénarios
- Les variables disponibles et préconfigurées s’affichent directement sur la page d’accueil sous forme de raccourcis. (seules les 6 premières s'affichent, pour consulter l’ensemble des variables, cliquer sur **“***+10 Tout afficher***”** ) ou bien aller dans le menu "*Objet*" pour visualiser toutes les variables disponibles
- Elles facilitent la **supervision et le diagnostic**, car l’intégrateur peut vérifier les valeurs en temps réel pour identifier des dysfonctionnements ou ajuster les comportements des scénarios

<p class="callout info"><span style="text-decoration: underline;">Bonnes pratiques</span> :  
  
- Nommer les variables de manière **claire et cohérente** pour faciliter leur identification  
- Définir **précisément la valeur** et le type d'unité le cas échéant pour éviter les erreurs dans les scénarios  
- Utiliser les variables comme **points de contrôle pour les commandes** </p>

# Scénario (automation)

### 1- Définition

Un **scénario** est un ensemble de règles qui détermine le comportement d'un module.

<p class="callout info">Le **scénario**, c'est la liste des consignes que le module exécute à chaque cycle de fonctionnement</p>

ModLink peut gérer jusqu'à **3 scénarios**, exécutés de manière autonome et pouvant être **activés** ou **désactivés** indépendamment.

<p class="callout info">Lorsque plusieurs modules sont utilisés ensemble, ils peuvent échanger des informations grâce au **partage des variables, des entrées et des sorties**  
</p>

### 2- Principe de fonctionnement

Un scénario fonctionne selon le principe d’une **boucle d’exécution continue**

<p class="callout success">Chaque scénario doit former une **boucle fonctionnelle complète** :  
**entrée → test / logique → sortie / action → mise à jour variable d’état**</p>

- les conditions sont analysées en permanence,
- les tests sont exécutés dans l'ordre défini,
- lorsqu'une condition est satisfaite, l'action correspondante est exécutée,
- dans le cas contraire, le scénario poursuit son exécution selon la logique configurée

<p class="callout success">Tel un agent de sécurité qui effectue des rondes, le scénario surveille en permanence différents points de contrôle dans un ordre défini :  
- les <span style="text-decoration: underline;">entrées</span> (voyants, ouvrants, environnement ...)  
- les <span style="text-decoration: underline;">sorties</span> (interrupteur, vanne, alerte ...)  
- les <span style="text-decoration: underline;">variables</span> (rapports des agents précédents)  
Une fois l’ensemble des vérifications effectué, le cycle se répète en permanence</p>

<details id="bkmrk-comprendre-le-princi"><summary>Comprendre le principe de fonctionnement d'un scénario</summary>

<span style="color: rgb(52, 73, 94);">**Cette section présente un *exemple de scénario.*  
Le *visuel* est accompagné d'une *description des différents blocs utilisés*, afin de faciliter la compréhension de leurs rôles et de leurs interactions.**</span>

##### **Surveillance d'une pompe de relevage** 

<span style="text-decoration: underline;">Fonctionnement général</span> :  
Ce scénario pilote une pompe de relevage (sortie 1) et surveille son bon fonctionnement : la pompe démarre lorsque le niveau haut est atteint et s'arrête lorsque le niveau bas est atteint.   
Le scénario surveille deux capteurs :  
\- capteur niveau haut (entrée 1) : indique que la cuve est pleine et qu'il faut démarrer la pompe  
\- capteur niveau bas (entrée 2) : indique que la cuve est suffisamment vidée et que la pompe peut être arrêtée  
Le scénario stoppe le processus et envoie un SMS d'alerte si la cuve n'a pas commencé à se vider après 60 secondes. Il vérifie également qu'aucun défaut n'est déjà signalé avant de lancer un nouveau cycle.

[![Scénario exemple pompe.png](https://modlink.fr/help/uploads/images/gallery/2026-06/scaled-1680-/ebWscenario-exemple-pompe.png)](https://modlink.fr/help/uploads/images/gallery/2026-06/ebWscenario-exemple-pompe.png)

- **<span style="color: rgb(52, 73, 94);"><span style="background-color: rgb(194, 224, 244);">Label "DEBUT"  
    </span>*Point de départ du scénario (lors de la mise sous tension du module et du redémarrage du système)*   
    </span>**
- **<span style="color: rgb(52, 73, 94);"><span style="background-color: rgb(194, 224, 244);">Bloc 9 "TEST VARIABLE" / Test état de la pompe</span>  
    *Vérifie la variable "état de la pompe"* </span>**<span style="color: rgb(52, 73, 94);">*- égale à 1 "pompe fonctionnelle" <span style="color: rgb(186, 55, 42);">→ va au bloc 1 "TEST STATE"</span>*</span><span style="color: rgb(52, 73, 94);"> *- égale à 0 "pompe en défaut" <span style="color: rgb(186, 55, 42);">→ retour au début du scénario "LABEL DEBUT"  
    </span>*<span style="color: rgb(68, 68, 68);">le processus est arrêté jusqu'à ce que l'agent de maintenance réinitialise le défaut (à l'aide du widget "état de la pompe")</span>  
      
    </span>
- **<span style="color: rgb(52, 73, 94);"><span style="background-color: rgb(194, 224, 244);">Bloc 1 : "TEST STATE" / Test niveau haut atteint</span>  
    </span>*****Teste le capteur de niveau haut (entrée 1) - le niveau haut est-il atteint ?***  
    \- si ON (la cuve est pleine) <span style="color: rgb(186, 55, 42);">→ va au bloc 2 "SORTIE SIMPLE"</span>  
    \- si OFF (la cuve n'est pas pleine) <span style="color: rgb(186, 55, 42);">→ retour au début du bloc 1 "TEST STATE"</span>
- **<span style="background-color: rgb(194, 224, 244);">Bloc 2 "SORTIE SIMPLE" / Pompe ON</span>  
    *Active la sortie 1* la pompe démarre et commence à évacuer l'eau *<span style="color: rgb(186, 55, 42);">→ </span>***<span style="color: rgb(186, 55, 42);">va ensuite au bloc 3 "TEST TIMER"</span>
- **<span style="background-color: rgb(194, 224, 244);">Bloc 4 "TEST TIMER" / Temporisation avant défaut</span> *Lance une temporisation de 60 secondes, au bout de laquelle s'il n'y a pas eu de changement d'état du capteur de niveau haut (entrée 1), on estime qu'il y a une anomalie de la pompe, on continue alors vers le bloc 7 "ENVOI SMS"*** <span style="color: rgb(22, 145, 121);">"*Condition par défaut / test en cours*"</span> <span style="color: rgb(186, 55, 42);">→ </span><span style="color: rgb(186, 55, 42);">va au bloc 3 "TEST STATE" tant que le décompte n'est pas terminé</span>  
    <span style="color: rgb(22, 145, 121);">*"GOTO1 time elapsed"* </span>: une fois le temps écoulé, si l'état de la variable "niveau haut" n'a toujours pas changé (le niveau de la cuve n'a pas diminué malgré le fonctionnement de la pompe) on estime qu'il y a un défaut <span style="color: rgb(186, 55, 42);">→ va au bloc 7 "ENVOI SMS"</span>
- <span style="background-color: rgb(194, 224, 244);">**Bloc 3 "TEST STATE" Test vidange commencée** </span>***Teste le niveau du capteur haut (entrée 1)** On s'attend à ce que le niveau du capteur baisse. Si le niveau n'a pas changé au bout de 60 secondes, on sort en anomalie au niveau du bloc 4.* si ON (contact fermé : le capteur haut n'a pas changé d'état) *<span style="color: rgb(186, 55, 42);">**→** </span>*<span style="color: rgb(186, 55, 42);">retourne</span>*<span style="color: rgb(186, 55, 42);"> </span>*<span style="color: rgb(186, 55, 42);">au bloc 4 "TEST TIMER"   
    <span style="color: rgb(52, 73, 94);">si OFF (contact ouvert : le niveau a baissé avant les 60 secondes) </span></span>*<span style="color: rgb(186, 55, 42);">**→** </span>*<span style="color: rgb(186, 55, 42);">va</span>*<span style="color: rgb(186, 55, 42);"> </span>*<span style="color: rgb(186, 55, 42);">au bloc 6 "TEST NIVEAU BAS ATTEINT"   
      
    </span>**<span style="color: rgb(52, 73, 94);"><span style="background-color: rgb(194, 224, 244);">Bloc 6 : "TEST STATE" / Test niveau bas atteint</span>  
    </span>*****Teste le capteur de niveau bas (entrée 2) - le niveau bas est-il atteint ?***  
    \- si ON (le niveau bas n'est pas encore atteint : la cuve n'est pas encore vide ) <span style="color: rgb(186, 55, 42);">→ retour au début du bloc 6 "TEST STATE"</span>  
    \- si OFF (le niveau bas est atteint : la cuve est vide) <span style="color: rgb(186, 55, 42);">→ va au bloc 10 "SORTIE SIMPLE"  
      
    </span>
- **<span style="background-color: rgb(194, 224, 244);">Bloc 10 "SORTIE SIMPLE" / Pompe Off</span>  
    *Arrête la sortie 1*** la pompe est stoppée ***<span style="color: rgb(186, 55, 42);">→ </span>***<span style="color: rgb(186, 55, 42);">va ensuite au bloc 11 "GOTO START"</span>
- <span style="background-color: rgb(194, 224, 244);">**Bloc 7 "ENVOI SMS" / ENVOI SMS**</span>  
    ***Envoie une alerte par SMS*** <span style="color: rgb(186, 55, 42);">***→*** va ensuite au bloc 5 "VALEUR VARIABLE"</span>  
    personnalisation du message et du numéro de Smartphone
- <span style="background-color: rgb(194, 224, 244);">**Bloc 5 "VALEUR VARIABLE" / Pompe en défaut**</span>  
    ***Fixe la valeur de l'état de la pompe à 1 (pompe en défaut) <span style="color: rgb(186, 55, 42);">→ </span>***<span style="color: rgb(186, 55, 42);">va ensuite au bloc 8 "GOTO START"  
    </span>*Visualisation de l'état de la pompe depuis l'application et possibilité pour le technicien de bloquer le processus de fonctionnement*
- **<span style="background-color: rgb(194, 224, 244);">Bloc 8 "GOTO START" / Retour au début</span>  
    *Retour au début du scénario (boucle) <span style="color: rgb(52, 73, 94);"><span style="color: rgb(186, 55, 42);">→ </span></span>****<span style="color: rgb(52, 73, 94);"><span style="color: rgb(186, 55, 42);">va au bloc 9 "TEST VARIABLE"</span></span>*

<p class="callout warning">Ce scénario nécessite la création préalable d'une variable nommée **« état de la pompe »**</p>

##### <span style="color: rgb(68, 68, 68);">**Widgets : </span>

<span style="color: rgb(68, 68, 68);">Pour ce scénario, 4 widgets ont été créés</span>

- ##### <span style="color: rgb(126, 140, 141);"><span style="color: rgb(68, 68, 68);"><span style="color: rgb(126, 140, 141);">Widget pour l'</span>**<span style="background-color: rgb(236, 240, 241); color: rgb(126, 140, 141);">état de la pompe</span>**</span></span>

<span style="color: rgb(126, 140, 141);">Il permet au technicien d'**activer** ou bien de **mettre en défaut** la pompe de relevage, après la réception du SMS d'alerte</span>

[![Widget Anomalie pompe fonctinnelle bis.PNG](https://modlink.fr/help/uploads/images/gallery/2026-06/scaled-1680-/widget-anomalie-pompe-fonctinnelle-bis.PNG)](https://modlink.fr/help/uploads/images/gallery/2026-06/widget-anomalie-pompe-fonctinnelle-bis.PNG)

<span style="color: rgb(224, 62, 45);">**OU**</span>

[![Widget Anomalie pompe en defaut bis.PNG](https://modlink.fr/help/uploads/images/gallery/2026-06/scaled-1680-/widget-anomalie-pompe-en-defaut-bis.PNG)](https://modlink.fr/help/uploads/images/gallery/2026-06/widget-anomalie-pompe-en-defaut-bis.PNG)

- ##### <span style="color: rgb(126, 140, 141);">Widgets de visualisation des <span style="background-color: rgb(236, 240, 241);">**niveaux de la cuve**</span> :</span>

[![Widget niveau haut atteint.PNG](https://modlink.fr/help/uploads/images/gallery/2026-06/scaled-1680-/widget-niveau-haut-atteint.PNG)](https://modlink.fr/help/uploads/images/gallery/2026-06/widget-niveau-haut-atteint.PNG)

<span style="color: rgb(224, 62, 45);">**OU**</span>

<span style="color: rgb(224, 62, 45);">**[![Widget niveau haut intermediaire.PNG](https://modlink.fr/help/uploads/images/gallery/2026-06/scaled-1680-/widget-niveau-haut-intermediaire.PNG)](https://modlink.fr/help/uploads/images/gallery/2026-06/widget-niveau-haut-intermediaire.PNG)**</span>

---

[![Widget niveau bas intermediaire.PNG](https://modlink.fr/help/uploads/images/gallery/2026-06/scaled-1680-/widget-niveau-bas-intermediaire.PNG)](https://modlink.fr/help/uploads/images/gallery/2026-06/widget-niveau-bas-intermediaire.PNG)

**<span style="color: rgb(224, 62, 45);">OU</span>**

[![Widget niveau bas atteint.PNG](https://modlink.fr/help/uploads/images/gallery/2026-06/scaled-1680-/widget-niveau-bas-atteint.PNG)](https://modlink.fr/help/uploads/images/gallery/2026-06/widget-niveau-bas-atteint.PNG)

<p class="callout info">Ce scénario est fourni à titre d'exemple et présente un cas d'usage simple.   
Selon les besoins de l'installation, il peut être enrichi par des fonctions avancées telles que la surveillance de la tension ou du courant de la pompe, l'envoi d'alertes par e-mail, l'affichage de défauts sur d'autres modules, la gestion d'une pompe de secours, ou toute autre logique de contrôle adaptée à l'application.</p>

<span style="color: rgb(230, 126, 35);">**Pour plus d'information, consulter [Gestion des scénarios](https://modlink.fr/help/books/2-pio/chapter/scenarios "Gestion des scénarios")**</span>

</details>

# Widgets utilisateurs

Les widgets sont principalement destinés aux **<span style="mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast;">opérateurs et utilisateurs finaux</span>**.  
Ils permettent :

- le contrôle des appareils
- la visualisation des données des capteurs

### 1- Types de widgets disponibles

- interrupteur
- switch à glissière
- variateur
- variateur d'ouvrant
- capteur
- voyant d'état

### 2- Liaison avec les variables

Chaque widget est lié à une ou plusieurs variables, locales ou distantes selon les droits définis.