Étape 6 - 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.
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 aux notifications du serveur pour n'importe quelle propriété BACnet, via
la fonctionnalité Change of Value (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 des capteurs LoRaWAN vers des objets BACnet est entièrement automatisé. 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 l'onglet BACnet, activez le flux BACnet si ce n'est pas déjà le cas, en cliquant ACTIVER BACNET.
-
Dans le widget CARTOGRAPHIE DES OBJETS, vous pouvez contrôler les paramètres de mappage de vos capteurs LoRaWAN vers des 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 du capteur (paramètre par défaut), suivi de
:
puis du nom de la propriété. Vous pouvez changer la définition de l'identifiant de l'objet pour utiliser le nom convivial du capteur (qui est le nom du capteur défini dans TAO) au lieu du DevEUI. -
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 driver de payload du capteur, une unité associée est fournie et une transformation est appliquée à la valeur pour assurer qu'elle correspond à l'unité spécifiée.
Exemple Tous les capteurs qui exposent une mesure de
température
avec des drivers supportant 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. -
Métadonnées LoRaWAN : Vous pouvez librement définir quelles métadonnées LoRaWAN sont exposées comme objets BACnet, en activant l'interrupteur correspondant dans l'interface utilisateur :
- 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.
-
-
Dans le widget DEFINITION D'OBJETS, choisissez quels modèles de capteurs doivent exposer leurs propriétés de mesure (appelées aussi points) en tant qu'objets BACnet. Pour plus de détails, voir Mise à jour de la définition d'objet.
Mise à jour de la définition d'objet
Vous devez définir quels capteurs doivent exposer leurs mesures via le protocole BACnet. Si vous n'avez ajouté aucune définition d'objet, TAO n'exposera aucun objet BACnet pour vos capteurs LoRaWAN.
Pour simplifier l'expérience utilisateur, cette définition n'est pas faite spécifiquement pour chaque capteur LoRaWAN : vous devez simplement la configurer pour chaque modèle de capteur concerné ; cette définition s'appliquera ensuite à tous les capteurs LoRaWAN associés à ce modèle.
Il existe deux modes de définition d'objet, selon le modèle de capteur :
-
Définition avancée
-
À partir de TAO v2.5.0, ce mode s'applique aux modèles de capteurs suivants :
- Enless (tous les modèles)
- Watteco (tous les modèles)
- Thermokon : MCS, NOVOS-3 et SAB07
- MClimate Vicki
Le support natif d'autres fabricants de capteurs sera progressivement ajouté dans les prochaines versions.
-
Dans ce mode, les utilisateurs doivent choisir quels points sont exposés via BACnet.\
noteYou should define at least one point per selected device model. Si un modèle de capteur est sélectionné sans aucun point, TAO n'exposera aucun objet BACnet pour les capteurs associés à ce modèle.
-
Ce mode permet d'envoyer des commandes downlink via le protocole BACnet. Les points downlink utilisent l'un des types suivants : valeurs analogiques, valeurs binaires ou valeurs de type chaîne. Pour en savoir plus sur l'utilisation de BACnet pour le downlink, voir Envoi de commandes downlink avec BACnet.
-
-
Définition basique
-
Ce mode s'applique à tous les modèles LoRaWAN disposant d'un Driver de payload valide dans TAO, mais qui ne prennent pas encore en charge le mode de définition avancée.
-
Dans ce mode, les utilisateurs ne peuvent pas choisir quels points sont exposés via BACnet : tous les points de mesure disponibles sont automatiquement exposés en tant qu'objets BACnet. Les points disponibles sont récupérés à partir des payloads uplink rapportés par chaque capteur. Ainsi, les objets BACnet sont créés à la volée, lorsque le capteur commence à envoyer des paquets uplink.
-
L'envoi de commandes downlink via le protocole BACnet n'est pas supporté dans ce mode. Vous pouvez utiliser MQTT pour la transmission downlink.
-
-
Pour ajouter une définition pour un nouveau modèle de capteur, cliquez sur AJOUTER UNE DÉFINITION D'OBJET.
-
Choisissez un modèle de capteur, dans la liste des modèles actuellement utilisés par les capteurs que vous avez déjà ajoutés.
-
Si le modèle prend en charge le mode de définition avancée, il vous sera demandé de sélectionner les points de mesure que vous souhaitez exposer en tant qu'objets BACnet.
Tips- Commencez à taper dans la zone de recherche pour trouver facilement un point.
- Cliquez sur Tout sélectionner si vous souhaitez ajouter tous les points pris en charge par ce modèle.
Ensuite, vous pouvez sélectionner ceux que vous ne souhaitez pas conserver et les supprimer en cliquant sur
.
Chaque point est précédé de son type :
- [AI] pour les entrées analogiques. Pour ce type, vous pouvez définir un seuil d'incrément COV, si applicable.
- [AV] pour les valeurs analogiques, ce type est utilisé pour les propriétés actionnées ayant des valeurs numériques, réglables en envoyant des commandes downlink.
- [BI] pour les entrées binaires. Le COV ne s'applique pas à ce type.
- [BV] pour les valeurs binaires, ce type est utilisé pour les propriétés actionnées ayant des valeurs binaires, réglables en envoyant des commandes downlink.
- [SV] pour les valeurs de type chaîne. Ce type s'applique aux propriétés uplink et downlink. Le COV ne s'applique pas à ce type.
-
Pour ajouter d'autres points, cliquez sur
en bas à droite du tableau.
-
Lorsque vous avez terminé, cliquez sur ENREGISTRER.
-
À tout moment, vous pouvez mettre à jour votre mappage en cliquant sur MODIFIER.
Envoi de commandes downlink avec BACnet
L'envoi de commandes downlink via BACnet est nativement supporté pour tous les modèles de capteurs qui prennent en charge le mode de définition avancée. Voir la liste complète dans la section précédente.
Les commandes downlink utilisent le mode confirmé LoRaWAN pour garantir une livraison fiable aux capteurs finaux, elles sont automatiquement retransmises par TAO en cas de défaillance de transmission/réception. Jusqu'à 5 commandes peuvent être concaténées dans le même paquet de downlink LoRaWAN.
Pour les capteurs prenant en charge le mode Class C de LoRaWAN, lorsqu'une commande d'action downlink est envoyée au capteur, d'autres commandes ne peuvent pas être envoyées tant que la première n'a pas été complètement traitée, soit avec un accusé de réception positif par le capteur, soit lorsque le traitement est finalement abandonné après 5 tentatives de transmission sans aucun accusé de réception.
Personnalisation du mappage
Le mappage de 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 :
-
Allez dans le widget LISTE D'OBJETS, en bas de l'onglet BACnet.
-
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 capteurs futurs qui ne sont pas encore exposées.
- Laissez la ligne d'en-tête telle quelle, n'ajoutez pas de colonnes.
- Commencez la numérotation des instances à partir de 0 pour chaque
-
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 immédiatement disponible.
Configuration du flux de données Modbus
Le flux de données Modbus vous permet d'exposer automatiquement les données de vos capteurs LoRaWAN à l'intérieur d'un serveur esclave Modbus 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 l'onglet Modbus, activez le flux Modbus si ce n'est pas déjà le cas, en cliquant ACTIVER MODBUS.
-
Préparez le fichier csv contenant vos règles de mappage d'objets. Pour en savoir plus, consultez Mappage d'objets.
-
Importez le fichier CSV de mappage que vous avez préparé à l'étape précédente, en cliquant sur IMPORTER.
-> Une fois l'importation réussie, votre nouveau mappage sera immédiatement disponible.
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.Attribute
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.DataType
détermine le type de données. Voir ci-dessous pour en savoir plus sur les types pris en charge.address
détermine le numéro et l'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).
Dépannage de vos flux de données
Si vos flux de données ne se comportent pas comme prévu, vous devez vérifier l'état des services backend concernés, comme décrit ci-dessous :
-
Depuis le panneau gauche de l'interface utilisateur, allez sur Flux de données.
-
Allez dans l'onglet Paramètres avancés, le widget État affiche les informations suivantes :
-
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.
-
-
Pour accéder à l'interface utilisateur de Node-RED, allez dans le widget NODE-RED puis cliquez sur OUVRIR. -> L'éditeur Node-RED s'ouvre dans une nouvelle fenêtre.
précautionEffectuer des modifications dans Node-RED nécessite des connaissances expertes sur son intégration avec TAO. Si vous ne possédez pas cette expertise, ne faites aucune modification dans Node-RED.