docs(dérogation): la cible se dit en ÉNERGIE, et la fin par SOC disparaît du design

Correction de Patrick, et elle supprime un manque au lieu de le documenter.

PAS DE COMMUNICATION VÉHICULE, et il n'y en aura pas : aucun plugin constructeur
prévu, et une intégration cloud Skoda/VW serait contraire au 100 % local, fragile,
rafraîchie à la minute au mieux.

Mais l'énergie est la BONNE grandeur indépendamment de cette contrainte. « 20 kWh
puis tu t'arrêtes » demande sessionEnergy, que le plugin V2C construit depuis le
2026-08-29. « Jusqu'à 80 % » demanderait la capacité, l'état de santé et le
rendement — trois inconnues pour dire la même chose en moins sûr. C'est exactement
ce que LM-1009 a établi pour l'obligation éco : on mesure de l'énergie parce que
c'est ce qu'on sait mesurer.

La fin par SOC ne figure donc plus dans le design, et son absence est écrite comme
une DÉCISION, pas comme un manque — sinon quelqu'un l'ouvrirait comme un lot.

ET sessionEnergy A UN SILENCE CONNU, qui justifie le filet mieux qu'un cas d'école.
LM-1012-d, mesuré sur la V2C le 2026-08-30 : à la perte du lien, currentPower tombe
à 0 et les booléens à false, mais sessionEnergy RESTE À SA DERNIÈRE VALEUR. Une
dérogation « 20 kWh puis stop » dont le compteur se fige à 12 kWh n'atteindra
jamais sa cible et achèterait au maximum indéfiniment. C'est le comportement
documenté de la borne installée, pas une hypothèse.

Conséquence heureuse : les trois fins du VE — débranchement, cible en énergie,
durée — sont toutes exerçables sans véhicule communicant. Ce lot est éprouvable sur
le banc réel, là où une fin par SoC ne l'aurait jamais été.
This commit is contained in:
Patrick Schurig 2026-09-08 06:09:16 +02:00
parent 3c60c83427
commit 60babd5af7

View File

@ -63,9 +63,39 @@ Le moteur ne peut pas deviner ce qui met fin à une dérogation : cela dépend d
| charge | fins possibles | | charge | fins possibles |
|---|---| |---|---|
| borne VE | **débranchement**, cible de charge atteinte, durée | | borne VE | **débranchement**, **cible en ÉNERGIE** (`sessionEnergy`), durée |
| chauffe-eau | **température** atteinte (si sonde), durée | | chauffe-eau | **température** atteinte (si sonde), durée |
| batterie | SoC cible atteint, durée | | batterie | cible en énergie, durée |
### La cible se dit en ÉNERGIE, jamais en SOC — et ce n'est pas un pis-aller
**Il n'y a pas de communication véhicule**, et il n'y en aura pas : aucun plugin constructeur
n'est prévu, et une intégration cloud Skoda/VW serait contraire au **100 % local**, fragile, et
rafraîchie à la minute au mieux.
Mais surtout, l'énergie est la **bonne** grandeur, indépendamment de cette contrainte :
| | ce qu'il faut savoir pour l'affirmer |
|---|---|
| « 20 kWh puis tu t'arrêtes » | `sessionEnergy`, que le plugin V2C construit depuis le 2026-08-29 |
| « jusqu'à 80 % » | la **capacité**, l'**état de santé** et le **rendement** de charge |
C'est exactement ce que `LM-1009` a établi pour l'obligation éco : **on mesure de l'énergie parce
que c'est ce qu'on sait mesurer.** Un SoC demanderait trois inconnues pour dire la même chose en
moins sûr.
> **La fin par SOC ne figure donc pas dans ce design**, et son absence n'est pas un manque à
> combler plus tard : c'est une décision. L'écrire comme un manque aurait laissé quelqu'un
> l'ouvrir comme un lot.
### Et `sessionEnergy` a un silence connu, qui justifie le filet
`LM-1012-d`, mesuré sur la V2C le 2026-08-30 : à la **perte du lien**, `currentPower` tombe à 0
et les booléens à `false`, mais **`sessionEnergy` reste à sa dernière valeur**.
Une dérogation « 20 kWh puis stop » dont le compteur se fige à 12 kWh **n'atteindra jamais sa
cible**. Elle achèterait au maximum jusqu'à ce que quelqu'un s'en aperçoive — sauf que la durée
est là. Ce n'est pas un cas d'école : c'est le comportement documenté de la borne installée.
**Chaque mécanisme déclare ce qui termine sa dérogation.** C'est un ajout à `ILoadAdapter`, au **Chaque mécanisme déclare ce qui termine sa dérogation.** C'est un ajout à `ILoadAdapter`, au
même titre que `commandSettleS()` : une propriété du mécanisme, pas une constante du moteur. même titre que `commandSettleS()` : une propriété du mécanisme, pas une constante du moteur.
@ -120,9 +150,12 @@ déjà vérifiable.
## 8. Ce que le banc ne prouvera pas ## 8. Ce que le banc ne prouvera pas
La fin par **débranchement** est exerçable dès qu'une voiture est là. La fin par **cible** ne **Les trois fins du VE sont exerçables sans véhicule communicant** : débranchement, cible en
l'est pas : aucun Thing `car` n'est appairé, donc aucun SoC n'est lisible — le journal le répète énergie via `sessionEnergy`, et durée. C'est ce qui rend ce lot éprouvable sur le banc réel, là
vingt fois par heure (`"V2C Trydan" has no car assigned. Ignoring...`). Et la fin par où une fin par SoC ne l'aurait jamais été.
**température** demande la sonde du §12, qui n'existe qu'en mock.
**La durée, elle, s'éprouve partout** — ce qui est une raison de plus d'en faire le filet. Reste hors de portée : la fin par **température**, qui demande la sonde du §12 — elle n'existe
qu'en mock, et c'est le sixième manque de `INVENTAIRE_MOCK.md` sous un autre angle.
**La durée, elle, s'éprouve partout** — une raison de plus d'en faire le filet plutôt qu'un
recours.