feat(workflow): publish verified forecast controls and consolidated docs
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:
dh
2026-10-08 10:02:58 +00:00
parent af69151165
commit 74a2d6c685
82 changed files with 5054 additions and 617 deletions
+42
View File
@@ -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
+156
View File
@@ -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
View File
@@ -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.
+19
View File
@@ -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.
+12
View File
@@ -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.