From 91b7c53d2f025f1971590e5f9a8a48800e844106 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) --- specs/spec_ecs.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/specs/spec_ecs.md b/specs/spec_ecs.md index 3c2c058..8d4632b 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