# 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.