Protocoles et données

Données IoT : horodatage, qualité et lacunes

Définissez des points IoT robustes : identité, unités, heure source, qualité, fraîcheur, débordement des compteurs et essais.

Un Gateway perd sa connexion montante à 09 h 00 et la retrouve à 12 h 00. Il transmet alors les trois heures de mesures qu'il avait conservées. Si la plateforme destinataire garde l'horodatage d'origine de chaque mesure, le graphique comble la lacune. Si elle horodate chaque mesure à son arrivée, trois heures d'énergie se retrouvent dans un seul intervalle de 15 minutes. À une charge moyenne de 40 kW, cela représente 120 kWh en 15 minutes et le rapport de puissance appelée affiche une pointe de 480 kW qui n'a jamais existé.

Toutes les valeurs de cet exemple étaient réelles. Seul le temps était faux, et un tableau de bord en direct ne le révélait pas.

Chaque observation doit répondre à quatre questions. Quelle propriété a été observée et où ? Quand la situation mesurée s'est-elle produite ? La valeur est-elle valide et assez récente pour cet usage ? Quelle chaîne de mesure et de traitement l'a produite ? La facturation, la protection, la sécurité et les déclarations réglementaires imposent en plus leurs propres exigences de matériel, d'approbation, d'incertitude et de traçabilité.

Modèles d'observation SSN et SensorThings

L'ontologie Semantic Sensor Network du W3C (SOSA/SSN) définit une observation comme l'acte d'observer, généralement pour estimer ou déterminer la valeur d'une propriété d'une entité d'intérêt. Elle distingue la propriété, le résultat, le capteur, la procédure, le temps du phénomène et le temps du résultat. Elle précise aussi que ces deux temps ne coïncident pas nécessairement.

L'API SensorThings de l'OGC suit un modèle similaire pour les services Web de capteurs. Une Observation appartient à un Datastream et comporte un résultat, un temps du phénomène, un temps du résultat, une qualité, une période de validité et des paramètres.

Vous n'êtes pas obligé d'adopter l'un de ces modèles. Quel que soit votre schéma, conservez dans des champs séparés la signification, le moment observé, la qualité et la provenance.

Enregistrement minimal d'une observation

Champ ou relationQuestion à laquelle il répondDéfaillance s'il manque
Identité du site, de l'actif et du pointQuel équipement physique et quel canal ont produit la valeur ?Des valeurs de sources différentes sont fusionnées ou comparées à tort
Propriété observéeS'agit-il de puissance active, d'énergie cumulée, de température ou d'un état ?Un nombre perd sa signification technique stable
Valeur et unitéQuelle grandeur et quelle unité ont été transmises ?W, kW et MW, ou °C et °F, sont confondus sans alerte
Temps du phénomène ou de la sourceQuand la situation mesurée s'est-elle produite ?Des données anciennes retransmises paraissent actuelles
Temps du résultat ou de l'ingestionQuand le résultat a-t-il été produit ou reçu ici ?Délai de transport et retransmission deviennent indiagnostiquables
Qualité ou étatLa valeur est-elle bonne, incertaine, mauvaise, périmée, substituée ou indisponible ?Une donnée invalide paraît fiable
Identité de procédure et configurationQuels plage, facteur d'échelle, micrologiciel, étalonnage et calcul s'appliquaient ?Un changement de configuration ressemble à un changement physique
Séquence ou identité stable d'événementCette observation a-t-elle déjà été traitée ?Les nouvelles tentatives créent des doublons ou comptent deux fois l'énergie

Voici un enregistrement du compteur d'énergie d'un tableau de distribution triphasé, transmis aux quarts d'heure. C'est la mesure de 09 h 45 pendant la coupure précédente, livrée après le retour de la connexion :

JSON
{
  "site": "plant-02",
  "asset": "db-3-compressor-house",
  "point": "db-3/energy-active-total",
  "property": "active energy, cumulative register",
  "value": 184213.4,
  "unit": "kWh",
  "observed_at": "2026-09-14T09:45:00Z",
  "received_at": "2026-09-14T12:02:41Z",
  "quality": "good",
  "config_revision": "point-list r7",
  "sequence": 88412
}

