Aperçu
Tous les compteurs eGauge utilisent le protocole NTP (Network Time Protocol) pour obtenir la date et l'heure actuelles. Le processus exact dépend de la version matérielle du compteur (eGauge2, EG30xx, EG4xxx). L'accès à un serveur NTP n'est pas obligatoire, mais fortement recommandé pour garantir la synchronisation de la date et de l'heure. Dans 99 % des cas, le protocole NTP fonctionne correctement avec les paramètres par défaut. Toutefois, il peut être nécessaire de vérifier manuellement la synchronisation NTP, d'utiliser des paramètres NTP différents ou de résoudre les problèmes liés à ce protocole.
Ce document vise à fournir une vue d'ensemble des fonctionnalités NTP appliquées aux compteurs eGauge. Par souci de concision, de nombreux concepts avancés seront simplifiés ou omis. Pour plus d'informations sur les concepts généraux du protocole NTP, veuillez consulter cet article .
Pourquoi ai-je besoin du protocole NTP ?
Le compteur eGauge est doté d'une horloge interne capable de maintenir une heure approximative sur une courte période. Cependant, sans connexion NTP active, cette horloge peut dériver de quelques minutes par mois. Si cela peut convenir à certains utilisateurs, de nombreux scénarios de surveillance exigent des données précises (par exemple, pour la facturation).
De plus, en cas de coupure de courant prolongée, la batterie ou le condensateur interne du compteur, qui assure le maintien de son horloge interne, se décharge. Le compteur utilisera alors la dernière date et heure connues lors du rétablissement du courant, ce qui signifie que les données enregistrées après ce moment auront un horodatage incorrect. Si le compteur peut se connecter à un serveur NTP une fois remis en service, il devrait automatiquement ajuster la date et l'heure avant de commencer l'enregistrement.
La durée pendant laquelle un compteur peut conserver la date et l'heure correctes en l'absence de courant dépend du modèle du compteur :
Modèle |
Temps de charge |
Durée d'exécution |
| EG4xxx | 5 minutes | 8 heures |
| EG30xx et eGauge2 | environ 1 mois | ~1 jour |
En l'absence de serveur NTP (par exemple, dans les zones sans connexion Internet), l'utilisateur doit veiller à mettre à jour manuellement la date et l'heure du compteur. Il est particulièrement important de vérifier la date et l'heure immédiatement après une coupure de courant.
En résumé, le protocole NTP est une fonctionnalité pratique qui contribue à garantir la précision des données collectées. Bien qu'il soit possible d'utiliser un compteur sans NTP, cela est déconseillé.
Configuration
En l'absence de serveur NTP (par exemple, dans les zones sans connexion Internet), l'utilisateur doit veiller à mettre à jour manuellement la date et l'heure du compteur. Il est particulièrement important de vérifier la date et l'heure immédiatement après une coupure de courant.
En résumé, le protocole NTP est une fonctionnalité pratique qui contribue à garantir la précision des données collectées. Bien qu'il soit possible d'utiliser un compteur sans NTP, cela est déconseillé.
- eGauge Systems LLC ne peut offrir aucune assistance ni aucun conseil concernant la création ou la maintenance d'un serveur NTP local.
Le nom d'hôte du serveur NTP est configuré sous Configuration → Réseau → Heure . Dans l'exemple suivant, le compteur est configuré pour utiliser l'option {0..3}.pool.ntp.org mentionnée précédemment :

L'état de la synchronisation de l'horloge est affiché sur la page de configuration de l'heure réseau. Les états possibles et leurs significations sont les suivants :
- Synchronisé : L’horloge est synchronisée avec le serveur, comme l’indique une coche verte (voir exemple ci-dessus). Les coches blanches (voir ci-dessus) indiquent une source de temps valide mais non utilisée.
- Synchronisation en cours : Le serveur NTP configuré a été détecté, mais la synchronisation n’est pas encore terminée. Pendant la synchronisation, une icône de flèche tournante peut s’afficher.
- Désynchronisé : Le serveur NTP est inaccessible.
- Inconnu : Le compteur n’a pas encore vérifié la disponibilité d’un serveur NTP.
Configuration et état dans la vue classique
En mode classique, le nom d'hôte du serveur NTP est configuré dans Paramètres → Date et heure . Dans l'exemple suivant, le compteur est configuré pour utiliser l'option {0..3}.pool.ntp.org mentionnée précédemment :

Vérification de l'état
Bien qu'il n'existe pas de page d'état NTP intégrée à l'interface utilisateur du compteur classique, il est possible de vérifier l'état NTP d'un compteur en ajoutant /cgi-bin/get?ntp à la fin de l'URL du compteur. Par exemple :
DEVNAME.egaug.es/cgi-bin/get?ntp
DEVNAME.egauge.io/cgi-bin/get?ntp
HOSTNAME.local/cgi-bin/get?ntp
LOCAL_IP_ADDR/cgi-bin/get?ntp
Chaque version matérielle du compteur utilise une méthode différente pour obtenir ces données et possède un style de sortie différent :
Version compteur |
Méthode utilisée |
| EG4xxx | ntpctl -s tous (OpenNTPD) |
| EG30xx | /usr/bin/ntpq -p (ntpq) |
| eGauge2 | N/A (aucune donnée renvoyée) |
EG4xxx

