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 heure

  • temperature: Température ambiante en degrés Celsius

  • odometer: Distance parcourue en kilomètres

  • ignition: État d’allumage du moteur (1 = allumé, 0 = éteint)

  • fuel_level: Mesure actuelle du niveau de carburant

  • pressure_psi: Mesure de pression en PSI

  • voltage: Tension de la batterie en volts

  • throttle: 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éservoir

  • fuel_level_2: Deuxième mesure du niveau de carburant du réservoir

L’organisation doit :

  1. Collecter les données télémétriques brutes des dispositifs afin de conserver un enregistrement complet des opérations des actifs

  2. 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

  3. Calculer des indicateurs temporels qui indiquent les schémas d’utilisation pour optimiser l’utilisation des actifs et les calendriers de maintenance

  4. Créer des indicateurs dérivés pour générer des informations opérationnelles non fournies directement par le matériel

  5. Transmettre les données enrichies vers un système d’analyse externe pour intégration avec des plateformes d’intelligence d’affaires

  6. 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 :

1

Créer un nouveau flux

  1. Cliquez sur le Nouveau flux bouton en haut de l’interface IoT Logic

  2. Saisissez Asset Telemetry Processing comme nom du flux

  3. Ajoutez une description : "Collecte les données des dispositifs, calcule des indicateurs dérivés et transfère vers la plateforme d’analyse."

  4. Assurez-vous que le Flux activé interrupteur est activé

  5. Cliquez sur Enregistrer pour créer le flux

Create flow dialog with filled-in name and description, Flow enabled toggle on
2

Configurer la source de données

  1. Faites glisser un Data Source nœud depuis le menu de gauche vers l’espace de travail

  2. Double-cliquez sur le nœud pour ouvrir son panneau de configuration

  3. Dans la section Nom du nœud tapez Asset Trackers

  4. 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

  1. Cliquez sur Appliquer pour enregistrer la configuration du nœud

Data source node configuration with selected devices
3

Configurer les transformations de données de base

  1. Faites glisser un Initiate Attribute nœud depuis le menu de gauche vers l’espace de travail

  2. Connectez le Data Source nœud à ce Initiate Attribute nœud

  3. Double-cliquez sur le nœud pour ouvrir sa configuration

  4. Dans la section Nom du nœud tapez Conversions d’unités

  5. 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é) :

    1. Ajoutez un nouvel attribut pour la conversion de vitesse (km/h en mph) : 1. Nom de l’attribut : speed_mph 2. Valeur : speed/1.609

    2. Ajoutez un nouvel attribut pour la conversion de température (Celsius en Fahrenheit) : 1. Nom de l’attribut : temperature_F 2. Valeur : temperature*1.8 + 32

    3. Ajoutez un nouvel attribut pour la conversion de distance (kilomètres en miles) : 1. Nom de l’attribut : distance_miles 2. Valeur : odometer/1.609

    4. Ajoutez un nouvel attribut pour la conversion de pression (PSI en Bar) : 1. Nom de l’attribut : pressure_bar 2. Valeur : pressure_psi * 0.06895

  6. Cliquez sur Appliquer pour enregistrer la configuration du nœud

First Initiate attribute node showing the unit conversion attributes

Pour des explications sur les calculs introduits à cette étape, voir Conversions d’unités de base

4

