feat(workflow): publish verified forecast controls and consolidated docs
Tests / test (push) Successful in 1m1s
Tests / test (push) Successful in 1m1s
Approved by Daniel Haefliger for develop and beta. Author dh_Agent, authenticated account dh. Preserve published battery, charging and overall Energy Pie changes. No deployment or plant control authorization.
This commit is contained in:
@@ -464,3 +464,159 @@ oder Stellbefehl ist Teil dieser Quellcode-Aenderung.
|
||||
- Anbieterformate für Prognose und Störüberwachung festlegen.
|
||||
- Produktive signierte Lizenz-Leases nach Abschluss des Entwicklungsvertrags integrieren.
|
||||
- Verhalten und Messabgrenzung bei Untermanagern im Anlagentest bestätigen.
|
||||
|
||||
## Ergänzungen zum Kanalstand vom 8. Oktober 2026
|
||||
|
||||
Diese Referenz gilt für Testing (`develop`) und Beta mit Quellbasis `5885681`.
|
||||
Stable (`main`, Quellbasis `b6253f9`) enthält noch keinen installierbaren Manager.
|
||||
Die Kanalnamen sind keine Anlagenabnahme. Die [Kanalübersicht](../../../README.md)
|
||||
trennt Funktionen, Fehlerkorrekturen und noch offene Betriebsnachweise.
|
||||
|
||||
### Prognosebedienung und Netzfahrplan V4
|
||||
|
||||
Im Bereich **Prognose / Forecast** sind Topologie, Empfang, Vorschau und bewusste
|
||||
Start-/Stoppbedienung zusammengeführt. `PrognoseAktiv` schaltet Telemetrie und
|
||||
Topologiesynchronisation ein, startet aber keine V4-Regelung. `NetzfahrplanAktiv`
|
||||
gehört weiterhin zum bisherigen Netzfahrplanregler. Bei eingerichteter V4-
|
||||
Konfiguration wird dessen ausgeschalteter Altschalter verborgen; ein aktiver
|
||||
Altregler bleibt zum Ausschalten sichtbar. Beide Regler nicht parallel starten.
|
||||
|
||||
Die neue Bedienung `FormNetzfahrplanSchalten` prüft gespeicherte Konfiguration,
|
||||
Lizenz und lokale Testfreigaben erneut. Ausschalten bleibt bei Lizenzverlust
|
||||
möglich. Der Stopp widerruft die Testsitzung und kann danach eine frisch
|
||||
berechnete normale EMS-Zuteilung auslösen. Er ist kein anlagenweiter Not-Aus
|
||||
und löscht keinen unabhängigen SDL-Auftrag.
|
||||
|
||||
V4 ist ein begrenzter Testpfad, kein freigegebener Dauerregler. Ein vorhandener
|
||||
Plan, `optimal`, `shadow_seen` oder eine erfolgreiche Befehlsquittung belegt
|
||||
weder physische Leistungsnachführung noch Einsparungen. Nach dem Modul-Reload
|
||||
vom 6. Oktober wurde eine Batterietimerblockade dokumentiert. Die spätere
|
||||
Nachkontrolle vom 7. Oktober meldet laufende periodische Timer, keine physische
|
||||
V4-Abnahme. Ursache und Wiederholbarkeit des Reload-Problems bleiben offen;
|
||||
nach Updates Timer erneut prüfen. Watchdog, Planwechsel und sicherer Stopp
|
||||
bleiben separat abzunehmen. Die frühere befristete Testfreigabe endete am
|
||||
7. Oktober 2026. Diese Dokumentation erneuert sie nicht; Schutzprüfungen dürfen
|
||||
nicht umgangen werden.
|
||||
|
||||
| Property | Typ / Standard | Zweck und Grenze |
|
||||
| --- | --- | --- |
|
||||
| `NetzfahrplanV4SchattenAktiv` | Boolean / `false` | Versand nativer Betriebsdaten für die Schattenplanung; allein keine Stellbefehle. |
|
||||
| `NetzfahrplanV4EmpfangAktiv` | Boolean / `false` | Planempfang und lokale Vorschau; Empfang ist keine Ausführung. |
|
||||
| `NetzfahrplanV4NetzladenErlaubt` | Boolean / `false` | Netzladen in den Planungsrandbedingungen erlauben; ersetzt keine lokale Freigabe. |
|
||||
| `NetzfahrplanV4BatterieOptionen` | String/JSON / `{}` | Batteriebezogene Planungsoptionen, gebunden an die Asset-ID der Topologie. |
|
||||
| `NetzfahrplanV4MessnachweisVariableID` | Integer / `0` | Stringvariable mit geprüftem JSON-Messnachweis, keine Leistungsvariable. |
|
||||
| `NetzfahrplanV4BezugszaehlerQuellen` | String/JSON / `[]` | Separate Bezugszählerquellen für Viertelstunden-/Monatspeaknachweise. Keine Übernahme eines ungeprüften Altzählers. |
|
||||
| `NetzfahrplanV4MessdatenAktiv` | Boolean / `false` | Rohmessaufnahme alle 30 s mit Originalzeitstempeln, lokaler Outbox und bestätigtem Versand. |
|
||||
| `NetzfahrplanV4ArchivAktiv` | Boolean / `false` | Optionale lokale Archivierung bestätigter Messdaten; kein Ersatz für externe Sicherungen. |
|
||||
| `NetzfahrplanV4Messkonfiguration` | String/JSON / `{}` | Validierte Quellen-/Messgrenzenzuordnung, an Installation und Manager gebunden. |
|
||||
| `NetzfahrplanV4Datensatz` | String / leer | Datensatzkennung, 1 bis 80 Buchstaben, Ziffern, `_` oder `-`. |
|
||||
| `NetzfahrplanV4RegeltestErlaubt` | Boolean / `false` | Lokale Freigabe des begrenzten Regeltests; weitere Server-/Batteriegates bleiben erforderlich. |
|
||||
| `NetzfahrplanV4AktivtestErlaubt` | Boolean / `false` | Zusätzliche Freigabe des ausdrücklich begrenzten Aktivtests, keine Produktionsfreigabe. |
|
||||
| `NetzfahrplanV4WatchdogVerzichtErlaubt` | Boolean / `false` | Nur dokumentierte Testanlagen-Ausnahme, niemals Ersatz für einen Geräte-Watchdog im Dauerbetrieb. |
|
||||
|
||||
Komplexe Messkonfigurationen müssen aus den tatsächlichen Quellen abgeleitet
|
||||
werden. Leere Standardwerte sind nicht ausführbare Musterkonfigurationen.
|
||||
Vorhandene Datenkennungen, Outbox-Cursor und Bestätigungen nicht manuell ändern.
|
||||
Normaler Rohdatenversand erfolgt im 60-s-Abstand; ein bestätigter Rückstand kann
|
||||
schneller abgearbeitet werden, Fehler warten mindestens 60 s. `scheduled`
|
||||
bezeichnet daher nicht automatisch einen Fehler. Die letzte Quittung ist
|
||||
entscheidend. Ein HTTP-429 beim Planempfang behält seinen Backoff.
|
||||
|
||||
| Variable | Typ / Zugriff | Inhalt |
|
||||
| --- | --- | --- |
|
||||
| `NetzfahrplanV4Vorschau` | String/HTML / Anzeige | Geprüfte Planvorschau ohne Stellfreigabe. |
|
||||
| `NetzfahrplanV4VorschauJSON` | String/JSON / Diagnose | Plan-, Eingangs- und Ablehnungsdiagnose. |
|
||||
| `NetzfahrplanV4Datenstatus` | String/JSON / Diagnose | Aufnahme, Versand, Datensatz und letzte Bestätigung; `controlEnabled=false` bezieht sich auf diesen Datenweg. |
|
||||
| `NetzfahrplanV4Aktivtest` | Boolean / bedienbar | Bestehender Schalter für den begrenzten Testbetrieb; kein automatischer Start beim Update. |
|
||||
|
||||
Die Idents bleiben für bestehende Verknüpfungen erhalten. Die separaten
|
||||
V4-Diagnosevariablen sind im integrierten Stand verborgen; die Bedienung erfolgt
|
||||
im Prognosebereich. Verborgene Diagnosen sind nicht gelöscht.
|
||||
|
||||
### Weitere Properties und Diagnosewerte
|
||||
|
||||
| Property | Typ / Standard | Beschreibung |
|
||||
| --- | --- | --- |
|
||||
| `StoerueberwachungAktiv` | Boolean / `false` | Optionale Übertragung des Störungszustands ans Portal. |
|
||||
| `StoerungsSendeintervall` | Integer / `300` | Sendeintervall der Störungsüberwachung in Sekunden. |
|
||||
| `DiagrammPVModus` | Integer / `0` | `0` gesamt, `1` einzeln, `2` gesamt und einzeln. |
|
||||
| `DiagrammBatterieModus` | Integer / `0` | `0` gesamt, `1` einzeln, `2` gesamt und einzeln. |
|
||||
| `LadestationenSeparatAnzeigen` | Boolean / `true` | Ladestationen in neu aufgebauten Darstellungen separat führen. |
|
||||
| `VerbraucherSeparatAnzeigen` | Boolean / `true` | Weitere Verbraucher separat führen. Hausdarstellung wird entsprechend abgegrenzt. |
|
||||
| `EnergieflussLeistungseinheit` | Integer / `0` | `0` W, `1` kW; interne Regelungswerte bleiben W. |
|
||||
| `PrognosePVVariableID`, `PrognoseHausverbrauchVariableID`, `PrognoseSOCVariableID` | Integer / `0` | Verdeckte Altproperties; neue Messquellen über die Anlagentopologie pflegen. |
|
||||
| `MessungPVLeistungVariableID`, `MessungHausverbrauchLeistungVariableID`, `MessungBatterieleistungVariableID` | Integer / `0` | Verdeckte frühere Messquellen, nicht als zweite aktive Topologie konfigurieren. |
|
||||
| `MessungPVLeistungsfaktor`, `MessungHausverbrauchLeistungsfaktor`, `MessungBatterieleistungsfaktor` | Float / `1.0` | Zugehörige frühere Normierungsfaktoren. |
|
||||
| `LizenzAnschluss` | String/JSON / `{}` | Verdeckte Altproperty; aktuelle Aktivierung über `Lizenzcode`. Keine Zugangsdaten in Beispielen. |
|
||||
|
||||
| Variable | Typ / Einheit | Beschreibung |
|
||||
| --- | --- | --- |
|
||||
| `NichtGeregelteGeraete` | String/JSON | Diagnose nicht geregelter Geräte. |
|
||||
| `Monatsgrenzen` | String/JSON | Diagnose der Monatsgrenzen; gleichnamige Property ist die Konfiguration. |
|
||||
| `EnergieFunFacts` | String/HTML | Optionale Energy-Facts-Anzeige. |
|
||||
| `SDLLeistungArchiv` | Float / W | Separate signierte SDL-Leistung. |
|
||||
| `SDLSOCArchiv` | Float / % | Separater SDL-Ladezustand. |
|
||||
| `SDLLadenEnergie`, `SDLEntladenEnergie` | Float / kWh | Getrennte integrierte SDL-Richtungen. |
|
||||
| `EnergieflussPV`, `EnergieflussNetz`, `EnergieflussHaus`, `EnergieflussBatterie` | Float / W oder kW | Verborgene Anzeigequellen des Energieflusses, keine Stellregister. |
|
||||
| `EnergieflussSDL` | Float / W oder kW | Optionaler separater SDL-Knoten; verwendet die Einheit des Energieflusses. |
|
||||
| `EnergieflussIst_<InstanzID>`, `EnergieflussSoll_<InstanzID>` | Float / W oder kW | Darstellungswerte je separat geführtem Verbraucher. |
|
||||
| `DiagrammHausLeistung`, `DiagrammHausEnergie` | Float / W bzw. kWh | Haus ohne separat dargestellte Verbraucher. |
|
||||
| `DiagrammPVLeistung_<Hash>`, `DiagrammPVEnergie_<Hash>` | Float / W bzw. kWh | Einzel-PV-Quellen aus der Topologie. |
|
||||
| `DiagrammBatterieLeistung_<Hash>`, `DiagrammBatterieLaden_<Hash>`, `DiagrammBatterieEntladen_<Hash>` | Float / W bzw. kWh | Einzelbatterie und richtungsgetrennte Energie. |
|
||||
| `DiagrammVerbraucherLeistung_<InstanzID>`, `DiagrammVerbraucherEnergie_<InstanzID>` | Float / W bzw. kWh | Einzelverbraucher und integrierte Energie. |
|
||||
|
||||
Die dynamischen Variablen entstehen nur bei passenden Quellen und aktivierter
|
||||
Darstellung. `<Hash>` ist eine vom Modul berechnete stabile Kennung, keine
|
||||
einzutragende Objekt-ID. Bestehende individuelle Energieflussknoten, Diagramm-
|
||||
reihen und Energy-Pie-Messquellen bleiben erhalten. Anzeigeoptionen bei einer
|
||||
Migration nicht zum Erzwingen eines Neuaufbaus aus- und wieder einschalten.
|
||||
|
||||
### SDL und Energieanteile: Beispiel
|
||||
|
||||
Bei 10 kW PV, 2 kW Netzbezug, 3 kW Batterieladung und 4 kW separat abgegrenzter
|
||||
SDL-Ladung ergibt sich `max(0, 10 + 2 - 3 - 4) = 5 kW` Hauslast. Ein Faktor
|
||||
`1000` wandelt eine kW-Quelle in W um. Eine bereits in der Batteriemessung
|
||||
enthaltene SDL-Leistung darf nicht ein zweites Mal abgezogen werden.
|
||||
|
||||
Bei aktiver SDL lässt sich aus dem gemeinsamen Netzbezug nicht eindeutig
|
||||
bestimmen, welcher Hausverbrauch aus PV stammt. Der Manager setzt deshalb
|
||||
`EnergieanteileBerechenbar=false` am eigenen Energy Pie. Zähler bleiben sichtbar;
|
||||
Autarkie und Eigenverbrauch werden als nicht bestimmbar statt als null angezeigt.
|
||||
Zuerst Utils aktualisieren: Erkennt ein altes Utils diese Property nicht, blendet
|
||||
EMS den eigenen Energy Pie aus und protokolliert den Aktualisierungsbedarf.
|
||||
Die Regelung wird dadurch nicht gestoppt.
|
||||
|
||||
### Sicheres Lesebeispiel
|
||||
|
||||
In der Symcon-Schnellausführung zuerst eine vorhandene Manager-ID einsetzen.
|
||||
Das Beispiel liest nur ausgewählte Werte, keine Lizenzdaten, und gibt keine
|
||||
Stellbefehle aus. Fehlende optionale Diagnosevariablen werden übersprungen.
|
||||
|
||||
```php
|
||||
<?php
|
||||
$managerId = 0; // Vorhandene Manager-Instanz eintragen.
|
||||
if ($managerId <= 0 || !IPS_InstanceExists($managerId)) {
|
||||
throw new RuntimeException('Vorhandene Manager-ID erforderlich.');
|
||||
}
|
||||
foreach (['Aktiv', 'Betriebsart', 'Netzleistung', 'SDLStatus'] as $ident) {
|
||||
$id = @IPS_GetObjectIDByIdent($ident, $managerId);
|
||||
if ($id !== false && IPS_VariableExists($id)) {
|
||||
echo $ident . ': ' . json_encode(GetValue($id), JSON_THROW_ON_ERROR) . PHP_EOL;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## V4-Zwei-Schalter-Workflow (08.10.2026)
|
||||
|
||||
Diese Bedienung ersetzt die historische separate V4-Testbedienung; Altangaben
|
||||
weiter unten erteilen keine Freigabe fuer den neuen Workflow.
|
||||
|
||||
| Property | Typ / Standard | Wirkung |
|
||||
| --- | --- | --- |
|
||||
| `PrognoseAktiv` | Boolean / `true` | Prognose lernen; Uebertragung erfordert Lizenz und gueltige Messzuordnung. |
|
||||
| `NetzfahrplanRegelungAktiv` | Boolean / `false` | Explizite lokale Regelanforderung. Kein Aktivstatus ohne frischen Plan, gueltige Rueckmeldung und lokale Schutzpruefung. |
|
||||
|
||||
Vorhandene Spezialzuordnungen bleiben erhalten. Alte Testschalter werden nicht
|
||||
in eine Regelanforderung umgedeutet. Bei ungueltigen Daten bleibt der normale
|
||||
lokale Regelpfad massgeblich. Eine Portalbestaetigung ist kein physischer
|
||||
Soll-/Ist-Nachweis. [Einrichtung, Migration und Grenzen](../../prognose-v4-workflow.md).
|
||||
|
||||
Reference in New Issue
Block a user