- En haut de la page, le compteur affiche le nombre de pairs valides. Dans ce cas, 2 des quatre pairs sont valides. Tant qu'au moins un pair est valide, la synchronisation NTP devrait fonctionner correctement.
- Toujours en haut de la page, la mention « horloge synchronisée » indique que l’horloge interne de l’eGauge est synchronisée avec le serveur NTP. Il est normal que la mention « non synchronisée » s’affiche pendant un certain temps (jusqu’à cinq minutes) après un redémarrage.
- Si la zone de résumé est complètement vide, cela signifie que le démon NTP n'est pas en cours d'exécution. Un redémarrage peut résoudre ce problème.
EG30xx

- Les pairs valides (techniquement, les pairs marqués pour prise en compte) sont précédés d'un « + ». Le pair actuellement utilisé pour la synchronisation est précédé d'un « * ». Tant qu'au moins un pair est précédé d'un *, la synchronisation NTP devrait fonctionner correctement. Dans l'exemple ci-dessus, trois pairs sont valides et le compteur est synchronisé avec l'un d'eux. Cette page d'état peut rester vide ou ne pas afficher de symboles « + » ou « * » pendant un certain temps (jusqu'à cinq minutes) après un redémarrage.
- Si la zone de résumé est complètement vide, cela signifie que le démon NTP n'est pas en cours d'exécution. Un redémarrage peut résoudre ce problème.
eGauge 2
- Les compteurs eGauge2 utilisent le protocole NTP pour synchroniser leurs horloges internes, mais ils ne fournissent pas de récapitulatif des compteurs connectés. Ce comportement est normal et ne sera pas modifié en raison des limitations matérielles des compteurs.
Fonctionnalités et comportement du NTP
La synchronisation NTP est un sujet complexe qui dépasserait le cadre de cet article. Toutefois, certains concepts fondamentaux méritent d'être abordés. Pour une présentation plus complète, veuillez consulter cet article.
Fonctionnalité
En résumé, un serveur NTP fonctionne en obtenant la date et l'heure exactes auprès d'une horloge de référence et en mettant ces informations à la disposition d'un appareil. Les horloges de référence sont généralement extrêmement précises (et par conséquent, extrêmement coûteuses). Les horloges internes de la plupart des ordinateurs sont généralement peu coûteuses, mais également peu précises. NTP offre une solution logicielle à ce problème. Les serveurs NTP peuvent être installés et gérés par n'importe qui, y compris les particuliers.
Le logiciel NTP exécuté sur l'eGauge utilise plusieurs critères pour déterminer la qualité d'un serveur NTP. Ces critères sont trop complexes pour être détaillés ici, mais en résumé, le compteur gère automatiquement la sélection du serveur et utilise le meilleur serveur disponible (le plus précis et le plus accessible). C'est là qu'intervient la statistique de stratification : la stratification indique la qualité d'un serveur, 1 représentant la meilleure qualité.
En règle générale, tout cela se déroule en arrière-plan (c'est également le cas pour d'autres appareils informatiques, y compris les ordinateurs personnels). Toutefois, dans certains cas, il peut être nécessaire de vérifier l'état du protocole NTP du compteur (pour s'assurer qu'il communique avec un serveur valide) ou de modifier les paramètres (si les serveurs par défaut sont inaccessibles).
Comportement général
Au démarrage (par exemple, après un redémarrage ou lors de la première installation), l'eGauge tente d'établir une connexion avec un serveur NTP. À ce moment-là, le compteur peut effectuer un saut important pour se synchroniser avec la date et l'heure correctes. Techniquement, on parle de « pas », utilisant la fonction settimeofday(). Ce saut est instantané , mais il peut n'avoir lieu qu'immédiatement après un redémarrage. Cependant, si la recherche d'un serveur NTP prend trop de temps (par exemple, si le réseau n'est pas prêt, si le serveur NTP est inaccessible, etc.), le compteur risque de ne pas pouvoir se synchroniser. Souvent, un redémarrage du compteur permet une synchronisation réussie lors de la seconde tentative.
En fonctionnement normal, l'eGauge peut tenter d'ajuster progressivement la date et l'heure du compteur pour qu'elles correspondent à celles du serveur NTP. Ce processus, appelé « glissement », utilise la fonction adjtime(). Contrairement à un « pas à pas », le « glissement » modifie lentement la date et l'heure à une vitesse d'environ 1 ms par seconde. Par exemple, un décalage d'une seconde nécessiterait environ 1 000 secondes, soit 16 minutes, pour se synchroniser. C'est évidemment beaucoup plus lent qu'un « pas à pas », mais le « glissement » est conçu pour gérer de faibles variations. C'est aussi pourquoi un compteur peut mettre plusieurs minutes à afficher l'état « synchronisé » après un redémarrage : un redémarrage introduit un décalage d'environ 120 ms dans la date et l'heure, qui nécessiterait environ 2 minutes pour se resynchroniser par « glissement ».