Le DataPlug de nos contrôleurs HAI-P200-4G assure la collecte et l'historisation de vos données (mesures, états, alarmes) via des protocoles de communication standards comme Modbus-TCP, OPC-UA et S7-Comm. Une fois ces informations collectées, l'enjeu est de pouvoir les exploiter efficacement.
C'est ici qu'intervient Node-RED, un outil open source dédié à l'IIoT, réputé pour sa puissance, sa flexibilité et sa grande simplicité d'utilisation. Pour cette raison, nous avons directement intégré un conteneur Node-RED au catalogue d'applications du HAI-P200-4G, prêt à l'emploi.
Démarrer et se connecter à Node-Red
Pour lancer Node-Red, il vous suffit de vous rendre sur la page Applications
de l’interface d’administration de votre contrôleur HAI-P200-4G. Le containeire Node-Red dispose d’un bouton START
pour le démarrer.
Lors du tout premier démarrage, le contrôleur télécharge l'image de Node-RED depuis la plateforme Docker Hub. Cette opération peut prendre plus ou moins de temps selon la vitesse de votre connexion Internet.
Astuce : Activer le "Safe Mode" pour le développement
Lors de vos phases de développement et de mise au point, nous vous conseillons d'activer le Safe Mode.
- Comment ça marche ? Ce mode force Node-RED à démarrer sans lancer automatiquement vos flows (vos flux de traitement).
- Quel est l'avantage ? Si un flow contient une erreur qui provoque un plantage, il ne redémarrera pas en boucle. Cela vous laisse le temps d'accéder à l'éditeur pour appliquer vos correctifs sereinement, sans être bloqué.
Accéder en temps réel aux données du DataPlug
Pour accéder aux données temps réel collectées par le DataPlug, nous utilisons le protocole MQTT, un standard de communication léger et efficace pour l'IoT.
Afin de simplifier l'échange d'informations, votre contrôleur intègre un broker MQTT (un serveur de messages) interne. Le DataPlug y publie en continu les données, et d'autres services, comme Node-RED, peuvent s'y abonner pour les recevoir instantanément.
Chaque donnée est publiée sur un canal, appelé topic, qui suit toujours cette structure :
telegraf/NomDeLaVariable
Configurer la connexion MQTT dans Node-RED
Node-RED intègre nativement des nœuds pour communiquer en MQTT. Suivez ces étapes pour établir la connexion :
- Dans l'éditeur Node-RED, faites glisser un nœud
mqtt in
depuis la palette de gauche sur votre flow. - Double-cliquez sur le nœud pour ouvrir sa fenêtre de configuration.
- À côté du champ "Serveur", cliquez sur l'icône en forme de crayon pour ajouter la configuration de votre broker interne avec les paramètres suivants :
- Serveur :
host.containers.internal
- Port :
1883
Note : Le broker étant interne au contrôleur et non exposé sur un réseau externe, il n'est pas nécessaire de configurer une connexion sécurisée (TLS) ou une authentification.
S'abonner à un ou plusieurs flux de données
Une fois la connexion au broker MQTT établie, vous devez indiquer à Node-RED quelles données vous souhaitez recevoir. Pour cela, il faut configurer le champ Topic dans le nœud mqtt in
.
Option 1 : Récupérer toutes les données simultanément
Pour une vue d'ensemble, vous pouvez vous abonner à l'intégralité des données publiées par le DataPlug. La structure des topics est hiérarchique, par exemple telegraf/modbus/temperature_exterieure
.
Pour tout recevoir, il suffit de souscrire au topic racine en utilisant un caractère spécial (#
), qui agit comme un joker.
- Topic à utiliser :
telegraf/#
Le caractère #
indique que vous souhaitez recevoir tous les messages publiés sur les topics qui commencent par telegraf/
, quelle que soit leur suite. C'est la méthode la plus simple pour visualiser rapidement tout ce qui est disponible.
Option 2 : Récupérer une variable spécifique
Si vous n'avez besoin que d'une seule information, il est plus efficace de s'abonner directement à son topic unique. Cela permet d'isoler le flux de données et d'éviter de traiter des messages inutiles dans Node-RED.
Pour cela, il suffit de renseigner le nom complet du topic dans le champ Topic du nœud mqtt in
.
- Exemple de topic :
telegraf/s7_values/P40521_Nombre de demarrage
Avec cette configuration, seul ce topic sera écouté par le nœud.
Conseil de bonne pratique L'exemple ci-dessus contient des espaces dans le nom de la variable. Bien que cela puisse fonctionner, il est fortement recommandé de créer des noms de variables sans espaces ni caractères spéciaux (par exemple, P40521_Nombre_de_demarrage). Cette convention évite de nombreux problèmes potentiels lors du traitement des données par la suite.
Comprendre le message reçu (Payload MQTT)
Chaque message que vous recevez du DataPlug via MQTT est structuré au format JSON. Cette structure est cohérente pour toutes les variables, ce qui rend le traitement des données prévisible et simple.
Voici un exemple de payload (la charge utile du message) que vous recevrez dans Node-RED :
{
"fields": { "value": 8645 },
"name": "s7_values",
"tags": {
"category": "measure",
"host": "hai-e73c3a",
"unit": "F",
"variable_name": "P40521_Nombre de demarrage"
},
"timestamp": 1758682650069
}
Description des champs clés
Pour exploiter ces informations, voici la signification des champs les plus importants :
fields.value
: C'est la valeur réelle de la mesure. Dans 99% des cas, c'est cette information que vous voudrez manipuler.tags.variable_name
: Le nom de la variable tel qu'il est configuré dans le DataPlug.tags.unit
: L'unité de mesure associée à la valeur (si définie).timestamp
: L'horodatage exact de la collecte de la mesure, exprimé en nanosecondes (Unix time).
Par exemple, pour utiliser la valeur dans un autre nœud Node-RED, vous devrez cibler le champ msg.payload.fields.value
.