Ah c’est marrant, je le fais dans l’autre sens :
J’ai 3 compteurs dans un virtuel :
Litres : synchro avec la valeur sur le compteur d’eau réel,
Litres0 : la valeur de « Litres » au dernier reboot,
impOld : l’index du wemos lors du dernier relevé
(En plus de ça dans le virtuel, j’ai un « taux » d’impulsions par litres empirique qui permet de faire la conversion)
Puis en easy esp j’ai :
imp : l’index en impulsion qui remontent en direct du wemos.
Si je reçois un index easyesp (imp) plus petit que le précédent relevé (impOld)
Alors, c’est que ça a reload, les litres de référence sont les derniers reçu à l’impulsion 0 :
Litres0 = Litres
impOld = 0
Sinon, les litres sont recalculés de la façon suivante et la nouvelle valeur d’imp stockée dans impOld :
Litres = ( imp / taux ) - ( ImpOld / taux ) + Litres0
imp = impOld
Donc pas de souci si ça reboot.
De puis, s’il y a une dérive entre la valeur d’une Relève sur le compteur (depuis la RelèveOld) et le compteur dans Jeedom, je peux ajuster légèrement le taux de la façon suivante :
taux = taux * (Relève - RelèveOld) / (Litres - RelèveOld)
Litres = Relève
Litres0 = Relève
impOld = imp
Hope it helps,
Bad