2 Commits

Author SHA1 Message Date
Patrick Schurig
b3000ca2d5 fix(écran): trois défauts trouvés sur appareil, dont un de forme et un de moi
Passage sur le Redmi contre `.75`. Aucun des trois n'était visible en test.

1. LA PRODUCTION S'AFFICHAIT NÉGATIVE — « -8.9 kW · Solaire » sous 9 kW de
   soleil. `currentPowerProduction` est publié négatif par nymea et le service
   garde les signes bruts par politique ; la carte imprimait la valeur telle
   quelle. Ce qui rend le défaut net plutôt qu'opinable : la même carte
   normalisait DÉJÀ le réseau et la batterie par `.abs()` — la branche solaire
   était la seule oubliée, donc un oubli et non une convention.

2. LE LIBELLÉ SE COUPAIT AU MILIEU DU MOT — « Autoconsommat / ion », alors que
   le commentaire du code disait vouloir l'éviter. La cause n'est pas la
   longueur mais l'ÉCHELLE du texte : police système au-dessus de 100 %, et
   `maxLines: 2` ne protège de rien puisque Flutter coupe un mot long sans
   espace, sans même afficher l'ellipse. `FittedBox(scaleDown)` garde le mot
   entier et ne fait rien quand la place suffit.

3. MA LIGNE DES RATIOS RÉPÉTAIT LES TUILES — « Instantané depuis 09:23 —
   autoconsommation 52 %, autonomie 54 % » sous des tuiles affichant 52 % et
   54 %. Les deux chemins étaient corrects et les valeurs coïncidaient vraiment
   (bilan 51,8/54,1 sur 00:00→16:45, box 51,9/53,7 depuis 09:23). Rien de faux,
   et illisible quand même : je déclenchais sur l'ORIGINE, alors qu'un lecteur
   compare des NOMBRES. La ligne sort désormais quand l'origine diffère ET que
   l'écart dépasse 2 points ; le relevé du jour est devenu un test.

Vérifié à l'écran après correction : le libellé tient sur une ligne, la ligne des
ratios se tait. Le signe, lui, N'A PAS pu être revu — la production du banc était
retombée à 0 W à 17:03, et `abs(0) == 0`. Une correction qu'on ne peut pas voir
demande une garde qui se voit : `flux_signe_test.dart` la pose.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GKM8FDNHZWogAsjjfB8pSw
2026-09-05 17:07:20 +02:00
Patrick Schurig
763df68a2a feat(bilan): deux grandeurs, deux phrases — les ratios de la box à côté de la journée
Les tuiles disent la JOURNÉE, par différence de compteurs sur la fenêtre publiée.
La nouvelle ligne dit ce que la BOX publie, qui part de la baseline — et elle ne
s'affiche QUE lorsque cette origine diffère du début de journée.

Le cas est arrivé de lui-même : `nymead` redémarré à 09:23, sonde à 09:26, et la
box publiait 100 % d'autoconsommation. Vrai sur trois minutes ; absurde intitulé
« aujourd'hui ». La ligne le rend lisible — « Instantané depuis 09:23 » — au lieu
de le laisser passer pour la journée.

Vérifié avec le MODÈLE de l'app et non à l'œil sur le JSON : `ratios_check.dart`
importe `EnergyRatiosSnapshot` (idiome de `measurement_check.dart`) et rend
`baselineRepriseEnJournee: true`, ratios couvrant 3 minutes. Le banc est passé en
Europe/Paris entre-temps, et `periodStartedAt` suit sans que le code bouge —
c'est l'intérêt d'une frontière publiée.

Quand les deux coïncident, rien n'est ajouté : une phrase permanente cesse d'être
lue, comme un avertissement permanent.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GKM8FDNHZWogAsjjfB8pSw
2026-09-05 09:31:44 +02:00