L'entrée 🔴 du TODO. Aucune des quatre tuiles n'était journalière : deux pourcentages instantanés, deux compteurs cumulés depuis l'origine dont deux portaient le mot « aujourd'hui ». Elles montrent désormais la journée, sous un en-tête qui le dit une fois. MÉTHODE : une DIFFÉRENCE de compteurs entre minuit local et maintenant, jamais une intégration des puissances. La première est une mesure, prise sur les mêmes compteurs que ceux du fournisseur ; la seconde est une estimation qui suppose que chaque échantillon représente son intervalle. Mesuré sur .75 : l'intégration rend 77,70 kWh là où la différence rend 78,31 — 0,8 % d'écart, systématiquement à la baisse. Il n'y a donc PAS de repli silencieux de l'une vers l'autre : quand la mesure n'est pas exploitable, le type le dit. DEUX BUGS D'UNITÉ, trouvés en cherchant à savoir ce que valaient les compteurs. Aucune documentation ne tranchait, donc recoupement sur machine : l'intégration des puissances (en W) rend 77 697 Wh quand la différence de totalProduction rend 78,310. Le rapport est mille — LES COMPTEURS SONT EN kWh, et le modèle Dart les nommait Wh. 1. L'écran Énergie divisait ces kWh par mille pour les afficher : une journée de 78 kWh s'y lisait « 78 Wh », sous un axe intitulé « Bilan énergétique (Wh) ». Invisible sans connaître l'ordre de grandeur attendu. 2. La simulation accumulait des Wh : un écran juste en simulation aurait cassé d'un facteur mille contre une vraie box. LE CONTRÔLE QUI VALIDE LE BILAN : production + soutiré == consommation + injecté. C'est le seul recoupement disponible sur des compteurs qu'on ne peut pas vérifier autrement, et il tient EXACTEMENT sur .75 — 112,244 des deux côtés sur 21,75 h. Faux, il désigne un compteur cassé ou une remise à zéro, et la carte le signale au lieu de présenter comme une mesure ce qui ne se recoupe pas. Les trois pièges du TODO n'ont pas été repayés : bornes à minuit LOCAL via GetPowerBalanceLogs · décodage délégué à fetchPowerBalanceLogs, qui porte déjà les bonnes clés sans préfixe currentPower · plausibilité vérifiée sur les DEUX bornes avant de soustraire, parce que deux valeurs absurdes peuvent avoir une différence d'apparence saine. Plus un quatrième trouvé en chemin : un compteur qui RECULE (redémarrage en milieu de fenêtre) donne un bilan négatif, et un max(0, …) le rendrait faux en silence. Rien ne s'affiche jamais à zéro quand c'est inconnu. Sans production, le taux d'autoconsommation est null et non 0 % — à 3 h du matin, « 0 % » se lirait comme un défaut alors qu'il n'y a rien à autoconsommer. VÉRIFIÉ SUR APPAREIL contre .75, en lecture seule (le banc est en préparation V2C, rien n'a été écrit) : 32 échantillons depuis minuit, prod 28,37 · conso 26,55 · import 11,95 · export 13,77 kWh, identité OK, et les tuiles affichent 51 % / 55 % / 13,8 / 11,9. Le passage sur appareil a trouvé ce qu'aucun des 138 tests unitaires ne pouvait voir : LES QUATRE LIBELLÉS DÉBORDAIENT — « Autoconsomm… », « Vers réseau · aujou… ». Le suffixe « aujourd'hui » répété quatre fois mangeait le nom de la grandeur ; il est dit une fois en en-tête. Le harnais d'appareil échoue désormais sur tout libellé finissant par « … ». Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016vrTVifar2GN5rtUh89Wkq
46 lines
1.7 KiB
JSON
46 lines
1.7 KiB
JSON
{
|
|
"_source": "Energy.GetPowerBalanceLogs sur 192.168.1.75, SampleRate15Mins, minuit local → 21:45, 2026-08-27",
|
|
"_note": "Trois échantillons sur 88. Les compteurs total* sont en kWh — vérifié par recoupement : l'intégration trapézoïdale des puissances (W) sur la fenêtre rend 77 697 Wh quand la différence de totalProduction rend 78,310. L'identité production + soutiré == consommation + injecté tient EXACTEMENT sur ce relevé : 112,244 des deux côtés.",
|
|
"_deltas_attendus_kwh": {
|
|
"production": 78.31,
|
|
"consumption": 74.435,
|
|
"return": 37.809,
|
|
"acquisition": 33.934
|
|
},
|
|
"powerBalanceLogEntries": [
|
|
{
|
|
"acquisition": 2366.78679094468,
|
|
"consumption": 3507.135007297016,
|
|
"production": -1140.3482163523356,
|
|
"storage": 0,
|
|
"timestamp": 1787781600,
|
|
"totalAcquisition": 62.16060776066769,
|
|
"totalConsumption": 6331.145563125843,
|
|
"totalProduction": 62032.09747619834,
|
|
"totalReturn": 55763.112520833165
|
|
},
|
|
{
|
|
"acquisition": -2213.146134015749,
|
|
"consumption": 3486.542535677007,
|
|
"production": -5699.688669692754,
|
|
"storage": 0,
|
|
"timestamp": 1787821200,
|
|
"totalAcquisition": 79.17562729191732,
|
|
"totalConsumption": 6368.860421631056,
|
|
"totalProduction": 62072.11789818015,
|
|
"totalReturn": 55782.43310384101
|
|
},
|
|
{
|
|
"acquisition": -1554.8017688394166,
|
|
"consumption": 3357.519044852532,
|
|
"production": -4912.320813691948,
|
|
"storage": 0,
|
|
"timestamp": 1787859900,
|
|
"totalAcquisition": 96.09468393254281,
|
|
"totalConsumption": 6405.580274597465,
|
|
"totalProduction": 62110.40698356833,
|
|
"totalReturn": 55800.92139290341
|
|
}
|
|
]
|
|
}
|