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:
@@ -1,5 +1,8 @@
|
||||
# Batterie
|
||||
|
||||
Die Referenz gilt für `develop` und `beta`; `main` enthält noch kein
|
||||
installierbares Batteriemodul. [Kanalstand und bekannte Grenzen](../../../README.md).
|
||||
|
||||
> Status: implementiert. Zielplattform ist IP-Symcon ab Version 8.0,
|
||||
> Nachrichtenvertrag 4.0.
|
||||
|
||||
@@ -128,3 +131,42 @@ Transport und gemeinsame Felder folgen
|
||||
- BatterieModulstrukturTest: Metadaten, Formular, Ereignismodell und Manager-ID
|
||||
- Symcon/modules/Batterie.php: reale Modulinstanz und Registeraktionen unter
|
||||
IP-Symcon 8.0
|
||||
|
||||
## Weitere Diagnosevariablen und V4-Kompatibilität
|
||||
|
||||
| Ident | Typ / Zugriff | Bedeutung |
|
||||
| --- | --- | --- |
|
||||
| `LadezustandGueltig` | Boolean / Diagnose | Ladezustandsquelle ist vorhanden, aktuell und im zulässigen Bereich. |
|
||||
| `HystereseAktiv` | Boolean / Diagnose | Die Ladezustandshysterese beschränkt das aktuelle Leistungsangebot. |
|
||||
|
||||
Der frühere separate V4-Formularbereich ist entfernt; vorhandene Properties,
|
||||
Methoden und Kennungen bleiben kompatibel. Dies entfernt weder Schutzprüfungen
|
||||
noch historische Daten. Die Bedienung liegt im
|
||||
[Prognosebereich des Managers](../Manager/README.md).
|
||||
|
||||
| Property | Typ / Standard | Bedeutung |
|
||||
| --- | --- | --- |
|
||||
| `NetzfahrplanV4RegeltestErlaubt` | Boolean / `false` | Lokale Batteriefreigabe für den begrenzten Regeltest. |
|
||||
| `NetzfahrplanV4AktivtestErlaubt` | Boolean / `false` | Zusätzliche Freigabe für den ausdrücklich befristeten Aktivtest. |
|
||||
| `NetzfahrplanV4WatchdogVerzichtErlaubt` | Boolean / `false` | Nur dokumentierte Testanlagen-Ausnahme; keine allgemeine Empfehlung oder Dauerfreigabe. |
|
||||
| `NetzfahrplanV4GeraeteWatchdogNachweis` | String / leer | Nachweiskennung des unabhängigen Geräte-Ausfallschutzes. Ein Symcon-Timer ersetzt diesen Nachweis nicht. |
|
||||
| `NetzfahrplanV4RueckmeldungKonfiguration` | String/JSON / `{}` | Geprüfte physische Messquellen, Vorzeichen und Rückmeldezuordnung. Anlagenspezifisch, keine universelle Musterkonfiguration. |
|
||||
|
||||
Bestätigter Geräteabruf, Variablenpublikation und Sammlerzeit sind verschieden.
|
||||
Die Rückmeldung verwendet erfolgreiche Geräte-Lesevorgänge und einen kurzlebigen,
|
||||
quellengebundenen Cache. Ungültige/veraltete Bestätigungen verhindern den Test;
|
||||
ein unveränderter Messwert darf nicht künstlich frisch geschrieben werden.
|
||||
|
||||
Bekannte Betriebsgrenze: Am 6. Oktober 2026 wurden nach Modul-Reload erneut
|
||||
blockierte Batterie-Timer beobachtet. Die spätere Nachkontrolle vom 7. Oktober
|
||||
meldet laufende periodische Timer, aber keine geklärte Ursache oder physische
|
||||
V4-Abnahme. Status `102` allein beweist keine laufende Rückmeldung oder
|
||||
Watchdog-Ausführung. Automatischen Timerlauf, physisches Tracking, mehrere
|
||||
Planerneuerungen und bestätigten Null-Stopp gesondert nachweisen. Die frühere
|
||||
Testfreigabe endete am 7. Oktober und wird nicht erneuert. Keine externen
|
||||
Timer-Ersatzaufrufe und kein automatischer Aktivstart aus dieser Anleitung.
|
||||
|
||||
Beim Verwerfen einer gültigen Manager-Vorgabe wird seit `5437f3f` auch
|
||||
`Sollleistung` auf 0 W gesetzt. Das ist die Bereinigung der Vorgabe, kein
|
||||
Versprechen, dass lokale Schutz-/Nachladefunktionen und Istleistung sofort null
|
||||
werden. Der bestehende Batteriemanagement- und Gerätepfad bleibt massgeblich.
|
||||
|
||||
@@ -192,6 +192,7 @@ Nur mit `DiagnosevariablenAnzeigen=true` sichtbar:
|
||||
| `Stoerung` | Sammelstatus fuer Konfigurations- und Kommunikationsfehler. |
|
||||
| `Stoertext` | Letzte verstaendliche Fehlerbeschreibung. |
|
||||
| `Geraetehinweis` | Pico-Autorisierung und historisches letztes Ereignis, getrennt vom aktuellen Fehler. |
|
||||
| `FahrzeugMaximalstrom` | Integer in A / Anzeige. Erkannte Fahrzeuggrenze nach `FahrzeugstromErkennungszeit`; kein manuell zu setzender Ladestrom. |
|
||||
| `LetzterGeraetebefehl` | Letzter Steuerbefehl mit HTTP-Methode und URL ohne Zugangsdaten; Statusabfragen ueberschreiben ihn nicht. |
|
||||
| `LeistungsangebotDiagnose` | Aktuelles Leistungsangebot als JSON-Liste in W. |
|
||||
|
||||
@@ -199,6 +200,43 @@ Die Regellogik speichert ihren Zustand unabhaengig von der Sichtbarkeit der
|
||||
Diagnosevariablen. Das Ein- oder Ausblenden veraendert daher nicht das
|
||||
Regelverhalten.
|
||||
|
||||
## Beispiele zur Diagnose
|
||||
|
||||
`FahrzeugMaximalstrom` ist eine Integer-Diagnosevariable in A. Beispiel:
|
||||
Ein erkanntes Fahrzeuglimit von 10 A bleibt auch bei höherem Anlagenbudget
|
||||
wirksam; Angebot und Zuteilung dürfen es nicht umgehen. Die Konfiguration
|
||||
`FahrzeugstromErkennungszeit` bestimmt die Beobachtungszeit.
|
||||
|
||||
Bei unbekannten Phasen bietet die Station im freigegebenen PV-Solarbetrieb
|
||||
`[0,4104] W` an. Sind nur 3000 W zuteilbar, bleibt sie aus; die 6-A-Probe darf
|
||||
nicht am Manager vorbei starten. Bei 4104 W passender Vorgabe und frischen
|
||||
Geraetedaten kann die Probe beginnen. Eine anschliessende Messung von 0 W
|
||||
beweist keine Einphasigkeit. Im Peak-Solarbetrieb bleibt das Angebot `[0]`.
|
||||
|
||||
Pico mit `State=6` wartet auf Autorisierung und bietet `[0]`. Ein altes
|
||||
`LastWarningOrError` allein ist kein aktueller Ladefehler. Frisches `LastSeen`
|
||||
bei altem `ValueDate` reicht bei positiver Ladeleistung dagegen nicht aus:
|
||||
das Modul meldet einen Fehler und wartet auf vollstaendige frische Daten.
|
||||
|
||||
Sicheres Lesebeispiel fuer die Symcon-Schnellausfuehrung. Eine bestehende
|
||||
Stand-Alone-Instanz einsetzen; optionale, nicht angelegte Diagnosen werden
|
||||
uebersprungen. Es werden weder Zugangsdaten gelesen noch Stellbefehle gesendet.
|
||||
|
||||
```php
|
||||
<?php
|
||||
$stationId = 0; // Vorhandene Ladestation-Stand-Alone-Instanz einsetzen.
|
||||
if ($stationId <= 0 || !IPS_InstanceExists($stationId)) {
|
||||
throw new RuntimeException('Vorhandene Ladestations-ID erforderlich.');
|
||||
}
|
||||
foreach (['FahrzeugVerbunden', 'FahrzeugGeladen', 'Phasenzahl',
|
||||
'Ladestrom', 'FahrzeugMaximalstrom', 'LeistungsangebotDiagnose'] as $ident) {
|
||||
$id = @IPS_GetObjectIDByIdent($ident, $stationId);
|
||||
if ($id !== false && IPS_VariableExists($id)) {
|
||||
echo $ident . ': ' . json_encode(GetValue($id), JSON_THROW_ON_ERROR) . PHP_EOL;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Managerkommunikation
|
||||
|
||||
Das Modul implementiert
|
||||
@@ -271,6 +309,11 @@ abgeglichen am 07.10.2026.
|
||||
|
||||
## Migration der Korrektur vom 07.10.2026
|
||||
|
||||
Seit `5437f3f` wird beim Verwerfen einer Manager-Vorgabe auch die gespeicherte
|
||||
und sichtbare `Sollleistung` bereinigt. Lokale Freigaben, Mindestzeiten und
|
||||
physische Fahrzeugreaktion bleiben davon getrennt. Gesendete Steuerbefehle
|
||||
bleiben in der Diagnose erhalten. [Kanalstand und Fehlerkorrekturen](../../../README.md).
|
||||
|
||||
Vor Installation laufende Moduldateien und Konfiguration sichern und fremde
|
||||
Anpassungen vergleichen. Beim ersten `ApplyChanges` mit Erkennungsversion 2
|
||||
werden alte, moeglicherweise aus 0 W abgeleitete Phasen verworfen. Ein alter
|
||||
|
||||
@@ -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).
|
||||
|
||||
+12
-6
@@ -1,9 +1,7 @@
|
||||
# EMS-Module und Modulentwürfe
|
||||
|
||||
> Manager, Warmwassererwaermer, Pufferspeicher, Batterie, Verbraucher 1-Stufig,
|
||||
> Waermepumpe, Ladestation Stand-Alone, Easee Gateway und Ladestation Gateway
|
||||
> sind als installierbare IP-Symcon-Module umgesetzt. Die weiteren Ordner
|
||||
> enthalten Besprechungsgrundlagen.
|
||||
> Alle neun unten aufgeführten Module sind in Testing und Beta implementiert.
|
||||
> Stable enthält sie noch nicht. [Kanalstand und Fehlerstatus](../../README.md).
|
||||
|
||||
Alle steuerbaren Verbraucher verwenden die gemeinsamen Datenpunkte aus der
|
||||
[EMS-Schnittstelle](../Schnittstelle.md). In den Modul-READMEs stehen deshalb
|
||||
@@ -24,5 +22,13 @@ nur zusätzliche Properties, Variablen, Zustände und offene Punkte.
|
||||
## Review-Regel
|
||||
|
||||
`0*` bezeichnet einen noch nicht eingerichteten Anlagenwert. Offene Punkte
|
||||
werden nicht durch Annahmen ersetzt. Erst nach Freigabe wird aus einem Entwurf
|
||||
ein Ordner mit `module.json`, `form.json`, `module.php` und Unit-Tests.
|
||||
werden nicht durch Annahmen ersetzt. Properties sind gespeicherte Einstellungen;
|
||||
Variablen sind Laufzeitwerte. Nur ausdrücklich bedienbare Variablen dürfen als
|
||||
Aktion verwendet werden. Diagnosen und dynamische Darstellungen entstehen teils
|
||||
erst bei aktivierter Option und passenden Quellen. Interne Attribute sind
|
||||
keine frei zu bearbeitenden Benutzer-Variablen.
|
||||
|
||||
Der Abgleich vom 8. Oktober 2026 erfasst die festen Property-/Variablenkennungen
|
||||
der Module und eingebundenen Traits; dynamische Manager-Anzeigen stehen in der
|
||||
Manager-Referenz. Beispiele verwenden Platzhalter und schalten ohne ausdrückliche
|
||||
Beschreibung keine Geräte. Eine nachgewiesene Anlagenabnahme bleibt getrennt.
|
||||
|
||||
@@ -87,3 +87,22 @@ Die Rückmeldung ist verpflichtend: entweder eine numerische Leistungsmessung
|
||||
oder ein Boolean-Betriebsstatus. Bei ungültiger Konfiguration, fehlgeschlagenem
|
||||
Schalten oder widersprüchlicher Rücklesung setzt das Modul seinen Status auf
|
||||
Fehler und meldet sich dem Manager als nicht verfügbar.
|
||||
|
||||
## Vollständige Sperr- und Laufzeitdiagnose
|
||||
|
||||
`DiagnosevariablenAnzeigen` ist eine Boolean-Property mit Standard `false`.
|
||||
Sie ergänzt bei Bedarf folgende reine Anzeigevariablen:
|
||||
|
||||
| Ident | Typ / Einheit | Bedeutung |
|
||||
| --- | --- | --- |
|
||||
| `AnlaufAusstehend` | Boolean | Ein angeforderter Anlauf ist noch nicht abgeschlossen. |
|
||||
| `WiederholsperreAktiv` | Boolean | Erneuter Anlauf ist wegen der Wiederholsperre gesperrt. |
|
||||
| `SperrerholungAktiv` | Boolean | Sperrerholung beeinflusst den aktuellen Betriebszustand. |
|
||||
| `RestMindestlaufzeit` | Integer / s | Noch verbleibende Mindestlaufzeit. |
|
||||
| `RestMindestsperrzeit` | Integer / s | Noch verbleibende Mindestsperrzeit. |
|
||||
|
||||
Beispiel: Eine ausstehende Schaltung bei `RestMindestsperrzeit=120` ist zunächst
|
||||
eine einzuhaltende Schutzzeit, kein Anlass zum Umgehen des Sperrkontakts.
|
||||
Die Wärmepumpe besitzt mit `heat_pump` ein eigenes Lizenzkontingent; eine
|
||||
Boilerlizenz ersetzt es nicht. Eine Portal-Bestelloberfläche ist erst nach
|
||||
passendem Backend-Rollout nutzbar, nicht allein durch Veröffentlichung im Git.
|
||||
|
||||
@@ -404,3 +404,15 @@ Wesentliche Unterschiede:
|
||||
Manager.
|
||||
- Die neue Modul-ID erfordert eine neue Instanz; eine automatische Umwandlung
|
||||
des Enelix-1-Objekts findet nicht statt.
|
||||
|
||||
## Plausibilitätsgrenzen der Temperatur
|
||||
|
||||
| Property | Typ / Standard | Bedeutung |
|
||||
| --- | --- | --- |
|
||||
| `TemperaturUntergrenze` | Float / `0.0` | Untere zulässige Messwertgrenze in °C. |
|
||||
| `TemperaturObergrenze` | Float / `100.0` | Obere zulässige Messwertgrenze in °C. |
|
||||
|
||||
Diese Grenzen prüfen die Temperaturquelle; sie ersetzen nicht die Soll- oder
|
||||
Mindesttemperatur. Beispiel: Eine Quelle mit 45 °C liegt innerhalb der
|
||||
Standardgrenzen. Ein Sensorfehler von -127 °C ist kein gültiger Kaltwasserwert.
|
||||
Grenzen nur passend zum realen Sensor und zur Anlage konfigurieren.
|
||||
|
||||
Reference in New Issue
Block a user