fix(optimiseur): pas de puissances de cycle sous declared pour une borne (brief 4 T1)

Pour une borne, LoadDeclared::minPowerW/maxPowerW sont recalculés à chaque cycle par
EvAdapter::toLoadContext (phases visées, limite de phase) : ce ne sont pas des valeurs de
plaque, et le §5.3 réserve `declared` à ce que l'installateur a saisi. Ils ne sont plus
émis ; l'exemple du protocole n'en porte pas non plus. `phases` (champ 1.0) reste émis,
mais il porte lui aussi les phases VISÉES : écart E26, proposition de correction du
protocole dans le rapport T1/T5.

Golden site-pv-ecs-borne-sgready : seules les deux clés disparaissent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Patrick Schurig 2026-10-16 16:21:48 +02:00
parent 50a1f91feb
commit 7044b4cd07
2 changed files with 5 additions and 5 deletions

View File

@ -47,10 +47,12 @@ QVariantMap declared(const LoadContext &lc)
if (lc.adapter == QLatin1String("evcharger")) { if (lc.adapter == QLatin1String("evcharger")) {
out.insert(QStringLiteral("minA"), d.minA); out.insert(QStringLiteral("minA"), d.minA);
out.insert(QStringLiteral("maxA"), d.maxA); 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); out.insert(QStringLiteral("phases"), d.phases);
// Le plancher et le plafond du cycle en W (phases VISÉES, limite de phase comprise). // PAS de minPowerW/maxPowerW : pour une borne, ils sont RECALCULÉS à chaque cycle
out.insert(QStringLiteral("minPowerW"), d.minPowerW); // (phases visées, limite de phase) — ce ne sont pas des valeurs de plaque, et `declared`
out.insert(QStringLiteral("maxPowerW"), d.maxPowerW); // ne porte que ce que l'installateur a saisi (§5.3). Écart E26.
} else if (piloteeEnWatts(lc.adapter)) { } else if (piloteeEnWatts(lc.adapter)) {
// minPowerW = 0 est une valeur (« aucun plancher », LM-1200), pas une inconnue. // 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). // `powerLevels` n'est pas émis : le protocole ne le décrit pas (écart E9).

View File

@ -82,9 +82,7 @@
"adapter": "evcharger", "adapter": "evcharger",
"declared": { "declared": {
"maxA": 16, "maxA": 16,
"maxPowerW": 11040,
"minA": 6, "minA": 6,
"minPowerW": 4140,
"phases": 3 "phases": 3
}, },
"domain": "ev", "domain": "ev",