docs : mentions de la démo neutralisées (commentaires et design seulement)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HE6X3TcKdiuCucBHA2XX4n
This commit is contained in:
parent
21b71a691a
commit
b5ef257a36
@ -281,8 +281,8 @@ aucune ne change le code.
|
|||||||
| D5 | Seuil de « la voiture charge réellement » : 230 W sur la somme des bornes (§3.2) ? | **Accepté.** |
|
| D5 | Seuil de « la voiture charge réellement » : 230 W sur la somme des bornes (§3.2) ? | **Accepté.** |
|
||||||
| D6 | Plugin SunSpec : une action « limite de décharge » en une séquence (`planBatteryMode(NO_DISCHARGE)`), et `enableDischarging` renommé ou redécrit (§3.1, §7) ? | **Oui aux deux**, dans le dépôt du plugin, à la charge de l'orchestrateur. Le garde ne change pas : il reste compatible avec les deux actions actuelles (`dischargingRate` puis `enableDischarging`). |
|
| D6 | Plugin SunSpec : une action « limite de décharge » en une séquence (`planBatteryMode(NO_DISCHARGE)`), et `enableDischarging` renommé ou redécrit (§3.1, §7) ? | **Oui aux deux**, dans le dépôt du plugin, à la charge de l'orchestrateur. Le garde ne change pas : il reste compatible avec les deux actions actuelles (`dischargingRate` puis `enableDischarging`). |
|
||||||
| D7 | À quelle puissance la borne charge-t-elle en heures creuses (lot e2) ? | **À la pleine puissance permise**, et non plus au plancher. La session finit plus tôt, et la décharge de la batterie n'est bloquée que pendant ce temps-là : ensuite, elle couvre la maison pour le reste de la nuit. Détail en §8.1. |
|
| D7 | À quelle puissance la borne charge-t-elle en heures creuses (lot e2) ? | **À la pleine puissance permise**, et non plus au plancher. La session finit plus tôt, et la décharge de la batterie n'est bloquée que pendant ce temps-là : ensuite, elle couvre la maison pour le reste de la nuit. Détail en §8.1. |
|
||||||
| D8 | *(2026-10-25)* Près de la limite de phase, la consigne de la borne alterne à chaque cycle (16, 7, 16, 7 A sous 25 A). Corriger avant la vitrine ? | **Oui, maintenant.** En heures creuses, le plafond de la borne lui rend ce qu'elle tire, **mesuré**, moins 1 A par phase. Détail en §8.2. Le même jour : la borne **tenue au plancher** en surcharge (L4 décide de couper) est **confirmée** ; les écarts 3 et 4 de §8.1 sont reportés. |
|
| D8 | *(2026-10-25)* Près de la limite de phase, la consigne de la borne alterne à chaque cycle (16, 7, 16, 7 A sous 25 A). Corriger avant la démo ? | **Oui, maintenant.** En heures creuses, le plafond de la borne lui rend ce qu'elle tire, **mesuré**, moins 1 A par phase. Détail en §8.2. Le même jour : la borne **tenue au plancher** en surcharge (L4 décide de couper) est **confirmée** ; les écarts 3 et 4 de §8.1 sont reportés. |
|
||||||
| D9 | *(2026-10-25, suite)* L'écart 4 n'est pas qu'un défaut de publication : à l'aube, le surplus s'ajoute au plafond, qui porte la limite de phase. Borner la somme avant la vitrine ? | **Oui, avant la vitrine.** La somme éco + confort ne dépasse jamais `declared.maxPowerW`, et l'achat publié ne dépasse pas ce qui est réellement acheté. Détail en §8.3. La dérogation sans heure creuse, les phases étiquetées : plus tard, chacune dans son lot. Le compteur en retard sur la borne est accepté tel quel. |
|
| D9 | *(2026-10-25, suite)* L'écart 4 n'est pas qu'un défaut de publication : à l'aube, le surplus s'ajoute au plafond, qui porte la limite de phase. Borner la somme avant la démo ? | **Oui, avant la démo.** La somme éco + confort ne dépasse jamais `declared.maxPowerW`, et l'achat publié ne dépasse pas ce qui est réellement acheté. Détail en §8.3. La dérogation sans heure creuse, les phases étiquetées : plus tard, chacune dans son lot. Le compteur en retard sur la borne est accepté tel quel. |
|
||||||
|
|
||||||
La mesure du minuteur de retour sur un vrai GEN24 (hypothèse AC-10 du plugin, §3.4) reste
|
La mesure du minuteur de retour sur un vrai GEN24 (hypothèse AC-10 du plugin, §3.4) reste
|
||||||
ouverte : elle relève du plugin et d'un essai sur matériel réel.
|
ouverte : elle relève du plugin et d'un essai sur matériel réel.
|
||||||
|
|||||||
@ -335,7 +335,7 @@ NymeaEnergyJsonHandler::NymeaEnergyJsonHandler(SpotMarketManager *spotMarketMana
|
|||||||
// [ETM] Journal court des délestages. Hors de la télémétrie, parce qu'il la doublerait : vingt
|
// [ETM] Journal court des délestages. Hors de la télémétrie, parce qu'il la doublerait : vingt
|
||||||
// épisodes portant chacun deux charges utiles de mécanisme, émis à chaque battement. La
|
// épisodes portant chacun deux charges utiles de mécanisme, émis à chaque battement. La
|
||||||
// télémétrie n'en porte que le résumé (shedding.revision, shedding.open) — c'est lui qui
|
// télémétrie n'en porte que le résumé (shedding.revision, shedding.open) — c'est lui qui
|
||||||
// notifie. Même droit que GetLoadTelemetry : c'est de la lecture d'état, la vitrine la lit.
|
// notifie. Même droit que GetLoadTelemetry : c'est de la lecture d'état, un compte sans droit la lit.
|
||||||
params.clear(); returns.clear();
|
params.clear(); returns.clear();
|
||||||
description = "Get the short log of load-shedding episodes: the last 'capacity' episodes of "
|
description = "Get the short log of load-shedding episodes: the last 'capacity' episodes of "
|
||||||
"overload protection, oldest first, EV chargers and cascade loads alike. ONE "
|
"overload protection, oldest first, EV chargers and cascade loads alike. ONE "
|
||||||
|
|||||||
@ -2202,7 +2202,7 @@ void TestCharging::testNymeaEnergyPermissionScopes()
|
|||||||
{"GetSpotMarketScoreEntries", none},
|
{"GetSpotMarketScoreEntries", none},
|
||||||
{"GetLoadConfig", none},
|
{"GetLoadConfig", none},
|
||||||
{"GetLoadTelemetry", none},
|
{"GetLoadTelemetry", none},
|
||||||
{"GetSheddingLog", none}, // même droit que la télémétrie : la vitrine le lit
|
{"GetSheddingLog", none}, // même droit que la télémétrie : un compte sans droit le lit
|
||||||
{"GetEnergyRatios", none},
|
{"GetEnergyRatios", none},
|
||||||
{"GetPvForecast", none},
|
{"GetPvForecast", none},
|
||||||
{"GetForecastSite", none},
|
{"GetForecastSite", none},
|
||||||
@ -2329,7 +2329,7 @@ void TestCharging::testNymeaEnergyPermissionsEnforced()
|
|||||||
QVERIFY2(reussi(r), qPrintable(m + " : " + QJsonDocument::fromVariant(r).toJson(QJsonDocument::Compact)));
|
QVERIFY2(reussi(r), qPrintable(m + " : " + QJsonDocument::fromVariant(r).toJson(QJsonDocument::Compact)));
|
||||||
}
|
}
|
||||||
QCOMPARE(appeler(lecteur, "GetTariff").value("params"), tarifAvant); // la vraie valeur, pas une coquille
|
QCOMPARE(appeler(lecteur, "GetTariff").value("params"), tarifAvant); // la vraie valeur, pas une coquille
|
||||||
// Le journal des délestages : un compte sans aucun droit — celui de la vitrine — le lit en entier.
|
// Le journal des délestages : un compte sans aucun droit le lit en entier.
|
||||||
QCOMPARE(appeler(lecteur, "GetSheddingLog").value("params"), lireAdmin("GetSheddingLog"));
|
QCOMPARE(appeler(lecteur, "GetSheddingLog").value("params"), lireAdmin("GetSheddingLog"));
|
||||||
QVERIFY(appeler(lecteur, "GetSheddingLog").value("params").toMap().contains("events"));
|
QVERIFY(appeler(lecteur, "GetSheddingLog").value("params").toMap().contains("events"));
|
||||||
QVERIFY(refuse(appeler(lecteur, "SetTariff", {{"zones", QVariantList()}})));
|
QVERIFY(refuse(appeler(lecteur, "SetTariff", {{"zones", QVariantList()}})));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user