Les deux heures diffèrent de 2 h 17 min. Cet écart indique au système destinataire que la mesure a été retenue pendant une coupure et ne représente pas la charge actuelle. Le numéro de séquence lui permet d'écarter une seconde copie de la même mesure.

Toutes les sources ne peuvent pas renseigner tous les champs. Indiquez ceux qu'une source ne fournit pas et n'inventez pas une précision inexistante. Par exemple, un capteur Zigbee tiers transmet une valeur sans horodatage ; le Gateway la date à l'arrivée. Il s'agit d'une heure d'arrivée : nommez-la ainsi dans la liste des points.

Définir un point de mesure

Définir d'abord la mesure

Commencez par le mesurande, c'est-à-dire la grandeur à mesurer. « Température » est insuffisant si la décision dépend de la température de l'air à un emplacement donné, de la surface d'une conduite, d'une sonde immergée ou de la moyenne de plusieurs pièces.

Consignez la plage, l'incertitude exigée sur cette plage, le temps de réponse et les conditions d'installation. Notez la décision, l'alarme ou le calcul qui utilise la valeur. Indiquez ensuite ce qui se passe si elle est fausse, manquante ou tardive. Ce dernier point détermine plus loin le délai avant état périmé et le comportement de l'alarme.

L'indication de précision d'un composant ne garantit pas la performance de la chaîne installée. La politique de traçabilité métrologique du NIST considère la traçabilité comme une propriété d'un résultat de mesure. Une chaîne d'étalonnages documentée l'étaye, et chacun ajoute à l'incertitude. Un instrument étalonné ne rend pas automatiquement traçable tout résultat obtenu ensuite. Pour l'électricité, le guide du comptage de haute précision distingue classe du compteur, incertitude de la chaîne complète et approbation légale. Pour une sonde à résistance, le calculateur Pt100 et Pt1000 donne la courbe normalisée et la limite de la classe de tolérance choisie. Ajoutez les effets du transmetteur, du câblage et de l'installation.

Garder la trace des échelles et conversions

Un registre brut ou une entrée analogique peut demander un décodage signé, un ordre des mots, un rapport TC ou TT, une mise à l'échelle linéaire ou une courbe non linéaire avant de devenir une valeur technique. Conservez les paramètres ou la révision de configuration qui les appliquait. Un ordre des mots erroné peut produire un nombre plausible : décodez manuellement une valeur brute. Le guide de mise en service Modbus en donne un exemple.

Pour un point calculé, conservez aussi les identités des points d'entrée, la formule et sa révision, ainsi que les unités avant et après conversion. Notez la règle d'alignement temporel et ce que fait la formule d'une entrée mauvaise, manquante ou périmée. Marquez toute substitution, saturation ou correction manuelle du résultat.

Ne remplacez pas une valeur mauvaise par zéro. Zéro peut être une vraie mesure pour un moteur arrêté ou une cuve vide et entraîne une décision opérationnelle différente de « inconnu ».

Distinguer temps d'observation et temps d'arrivée

Une mesure porte l'heure à laquelle la situation existait et celle à laquelle chaque système l'a reçue ; elles divergent dès que les données sont mises en mémoire tampon et retransmises. Le guide sur les horodatages de télémétrie, temps de la source et temps d'arrivée explique lequel garder, l'UTC et l'heure d'été, puis comment tester la retransmission sur site.

Les garanties de transport s'arrêtent à chaque saut

MQTT 5.0 définit trois niveaux de qualité de service entre un émetteur et un récepteur : au plus une fois, au moins une fois et exactement une fois. Il définit aussi l'expiration des messages et l'état de session. Le guide MQTT sur TLS traite de l'identité du courtier, de l'authentification du client et de l'accès aux sujets.

