Étape 5 - Configuration de vos flux de données
ThingPark Enterprise All-in-one prend en charge les principaux protocoles IoT nécessaires pour répondre à vos cas d'utilisation de déploiement :
-
Protocole MQTT, avec un broker MQTT local : c'est le flux de données par défaut. Pour en savoir plus, consultez Utilisation de MQTT.
-
Protocole BACnet, pour les cas d'utilisation de gestion automatisée des bâtiments. Pour en savoir plus, consultez Configuration du flux de données BACnet.
-
Protocole Modbus, pour les cas d'utilisation IoT industriels. Pour en savoir plus, consultez Configuration du flux de données Modbus.
-
D'autres protocoles, tels que HTTP, sont également pris en charge. Pour en savoir plus, consultez Utilisation de HTTP.
Pour optimiser son intégration avec les serveurs d'applications externes, ThingPark Enterprise All-in-One intègre un composant Node-RED pour gérer en toute transparence les flux de données.
Ce sujet décrit les tâches de gestion des flux de données de ThingPark version 2.2.0 :
- Dans cette version, les tâches de gestion de base peuvent être exécutées depuis l'interface graphique TAO sans avoir besoin d'accéder à l'interface utilisateur de Node-RED.
- Pour les versions antérieures, toutes les tâches de gestion des flux de données sont entièrement gérées via l'interface utilisateur de Node-RED. Pour en savoir plus, consultez Utilisation de Node-RED.
Pour connaître la version de votre serveur ThingPark Enterprise All-in-one, survolez le logo en haut à gauche de l'interface utilisateur.
Vérification de l'état de vos flux de données
-
Depuis le panneau gauche de l'interface utilisateur, allez sur Flux de données.
-
Sous le widget STATUS :
-
Le statut Node-RED détermine si Node-RED fonctionne correctement sur votre serveur ou non. Si le statut n'est pas ACTIF, cliquez sur REDÉMARRER NODE-RED pour tenter de corriger le problème.
-
Le statut du broker MQTT détermine si le broker MQTT local intégré dans le serveur ThingPark fonctionne correctement ou non. Vous pouvez le redémarrer si besoin.
-
Flux Uplink/Downlink est le flux de données par défaut. Il utilise le protocole MQTT et constitue l'interface unique avec le serveur de réseau LoRaWAN.
Pour un fonctionnement correct de vos flux de données, le statut de ce flux Uplink/Downlink doit toujours rester "Démarré". Contactez votre équipe de support si ce flux a été arrêté accidentellement.Ne supprimez jamais le flux Uplink/Downlink de Node-RED, même si vous n'avez pas besoin du protocole MQTT pour interagir avec vos serveurs d'application.
- Sous le widget ACTIVATION :
- Vérifiez l'état d'activation de vos flux de données BACnet et Modbus.
- Ces flux de données ne sont pas activés par défaut, utilisez les interrupteurs correspondants pour activer un ou les deux flux de données selon vos besoins.
Configuration du flux de données BACnet
Le flux de données BACnet vous permet de partager automatiquement les DATA de vos capteurs LoRaWAN sous forme d'objets BACnet à l'intérieur d'un serveur BACnet intégré. Par défaut, ce serveur utilise le port multicast UDP standard 47808 (BAC0), mais vous pouvez changer le port en vous connectant à Node-RED, comme décrit dans Configuration du serveur BACnet.
Ce flux de données prend en charge trois types d'objets BACnet, ils peuvent être définis comme entrées/sorties pour les propriétés de liaison montante/descendante respectivement :
- Valeur analogique (notée 'AV') pour les données numériques,
- Valeur binaire (notée 'BV') pour les données booléennes,
- Valeur de Chaine de Caractères (notée 'SV') pour les données de type chaîne.
Le client BACnet peut s'abonner à la notification du serveur pour n'importe laquelle des propriétés BACnet, via la
de fonctionnalité de Changement de Valeur (CoV). Les types de propriétés analogiques sont associés à un attribut COV increment
permettant au client de déterminer le seuil de notification pour chaque propriété.
Le mappage des données du capteur LoRaWAN dans les objets BACnet est entièrement automatisé, sans aucune action manuelle de l'utilisateur. Pour en savoir plus sur cet auto-mappage, voir Processus de mappage automatique.
Néanmoins, si vous souhaitez personnaliser ce mappage automatique pour mieux répondre à vos contraintes de déploiement, suivez les étapes décrites dans Personnalisation du mappage.
Les étapes suivantes décrivent la configuration du flux de données BACnet :
-
Depuis le panneau gauche de l'interface utilisateur, allez sur Flux de données.
-
Dans le widget ACTIVATION, activez le flux BACnet s'il n'est pas déjà le cas.
-
Dans le widget BACNET, vous pouvez contrôler les paramètres de mappage de vos appareils LoRaWAN dans les objets BACnet :
-
Nom de l'objet : Chaque donnée extraite des capteurs LoRaWAN est exposée comme un objet BACnet dont l'identifiant est construit en utilisant le DevEUI de l'appareil (paramètre par défaut), suivi de deux points
:
puis du nom de la propriété. Vous pouvez modifier la définition de l'identifiant de l'objet pour utiliser le nom d'usage du capteur (qui est le nom de l'appareil défini dans TAO) plutôt que le DevEUI. -
Métadonnées LoRaWAN : Vous pouvez librement définir quelles métadonnées LoRaWAN sont exposées comme objets BACnet.
- RSSI est l'indicateur de force du signal reçu pour chaque paquet uplink LoRaWAN. Le RSSI mesure la force globale du signal à l'intérieur de la largeur de bande du canal radio, en additionnant le signal utile, les interférences et le bruit de fond. Le RSSI est exprimé en dBm.
- SNR est le rapport signal/bruit de chaque paquet uplink LoRaWAN. Il fournit une estimation fiable de la qualité de la réception uplink. Le SNR est exprimé en dB.
- FCntUp est le compteur de trames de chaque paquet uplink LoRaWAN.
- SpFact est le facteur d'étalement de chaque paquet uplink LoRaWAN. SF7 correspond au taux de données le plus rapide tandis que SF12 correspond au taux de données le plus lent.
-
Ontologie du payload : Le traitement ontologique est pris en charge par des pilotes de payload spécifiques. Il fournit une standardisation uniforme des propriétés mesurées. Lorsque l'ontologie est activée et prise en charge par le pilote de payload de l'appareil, une unité associée est fournie et une transformation est appliquée à la valeur pour garantir qu'elle correspond à l'unité spécifiée.
Exemple : Tous les appareils qui exposent une mesure de
température
avec des pilotes prenant en charge l'ontologie fourniront la température de la même manière (même unité, même nom de propriété). Pour plus d'informations sur les pilotes de périphériques, consultez Pilotes/ontologies supportées.
En plus des propriétés uplink (c'est-à-dire, des propriétés mesurées par le capteur et signalées dans les charges montantes), le flux BACnet exposera automatiquement les propriétés de sortie représentant les commandes de downlink prises en charge par l'appareil LoRaWAN, telles que le réglage de la température cible d'une vanne thermostatique, etc.
Dans TAO v2.4.0, l'envoi de commandes de downlink via BACnet est pris en charge nativement pour les modèles d'appareils suivants :
- Tous les modèles Thermokon, tels que NOVOS-3, MCS, SAB07...
- MClimate Vicki (vanne thermostatique)
Le support natif d'autres fabricants d'appareils sera progressivement ajouté dans les prochaines versions.
Les commandes de downlink utilisent le mode confirmé LoRaWAN pour assurer une livraison fiable aux appareils finaux, elles sont automatiquement retransmises par TAO en cas d'échec de transmission/réception. Jusqu'à 5 commandes peuvent être concaténées dans le même paquet de downlink LoRaWAN.
Personnalisation du mappage
Comme mentionné ci-dessus, le mappage LoRaWAN vers BACnet est entièrement automatisé par défaut. Vous pouvez modifier ce mappage par défaut afin de fixer le numéro d'instance d'une propriété et d'assurer que cette propriété soit toujours exposée à un numéro d'instance fixe.
Pour ce faire, suivez les étapes ci-dessous :
- Exportez la liste actuelle des objets vers un fichier csv, en cliquant sur le bouton EXPORTER.
- Modifiez l'association du numéro d'instance du fichier csv et enregistrez-la dans votre liste personnalisée. Les recommandations suivantes doivent être respectées :
- Commencez la numérotation des instances à partir de 0 pour chaque
type
(AV,BV,SV). - Ne laissez pas de trous dans le schéma de numérotation.
- Ne changez pas le
type
pour une propriété spécifique. - Créez de nouvelles entrées pour les propriétés des appareils futurs qui ne sont pas encore exposées.
- Laissez la ligne d'en-tête telle quelle, n'ajoutez pas de colonnes.
- Importez ce fichier csv personnalisé vers le serveur, en cliquant sur le bouton IMPORTER.
Le format du fichier d'importation est le même que le format du fichier d'exportation (la valeur et l'unité ne sont pas prises en compte lors de l'importation). Le statut de l'importation est affiché à l'écran, en cas d'erreurs, l'écran affiche la liste des points à corriger, comme illustré par l'exemple suivant :
-> Une fois l'importation réussie, votre nouveau mappage sera alors disponible instantanément.
Configuration du flux de données Modbus
Le flux de données Modbus vous permet d'exposer automatiquement les données de vos appareils LoRaWAN à l'intérieur d'un serveur Modbus esclave intégré.
Par défaut, ce serveur est disponible sur le port TCP standard 10502. Si nécessaire, vous pouvez modifier le port dans Node-RED, comme décrit dans Personnalisation du serveur Modbus.
Pour mapper vos propriétés LoRaWAN dans des objets Modbus, vous devez définir manuellement un tableau de mappage qui spécifie, pour chaque capteur LoRaWAN, quelles propriétés doivent être extraites, quel algorithme de codage doit être appliqué et à quelle emplacement il doit être écrit sur la plage de registres de maintien modbus.
Seul l'uplink via Modbus est actuellement pris en charge, les downlinks via Modbus ne sont pas actuellement mis en œuvre. Pour le chemin de downlink, vous pouvez vous appuyer sur les protocoles MQTT ou HTTP.
-
Depuis le panneau gauche de l'interface utilisateur, allez sur Flux de données.
-
Dans le widget ACTIVATION, activez le flux Modbus s'il n'est pas déjà activé.
-
Préparez le fichier csv contenant vos règles de mappage d'objets. Pour en savoir plus, consultez Mappage d'objets.
-
Dans le widget MODBUS, importez le fichier csv de mappage que vous avez préparé à l'étape précédente.
-> Une fois l'importation réussie, votre nouveau mappage sera alors disponible instantanément.
Mappage d'objets
Pour chaque propriété que vous souhaitez extraire du message uplink, vous devez fournir un objet composé des champs suivants :
- DevEUI est le DevEUI du Capteur LoRaWAN.
- Attribut fait référence au nom de la propriété tel qu'extrait de l'Uplink LoRaWAN. Voir ci-dessous pour en savoir plus sur la définition d'un attribut pour chaque propriété mesurée.
- SaisirType: l'opération Modbus à appliquer. Voir ci-dessous pour en savoir plus sur les types pris en charge.
- adresse : numéro d'emplacement du registre modbus.
Vous pouvez télécharger le fichier exemple à partir de l'interface utilisateur pour apprendre le format attendu du fichier à importer.
Comment définir les attributs ?
Chaque propriété - que vous devez mapper à un objet Modbus - doit être associée à un attribut pertinent dans votre fichier de cartographie csv.
Pour ce faire, vous devez d'abord découvrir les différentes propriétés rapportées par vos Capteurs LoRaWAN dans les Uplinks Payloads.
Vous pouvez utiliser un client MQTT, tel que MQTTX ou mosquitto_sub, pour récupérer les paquets Uplink rapportés par vos capteurs et découvrir quelles propriétés sont incluses dans leurs Payloads.
Prenons l'exemple suivant d'un Capteur rapportant le paquet Uplink suivant :
{
"DevEUI_uplink": {
"Time": "2024-09-24T13:51:10.920+00:00",
"DevEUI": "20635F0106000244",
"FPort": 17,
"FCntUp": 101,
"LrrSNR": 5.5,
...
"LrrRSSI": -30.6,
...
"payload": {
"messageType": "HEARTBEAT",
"trackingMode": "PERMANENT_TRACKING",
"batteryVoltage": 4.05,
"levels": {
"power": 3,
"state": "on"
}
},
"points": {
"temperature": {
"unitId": "Cel",
"record": 28.3
},
...
}
}
}
-> Nous avons reçu un DevEUI_uplink avec :
LrrSNR
= 5,5 dBLrrRSSI
= -30,6 dBmbatteryVoltage
= 4,05 Vpower
= 3temperature
= 28,3°C
Si vous souhaitez exporter les métadonnées LoRaWAN, telles que le compteur de trames Uplink (FCntUp), le RSSI ou le SNR de l'Uplink,
l'attribut correspondant doit utiliser exactement le même nom que les métadonnées LoRaWAN, c'est-à-dire FCntUp
, LrrSNR
, LrrRSSI
...
Sous payload
et/ou points
, l'attribut correspondant à chaque propriété doit utiliser le nom de la propriété.
Par exemple, trackingMode
, batteryVoltage
...
Utilisez le soulignement _
pour représenter les sous-niveaux : par exemple, levels_power
, temperature_record
.
SaisirDataTypes pris en charge
- float : l'opération modbus est FC 16, écriture de 2 registres : 4 octets.
- int: l'opération modbus est FC 16, écrire 1 registre : 2 octets.
- uint ou uint32: l'opération modbus est FC 16, écrire 2 registres : 4 octets.
- hex: l'opération modbus est FC 16, écrire n registres : n*2 octets, (pour "0A0B0C", il consommera 2 registres, le premier contenant 0A0B, le second contenant 000C).