diff --git a/docs/DESIGN_DEROGATION.md b/docs/DESIGN_DEROGATION.md index 281d315..cb77ac2 100644 --- a/docs/DESIGN_DEROGATION.md +++ b/docs/DESIGN_DEROGATION.md @@ -63,9 +63,39 @@ Le moteur ne peut pas deviner ce qui met fin à une dérogation : cela dépend d | 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 | -| 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 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 -La fin par **débranchement** est exerçable dès qu'une voiture est là. La fin par **cible** ne -l'est pas : aucun Thing `car` n'est appairé, donc aucun SoC n'est lisible — le journal le répète -vingt fois par heure (`"V2C Trydan" has no car assigned. Ignoring...`). Et la fin par -**température** demande la sonde du §12, qui n'existe qu'en mock. +**Les trois fins du VE sont exerçables sans véhicule communicant** : débranchement, cible en +énergie via `sessionEnergy`, et durée. C'est ce qui rend ce lot éprouvable sur le banc réel, là +où une fin par SoC ne l'aurait jamais été. -**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.