Timestamp sur push

Bonjour,
j’utilise une entrée compteur pour enregistrer les impulsions générées par mon compteur électrique.
Périodiquement, je viens télécharger l’état du compteur pour avoir l’énergie consommée et tout fonctionne bien.
Maintenant, j’aimerais mesurer la puissance instantanée. Pour cela, j’ai paramétré l’entrée pour envoyer un push à chaque impulsion sur un serveur (local, raspberry) qui calcul la puissance en fonction du temps passé depuis la dernière impulsion.
Ca fonctionne bien, en général, mais si pour une raison quelconque un push est reçu/traité avec un peu de retard, la puissance est faussée.
Ma question est donc la suivante, serait il possible de pouvoir transmettre un timestamp précis à la milliseconde en étiquette du push ?

Merci d’avance de votre aide.

Bonjour,
Franchement utiliser le push sur impulsion pour déduire une puissance instantanée ça n’est pas réaliste… D’une part, en cas de grosse conso, et selon votre compteur à impulsions évidemment, vous risquez de trop solliciter l’IPX et vous risquez donc de « perdre » carrément certains push. Exemple avec la limite des 5Hz acceptés en entrée, vous allez envoyer jusqu’à 5 push à la seconde ! Donc oui votre puissance « mesurée » sera faussée. D’autre part, elle sera également faussée dans plein d’autres cas. Exemple le plus « parlant » : l’arrêt brusque d’une grosse conso vers une conso très faible. Dans ce cas-là, imaginons que les impulsions passent de 1 impulsion / sec à 1 impulsion / 50 sec (conso de 5000W à 100W par exemple). Avec cet exemple, le système ne pourra plus calculer de conso pendant 50 sec, donc pendant 50 sec vous allez rester sur une conso de 5000W, ce qui est largement faux. Bref, question réactivité c’est franchement pas la joie…
Pour ma part, pour déduire une pseudo conso instantanée, je lis le fichier status.xml toutes les minutes et relèvent ainsi les compteurs. Je fais une soustraction et divise par 60 pour avoir un semblant de conso instantanée : je dis bien « semblant » puisque, comme dans votre cas, elle peut être largement faussée et ne refléter en rien la conso réelle instantanée. C’est juste une moyenne sur la minute écoulée. Par contre je ne sollicite absolument pas l’IPX qui n’envoit aucun push dans ma solution.

Bonjour,
Merci pour votre réponse. Effectivement le système n’est pas parfait, ne mesure pas une réelle puissance et est peut-être agressif pour le CPU.

J’utilise aussi la solution que vous proposez, à savoir relever l’état du compteur par le fichier xml.
Pour mon installation, j’ai 60W = impulsion par minute.
Le « souci » c’est donc qu’avec un point par minute, j’ai une définition de 60W (0W-60W-120W-180W…) puisque je ne peux qu’avoir un nombre rond d’impulsions et donc un point par minute. Avec les pushs j’ai un graphique avec plus de points possibles.
Typiquement j’ai une pompe de relevage, avec la méthode des notifications, je peux voir son appel de courant de démarrage, puis son fonctionnement pendant environ 40 secondes puis la puissance retombe au niveau d’avant le démarrage de la pompe. Avec la mesure de l’état du compteur de l’IPX, je verrai juste une « puissance » plus élevée sur la minute en question et peut-être la suivante.
A noter que je contourne plus ou moins le problème de la chute brutale de puissance en appliquant la règle suivant : Toutes les dix secondes, si il n’y a pas eu de notifcation depuis 10 secondes et que la dernière puissance enregistrée est >360W (360W=1imp/10s)alors j’insère un point dans la courbe à 360W (je consomme peut-être moins que 360W mais en tout cas pas plus). J’évite ainsi de rester à Pmax trop longtemps.

Il est rare que je consomme plus que 7kW (=2imp/sec, pas de chauffage électrique ici)et en cas de grosse consommation « perdre » un push n’est pas très grave (juste un point de moins sur la courbe à un moment ou on en affiche beaucoup). Par contre ce qui me pose problème c’est une notification qui arrive en retard, par exemple au même moment qu’une autre « normale » alors dans ce cas cela peut conduire à une valeur complètement fausse. Raison pour laquelle un timestamp m’aurait été utile. Mais sinon pas de problème, je ferai sans.

Je n’ai aucune idée de ce que représente réellement en charge CPU l’envoi de plusieurs notifications par secondes. Pouvez-vous me dire ? Est-ce qu’il y a un risque (autre qu’un raté de notifcation)?
C’est un peu une usine à gaz, mais tout cela ne sert à rien d’autre qu’a afficher une jolie courbe de charge alors tant que ça ne casse rien…

Vous pouvez éventuellement bloquer la carte (je parle d’un point de vue logiciel, pas matériel) ou provoquer un reset, du genre RAZ des compteurs ou redémarrage de la carte avec RAZ des sorties. Bref aucune conséquence au niveau matériel, mais d’un point de vue fonctionnement du logiciel vous prenez le risque de quelques fonctionnements aléatoires.

Merci pour vos conseils.
Je vais donc plutôt passer a une lecture plus fréquente du fichier XLM.