[Majeur] Le high-water mark publié masque les grandes corrections arrière (contradiction avec la docstring) #84
Labels
No labels
v1.0 · bloquant
v1.0 · majeur
v1.0 · mineur
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
mat/homeassistant-comwatt#84
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problème
La docstring de
_fetch_device_metrics(coordinator.py:767-773) affirme : « Larger backward corrections are still applied as a snap ». Elles le sont en interne : le snap arrière est bien appliqué àlive_total_wh(coordinator.py:819-830)… mais_publish_device_energy(coordinator.py:672-680) refuse de publier une valeur inférieure au max déjà publié.Le capteur (TOTAL_INCREASING, alimenté par
data["devices"][id]["energy"]= published) reste donc sur l'ancienne valeur haute : toute l'énergie réelle entre le total corrigé et l'ancien max est invisible jusqu'à ce quelive_total_whre-franchisse le max — potentiellement des heures/jours. La divergence est persistée (le save re-publie live, published reste le max), donc durable à travers les redémarrages.Risque
Sous-comptabilisation invisible et prolongée. HA gère très bien une baisse sur un capteur
total_increasing(interprétée comme reset du compteur, sans double comptage) : le verrou high-water échange un reset propre et visible contre un gel silencieux.Recommandation
Trancher explicitement avant v1.0 :
live_total_whbrut et laisser HA gérer le reset (le filtre de tolérance ±5 Wh couvre déjà le bruit),En l'état, le code ne fait ni l'un ni l'autre de façon cohérente.
Constaté lors de la review de code pré-v1.0 (v0.8.1).