Rien de cela ne prouve que la mesure physique était juste ou que chaque échantillon est devenu un message. Cela ne prouve pas non plus que la charge utile contient le bon point, la bonne unité ou le bon horodatage, que l'étape d'intégration suivante garde la même garantie, ni que le système destinataire stocke une seule fois le message. Un message retenu est simplement le dernier publié sur son sujet ; il peut avoir des heures ou des jours.

Attribuez une identité stable à chaque observation. Pour un point de comptage, l'identité du point et son heure d'observation suffisent généralement. Rendez les écritures idempotentes afin qu'un lot renvoyé ne soit pas compté deux fois. Testez la coupure puis la retransmission sur site. Ne déduisez pas le comportement du seul nom d'un protocole.

Rendre visibles qualité et fraîcheur

Un système destinataire doit distinguer une valeur actuelle d'une valeur tardive, périmée, substituée ou manquante. Il faut faire correspondre explicitement les états de qualité de chaque source à ceux du système. Le guide sur les données périmées, manquantes et invalides définit ces états, le choix d'une limite de fraîcheur et leur affichage à côté de la valeur.

Agréger à partir des preuves brutes

Chaque grandeur exige sa propre fonction d'agrégation. Puissance moyenne sur un intervalle, puissance maximale appelée, dernier état connu, nombre d'alarmes et variation d'un registre cumulatif ne se calculent pas de la même manière. Consignez les frontières des intervalles et le fuseau horaire. Indiquez si l'intervalle porte l'heure de début ou de fin, le seuil minimal de complétude et la manière dont des données tardives révisent un intervalle clos. Identifiez chaque résultat comme mesuré, agrégé, estimé ou substitué.

Ne faites jamais la moyenne d'un registre d'énergie cumulée. Prenez la différence entre ses valeurs aux frontières de l'intervalle. N'additionnez jamais des puissances instantanées sans multiplier chacune par la durée qu'elle représente.

Un débordement de compteur et une remise à zéro produisent tous deux une différence négative, mais exigent des traitements distincts. Prenons un compteur Wh sur 32 bits, qui revient à zéro après 4 294 967 295. À une puissance moyenne de 40 kW, il lui faut environ 12 ans pour atteindre cette limite : peu de systèmes testent ce cas avant qu'il se produise.

À 23 h 45, le registre affiche 4 294 960 296 Wh. À 00 h 00, il indique 3 000 Wh. S'il s'agit d'un débordement, l'énergie de l'intervalle vaut (4 294 967 296 − 4 294 960 296) + 3 000 = 10 000 Wh. Cela fait 10 kWh en 15 minutes, soit une puissance moyenne appelée de 40 kW :

Le compteur est maintenant remplacé. La dernière valeur de l'ancien est 1 250 400 Wh et la première du nouveau est 3 Wh. La même formule de débordement donne 4 293 716 899 Wh, environ 4,3 GWh en 15 minutes.

N'acceptez un débordement que si l'énergie impliquée est physiquement possible pendant l'intervalle. Une alimentation de 100 kW ne peut fournir plus de 25 kWh en 15 minutes. Un résultat supérieur signale une remise à zéro. Marquez cet intervalle incomplet, commencez une nouvelle référence et consignez l'événement. Sur un moniteur électrique ZEM-6x comme le ZEM-65, Edge affiche le point de débordement du registre, en kWh, comme réglage en lecture seule. Les registres kWh par phase sont modifiables ; un ingénieur peut donc leur attribuer une valeur initiale. Consignez chaque opération comme une remise à zéro.

Gardez le registre cumulatif en plus des valeurs par intervalle. Après une lacune de télémétrie, la différence du registre restitue l'énergie totale sur cette lacune. Elle ne peut pas reconstituer le profil de puissance à l'intérieur.

Échantillonnage, transmission et actualisation du tableau de bord

« Données à la minute » peut désigner cinq choses différentes : un capteur échantillonné une fois par minute ; un compteur échantillonné rapidement qui calcule une moyenne par minute ; un appareil qui publie sa dernière valeur une fois par minute ; une plateforme qui stocke une agrégation à la minute ; ou un tableau de bord actualisé chaque minute alors que le point change à un autre rythme. Précisez chaque cadence pertinente dans la liste des points.

