Exemple de configuration de flux
Cet exemple montre comment configurer un flux qui collecte des données depuis des dispositifs IoT, effectue des calculs pour obtenir des indicateurs pertinents pour l’entreprise, et transmet les données enrichies à un système externe. L’exemple utilise un schéma de flux linéaire qui peut être adapté à divers cas d’utilisation industriels.
Scénario métier
Dans ce scénario, une organisation a déployé des traceurs IoT sur ses actifs et doit traiter les données de ces dispositifs pour l’analyse métier. L’organisation reçoit les paramètres suivants directement depuis leurs dispositifs de suivi :
speed: Vitesse du véhicule en kilomètres par heuretemperature: Température ambiante en degrés Celsiusodometer: Distance parcourue en kilomètresignition: État d’allumage du moteur (1 = allumé, 0 = éteint)fuel_level: Mesure actuelle du niveau de carburantpressure_psi: Mesure de pression en PSIvoltage: Tension de la batterie en voltsthrottle: Position de la pédale d’accélérateur depuis le bus CAN (0-255)fuel_level_1: Première mesure du niveau de carburant du réservoirfuel_level_2: Deuxième mesure du niveau de carburant du réservoir
L’organisation doit :
Collecter les données télémétriques brutes des dispositifs afin de conserver un enregistrement complet des opérations des actifs
Convertir les unités de mesure pour correspondre à leur format de reporting standard (unités impériales) afin d’assurer la cohérence avec les systèmes métier existants
Calculer des indicateurs temporels qui indiquent les schémas d’utilisation pour optimiser l’utilisation des actifs et les calendriers de maintenance
Créer des indicateurs dérivés pour générer des informations opérationnelles non fournies directement par le matériel
Transmettre les données enrichies vers un système d’analyse externe pour intégration avec des plateformes d’intelligence d’affaires
Envoyer les données brutes inchangées à Navixy pour surveillance
Ce flux transformera les données brutes des dispositifs en un format qui soutient directement la prise de décision métier tout en conservant l’intégrité des mesures originales.
Étapes de configuration du flux
Suivez ces étapes pour construire un flux complet de transformation et de transfert de données :
Créer un nouveau flux
Cliquez sur le Nouveau flux bouton en haut de l’interface IoT Logic
Saisissez Asset Telemetry Processing comme nom du flux
Ajoutez une description : "Collecte les données des dispositifs, calcule des indicateurs dérivés et transfère vers la plateforme d’analyse."
Assurez-vous que le Flux activé interrupteur est activé
Cliquez sur Enregistrer pour créer le flux

Configurer la source de données
Faites glisser un Data Source nœud depuis le menu de gauche vers l’espace de travail
Double-cliquez sur le nœud pour ouvrir son panneau de configuration
Dans la section Nom du nœud tapez Asset Trackers
Sélectionnez les dispositifs à inclure dans ce flux depuis la liste filtrée
Pour cet exemple, sélectionnez au moins deux dispositifs avec des capacités similaires
Cliquez sur Appliquer pour enregistrer la configuration du nœud

Configurer les transformations de données de base
Faites glisser un Initiate Attribute nœud depuis le menu de gauche vers l’espace de travail
Connectez le Data Source nœud à ce Initiate Attribute nœud
Double-cliquez sur le nœud pour ouvrir sa configuration
Dans la section Nom du nœud tapez Conversions d’unités
Créez les attributs suivants pour la conversion d’unités (tous les exemples utilisent la syntaxe courte, se référant aux dernières valeurs d’attribut sans vérification de validité) :
Ajoutez un nouvel attribut pour la conversion de vitesse (km/h en mph) : 1. Nom de l’attribut : speed_mph 2. Valeur :
speed/1.609Ajoutez un nouvel attribut pour la conversion de température (Celsius en Fahrenheit) : 1. Nom de l’attribut : temperature_F 2. Valeur :
temperature*1.8 + 32Ajoutez un nouvel attribut pour la conversion de distance (kilomètres en miles) : 1. Nom de l’attribut : distance_miles 2. Valeur :
odometer/1.609Ajoutez un nouvel attribut pour la conversion de pression (PSI en Bar) : 1. Nom de l’attribut : pressure_bar 2. Valeur :
pressure_psi * 0.06895
Cliquez sur Appliquer pour enregistrer la configuration du nœud

