1. La réserve batterie n'annule QUE le surplus, pas une autorisation de
soutirage. Inscrit en LM-1203-b : la passe éco du §10 ne dépense pas de
surplus, elle dépense une autorisation d'acheter. Deux raisons dont chacune
suffit — une obligation qui cède à la réserve cesse d'être une obligation, et
la réserve garde son sens là où elle en a un, empêcher de vider la batterie
dans un chauffe-eau, ce qu'un soutirage réseau ne fait pas.
2. Le repli dégradé : les deux cas sont distingués, et la distinction RETIRE le
point du lot. Le plafond du §10 est AUTO-IMPOSÉ, donc un repli qui ne dépense
pas le respecte par construction — rien à écrire. L'exigence dure — tenir une
borne imposée par un TIERS alors que le moteur ne décide plus — appartient au
§14a et vivra hors du moteur. Les confondre aurait fait hériter au §10 d'une
exigence qui ne le concerne pas encore. LM-1006-1 porte désormais la table
des trois sources et de ce que « survivre » veut dire pour chacune.
3. phaseCount de la V2C : saisie à l'appairage. La Trydan du banc est
triphasée ; le repli « câbler en monophasé » est écarté, il ferait tester une
installation qui n'est pas celle du client.
Et l'attendu « sessionEnergy sur matériel réel » est RETIRÉ pour demain — le
refus V2C est documenté, pas un oubli. Remplacé par deux choses : ré-examiner
ChargeEnergy borne et référence en main, et exercer la condition C1 de LM-1009
sur ce cas réel plutôt que sur un cas fabriqué.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017TVywtayEeoRJ2yWUW4iZj
Deux livrables, aucun code.
DESIGN_10.md — le §10 sous la contrainte des deux notes.
Le délestage part AVEC pour une raison arithmétique, pas de calendrier : la
passe éco n'est pas bornée par le surplus mais par une autorisation de
soutirage, et cet objet n'existe pas encore. Le lot doit donc le créer.
LM-1006-1 devient une structure : DrawCap {source, totalW, perPhaseA, until} et
DrawBudget qui publie `binding` — QUI a mordu. Le piège technique est nommé et
tranché : les trois sources ne parlent pas la même langue (le disjoncteur est
par phase, le §14a et l'éco sont des totaux), un plafond total ne protège pas
d'une surcharge monophasée, un plafond par phase n'exprime pas le §14a. La
proposition est de porter les deux et de ne JAMAIS convertir — c'est la
conversion qui perdrait l'information.
LM-1003 impose la vraie refonte : les passes calculent des cibles, une seule
commande sort par charge et par cycle, arrondie une fois au mécanisme. Cela
scinde buildSetpointAction(), qui mélange aujourd'hui décision, écrêtage,
comptabilité et motif. Deux comptabilités distinctes, PlanBudget (d'où vient
l'énergie) et PlanDraw (combien on a décidé d'acheter) — les fondre rendrait
faux l'invariant publié de la première.
Cinq points à trancher, dont trois ne sont pas techniques. Le premier est le
plus lourd : la réserve batterie annule le budget de SURPLUS, mais la passe éco
dépense une autorisation de SOUTIRAGE. Si la réserve l'annule aussi, un plancher
éco ne sera jamais atteint batterie basse ; si elle ne l'annule pas, la maison
achète pendant qu'elle manque. Recommandation donnée, décision d'exploitation.
L'ordre de travail met en tête les deux étapes qui NE CHANGENT RIEN — publier le
plafond sans effet, puis la refonte décider/émettre à comportement constant,
prouvée par l'invariance des 16 scénarios enregistrés. Si un seul point de
contrôle bouge, c'est qu'une décision a changé, et il faut savoir laquelle.
PREPA_BANC_20260828.md — deux blocages silencieux trouvés la veille.
1. La ThingClass trydan ne déclare PAS phaseCount, et aucun registre Modbus V2C
ne le porte. EvCharger::phaseCount() retombe sur 1 : sur une Trydan
triphasée, le plancher publié vaudrait 1 380 W au lieu de 4 140, et la
conversion W→A donnerait une consigne 3× trop haute. C'est exactement la
famille de défaut que 3g-2 vient de fermer, rouverte côté plugin. Correctif
proposé : saisie à l'appairage, comme la voiture simulée le fait déjà.
2. sessionEnergy n'est délibérément pas exposée — le brief du plugin l'interdit,
evcc ayant retiré son ChargeRater pour cette borne (firmware peu fiable).
Donc « sessionEnergy sur matériel réel » n'est PAS franchissable demain. En
échange, demain permet la validation qui lèverait l'interdit, et exerce pour
de vrai la condition C1 de LM-1009 sur du matériel.
Plus : le plugin V2C n'est pas installé sur le banc, la Skoda n'a aucune
intégration (donc voiture manuelle, avec les quatre réglages à saisir), et
l'IP de test .127 est libre.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017TVywtayEeoRJ2yWUW4iZj