docs(spec): LM-1208 — sortir de la décision n'est pas sortir de la comptabilité
Quatre constats de l'agent app, vérifiés un par un sur le banc. A — la CONCLUSION est retenue, le MÉCANISME ne l'est pas. « Pas de voiture assignée » cesse d'être un critère d'exclusion (LM-1208-b). Les trois arguments tiennent, et le troisième est décisif : le critère contredit LM-1206, qui donne le rang et le plancher à la borne et non au véhicule. S'y ajoutent le cas de l'invité — la borne cesserait d'être arbitrée au moment précis où elle consomme — et l'invérifiabilité d'une assignation déclarée à la main. Mais le budget n'était pas faussé, et c'est le journal du banc qui le montre : pendant que la V2C tirait, le compteur est passé de −2 915 W (export) à +3 531 W (import) et l'arbitre a publié « Surplus insuffisant (−3 531 W) — chauffe-eau à 0 W ». L'ECS n'a pas été servi par-dessus. Le budget part de la mesure BRUTE (invariant 8) : la consommation d'une charge exclue y est déjà déduite. L'exclusion est conservatrice. La règle générale est néanmoins écrite, parce qu'elle a un porteur étroit et réel : une charge exclue du contexte mais commandée par le PROXY ne reçoit aucun evReservedW. Transitoire, sans effet aujourd'hui — mais elle mordra au §10, où la passe éco décide d'acheter. Et un écart de MESURE, distinct et non tranché, est signalé : le compteur racine lit ~1,5 kW de moins que la somme des charges mesurées. Même famille que son aveuglement documenté aux résistances ECS. Ce n'est pas un problème d'arbitrage, mais un budget juste suppose un compteur qui voit tout. B — même cause, mais le mode manuel n'est pas en cause : il reste une exclusion délibérée. Le vrai point est que le mode par défaut d'une borne détectée EST ChargingModeNormal — une borne neuve n'est donc jamais arbitrée tant que personne n'a choisi un mode éco. Correct, mais invisible à la mise en service. C — l'entrée résiduelle se supprime déjà depuis l'app : SetLoadConfig remplace l'ensemble, et l'auto-provisionnement ne recrée que les bornes dont le Thing existe. Le geste demandé existe ; la limite à connaître est qu'une entrée dont le Thing vit encore sera recréée — pour celle-là, c'est enabled: false. D — instruction reçue, aucun cas particulier V2C dans le moteur, C1 maintenue. Leur distinction est plus fine que ce que le brief anticipait : un champ absent se voit, un champ qui s'efface se lit comme un zéro. Troisième régime, et c'est pourquoi C2 exige que le régime soit publié plutôt que déduit d'une valeur. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017TVywtayEeoRJ2yWUW4iZj
This commit is contained in:
parent
5fb15d521b
commit
7b00ed4fe0
@ -1031,6 +1031,60 @@ appartient à un chauffe-eau.
|
||||
`assignedCarId` existe déjà dans `ChargingInfo` : le jour où la communication véhicule arrive,
|
||||
la migration du rang de la borne vers le véhicule reste possible **sans casser l'acquis**.
|
||||
|
||||
**LM-1208 — Une charge sortie de la DÉCISION n'est jamais sortie de la COMPTABILITÉ.**
|
||||
*(Règle posée par l'agent app, 2026-08-28, sur un constat de banc. La règle est retenue ; le
|
||||
mécanisme qui l'accompagnait était inexact — voir l'encadré.)*
|
||||
|
||||
Quel que soit le motif d'exclusion — mode manuel, véhicule inconnu, borne débranchée — **la
|
||||
consommation réelle de la charge reste dans le bilan du budget**. Une charge qu'on cesse de
|
||||
piloter ne cesse pas de consommer.
|
||||
|
||||
> **Cette règle est DÉJÀ tenue, et par construction** : le budget part de la mesure **brute** du
|
||||
> compteur (invariant 8 d'`AGENTS.md`), donc la consommation d'une charge exclue y est déjà
|
||||
> déduite — sans que personne ait à la réserver. Vérifié au banc le 2026-08-28 : la V2C tirant
|
||||
> 3,9 kW hors arbitrage, le compteur est passé de −2 915 W (export) à +3 531 W (import) et
|
||||
> l'arbitre a publié « Surplus insuffisant (−3 531 W) — chauffe-eau à 0 W ». **L'ECS n'a pas été
|
||||
> servi par-dessus.** L'exclusion est conservatrice : la charge exclue retire du budget aux
|
||||
> autres, et personne ne le lui rend.
|
||||
>
|
||||
> **La règle garde pourtant un porteur, étroit et réel** : une charge exclue du contexte mais
|
||||
> commandée par le **proxy** ne reçoit aucun `evReservedW` — sa puissance commandée et pas
|
||||
> encore mesurée n'est réservée par personne (correction A ne couvre que les actions du
|
||||
> scheduler). Le trou est transitoire — un cycle, jusqu'à ce que le compteur rattrape — et il ne
|
||||
> mord pas aujourd'hui, le mode manuel faisant sauter la borne aussi côté proxy. **Il mordra au
|
||||
> §10**, où la passe éco décide d'acheter : acheter en croyant disposer d'une puissance déjà
|
||||
> engagée est exactement le défaut que la règle nomme.
|
||||
|
||||
**LM-1208-b — « Pas de voiture assignée » cesse d'être un critère d'exclusion.** *(Décision
|
||||
demandée, argument de l'agent app retenu.)*
|
||||
|
||||
Trois raisons, et la troisième est décisive :
|
||||
|
||||
1. **Le cas de l'invité le rend intenable.** Une voiture qui n'est pas celle du propriétaire ne
|
||||
sera jamais déclarée, et la borne cesserait d'être arbitrée **précisément quand elle
|
||||
consomme**.
|
||||
2. **Le critère n'est pas vérifiable.** L'assignation est déclarée à la main ; rien ne dit ce qui
|
||||
est réellement branché. Un critère d'arbitrage qui repose sur une déclaration invérifiable
|
||||
n'arbitre pas, il devine.
|
||||
3. **Il CONTREDIT LM-1206.** Le rang et le plancher appartiennent à la **borne**, pas au
|
||||
véhicule. Exiger un véhicule connu pour arbitrer la borne réintroduit exactement la
|
||||
dépendance que LM-1206 a écartée.
|
||||
|
||||
**Ce qu'on perd sans voiture assignée est une FONCTION, pas l'arbitrage** : l'échéance et la
|
||||
cible d'énergie deviennent indisponibles — dégradation, pas exclusion. C'est la même distinction
|
||||
que C1 de LM-1009 : une capacité manquante se dit, elle ne fait pas disparaître la charge.
|
||||
|
||||
> **Ce qui RESTE un critère d'exclusion, et pourquoi** :
|
||||
> — **mode manuel** (`ChargingModeNormal`) : c'est une intention explicite de l'utilisateur —
|
||||
> il pilote, l'arbitre s'abstient. Vérifiable, et voulu.
|
||||
> — **aucun véhicule branché** (`pluggedIn`) : la borne ne peut rien consommer de ce qu'on lui
|
||||
> allouerait (mesuré, `docs/RELEVE_3g2.md` §3.1).
|
||||
>
|
||||
> ⚠️ **Conséquence d'exploitation à connaître** : le mode par défaut d'une borne fraîchement
|
||||
> détectée est `ChargingModeNormal`. **Une borne neuve n'est donc jamais arbitrée tant que
|
||||
> personne n'a choisi un mode éco** — ce qui est correct par construction, mais doit être visible
|
||||
> à la mise en service, sans quoi « la borne ne charge pas toute seule » se lira comme un défaut.
|
||||
|
||||
**LM-1207 — Ne PAS ajouter de `priority` à `ChargingInfo`.** Ce serait un **second système de
|
||||
priorité**, et il serait immédiatement insuffisant : il ne saurait pas exprimer
|
||||
**« VE1 > ECS > VE2 »**, puisqu'il ne classerait que les bornes entre elles. Deux classements
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user