Les capteurs Zigbee EpiSensor montrent cette distinction. Ils peuvent transmettre aux minutes fixées par l'horloge, à une fréquence fixe en secondes ou lors d'un changement.

Cette fréquence a un coût. Un point transmis toutes les 10 s produit 8 640 messages par jour. Toutes les 60 s, il en produit 1 440. Mille points transmis une fois par minute donnent 1,44 million de points par jour avant filtrage. Pour un capteur à batterie, chaque transmission consomme aussi du temps radio et de l'autonomie. Vérifiez l'intervalle de transmission supposé par la durée de vie de batterie indiquée dans la fiche technique.

UsageIntervalle typiquePreuves à conserver
Répartition d'énergie et facturationPériode de règlement ou tarifaire, souvent 15 ou 30 min, plus le registre cumulatifFrontières, complétude, remises à zéro du registre et estimations éventuelles
Tendance opérationnelle1 min pour la puissance ; 5 à 15 min pour la température ambianteCadence source, agrégation et fréquence d'affichage
AlarmeDélai de détection et limite de fraîcheur compatibles avec le temps de réponse autoriséSeuil, durée de persistance, hystérésis, limite de fraîcheur et délai de notification
Gestion de la puissance appeléeBien plus vite que la fenêtre de calcul, par exemple 1 min dans une fenêtre de 15 ou 30 min, pour garder le temps d'agirDéfinition de la fenêtre, cadence de mise à jour, logique de seuil et preuve de commande
Suivi de l'état des équipementsTendances de courant ou température à la minute pour une dégradation lente. Les spectres vibratoires exigent un échantillonnage en kHz sur un instrument dédiéBande passante du capteur, méthode d'échantillonnage, calcul des caractéristiques et référence
Qualité de l'énergie, protection ou sécuritéInstruments et méthodes qualifiés pour cette fonction, comme IEC 61000-4-30 pour la qualité de l'énergieNorme applicable, configuration de l'instrument, chronologie des événements et preuves de réception

Pour savoir ce que les données de courant et de puissance révèlent de l'état des équipements, lisez le guide de surveillance de condition à partir des données électriques.

Essais de mise en service révélant de mauvaises données

Effectuez chaque essai sur le chemin complet, du capteur à la plateforme destinataire. Écrivez le résultat attendu avant de commencer.

  1. Reliez chaque point affiché à l'appareil physique, au canal et à l'étiquette d'actif.
  2. Appliquez au moins deux valeurs connues, dont une non nulle, et vérifiez chaque conversion. Pour un canal de TC, comparez le courant dans Edge et sur la plateforme à la mesure d'une pince étalonnée sur le même conducteur.
  3. Vérifiez la polarité, la convention de signe importation/exportation et l'association des phases. Un TC inversé donne une puissance importée négative sur sa phase. Corrigez-le sur le TC ou avec le réglage de sens par phase du compteur, puis consignez votre choix.
  4. Comparez les horloges de la source et du destinataire. Retenez ensuite les données pendant une durée connue et vérifiez que les deux horodatages restent distincts.
  5. Déconnectez ou invalidez la source. L'application doit indiquer mauvaise qualité ou indisponibilité, pas zéro.
  6. Arrêtez les mises à jour sans effacer la dernière valeur. Le point doit devenir périmé à la limite convenue.
  7. Coupez la connexion vers l'aval pendant une durée fixe, par exemple 30 minutes. Observez la file d'attente grossir. Reconnectez, puis vérifiez l'ordre de retransmission, les horodatages et la complétude à destination.
  8. Rejouez un enregistrement ou recommencez une livraison. Un système destinataire idempotent ne doit pas le compter deux fois.
  9. Redémarrez successivement le capteur, le Gateway, le courtier MQTT et la plateforme. Vérifiez le rétablissement de l'identité, de la configuration, de l'horloge et de la livraison.
  10. Comparez un intervalle clos aux relevés source, notamment une frontière d'intervalle, une valeur manquante et une remise à zéro du compteur.
  11. Modifiez une plage ou une révision de formule approuvée. Le changement doit apparaître dans la traçabilité sans modifier rétroactivement le sens des données anciennes.
  12. Comparez les mesures importantes à une référence indépendante sous une charge représentative.

