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
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