Exemple de configuration de flux
Un exemple pas à pas montrant comment créer un flux IoT Logic qui collecte la télémétrie de l'appareil, calcule des métriques dérivées et transmet des données enrichies vers l'extérieur.
Cet exemple montre comment configurer un flux qui collecte les données des appareils IoT, effectue des calculs pour en déduire des métriques pertinentes pour l'entreprise et transmet les données enrichies à un système externe. L'exemple utilise un modèle de flux linéaire qui peut être adapté à divers cas d'usage sectoriels.
Scénario métier
Dans ce scénario, une organisation a déployé des appareils GPS sur ses actifs et doit traiter les données de ces appareils à des fins d'analyse métier. L'organisation reçoit directement les paramètres suivants de ses dispositifs de suivi :
Vitesse: Vitesse du véhicule en kilomètres par heuretemperature: Température ambiante en degrés CelsiusCompteur kilométrique: Distance parcourue en kilomètresContact: État du contact moteur (1 = marche, 0 = arrêt)Niveau de carburant: Mesure actuelle du niveau de carburantPression en PSI: Valeur de pression en PSITension: Tension de la batterie en voltsAccélérateur: Position de la pédale d'accélérateur provenant du bus CAN (0-255)Niveau de carburant 1: Première mesure du niveau du réservoir de carburantNiveau de carburant 2: Deuxième mesure du niveau du réservoir de carburant
L'organisation doit :
Collecter les données télémétriques brutes des appareils afin de conserver un historique complet des opérations de l'actif
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 métriques basées sur le temps qui indiquent les schémas d'utilisation afin d'optimiser l'utilisation de l'actif et les plannings d'entretien
Créer des métriques dérivées pour générer des informations opérationnelles non fournies directement par le matériel
Transmettre les données enrichies à un système d'analyse externe pour leur intégration avec des plateformes de business intelligence
Envoyer les données brutes inchangées à Navixy pour le suivi
Ce flux transforme les données brutes des appareils en un format qui prend directement en charge la prise de décision métier tout en préservant l'intégrité des mesures d'origine.
Étapes de configuration du flux
Suivez ces étapes pour créer un flux complet de transformation et de transmission des données :
Créer un nouveau flux
Ouvrez IoT Logic. Sur la page d'accueil, cliquez sur Créer un flux. Saisissez Traitement de la télémétrie des actifs comme nom du flux, ajoutez une description (« Collecte les données des appareils, calcule des métriques dérivées et les transmet à la plateforme d'analyse. »), et assurez-vous que le Flux activé bascule est activée. Cliquez sur Confirmer pour ouvrir le canevas.
Configurez la source de données
Faites glisser un Source de données nœud du menu de gauche vers l'espace de travail
Double-cliquez sur le nœud pour ouvrir son panneau de configuration
Dans Nom du nœud type Traceurs d'actifs
Sélectionnez les appareils à inclure dans ce flux dans la liste filtrée
Pour cet exemple, sélectionnez au moins deux appareils aux capacités similaires
Cliquez sur Appliquer pour enregistrer la configuration du nœud
Configurez les transformations de base des données
Faites glisser un Initialiser un Attribut nœud du menu de gauche vers l'espace de travail
Connectez le Source de données nœud à ce Initialiser un Attribut nœud
Double-cliquez sur le nœud pour ouvrir sa configuration
Dans Nom du nœud type Conversions d’unités
Créez les attributs suivants pour la conversion des unités (tous les exemples utilisent une syntaxe courte, en 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 vers mph) : 1. Nom de l’attribut : speed_mph 2. Valeur :
speed/1.609Ajoutez un nouvel attribut pour la conversion de température (Celsius vers Fahrenheit) : 1. Nom de l’attribut : temperature_F 2. Valeur :
temperature*1.8 + 32Ajoutez un nouvel attribut pour la conversion de distance (kilomètres vers miles) : 1. Nom de l’attribut : distance_miles 2. Valeur :
Compteur kilométrique/1.609Ajoutez un nouvel attribut pour la conversion de pression (PSI vers 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 métriques calculées avancées
Faites glisser un autre Initialiser un Attribut nœud du menu de gauche vers l'espace de travail
Connectez le premier Initialiser un Attribut Nœud à ce nouveau
Double-cliquez sur le Nœud pour ouvrir sa configuration
Dans Nom du nœud type Calculs avancés
Créez les attributs suivants pour les métriques avancées :
Ajoutez un attribut pour la détection du changement 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 lectures :
Nom de l’attribut : time_between_readings_ms
Valeur :
srvTime('speed', 0, 'valid') - srvTime('speed', 1, 'valid')Heure 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 : température_arrondie
Valeur :
math:round(value('temperature', 0, 'valid'))
Ajoutez un attribut pour le calcul de la valeur standardisée (normalisation du niveau de Carburant à 0-100 %) :
Nom de l’attribut : niveau_de_carburant_en_pourcentage
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 : pourcentage de batterie
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 : pourcentage_d'accélérateur
Valeur :
value('throttle', 0, 'valid') / 255 * 100
Ajoutez un attribut pour le niveau moyen de carburant à partir de plusieurs capteurs :
Nom de l’attribut : niveau_moyen_de_Carburant
Valeur :
(value('fuel_level_1', 0, 'valid') + value('fuel_level_2', 0, 'valid')) / 2
Cliquez sur Appliquer pour enregistrer la configuration du nœud
Configurez le point de sortie
Faites glisser un Point de sortie nœud du menu de gauche vers l'espace de travail
Connectez le deuxième Initialiser un Attribut nœud à ce Point de sortie nœud
Cliquez sur le Nœud pour ouvrir sa configuration
Configurez les paramètres suivants :
Type de point de sortie: Point de sortie MQTT
Nom du point de sortie: Plateforme d'analyse
Protocole : par défaut Navixy Generic Protocol (JSON)
IP/Domaine : Saisissez 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: activer
Version MQTT: 5.0
ID client MQTT: client-de-télémétrie-Actif
Sujet: 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, le cas échéant
Cliquez sur Créer pour enregistrer la configuration du nœud
Ajouter le Point de sortie par défaut
Faites glisser un Point de sortie nœud du menu de gauche vers l'espace de travail
Dans Mode sélectionner Point de sortie par Défaut
Cliquez sur Enregistrer pour appliquer la configuration du Nœud
Connectez le Traceurs d'actifs (Source de données) Nœud à celui-ci
Cela garantit que les Données brutes sont envoyées à Navixy directement depuis les appareils, sans aucune transformation ni enrichissement.
Utilisez Analyseur de données (DSA) pour surveiller les données entrantes afin de vérifier :
Les appareils envoient des données vers le flux
Les calculs fonctionnent comme prévu
Les données sont transmises à la destination. Par exemple, vérifions que les conversions de vitesse sont calculées correctement sur un camion. Pour ce faire dans DSA, sélectionnez le Volvo appareil et les attributs Vitesse et speed_mph:

Tout va bien ! Les données sont reçues et converties avec succès.
Transformations de données expliquées
Examinons les calculs clés utilisés dans ce flux.
Conversions d’unités de base
Le premier Nœud Initialiser un Attribut effectue des conversions d’unités simples :
Vitesse: Convertit les km/h en mph en divisant par 1,609
Température: Convertit les degrés Celsius en degrés Fahrenheit à l’aide de la formule °F = °C × 1,8 + 32
Distance: Convertit les kilomètres en miles en divisant par 1,609
Pression: Convertit les PSI en bar en multipliant par 0,06895, ce qui le rend compatible avec les normes internationales de mesure de la pression
Ces conversions garantissent la cohérence avec les formats de rapport standard et rendent les données immédiatement exploitables pour l’analyse. Les conversions d’unités sont particulièrement précieuses pour les organisations multinationales qui opèrent dans des régions où les normes de mesure sont différentes.
Calculs avancés des métriques
Le second Nœud Initialiser un Attribut effectue des calculs plus complexes :
Détection des changements de température: Calcule la différence entre les relevés de température actuels et précédents afin d’identifier les changements soudains. Cela aide à détecter les problèmes d’équipement, tels que les défaillances de réfrigération dans les véhicules de transport ou les problèmes de CVC dans les installations. Par exemple, une hausse soudaine de 5 °C dans un conteneur réfrigéré peut indiquer une panne du système de refroidissement nécessitant une intervention immédiate.
Temps de génération: L’utilisation de
genTime('temperature', 0, 'valid')est essentielle ici, car cela préserve l’horodatage exact auquel le relevé de température a été généré par l’appareil, garantissant une analyse temporelle précise des variations de température.Heure du serveur: La valeur par défaut
now()capture automatiquement le moment où le serveur a reçu les données. Cet horodatage n’a pas besoin d’être modifié ; laissez donc ce champ vide lors de la configuration.
Temps entre les relevés: Mesure l’intervalle entre des transmissions de données consécutives en comparant les horodatages du serveur. Ce calcul aide à identifier les problèmes de communication ou à valider que les appareils transmettent à la fréquence attendue. Des intervalles irréguliers peuvent indiquer des problèmes de connectivité, tandis que des délais constants peuvent suggérer une congestion du réseau ou des problèmes de configuration de l’appareil.
Arrondi des valeurs: Applique un arrondi mathématique aux relevés de température, en réduisant la précision décimale à des entiers. Cela simplifie la visualisation des données et le reporting tout en réduisant les besoins de stockage des données historiques. Les valeurs arrondies sont particulièrement utiles pour les affichages de tableau de bord et les règles d’alertes basées sur des seuils lorsque la précision décimale n’est pas nécessaire.
Temps de génération: La spécification de
genTime('speed', 0, 'valid')cela relie ces métadonnées directement à l’horodatage du relevé d’origine, ce qui permet d’analyser à la fois l’intervalle de temps et le moment de sa survenue.Heure du serveur: La valeur par défaut
now()capture automatiquement le moment où le serveur a reçu les données. Cet horodatage n’a pas besoin d’être modifié ; laissez donc ce champ vide lors de la configuration.
Calcul de valeur normalisée: Normalise les relevés bruts des capteurs sur une échelle en pourcentage (0 à 100 %). Cette normalisation 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 des rapports cohérents sur le niveau de carburant, quel que soit le capteur de carburant utilisé dans chaque modèle de véhicule, et prend en charge des règles d’alertes de niveau de carburant bas uniformes ainsi que l’analyse de la consommation.
Calcul du pourcentage de charge de la batterie: Normalise les relevés de tension de batterie (plage de 11 à 14 V) sur une échelle de 0 à 100 % pour faciliter la surveillance. Par exemple, un relevé de 12,5 V serait normalisé à 50 %, offrant un indicateur intuitif de l’état de la batterie pour différents types de véhicules.
Calcul de la position du papillon des gaz: Convertit les données brutes de position du papillon des gaz (plage de 0 à 255) du bus CAN du véhicule en une échelle de pourcentage. Cette normalisation aide les opérateurs à comprendre rapidement le comportement du conducteur et les performances du véhicule sans avoir à interpréter les valeurs brutes du capteur.
Niveau moyen de carburant provenant 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 dotés de réservoirs de forme complexe ou de plusieurs réservoirs, où un capteur unique peut ne pas fournir de relevés fiables en raison des déplacements du carburant pendant le mouvement.
Résumé de l’exemple de flux
Cette configuration de flux met en évidence plusieurs capacités clés d’IoT Logic :
Normalisation: Convertit les relevés spécifiques à l’appareil en indicateurs métier standardisés
Enrichissement: Crée de nouvelles métriques significatives qui ne sont pas directement disponibles à partir des capteurs de l’appareil
Transformation: Modifie les unités pour répondre aux exigences de reporting métier
Contexte historique: Utilise les relevés précédents pour calculer des métriques fondées sur les tendances
Détermination de l’état: Crée des valeurs catégorielles basées sur plusieurs entrées de capteurs
Cette combinaison de capacités transforme les données brutes de l’appareil en informations métier exploitables, tout en soutenant directement la prise de décision opérationnelle et en préservant l’intégrité des mesures d’origine.
Mis à jour
Ce contenu vous a-t-il été utile ?