Le procès-verbal de réception identifie le matériel, la configuration, la référence, l'heure de l'essai, le résultat attendu, le résultat constaté et la personne qui l'a approuvé.

Défaillances observées sur site

SymptômeCause probableComment le détecter
Puissance importée négative sur une phaseTC inversé ou sur la mauvaise phaseSigne de la puissance de chaque phase face à une charge connue et facteur de puissance très éloigné de l'attendu
Valeurs mille fois trop grandes ou trop petitesW présentés comme kW ou facteur d'échelle manquantComparaison à l'affichage du compteur ou à une pince de mesure lors de la mise en service
Valeurs énormes ou presque nulles après modification de la table des registresMauvais ordre des mots ou mauvais type de donnéesDécodage manuel d'un registre brut
Une heure absente en mars et doublée en octobreIntervalles indexés sur l'heure localeCompter 92, 96 ou 100 périodes par jour local
Lacune suivie d'un afflux de mesures datées de la même minuteDonnées retransmises horodatées à l'arrivéeHeure de réception moins heure d'observation, par mesure
Mesures datées de plusieurs années dans le passé ou l'avenirHorloge d'un appareil ou du Gateway non réglée après coupureHeure d'observation hors d'une plage plausible autour de l'heure de réception
Ligne constante à la dernière valeurSource arrêtée et affichage conservant la dernière mesureÉtat périmé et âge de la dernière observation
Saut d'énergie de plusieurs GWh dans un intervalleRemise à zéro du compteur interprétée comme un débordementPlafond d'énergie physiquement possible pendant l'intervalle

Suivre la qualité des données en exploitation

La mise en service valide un état un jour donné. L'exploitation doit détecter ses changements. Pour chaque point, comparez le nombre d'observations attendues et reçues et suivez l'âge de la dernière observation valide. Comptez les mesures tardives, dans le désordre, en double, mauvaises, incertaines, substituées et hors plage. Suivez le décalage des horloges, la profondeur de la file d'attente et l'âge de son élément le plus ancien. Consignez les changements de schéma, d'unité ou d'identité rejetés et rapprochez les totaux par intervalle du registre cumulatif.

Déclenchez des alertes sur des seuils adaptés à l'usage : par exemple, dernière observation plus ancienne que la limite de fraîcheur, élément le plus ancien de la file âgé de plus d'une heure ou décalage d'horloge supérieur à 5 s pour des données à la minute.

Définissez le dénominateur avant de communiquer une disponibilité. « 99,9 % de disponibilité des données » ne signifie rien tant que l'ensemble des points attendus, le calendrier de transmission, les exclusions, la règle de qualité et le traitement des données tardives ne sont pas fixés. Pour un point transmis à la minute, 99,9 % sur 30 jours autorise encore 43 mesures manquantes.

ISO/IEC 25012 propose un modèle général de qualité des données structurées. Il contient 15 caractéristiques, réparties entre les aspects inhérents aux données et ceux dépendant du système ; l'ISO l'a réexaminé et confirmé en 2025. Il fournit le vocabulaire, mais le projet doit transformer les caractéristiques pertinentes en exigences mesurables.

Données de capteurs avec EpiSensor

Les appareils EpiSensor, comme les moniteurs électriques ZEM et les capteurs de température et d'humidité ZHT, transmettent par Zigbee à un Gateway ZGW-20. Celui-ci exécute EpiSensor Edge, qui conserve un historique local (30 jours par défaut), effectue des calculs et des règles, et transmet les données à d'autres plateformes.

Les mesures des appareils Zigbee EpiSensor parviennent à Edge avec un horodatage sur chaque point, qu'Edge conserve. Edge date les valeurs des appareils Zigbee tiers avec l'horloge du Gateway à leur arrivée. Il rejette tout point dont l'horodatage est invalide et enregistre un avertissement.

