diff --git a/docs/Schnittstelle.md b/docs/Schnittstelle.md index 60a83d6..0dd6a01 100644 --- a/docs/Schnittstelle.md +++ b/docs/Schnittstelle.md @@ -81,3 +81,57 @@ public function VerbraucherdatenEmpfangen(array $daten): void; - Eine aktive Stoerung wird mit `Art=Stoerung` und `Wert=true` gemeldet; eine behobene mit `false`. - Verbraucher werden ausschliesslich im Manager zugeordnet. Der Verbraucher besitzt keine Manager-ID-Property. +## Technische Umsetzung in IP-Symcon + +Der Transport erfolgt über `IPS_RequestAction` mit JSON. `MessageSink` erkennt +registrierte Änderungen; der empfangende Action-Handler prüft das Paket und +ruft danach genau eine fachliche Empfangsmethode auf. Empfang und Neuberechnung +werden intern entkoppelt, damit keine gegenseitige Endlosschleife entsteht. + +Das PHP-Interface legt nur die Methode fest. Die folgenden gemeinsamen +Symcon-Datenpunkte werden durch `VerbraucherBasisTrait` registriert. + +### Gemeinsame Properties aller Verbraucher + +| Ident | Typ | Standard | Beschreibung | +| --- | --- | --- | --- | +| `PrioritaetPV` | Integer | `0` | Priorität ab 0; kleinere Zahl bedeutet höhere Priorität. | +| `PrioritaetPeak` | Integer | `0` | Wie PV-Priorität, ohne fachliche Obergrenze. | +| `Meldeintervall` | Integer | `10` | Vollständige Rückmeldung in Sekunden; muss grösser als 0 sein. | +| `VorgabeTimeout` | Integer | `30` | Sollwert wird nach dieser Zeit ohne Erneuerung ungültig. | +| `EinstellungenInVisu` | Boolean | `false` | Blendet lokale Einstellvariablen ein und macht sie geprüft bedienbar. | +| `LoggingEin` | Boolean | `false` | Aktiviert Diagnoseprotokoll und zusätzliche Diagnosevariablen. | + +### Gemeinsame Variablen aller Verbraucher + +| Ident | Typ / Zugriff | Beschreibung | +| --- | --- | --- | +| `Aktiv` | Boolean / bedienbar | Lokale EMS-Freigabe; Start `false`. | +| `Istleistung` | Float / Anzeige | Aktuelle Leistung in W; nur zusammen mit `Leistungsquelle` gültig. | +| `Leistungsquelle` | Integer / Anzeige | `0` nicht vorhanden, `1` berechnet, `2` gemessen. | +| `Sollleistung` | Integer / Anzeige | Tatsächlich angenommene Vorgabe in W. | +| `SollwertGueltig` | Boolean / Anzeige | Kennzeichnet eine aktuell gültige Vorgabe. | +| `Verfuegbar` | Boolean / Anzeige | Verbraucher grundsätzlich für EMS-Steuerung verfügbar. | +| `AenderungMoeglich` | Boolean / Anzeige | Neue Vorgabe darf momentan übernommen werden. | +| `Stoerung` | Boolean / Anzeige | Mindestens ein Zustandseintrag der Art `Stoerung` ist aktiv. | +| `Stoertext` | String / Anzeige | Zusammengefasste lesbare Störbeschreibung. | + +`Leistungswerte_W` und `Zustand` werden intern gehalten und direkt in die +Nachricht geschrieben. Dafür werden keine zusätzlichen Symcon-Variablen +angelegt. Der gemeinsame Zustandseintrag `Sollleistung_W` wird durch die Basis +ergänzt. + +## Zeitverhalten + +- Rückmeldung nach dem Start, bei relevanten Änderungen und zusätzlich alle + `Meldeintervall` Sekunden. +- Laufende Vorgaben werden vom Manager standardmässig alle 10 Sekunden erneuert. +- Nach `VorgabeTimeout` Sekunden ist eine nicht erneuerte Vorgabe ungültig. +- Nach einem Neustart wird zuerst der Gerätezustand erfasst; eine alte Vorgabe + wird nicht ungeprüft wieder aufgenommen. + +## Obere Anschlüsse des Managers + +SDL/VGT, Prognose, Lizenzierung und Störüberwachung verändern den +Manager-Verbraucher-Vertrag nicht. Ihr aktueller Diskussionsstand ist in +[Obere-Anschluesse.md](Obere-Anschluesse.md) beschrieben.