Créer des indicateurs calculés avancés
Faites glisser un autre Initiate Attribute nœud depuis le menu de gauche vers l’espace de travail
Connectez le premier Initiate Attribute nœud à ce nouveau nœud
Double-cliquez sur le nœud pour ouvrir sa configuration
Dans la section Nom du nœud tapez Calculs avancés
Créez les attributs suivants pour les indicateurs avancés :
Ajoutez un attribut pour la détection de variation de température :
Nom de l’attribut : temperature_change
Valeur :
value('temperature', 0, 'valid') - value('temperature', 1, 'valid')genTime('temperature', 0, 'valid')
Ajoutez un attribut pour trouver le temps écoulé entre les deux dernières mesures :
Nom de l’attribut : time_between_readings_ms
Valeur :
srvTime('speed', 0, 'valid') - srvTime('speed', 1, 'valid')Temps de génération :
genTime('speed', 0, 'valid')
Ajoutez un attribut pour arrondir la température à l’entier le plus proche :
Nom de l’attribut : temperature_rounded
Valeur :
math:round(value('temperature', 0, 'valid'))
Ajoutez un attribut pour le calcul de valeur standardisée (normalisation du niveau de carburant sur 0-100%) :
Nom de l’attribut : fuel_level_percent
Valeur :
(value('fuel_level', 0, 'valid') - 0) / (100 - 0) * 100
Ajoutez un attribut pour le calcul du pourcentage de charge de la batterie :
Nom de l’attribut : battery_percentage
Valeur :
(value('voltage', 0, 'valid') - 11) / (14 - 11) * 100
Ajoutez un attribut pour le calcul de la position de l’accélérateur :
Nom de l’attribut : throttle_percentage
Valeur :
value('throttle', 0, 'valid') / 255 * 100
Ajoutez un attribut pour la moyenne du niveau de carburant à partir de plusieurs capteurs :
Nom de l’attribut : avg_fuel_level
Valeur :
(value('fuel_level_1', 0, 'valid') + value('fuel_level_2', 0, 'valid')) / 2
Cliquez sur Appliquer pour enregistrer la configuration du nœud

Configurer le point de sortie
Faites glisser un Output Endpoint nœud depuis le menu de gauche vers l’espace de travail
Connectez le deuxième Initiate Attribute nœud à ce Output Endpoint nœud
Cliquez sur le nœud pour ouvrir sa configuration
Configurez les paramètres suivants :
Type de point de terminaison: Point de terminaison MQTT
Nom du point de terminaison: Analytics Platform
Protocole: par défaut Navixy Generic Protocol (JSON)
IP/Domaine: Entrez l’adresse du système de destination (par exemple, "analytics.example.com")
Port: 8883 (par défaut pour MQTT, vous pouvez le laisser vide)
Activer SSL: mettez l’interrupteur sur activé
Version MQTT: 5.0
ID client MQTT: asset-telemetry-client
Topic: telemetry/assets/raw
QoS: 1
Authentification MQTT: Oui (si requis par votre système de destination)
Identifiant et mot de passe MQTT: Saisissez les identifiants si applicable
Cliquez sur Créer des pour enregistrer la configuration du nœud

Ajouter le point de sortie par défaut
Faites glisser un Output Endpoint nœud depuis le menu de gauche vers l’espace de travail
Dans la section Type de point de terminaison sélectionnez Default Endpoint
Cliquez sur Enregistrer pour appliquer la configuration du nœud
Connectez le Asset Trackers (Data Source) nœud vers celui-ci
Cela garantit que les données brutes sont envoyées à Navixy directement depuis les dispositifs, sans aucune transformation ni enrichissement.
Utilisez le Data Stream Analyzer (DSA) pour surveiller les données entrantes et vérifier :
Les dispositifs envoient des données vers le flux
Les calculs fonctionnent comme prévu
Les données sont transmises vers la destination Par exemple, vérifions que les conversions de vitesse sont calculées correctement sur un camion. Pour le faire dans DSA, sélectionnez le Volvo dispositif et attributs speed et speed_mph:

