Tests / test (push) Canceled after 0s
Installierbares IP-Symcon-Manager-Modul mit testbarer Verteilungslogik, Verbraucher-Timeouts, Sollwertversand und aktualisierter Dokumentation.
108 lines
6.0 KiB
Markdown
108 lines
6.0 KiB
Markdown
# Manager
|
|
|
|
> Status: Implementiert. Führt Hauptmanager und Peakshaving zusammen.
|
|
|
|
Der Manager liest die Netzleistung, verwaltet ausschliesslich die ausgewählten
|
|
Verbraucher und verteilt Leistung im PV- oder Peak-Betrieb. Die Prioritäten
|
|
kommen aus den Verbrauchermeldungen.
|
|
|
|
## Variablen
|
|
|
|
Ohne Logging sind nur `Aktiv`, `Betriebsart` und `Netzleistung` sichtbar.
|
|
|
|
| Ident | Typ / Zugriff | Beschreibung |
|
|
| --- | --- | --- |
|
|
| `Aktiv` | Boolean / bedienbar | Regelung ein/aus; Start `false`. |
|
|
| `Betriebsart` | String / Anzeige | `Inaktiv`, `PV` oder `Peak`. |
|
|
| `Netzleistung` | Float / Anzeige | Aktuelle Netzleistung in W; positiv Bezug, negativ Einspeisung. |
|
|
| `NetzleistungGueltig` | Boolean / Logging | Messquelle vorhanden und aktuell. |
|
|
| `WirksameLastspitzengrenze` | Float / Logging | Aktuelle feste oder monatliche Grenze in W. |
|
|
| `Verteilbudget` | Float / Logging | Aktuell verfügbares Budget in W. |
|
|
| `VerbraucherAnzahl` | Integer / Logging | Anzahl zugeordneter Verbraucher. |
|
|
| `VerbraucherVerfuegbar` | Integer / Logging | Anzahl aktuell verfügbarer Verbraucher. |
|
|
| `Verbraucherstatus` | String/JSON / Logging | Letzte vollständige Meldungen. |
|
|
| `Prognosestatus` | String / Logging | `NichtVerwendet`, `Verbunden` oder `Fehler`. |
|
|
| `SDLStatus` | String / Logging | Status des SDL/VGT-Anschlusses. |
|
|
| `Lizenzstatus` | String / Logging | Status der Lizenzprüfung. |
|
|
| `Stoerueberwachungsstatus` | String / Logging | Status der externen Störüberwachung. |
|
|
| `Sammelstoerung` | Boolean / Logging | Eigene und weitergeleitete Störungen. |
|
|
| `Stoertext` | String / Logging | Lesbare Sammelmeldung. |
|
|
|
|
## Properties
|
|
|
|
| Ident | Typ | Standard / Beschreibung |
|
|
| --- | --- | --- |
|
|
| `Rolle` | Auswahl | `Alleine`; alternativ `Hauptmanager` oder `Untermanager`. |
|
|
| `NetzleistungVariableID` | Integer | `0*`; gültige Messquelle vor Regelstart. |
|
|
| `Netzleistungsfaktor` | Float | `1`; auf W und die vereinbarte Vorzeichenrichtung normieren. |
|
|
| `MesswertMaxAlter` | Integer | `30` s; auf echte Messaktualisierung bezogen. |
|
|
| `VerbraucherZuordnung` | String/JSON | `[]`; Instanz-ID und Aktiv je Verbraucher. Einzige gespeicherte Zuordnung. |
|
|
| `AutomatischeSuche` | Boolean | `true`; findet Kandidaten, aktiviert sie aber nicht automatisch. |
|
|
| `SuchbereichID` | Integer | `0`; optionaler Suchbereich. |
|
|
| `Regelintervall` | Integer | `2` s; zusätzlich auf relevante Änderungen reagieren. |
|
|
| `Vorgabeintervall` | Integer | `10` s; laufende Vorgaben erneuern. |
|
|
| `VerbraucherTimeout` | Integer | `30` s; ausgebliebene Meldung erkennen. |
|
|
| `Lastspitzenmodus` | Auswahl | `Aus`; alternativ `Konstant` oder `Monatlich`. |
|
|
| `Lastspitzengrenze` | Float | Feste Grenze in W für Modus `Konstant`. |
|
|
| `Monatsgrenzen` | String/JSON | Zwölf Monatswerte in W. |
|
|
| `MonatsgrenzenVisuBedienbar` | Boolean | `false`; Monatstabelle in der Visualisierung bedienen. |
|
|
| `SollwertSolarladen` | Float | `0` W; gewünschte Netzleistung im Solarladebetrieb. |
|
|
| `UmschaltschwelleUeberschuss` | Float | Feste W-Schwelle für PV-Betrieb. |
|
|
| `UmschaltschwelleLastspitze` | Float | Feste W-Schwelle für Peak-Betrieb. |
|
|
| `Umschaltdifferenz` | Float | `0` %; Mindestdifferenz der berechneten Sollleistungen vor Umschaltung. |
|
|
| `PrognoseAnschluss` | String/JSON | Optionaler Forecast-Anschluss. |
|
|
| `SDLAnschluss` | String/JSON | Optionaler SDL/VGT-Anschluss. |
|
|
| `LizenzAnschluss` | String/JSON | Optionaler Lizenzanschluss. |
|
|
| `StoermeldeAnschluss` | String/JSON | Optionaler Anschluss zur Störüberwachung. |
|
|
| `LoggingEin` | Boolean | `false`; Protokollierung und zusätzliche Variablen anzeigen. |
|
|
|
|
Es gibt keine Sollwertquellenauswahl und keine zweite Prioritätseinstellung im
|
|
Manager. Im Modus `Aus` bleibt Solarladen aktiv, nur die Peak-Begrenzung entfällt.
|
|
|
|
## Verteilalgorithmus
|
|
|
|
Der Manager bildet das Verteilbudget aus der aktuellen Netzleistung, dem Ziel
|
|
der aktiven Betriebsart und der aktuellen Leistung aller frisch gemeldeten
|
|
Verbraucher. Eine gültige Istleistung wird bevorzugt; fehlt sie, bleibt der im
|
|
Zustand bestätigte Sollwert konservativ reserviert.
|
|
|
|
Nicht verfügbare, nicht änderbare oder aktuell angebotlose Verbraucher behalten
|
|
ihre Leistung und erhalten keine neue Vorgabe. Die übrigen Verbraucher werden
|
|
nach der gemeldeten PV- beziehungsweise Peak-Priorität und danach stabil nach
|
|
Instanz-ID sortiert. Von ihrem jeweils kleinsten erlaubten Leistungswert aus
|
|
wird das Budget in dieser Reihenfolge aufgefüllt. Einzelwerte und ganzzahlige
|
|
Bereiche werden direkt verarbeitet; Lücken werden nie durch unzulässige Werte
|
|
geschlossen. Eine verbleibende Abweichung wird im `Verbraucherstatus`
|
|
dokumentiert.
|
|
|
|
Die Betriebsart wechselt unterhalb der Überschussschwelle zu `PV` und oberhalb
|
|
der Lastspitzenschwelle zu `Peak`. Zwischen den Schwellen bleibt sie erhalten.
|
|
`Umschaltdifferenz` verhindert zusätzlich einen Wechsel, wenn sich die beiden
|
|
berechneten Korrekturen nicht ausreichend unterscheiden.
|
|
|
|
## Laufzeit und Fehlerverhalten
|
|
|
|
- Netzleistungsänderungen und der Regel-Timer lösen die Berechnung aus.
|
|
- Identische Sollwerte werden nur beim Vorgabeintervall erneut gesendet.
|
|
- Verbraucherpakete werden zentral geprüft und nur von aktiv zugeordneten
|
|
Absendern angenommen.
|
|
- Veraltete oder noch fehlende Verbrauchermeldungen werden nicht verteilt und
|
|
als Sammelstörung ausgewiesen.
|
|
- Bei fehlender oder veralteter Netzleistung bleibt die Regelung `Inaktiv` und
|
|
sendet keine neuen Vorgaben.
|
|
- Die oberen Anschlüsse bleiben optional. Solange kein konkreter Adapter
|
|
implementiert ist, meldet ein aktivierter Anschluss den Status `Fehler`, ohne
|
|
die lokale EMS-Regelung zu blockieren.
|
|
|
|
## Schnittstellen
|
|
|
|
- Empfängt genau `VerbraucherdatenEmpfangen(array $daten)`.
|
|
- Sendet an jeden Verbraucher nur Kopf und `Sollleistung_W`.
|
|
- Obere Anschlüsse: siehe [Obere Anschlüsse](../../Obere-Anschluesse.md).
|
|
|
|
## Offene Punkte
|
|
|
|
- Monatliche Batteriereserve aus dem alten Peakshaving-Modul übernehmen?
|
|
- Anbieterformate für Prognose, Lizenzierung und Störüberwachung festlegen.
|
|
- Verhalten und Messabgrenzung bei Untermanagern im Anlagentest bestätigen.
|