feat(manager): add gated short-lease V4 control trial and local fallback
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
# V4: begrenzter Regeltest (Entwicklungskandidat, NICHT in Betrieb)
|
||||
|
||||
Stand 2026-10-02. Diese Erweiterung ist weder Produktionsfreigabe noch ein
|
||||
Installations-/Startauftrag. Bestehende Schattenplaene und ihre `shadow_seen`
|
||||
Bestaetigungen bleiben unveraendert. Ein Vorschauwert allein darf niemals
|
||||
als Stellfreigabe interpretiert werden.
|
||||
|
||||
## Freigabekette
|
||||
|
||||
1. Serverseitige separate Allowlist `NETPLAN_V4_CONTROL_TRIAL_PLANTS` (standardmaessig
|
||||
leer). Interner authentifizierter `planner/trial/arm`-Aufruf mit expliziter
|
||||
Bestaetigung, neuer Sitzung, gepruefter Plan-ID/Revision, Batteriezuordnung,
|
||||
Zeitfenster, Leistungsgrenzen und dokumentierter Geraete-Watchdog-Abnahme.
|
||||
Die bestehenden oeffentlichen Portal-/Geraeterouten proxien diesen Aufruf NICHT.
|
||||
2. `NetzfahrplanV4RegeltestErlaubt` lokal im Manager UND im Batteriemodul (jeweils
|
||||
Standard false). Alte `NetzfahrplanAktiv`-Freigabe muss false bleiben.
|
||||
3. Zusaetzlicher bewusster lokaler Start einer bestimmten Sitzung. Ein Reload,
|
||||
Netzwiederkehr oder gespeicherter Haken startet keine Sitzung automatisch.
|
||||
4. Der Manager prueft den empfangenen Schattenplan und die getrennte
|
||||
`controlled_trial_authority` gemeinsam. Sie sind gebunden an Anlage, Batterie,
|
||||
beide Instanz-IDs, Revision, manuelle Modellfamilie und stabilen Planungskontext.
|
||||
5. Die Batterie nimmt nur einen separaten `controlled_trial_command` mit eigener
|
||||
Sequenz und kurzer Gueltigkeit an. Normale Managerbefehle erneuern diese
|
||||
Gueltigkeit nicht. `shadow_seen` bleibt eine Empfangs-, keine Ausfuehrungsmeldung.
|
||||
|
||||
Die Serverantwort bleibt eine Schattenplan-Antwort (`liveEnabled:false`). Eine
|
||||
getrennte Testfreigabe ist unter `controlledTrial` und
|
||||
`controlledTrialAuthorized` sichtbar. Der Schattenmodus allein ist bei kuenftig
|
||||
bewusst gestartetem Test deshalb kein Nachweis fuer 'keine Batteriebewegung'.
|
||||
Die Controller-Diagnosen benennen eine angenommene Sollvorgabe, nicht bereits
|
||||
physisch gemessene Umsetzung oder Ersparnis.
|
||||
|
||||
## Bewusst begrenzter Pilotumfang
|
||||
|
||||
- Genau eine eindeutig zugeordnete Batterie je Test; Familie manuell festgelegt.
|
||||
- 30 bis 1800 Sekunden Sitzung, maximal 5000 W Laden und 5000 W Entladen.
|
||||
- Server-, Manager- und Batteriegrenze koennen strenger sein; nie grosszuegig
|
||||
ersetzen oder still auf 39 kW hochsetzen.
|
||||
- Gesamtsollleistung, NICHT Zusatzleistung zur bereits fliessenden Batterieleistung.
|
||||
- Andere Verbraucher bleiben im alten Verteiler. Ihre erwartete Leistungsaenderung
|
||||
wird einmal bei der Batteriekorrektur beruecksichtigt.
|
||||
- Batterie wird nur einem Stellwertpfad zugeteilt, nicht gleichzeitig dem alten
|
||||
und neuen Verteiler. Ist der Test ungueltig, stoppt er und es wird eine NEUE
|
||||
normale Verteilung angefordert; kein alter gespeicherter Sollwert wird restauriert.
|
||||
- Physische Grenzverletzung, die innerhalb der Pilotleistung nicht behebbar ist,
|
||||
beendet den Test zugunsten der bestehenden lokalen Regelung.
|
||||
|
||||
## Ausfall- und Zeitverhalten
|
||||
|
||||
- Serverfreigabe maximal 90 Sekunden, lokal regelmaessig frisch abgerufen.
|
||||
Serverseitiger Widerruf wirkt nicht magisch sofort: Cachefrist beachten.
|
||||
- Einzelner Batteriebefehl maximal 10 Sekunden; Batterie kontrolliert im laufenden
|
||||
Kernel mit 1-Sekunden-Timer zusaetzlich zu Messwert-Callbacks.
|
||||
- Manager liefert kurze Befehle im Test mit zusaetzlichem 2-Sekunden-Takt.
|
||||
- Monotone Laufzeit und Kalenderzeit werden getrennt geprueft. Eine rueckwaerts
|
||||
springende Systemuhr darf eine Sitzung nicht verlaengern.
|
||||
- Abbruch widerruft die Sitzung VOR dem Nullstellversuch. Schreibfehler werden als
|
||||
`stop_failed`/nicht bestaetigter Stopp sichtbar, nicht als sicherer Zustand.
|
||||
- Reserve, Hysterese, aktuelle Lade-/Entladeleistung, SOC und Verfuegbarkeit werden
|
||||
auch im Batteriemodul erneut geprueft. Sicherheitsreduktionen werden nicht durch
|
||||
die Umschaltsperre verzoegert; Richtungswechsel laufen ueber null.
|
||||
- Laufzeitsitzungen liegen nur im Buffer, nicht als automatische Wiederanlauf-Freigabe.
|
||||
Ein persistenter Marker sorgt bei Wiederinitialisierung fuer einen erneuten
|
||||
Nullstellversuch, falls ein Testwert zuvor ausgegeben worden sein koennte.
|
||||
|
||||
WICHTIGE GRENZE: PHP-Timer und Software-Nullstellversuche funktionieren nur bei
|
||||
laufendem Kernel und erreichbarem Wechselrichter. Sie sind KEIN physischer
|
||||
Not-Aus und kein Beweis fuer Abschaltung bei Serverabsturz, Stromausfall oder
|
||||
unterbrochener Stellwertverbindung. Dafuer ist ein separat nachgewiesener
|
||||
Befehlsausfall-/Watchdogmechanismus am Geraet bzw. Gateway erforderlich.
|
||||
Das Feld `NetzfahrplanV4GeraeteWatchdogNachweis` ist eine Referenz auf die gepruefte
|
||||
Dokumentation/Abnahme, keine automatische Hardwarepruefung und kein Defaultwert.
|
||||
|
||||
## Noch offene Freigabepunkte (nicht mit Platzhaltern umgehen)
|
||||
|
||||
- Der laufende Lihrenmoos-Prognosestrom ist noch `house_total`. Fuer Testfreigabe
|
||||
muss `base_load` mit nachgewiesener Quelle/SDL-Abgrenzung und
|
||||
`accountingEvidenceId` aus dem geprueften Adapter vorliegen. Ein Labelwechsel
|
||||
oder ein erfundener Nachweis reicht nicht; Quelle und Messbilanz pruefen.
|
||||
- Geraete-/Gateway-Watchdog bei ausbleibenden Stellbefehlen nachweisen.
|
||||
- Vollstaendiges Manager-/Batterie-Callbackverhalten im IP-Symcon-Kernel pruefen.
|
||||
Die isolierten Tests verwenden echte neue Traits, aber simulierte IPS-Aufrufe,
|
||||
Messwerte, Zeit und Register. Reale Modbus-/VGT-Stellreaktion steht aus.
|
||||
- Zielcontainerpruefung des neuesten Serverstands und Feldabnahme.
|
||||
- Keine durchgehende unbeaufsichtigte Produktion, kein automatischer Mehranlagenstart.
|
||||
Modellvergleich, Trainingsanbindung, Mehranlagenabnahme und Betriebs-Release
|
||||
bleiben weitere Aufgaben.
|
||||
|
||||
## Quelltests
|
||||
|
||||
`php tests/V4ControlTrial/checks.php` nur im separaten CLI-Testprozess ausfuehren,
|
||||
niemals im laufenden Symcon-Skripteditor. Die Datei verweigert einen realen
|
||||
Symcon-Kernel. Eine PHPUnit-Huelle bindet sie an die normale Testsuite an.
|
||||
|
||||
Der Server-Test verwendet ausschliesslich synthetische Daten/Temporaerdatenbanken.
|
||||
Keine Testfunktion liest Zugangsdaten oder schreibt eine reale Stellvariable.
|
||||
Reference in New Issue
Block a user