From fa7ee442d3f2bdd20f5cfb6750a32cff2369dcfc Mon Sep 17 00:00:00 2001 From: Patrick Schurig Date: Sun, 9 Aug 2026 08:54:32 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20resserrer=20la=20conclusion=20du=20vole?= =?UTF-8?q?t=201=20+=20pi=C3=A8ge=20du=20rootmeter=20(ECS-504)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Deux corrections de fond. 1. « Les 500 W consommés de plus que comptés sont démontrés » allait un cran trop loin. Dans le cycle à verrou expiré, le routeur applique RÉELLEMENT 3000 W : il n'y a aucun écart consommé/compté dans ce cycle-là. Ce qui est démontré directement, c'est la moitié comptable — au même budget, honorer ou ignorer le verrou change le résidu de 500 W et fait basculer la charge de rang 3. L'autre moitié est observée dans le PREMIER cycle. Le résultat tient par composition de deux moitiés observées dans deux cycles différents du même binaire : solide, mais pas une observation directe. Un +etm2 réel reste le seul moyen de voir les deux dans le même cycle. 2. Rétractation erronée corrigée. J'avais écrit que la question du compteur ECS ne se posait pas, LoadConfig n'ayant aucun champ de rattachement. Le danger n'a jamais été là : si le compteur de la charge est désigné comme ROOTMETER dans nymea, sa puissance entre dans le bilan de surplus que l'arbitre lit par internalRootMeter(), et le budget est faussé pour toutes les charges. Aucune configuration n'est nécessaire — une désignation dans l'interface suffit. Inscrit sous ECS-504 comme piège de mise en service, applicable au câblage du compteur Modbus prévu. Co-Authored-By: Claude Opus 5 (1M context) --- docs/RELEVE_ECS306.md | 20 +++++++++++++++++--- specs/spec_ecs.md | 9 +++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/docs/RELEVE_ECS306.md b/docs/RELEVE_ECS306.md index ec1a462..d600504 100644 --- a/docs/RELEVE_ECS306.md +++ b/docs/RELEVE_ECS306.md @@ -165,9 +165,23 @@ Traces brutes : → `−198`. Côté verrou expiré : `3201 − 3000 = +201`, sonde éteinte donc aucun recrédit → `+201`, au-dessus de son palier de 100 W. -**La prédiction du §2 est confirmée sur le fond** : sans ECS-306, 500 W sont -consommés de plus que comptés, et la charge suivante s'allume sur un résidu qui -n'existe pas. +### Ce qui est démontré, et ce qui ne l'est pas + +**Démontré, directement** : au même budget, honorer le verrou ou l'ignorer change +le résidu de 500 W et **fait basculer la charge de rang 3**. C'est la moitié +*comptable* de l'affaire, et elle est observée sans ambiguïté. + +**NON démontré directement** : l'écart entre consommé et compté. Dans le cycle à +verrou expiré, le routeur applique **réellement** 3000 W — il n'y a donc aucun +écart dans ce cycle-là. L'autre moitié — le routeur qui écrête à 3500 W pendant +que le scheduler ne compte que 3000 — est observée dans le **premier** cycle, pas +dans le second. + +Le résultat tient donc par **composition de deux moitiés observées, chacune dans +un cycle différent du même binaire**. C'est solide, mais ce n'est pas une +observation directe du défaut complet. **Un `+etm2` réellement installé reste le +seul moyen de voir les deux moitiés dans le même cycle** — c'est ce qui reste à +faire, et c'est pourquoi l'expérience naturelle ne le remplace pas. **La prédiction secondaire est confirmée aussi** : la PAC de rang 2 est restée en état 4 sur les deux cycles. Sans la charge sonde, ce relevé aurait conclu « aucun diff --git a/specs/spec_ecs.md b/specs/spec_ecs.md index bd7f9ef..3732c66 100644 --- a/specs/spec_ecs.md +++ b/specs/spec_ecs.md @@ -499,6 +499,15 @@ ensemble) d'un étage en défaut (un seul chute). surplus (`AGENTS.md` règle 8, pas de boucle de feedback). Elle sert au diagnostic et au recrédit anti-clignotement déjà en place. +> **Piège de mise en service, indépendant de toute configuration.** Le compteur +> d'une charge NE DOIT JAMAIS être désigné comme **rootmeter** dans nymea. Aucun +> champ de `LoadConfig` n'est en cause : il suffit d'une désignation dans +> l'interface. L'arbitre lit le rootmeter par `internalRootMeter()` +> (`energyarbitrator.cpp:229`) et en tire `meter.importW`/`exportW` — la +> consommation de la charge entrerait donc **dans le bilan de surplus lui-même**, +> et le budget serait faussé pour toutes les charges. Le compteur d'une charge est +> un instrument de diagnostic ; le rootmeter mesure le point de livraison. + --- ## §8 — Thermique