diff --git a/energyplugin/etm/scheduler/optimizerprotocol.cpp b/energyplugin/etm/scheduler/optimizerprotocol.cpp index f3074c7..994d192 100644 --- a/energyplugin/etm/scheduler/optimizerprotocol.cpp +++ b/energyplugin/etm/scheduler/optimizerprotocol.cpp @@ -47,10 +47,12 @@ QVariantMap declared(const LoadContext &lc) if (lc.adapter == QLatin1String("evcharger")) { out.insert(QStringLiteral("minA"), d.minA); out.insert(QStringLiteral("maxA"), d.maxA); + // Champ 1.0 conservé, mais le contexte y porte les phases VISÉES ce cycle + // (EvAdapter::toLoadContext), pas les phases disponibles du §5.3 : écart E26. out.insert(QStringLiteral("phases"), d.phases); - // Le plancher et le plafond du cycle en W (phases VISÉES, limite de phase comprise). - out.insert(QStringLiteral("minPowerW"), d.minPowerW); - out.insert(QStringLiteral("maxPowerW"), d.maxPowerW); + // PAS de minPowerW/maxPowerW : pour une borne, ils sont RECALCULÉS à chaque cycle + // (phases visées, limite de phase) — ce ne sont pas des valeurs de plaque, et `declared` + // ne porte que ce que l'installateur a saisi (§5.3). Écart E26. } else if (piloteeEnWatts(lc.adapter)) { // minPowerW = 0 est une valeur (« aucun plancher », LM-1200), pas une inconnue. // `powerLevels` n'est pas émis : le protocole ne le décrit pas (écart E9). diff --git a/tests/auto/loadmodel/data/optimizer/site-pv-ecs-borne-sgready.json b/tests/auto/loadmodel/data/optimizer/site-pv-ecs-borne-sgready.json index e4615ab..1804211 100644 --- a/tests/auto/loadmodel/data/optimizer/site-pv-ecs-borne-sgready.json +++ b/tests/auto/loadmodel/data/optimizer/site-pv-ecs-borne-sgready.json @@ -82,9 +82,7 @@ "adapter": "evcharger", "declared": { "maxA": 16, - "maxPowerW": 11040, "minA": 6, - "minPowerW": 4140, "phases": 3 }, "domain": "ev",