docs(spec): LM-1204-b — le scénario d'acceptation de 3g et son piège de simulateur
Défini avec Patrick quand le banc a reçu une seconde borne. Il n'est PAS exerçable avant 3g, et c'est le point : nonEvLoads filtre etmvariableload | relay-router | sg-ready, l'EV est décidé en proxy AVANT le waterfall, donc les deux bornes ne partagent aucun budget et leur rang n'a aucun sens. Le piège que Patrick signale est réel et il a une réponse observable : une wallbox simulée peut obéir à une consigne sous son plancher là où du matériel refuserait. Le discriminant est le MOTIF publié, que seul le scheduler peut émettre — BELOW_MIN_POWER prouve que l'arbitre a refusé et qu'aucune commande n'est partie, SURPLUS_SETPOINT avec setpointW < minPowerW prouve l'inverse, et une borne à 0 W sans motif de plancher signifie que c'est le matériel qui a refusé, donc que le test ne prouve rien. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XPUo3RMr8SzK6qbFtfBm8H
This commit is contained in:
parent
639689baa9
commit
c94e78a194
@ -1,12 +1,16 @@
|
||||
# SPEC — Modèle de charges (domaine × mécanisme)
|
||||
|
||||
Version : 0.2.1
|
||||
Version : 0.2.2
|
||||
Dépôt : `etm-powersync-energy-plugin-etm`
|
||||
Statut : **intention de conception figée.** §3 (schéma persisté) est **en cours
|
||||
d'implémentation** depuis le 2026-08-09 : `relay-router`, `etmvariableload` et
|
||||
`sg-ready` sont trois charges utiles discriminées par `adapter`. Le reste du
|
||||
document reste une intention.
|
||||
|
||||
> **0.2.2** — LM-1204-b : le scénario d'acceptation de 3g, avec son piège de simulateur et le
|
||||
> motif qui le déjoue. Ajouté quand le banc a reçu une seconde borne — et **il reste
|
||||
> inexerçable tant que 3g n'est pas fait**, ce qui est précisément ce qu'il mesure.
|
||||
|
||||
> **0.2.1** — spec relue et validée (Patrick, 2026-08-26). Deux décisions inscrites :
|
||||
> l'extension du délestage au waterfall devient une **précondition de livraison** du §10 —
|
||||
> écrite comme condition et non comme conseil — et la cible de confort est tranchée
|
||||
@ -746,6 +750,40 @@ Le proxy actuel, qui décide du VE **en amont** du waterfall, ne peut pas produi
|
||||
comportement : il n'a pas de notion de reliquat à passer. **C'est le plancher qui rend la
|
||||
transplantation nécessaire, pas l'inverse.**
|
||||
|
||||
**LM-1204-b — Le scénario d'acceptation de 3g, à monter au banc.** *(Défini avec Patrick,
|
||||
2026-08-26, quand le banc a reçu une seconde borne.)*
|
||||
|
||||
> **Il n'est PAS exerçable avant 3g**, et c'est le point : aujourd'hui `nonEvLoads` filtre
|
||||
> `etmvariableload | relay-router | sg-ready`, l'EV est décidé **en proxy avant** le waterfall,
|
||||
> les deux bornes ne partagent donc aucun budget avec le reste et **leur rang n'a aucun sens**.
|
||||
> Ce scénario est le critère qui dira que 3g est fait.
|
||||
|
||||
1. **Budget insuffisant pour deux planchers.** Surplus ≈ 4 kW, deux bornes à ≈ 1,4 kW de
|
||||
plancher (6 A monophasé). **Attendu** : la borne de rang supérieur servie à fond, la seconde
|
||||
au reliquat — et **0 si le reliquat est sous son plancher**, jamais une part symbolique.
|
||||
**Contre-exemple à ne surtout pas produire** : 2 kW à chacune, les deux sous leur plancher,
|
||||
rien ne charge et le surplus part au réseau.
|
||||
2. **Inversion de rang entre les deux bornes**, et la charge servie doit changer. C'est le
|
||||
pendant EV de l'inversion ECS/SG-Ready déjà éprouvée.
|
||||
|
||||
**Le piège de simulateur, et comment le déjouer.** Une wallbox simulée acceptera peut-être une
|
||||
consigne sous son plancher là où du matériel réel refuserait de démarrer. **Le plancher doit
|
||||
être appliqué par l'ARBITRE, jamais constaté par le matériel** — sinon le test ne prouve que
|
||||
l'obéissance du simulateur.
|
||||
|
||||
Le discriminant est le **motif publié**, et il est décisif parce que seul le scheduler peut
|
||||
l'émettre :
|
||||
|
||||
| ce qu'on lit | ce que ça prouve |
|
||||
|---|---|
|
||||
| `BELOW_MIN_POWER {budgetW, minPowerW}` | **l'arbitre a refusé** — aucune commande n'est partie |
|
||||
| `SURPLUS_SETPOINT` avec `setpointW < minPowerW` | l'arbitre a laissé passer : le plancher n'est **pas** appliqué |
|
||||
| borne à 0 W sans motif de plancher | c'est le **matériel** qui a refusé — le test ne prouve rien |
|
||||
|
||||
**Ce qu'une wallbox simulée ne prouvera pas**, et qu'il ne faut pas déclarer vérifié : la
|
||||
négociation de courant réelle, le délai d'établissement de la charge, et le comportement d'un
|
||||
véhicule qui refuse.
|
||||
|
||||
**LM-1205 — La machinerie d'échéance existe déjà.** `needs { dailyDeadline, minEnergyWhPerDay }`
|
||||
est ce qui avait motivé le proxy — la crainte que le waterfall ne sache pas exprimer « cette
|
||||
voiture doit être chargée à 7 h ». Il sait : c'est le même champ que le plancher éco du §10
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user