97 lines
5.8 KiB
Markdown
97 lines
5.8 KiB
Markdown
# 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.
|