Files
Enelix-EMS/docs/netplan-v4-controlled-trial.md
T

5.8 KiB

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.