2 Commits

Author SHA1 Message Date
Patrick Schurig
cd202840f1 fix(flux): la production restait négative dans le DÉTAIL, et le tableau de bord ignorait la config
Deux défauts trouvés en vérifiant la correction précédente à l'écran.

1. « -1.3 kW · Solaire » dans « Production — détail ». La correction du
   2026-09-05 n'avait redressé QUE le nœud de la vue d'ensemble : la même
   grandeur est rendue à deux endroits, et le grep qui avait servi cherchait
   `pvPower.abs` — donc il montrait la ligne déjà corrigée et cachait l'autre.
   Un test couvre désormais le détail, en éprouvant l'ABSENCE du signe.

2. PAC et « Eau chaude » affichaient « non publié » alors que la box publie
   `{powerW: 0, source: "meter"}` pour les deux. `LoadConfigProvider.load()`
   n'était appelé que par l'écran des rôles : sur le tableau de bord la
   configuration est vide, aucun `domain` ne se rattache, et la carte reste sans
   valeur. Une absence CÔTÉ APP présentée comme une absence côté box — le défaut
   qu'on venait de corriger, reproduit un cran plus loin, et trompeur de la même
   façon : on en conclurait que la box ne publie rien.

Vérifié à l'écran entre les deux : « non publié » est lisible dans les cercles,
« Autres » a disparu, et le détail production ne montre plus d'onduleurs
fabriqués mais « Détail par source non publié par cette box ».

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GKM8FDNHZWogAsjjfB8pSw
2026-09-06 13:24:53 +02:00
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