Tout est bon ! Les données sont reçues et converties avec succès.
Explication des transformations de données
Examinons les principaux calculs utilisés dans ce flux.
Conversions d’unités de base
Le premier Nœud d’initialisation d’attribut effectue des conversions d’unités simples :
Vitesse: Convertit km/h en mph en divisant par 1,609
Température: Convertit Celsius en Fahrenheit en utilisant la formule °F = °C × 1,8 + 32
Distance: Convertit les kilomètres en miles en divisant par 1,609
Pression: Convertit PSI en Bar en multipliant par 0,06895, le rendant compatible avec les normes internationales de mesure de la pression
Ces conversions garantissent la cohérence avec les formats de reporting standard et rendent les données immédiatement utilisables pour l’analyse. Les conversions d’unités sont particulièrement utiles pour les organisations multinationales opérant dans des régions aux normes de mesure différentes.
Calculs d’indicateurs avancés
Le deuxième Nœud d’initialisation d’attribut effectue des calculs plus complexes :
Détection de variation de température: Calcule la différence entre les lectures de température actuelles et précédentes pour identifier des changements soudains. Cela aide à détecter des problèmes d’équipement tels que des défaillances de réfrigération dans les véhicules de transport ou des problèmes HVAC dans les installations. Par exemple, une hausse soudaine de 5 °C dans un conteneur réfrigéré peut indiquer une défaillance du système de refroidissement nécessitant une intervention immédiate.
Heure de génération: L’utilisation de
genTime('temperature', 0, 'valid')est cruciale ici car elle préserve l’horodatage exact lorsque la lecture de température a été générée par le dispositif, assurant une analyse temporelle précise des variations de température.Heure serveur: La valeur par défaut
now()capture automatiquement le moment où le serveur a reçu les données. Étant donné que nous n’avons pas besoin de modifier cet horodatage, nous pouvons laisser ce champ vide lors de la configuration.
Temps entre lectures: Mesure l’intervalle entre des transmissions de données consécutives en comparant les horodatages serveur. Ce calcul aide à identifier des problèmes de communication ou à valider que les dispositifs rapportent à la fréquence attendue. Des intervalles irréguliers peuvent indiquer des problèmes de connectivité, tandis que des délais constants pourraient suggérer une congestion du réseau ou des problèmes de configuration des dispositifs.
Arrondi des valeurs: Applique un arrondi mathématique aux relevés de température, réduisant la précision décimale aux entiers. Cela simplifie la visualisation et le reporting des données tout en réduisant les besoins de stockage pour les données historiques. Les valeurs arrondies sont particulièrement utiles pour les tableaux de bord et les alertes basées sur des seuils où la précision décimale n’est pas nécessaire.
Heure de génération: La spécification de
genTime('speed', 0, 'valid')relie ces métadonnées directement à l’horodatage de la lecture originale, permettant d’analyser à la fois l’intervalle de temps et le moment où il s’est produit.Heure serveur: La valeur par défaut
now()capture automatiquement le moment où le serveur a reçu les données. Étant donné que nous n’avons pas besoin de modifier cet horodatage, nous pouvons laisser ce champ vide lors de la configuration.
Calcul de valeur standardisée: Normalise les relevés bruts des capteurs sur une échelle en pourcentage (0-100%). Cette standardisation facilite la comparaison des relevés entre différents types de capteurs et modèles de véhicules. Pour la gestion de flotte, cela permet un reporting cohérent du niveau de carburant quelle que soit l’implémentation spécifique du capteur de carburant dans chaque modèle de véhicule, rendant possibles des alertes uniformes de niveau de carburant faible et des analyses de consommation.
Calcul du pourcentage de charge de la batterie: Normalise les relevés de tension de la batterie (plage 11V-14V) sur une échelle 0-100% pour un suivi plus simple. Par exemple, une lecture de 12,5 V serait normalisée à 50 %, fournissant un indicateur intuitif de l’état de la batterie sur différents types de véhicules.
Calcul de la position de l’accélérateur: Convertit les données brutes de position de l’accélérateur (plage 0-255) provenant du bus CAN du véhicule en une échelle en pourcentage. Cette normalisation aide les opérateurs à comprendre rapidement le comportement du conducteur et les performances du véhicule sans avoir à interpréter des valeurs brutes de capteurs.
Niveau moyen de carburant à partir de plusieurs capteurs: Combine les relevés de deux capteurs de carburant distincts pour produire une mesure globale du niveau de carburant plus précise. Cela est particulièrement utile pour les véhicules avec des formes de réservoir complexes ou plusieurs réservoirs, où un seul capteur pourrait ne pas fournir des relevés fiables en raison des déplacements de carburant pendant le mouvement.
Résumé de l’exemple de flux
Cette configuration de flux démontre plusieurs capacités clés d’IoT Logic :
Standardisation: Convertit les relevés spécifiques aux dispositifs en indicateurs métier standardisés
Enrichissement: Crée de nouveaux indicateurs significatifs non disponibles directement depuis les capteurs du dispositif
Transformation: Change les unités pour correspondre aux exigences de reporting métier
Contexte historique: Utilise les lectures précédentes pour calculer des indicateurs basés sur les tendances
Détermination du statut: Crée des valeurs catégorielles basées sur plusieurs entrées de capteurs
Cette combinaison de capacités transforme les données brutes des dispositifs en renseignements métier exploitables, soutenant directement la prise de décision opérationnelle tout en conservant l’intégrité des mesures originales.
Mis à jour
Ce contenu vous a-t-il été utile ?