Créer des indicateurs calculés avancés

  1. Faites glisser un autre Initiate Attribute nœud depuis le menu de gauche vers l’espace de travail

  2. Connectez le premier Initiate Attribute nœud à ce nouveau nœud

  3. Double-cliquez sur le nœud pour ouvrir sa configuration

  4. Dans la section Nom du nœud tapez Calculs avancés

  5. Créez les attributs suivants pour les indicateurs avancés :

    1. Ajoutez un attribut pour la détection de variation de température :

      1. Nom de l’attribut : temperature_change

      2. Valeur : value('temperature', 0, 'valid') - value('temperature', 1, 'valid')

      3. genTime('temperature', 0, 'valid')

    2. Ajoutez un attribut pour trouver le temps écoulé entre les deux dernières mesures :

      1. Nom de l’attribut : time_between_readings_ms

      2. Valeur : srvTime('speed', 0, 'valid') - srvTime('speed', 1, 'valid')

      3. Temps de génération : genTime('speed', 0, 'valid')

    3. Ajoutez un attribut pour arrondir la température à l’entier le plus proche :

      1. Nom de l’attribut : temperature_rounded

      2. Valeur : math:round(value('temperature', 0, 'valid'))

    4. Ajoutez un attribut pour le calcul de valeur standardisée (normalisation du niveau de carburant sur 0-100%) :

      1. Nom de l’attribut : fuel_level_percent

      2. Valeur : (value('fuel_level', 0, 'valid') - 0) / (100 - 0) * 100

    5. Ajoutez un attribut pour le calcul du pourcentage de charge de la batterie :

      1. Nom de l’attribut : battery_percentage

      2. Valeur : (value('voltage', 0, 'valid') - 11) / (14 - 11) * 100

    6. Ajoutez un attribut pour le calcul de la position de l’accélérateur :

      1. Nom de l’attribut : throttle_percentage

      2. Valeur : value('throttle', 0, 'valid') / 255 * 100

    7. Ajoutez un attribut pour la moyenne du niveau de carburant à partir de plusieurs capteurs :

      1. Nom de l’attribut : avg_fuel_level

      2. Valeur : (value('fuel_level_1', 0, 'valid') + value('fuel_level_2', 0, 'valid')) / 2

  6. Cliquez sur Appliquer pour enregistrer la configuration du nœud

Second Initiate attribute node showing the advanced calculated metrics

Pour des explications sur les calculs introduits à cette étape, voir Calculs d’indicateurs avancés.

5

Configurer le point de sortie

  1. Faites glisser un Output Endpoint nœud depuis le menu de gauche vers l’espace de travail

  2. Connectez le deuxième Initiate Attribute nœud à ce Output Endpoint nœud

  3. Cliquez sur le nœud pour ouvrir sa configuration

  4. Configurez les paramètres suivants :

    1. Type de point de terminaison: Point de terminaison MQTT

    2. Nom du point de terminaison: Analytics Platform

    3. Protocole: par défaut Navixy Generic Protocol (JSON)

    4. IP/Domaine: Entrez l’adresse du système de destination (par exemple, "analytics.example.com")

    5. Port: 8883 (par défaut pour MQTT, vous pouvez le laisser vide)

    6. Activer SSL: mettez l’interrupteur sur activé

    7. Version MQTT: 5.0

    8. ID client MQTT: asset-telemetry-client

    9. Topic: telemetry/assets/raw

    10. QoS: 1

    11. Authentification MQTT: Oui (si requis par votre système de destination)

    12. Identifiant et mot de passe MQTT: Saisissez les identifiants si applicable

  5. Cliquez sur Créer des pour enregistrer la configuration du nœud

Output endpoint node configuration with filled-in connection settings
6

Ajouter le point de sortie par défaut

  1. Faites glisser un Output Endpoint nœud depuis le menu de gauche vers l’espace de travail

  2. Dans la section Type de point de terminaison sélectionnez Default Endpoint

  3. Cliquez sur Enregistrer pour appliquer la configuration du nœud

  4. 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.

7

Enregistrez et testez le flux

Votre configuration finale ressemblera à ceci :

Complete flow configuration with all nodes connected in IoT Logic workspace

Cliquez sur le Enregistrer le flux bouton sur le Panneau des nœuds pour stocker la configuration de votre flux.

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 :

  1. Standardisation: Convertit les relevés spécifiques aux dispositifs en indicateurs métier standardisés

  2. Enrichissement: Crée de nouveaux indicateurs significatifs non disponibles directement depuis les capteurs du dispositif

  3. Transformation: Change les unités pour correspondre aux exigences de reporting métier

  4. Contexte historique: Utilise les lectures précédentes pour calculer des indicateurs basés sur les tendances

  5. 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 ?