Merci j’aurais aimé le faire en python mais ne maîtrise pas trop la chose d’ou le shell de mon côté...
Quelques observations :
Sachant qu’il y a un temps de traitement incompressible mais également imprévisible (occupation momentanée RPi sur une autre tâche par exemple), je pense qu’il vaut mieux faire un sleep variable à chaque boucle.
Si DeltaT est le délai souhaité entre deux mesures :
1/ enregistrer le timestamp0 du rpi au lancement du .py
2/ à la fin d’une boucle récupérer le timestamp du rpi dans timestamp1
3/ timestamp0 = timestamp0 + DeltaT
4/ TS = timestamp0 - timestamp1
5/ si TS Inférieur à 0, TS=0
6/ sleep TS
Ça permet de se recaler toujours sur une période régulière depuis le lancement du .py.
si le rpi s’est décalé de x périodes pour une quelconque raison, il va se recaler automatiquement. Peu importe en fait que la mesure soit effectuée en début milieu ou fin de période, ce qui importe c’est qu’elle soit bien effectuée dans cette période. Après il suffit de multiplier la valeur de mesure récupérée par le délais réel entre les deux mesures pour obtenir les Wh en partant du postulat que durant ce laps de temps la conso est restée constante.
Si le rpi a laissé passer 30 secondes pour un DeltaT de 1 seconde, il va faire une première mesure qui va être à multiplier par 30 puis 29 qui vont être à multiplier par zéro si elles sont toutes faites dans la même seconde. La 31 ieme sera recalée dans la bonne période et à multiplier par 1 (cas du Delta_T = 1).
- Prévoir une correction d’erreur de mesure par rapport au linky éventuellement variable en fonction de la puissance soutirée est également quelque chose que j’ai rajouté dans le shell. En effet à 1kW soutiré la correction peut être de -10% mais à 8kW c’est par exemple -4% d’ou l’intérêt également de prévoir une correction indépendante sur les 5 voies de mesure (en partant du principe que chaque voie ait un taux de correction identique ce qui est probable mais pas évident je suis d’accord...)
- un fichier csv journalier en plus du fichier horaire comme le faisait legrand ?
- recuperer en plus de la valeur du linky le pic de conso horaire et journalier dans le .csv est également interessant ?
- sorties à impulsion style compteur d’eau ? La c’est comme pour la valeur du linky, c’est pas la même chose au niveau traitement que les voies 1 à 5 puisqu’on récupère la valeur du compteur et non pas la consommation instantanée. Il faut calculer cette valeur en faisant la soustraction entre la valeur actuelle de la boucle - valeur de la boucle précédente.
Voilà quelques idées...

merci pour le partage. S’il y a des évolutions logicielles ultérieures je suis preneur !