Edge calcule la qualité de chaque capteur sur une fenêtre de 15 minutes. Pour un capteur à cadence fixe, elle est exprimée en pourcentage des points attendus. Un capteur transmettant une fois par minute doit fournir 15 points ; 13 reçus donnent donc 87 %. Pour un capteur transmettant sur changement ou moins d'une fois toutes les 15 minutes, Edge donne plutôt le nombre de points reçus. Vérifiez le type de qualité avant de comparer deux capteurs.

Quand une destination prise en charge tombe en panne, Edge place les données non livrées dans une file sur disque. Certaines intégrations gèrent toutefois elles-mêmes leur politique de nouvelles tentatives : consultez leur guide. Edge vérifie la destination chaque minute et rejoue la file à son retour. Les mesures rejouées gardent leurs horodatages d'origine ; elles ne relancent ni les calculs locaux ni l'automatisation. Pour MQTT, Edge considère la livraison terminée lorsque le courtier confirme la publication. Un lot peut arriver deux fois si la destination l'a reçu avant qu'Edge n'enregistre l'achèvement : le destinataire doit éliminer les doublons. Les données en attente de retransmission n'ont aucune limite d'âge ; une longue panne fait donc grossir la file. Dimensionnez l'espace libre du Gateway pour la plus longue coupure prévue.

Dans Edge, chaque mesure comprend un identifiant de capteur, un identifiant d'exportation formé du numéro de série de l'appareil et de l'identifiant de capteur, un horodatage et une valeur. L'unité, la mise à l'échelle et la qualité viennent de la configuration de l'appareil. Précisez dans la liste des points comment la plateforme destinataire les obtient. Convenez aussi de la couche qui applique l'échelle, de la correspondance entre qualité Edge et qualité de la plateforme, et du comportement des alarmes et commandes lorsqu'une entrée devient périmée.

Une fois la liste des points arrêtée, consultez le guide sur l'architecture de stockage des données IoT pour choisir l'emplacement de chaque stockage.

Questions fréquentes

Que doit contenir l’enregistrement d’un capteur IoT ?

Il lui faut l’identité du site, de l’actif et du point, la propriété observée, la valeur et son unité, le moment auquel l’observation s’applique, le moment où elle a été reçue et un état de qualité. La facturation, la répartition du sous-comptage et le règlement des services d’effacement demandent aussi la mise à l’échelle, l’étalonnage et la révision du calcul ayant produit la valeur.

Quelle différence entre horodatage source et horodatage d’ingestion ?

L’horodatage source indique quand la situation mesurée existait. L’horodatage d’ingestion indique quand un autre système a reçu ou stocké l’enregistrement. Ils divergent pendant une mise en mémoire tampon, une nouvelle tentative ou une erreur d’horloge. Remplacer l’heure source par l’heure d’ingestion fait paraître actuelles des données anciennes.

La qualité de service MQTT garantit-elle des données complètes ?

Non. La qualité de service MQTT concerne la livraison entre un émetteur et un récepteur. Elle ne prouve ni que le capteur a correctement mesuré, ni que chaque échantillon est devenu un message, ni que l’application suivante l’a stocké une seule fois. Elle ne garantit pas non plus l’unité ou l’horodatage de la charge utile.

Comment choisir l’intervalle de transmission IoT ?

Partez du changement le plus rapide que l’application doit détecter et de la période de règlement ou de calcul. Vérifiez ensuite le délai de détection permis, la capacité de l’appareil et du réseau, ainsi que le stockage. Échantillonnage, calcul, publication et actualisation du tableau de bord ont des cadences séparées : choisissez chacune délibérément.

Une valeur nulle équivaut-elle à une donnée manquante ou périmée ?

Non. Zéro peut être une mesure valide. Manquante signifie qu’aucune valeur n’est arrivée pendant un intervalle attendu. Périmée signifie que la dernière valeur dépasse la limite de fraîcheur de cet usage. Stockez et affichez ces trois états séparément.