docs(spec §10): LM-1006-1 — le délestage est un plafond de soutirage

Note de conception. Aucun code, aucun champ, aucune entrée au modèle de
charges : elle existe pour que la porte reste ouverte.

Le §14a EnWG permettra au gestionnaire de réseau d'imposer un plafond de
puissance au point de livraison, que l'EMS répartit ensuite librement sur les
appareils. C'est le même mécanisme que le délestage exigé par LM-1006, avec
une source de commande différente. Il y a donc trois sources pour un seul
mécanisme : le disjoncteur de branchement (physique, permanent), le §14a
(externe, sur ordre, temporaire), et le plancher éco du §10 (implicite, celui
qu'on s'impose en décidant de soutirer).

Ce que la note demande, et c'est tout : quand le délestage général sera écrit,
ne pas l'écrire comme « la protection de surcharge » mais comme « appliquer un
plafond de soutirage ». La source est un paramètre, pas une hypothèse enfouie
dans le nom de la fonction. Cela tient dans une signature aujourd'hui ; ce
serait une refonte dans deux ans.

Deux propriétés sont vraies des trois sources et ne coûtent rien à tenir dès
l'écriture :

  - Le plafond le plus contraignant l'emporte, et on doit pouvoir dire LEQUEL
    a mordu. C'est l'exigence qui sépare déjà BELOW_MIN_POWER de
    SURPLUS_INSUFFICIENT : un client bridé doit lire « gestionnaire de réseau »
    et non « protection de surcharge ». Deux causes, deux gestes — l'une se
    subit, l'autre s'attaque en délestant ou en revoyant l'abonnement.
  - Le plafond survit à la panne du HEMS. Vrai du disjoncteur par
    construction ; ce sera une obligation légale pour le §14a, où la coupure
    totale est interdite mais le plafond doit tenir. C'est une contrainte sur
    degradedMode, et ce n'est pas celle qu'on aurait devinée : le repli L2
    d'aujourd'hui est conçu pour NE RIEN INITIER, pas pour continuer à faire
    respecter une borne qu'un tiers a imposée. Autant le concevoir là-dessus
    maintenant que le découvrir en certification.

Referme au passage une référence pendante : LM-1006-1 était cité par §13 sans
avoir jamais été défini.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017TVywtayEeoRJ2yWUW4iZj
This commit is contained in:
Patrick Schurig 2026-08-27 10:43:47 +02:00
parent baf267a963
commit 9845f6b6ea

View File

@ -593,6 +593,58 @@ surplus. **Ne pas confondre les deux bornes** : c'est ce qui distingue un planch
ordre. L'app doit le montrer — deux passes visibles, pas un classement unique qui aurait
l'air désobéi. Sans cela, le premier retour terrain sera « l'ordre n'est pas respecté ».
**LM-1006-1 — Le délestage n'est pas « la protection de surcharge » : c'est l'application d'un
PLAFOND DE SOUTIRAGE, quelle qu'en soit la source.** *(Note de conception, Patrick, 2026-08-27.
Ne déclenche aucun travail — elle existe pour que la porte reste ouverte.)*
Le §14a EnWG (Allemagne) permettra au gestionnaire de réseau d'imposer un **plafond de puissance
au point de livraison**, que l'EMS répartit ensuite librement sur les appareils. C'est le même
mécanisme que le délestage exigé par LM-1006 (couplage 1), avec une **source de commande
différente**.
Il y a donc **trois sources pour un seul mécanisme** :
| Source | Nature du plafond | Durée |
|---|---|---|
| **Disjoncteur de branchement** | physique — `phasePowerLimit` | permanent |
| **§14a EnWG** | externe, **sur ordre** du gestionnaire de réseau | temporaire |
| **§10 éco** (LM-1005) | implicite — celui qu'on **s'impose** en décidant de soutirer | le temps de la passe 1 |
**Ce qui est demandé, et c'est tout** : quand le délestage général sera écrit, ne pas l'écrire
comme *« la protection de surcharge »* mais comme *« appliquer un plafond de soutirage »*. La
source est un paramètre, pas une hypothèse enfouie dans le nom de la fonction. **Cela tient dans
une signature aujourd'hui ; ce serait une refonte dans deux ans.**
Deux propriétés sont vraies des **trois** sources. Les tenir dès l'écriture ne coûte rien ; les
rattraper après coûte le mécanisme entier.
1. **Le plafond le plus contraignant l'emporte — et on doit pouvoir dire LEQUEL a mordu.**
C'est exactement l'exigence qui sépare `BELOW_MIN_POWER` de `SURPLUS_INSUFFICIENT` (§12), et
elle se transpose telle quelle : un client bridé doit lire **« gestionnaire de réseau »** et
non « protection de surcharge ». **Deux causes, deux gestes** — l'une se subit et se
renseigne auprès du fournisseur, l'autre s'attaque en délestant la maison ou en revoyant
l'abonnement. Un motif qui les confond envoie diagnostiquer le mauvais problème, avec
l'autorité d'une explication (règle 7-b d'`AGENTS.md`).
> Conséquence pratique : le plafond retenu et sa **source** appartiennent au motif publié,
> pas au seul journal. Le catalogue de motifs est fermé et testé sur le TEXTE — c'est le bon
> endroit pour que cette distinction ne puisse pas se perdre.
2. **Le plafond survit à la panne du HEMS.** Vrai du disjoncteur **par construction**. Ce sera
une **obligation légale** pour le §14a : une coupure totale y est interdite, mais le plafond,
lui, doit tenir — y compris quand le moteur ne décide plus.
> C'est une contrainte sur `degradedMode`, et elle n'est pas celle qu'on aurait devinée. Le
> repli L2 d'aujourd'hui est conçu pour **ne rien initier** (`docs/SAFETY.md` §L2) ; il n'est
> pas conçu pour **continuer à faire respecter une borne** qu'un tiers a imposée. Autant
> concevoir le repli là-dessus tout de suite plutôt que de le découvrir en certification.
**Ce que cette note ne demande PAS** : aucun champ de configuration, aucune entrée au modèle de
charges, aucun code. Le §14a n'a pas de transport ici (il arrivera par un canal qui n'existe pas
encore), et le §10 n'est pas parti. C'est une **contrainte de forme sur du code non écrit**.
---
**LM-1008 — La cible de confort : les deux unités, mais pas au même endroit.** *(Décision
Patrick, 2026-08-26.)*
@ -872,7 +924,9 @@ derrière une seule.
- il **change le waterfall lui-même**, alors que les deux précédents l'entourent ;
- il fait de l'arbitre un **acheteur**, ce qui ouvre le prix, l'heure et le signal tarifaire ;
- **il est indissociable du délestage général** (LM-1006-1), qui n'existe pas encore : la
- **il est indissociable du délestage général** (LM-1006-1, désormais **défini** — et il est à
écrire comme un plafond de soutirage à trois sources, pas comme la protection de surcharge),
qui n'existe pas encore : la
protection de surcharge ne déleste que les bornes. Livrer les planchers éco sans lui, c'est
livrer un mécanisme capable de faire disjoncter une installation un matin sans soleil.