Files
Enelix-EMS/docs/module/Manager/README.md
T
dh 66966875e7
Tests / test (push) Successful in 42s
docs: falsch abgelegten VGT-Punkt entfernen
2026-09-17 12:14:50 +00:00

6.3 KiB

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 angelegte Diagnosevariablen existieren nur Aktiv, Betriebsart und Netzleistung.

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 60 s; auf echte Messaktualisierung bezogen.
VerbraucherZuordnung String/JSON []; manuelle Auswahl aus Instanz-ID und Aktiv-Status.
AutomatischeVerbraucherZuordnung String/JSON []; Auswahl aus automatisch gefundenen Verbrauchern.
AutomatischeSuche Boolean true; zeigt gefundene Verbraucher zur gezielten Auswahl.
SuchbereichID Integer 0; optionaler Suchbereich für die automatische Suche.
KeepAlive Integer 60 s; erneuert laufende Vorgaben zyklisch.
VerbraucherTimeout Integer 60 s; erkennt ausgebliebene Verbrauchermeldungen.
Lastspitzenmodus Auswahl Aus; alternativ Konstant oder Monatlich.
Lastspitzengrenze Float Feste Grenze in W für Modus Konstant.
Monatsgrenzen String/JSON Editierbare Liste mit zwölf Monatswerten in W.
SollwertSolarladen Float 0 W; gewünschte Netzleistung im Solarladebetrieb.
Umschaltdifferenz Float 5 %; 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.
DiagnosevariablenAnzeigen Boolean false; zusätzliche Diagnosevariablen anlegen oder entfernen.
LoggingEin Boolean false; laufende Meldungen im Debug-Fenster ausgeben.

Es gibt keine Sollwertquellenauswahl und keine zweite Prioritätseinstellung im Manager. Im Modus Aus bleibt Solarladen aktiv, nur die Peak-Begrenzung entfällt. Die Monatsgrenzen werden in den Grundeinstellungen über eine Schaltfläche ein- und ausgeblendet. Die automatische Verbrauchersuche kann dort erneut ausgeführt werden, ohne andere ungespeicherte Formulareingaben zu verlieren. Die vier optionalen oberen Anschlüsse besitzen jeweils einen eigenen Bereich; die Lizenzierung steht an erster Stelle des Formulars.

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 des Solar-Sollwerts zu PV und oberhalb der wirksamen Lastspitzengrenze zu Peak. Zwischen den beiden Zielwerten bleibt sie erhalten. Umschaltdifferenz verhindert zusätzlich einen Wechsel, wenn sich die beiden berechneten Korrekturen nicht ausreichend unterscheiden.

Laufzeit und Fehlerverhalten

  • Netzleistungsänderungen und Verbrauchermeldungen lösen die Berechnung aus.
  • Identische Sollwerte werden nur beim Keep-alive erneut gesendet.
  • Diagnosevariablen und laufendes Debug-Logging werden getrennt aktiviert.
  • 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.

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.