363 lines
22 KiB
Markdown
363 lines
22 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
|
|
|
|
Die drei Regelungsvariablen `Aktiv`, `Betriebsart` und `Netzleistung` sind immer sichtbar. Die vom Manager gefuehrten Mess- und Energievariablen werden immer angelegt und archiviert, koennen aber gemeinsam ausgeblendet werden.
|
|
|
|
| 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. |
|
|
| `PVLeistungArchiv` | Float / Logging | Normalisierte PV-Leistung in W. |
|
|
| `HausverbrauchLeistungArchiv` | Float / Logging | Normalisierter Hausverbrauch in W. |
|
|
| `NetzleistungArchiv` | Float / Logging | Normalisierte Netzleistung in W; positiv Bezug, negativ Einspeisung. |
|
|
| `BatterieleistungArchiv` | Float / Logging | Batterieleistung in W; positiv Laden, negativ Entladen. |
|
|
| `PVEnergie` | Float / Zaehler | Integrierte PV-Erzeugung in kWh. |
|
|
| `Hausenergie` | Float / Zaehler | Integrierter Hausverbrauch in kWh. |
|
|
| `NetzbezugEnergie` | Float / Zaehler | Integrierter Netzbezug in kWh. |
|
|
| `EinspeisungEnergie` | Float / Zaehler | Integrierte Einspeisung in kWh. |
|
|
| `BatterieLadenEnergie` | Float / Zaehler | Integrierte Batterieladung in kWh. |
|
|
| `BatterieEntladenEnergie` | Float / Zaehler | Integrierte Batterieentladung in kWh. |
|
|
| `NetzleistungGueltig` | Boolean / Logging | Messquelle vorhanden und aktuell. |
|
|
| `WirksameLastspitzengrenze` | Float / Logging | Aktuelle feste oder monatliche Bezugsgrenze in W. |
|
|
| `WirksameEinspeisegrenze` | Float / Logging | Anlagenweite Einspeisegrenze in W. |
|
|
| `Abregelbedarf` | Float / Logging | Aktuell erforderliche PV-Leistungsreduktion in W. |
|
|
| `Wechselrichterstatus` | String/JSON / Logging | Verteilte Grenzen und Zustand der PV-Regelung. |
|
|
| `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. |
|
|
| `EinspeisebegrenzungAktiv` | Boolean | `false`; gemeinsame Exportgrenze am Netzanschlusspunkt aktivieren. |
|
|
| `Einspeisegrenze` | Float | Maximale Einspeisung der Gesamtanlage in W; `0` bedeutet Nulleinspeisung. |
|
|
| `PrognoseAktiv` | Boolean | `false`; Prognosetelemetrie und Topologiesynchronisation mit `forecast_pv` plus `forecast_load` oder `grid_schedule` aktivieren. |
|
|
| `NetzfahrplanAktiv` | Boolean | `false`; lizenzierten, tarif- und prognosebasierten Netzzielwert verwenden. |
|
|
| `NetzbezugEnergieVariableID` | Integer | Optionaler kumulativer Netzbezugszaehler. |
|
|
| `NetzeinspeisungEnergieVariableID` | Integer | Optionaler kumulativer Einspeisezaehler. |
|
|
| `NetzbezugEnergiefaktor`, `NetzeinspeisungEnergiefaktor` | Float | Umrechnung der Netzenergiezaehler nach kWh. |
|
|
| `AnlagenWechselrichter` | String/JSON | `[]`; Wechselrichter mit Typ, AC-Nennleistung, Leistungs- und Erzeugungsenergiemessung sowie optionalem Begrenzungsregister. |
|
|
| `AnlagenPVFlaechen` | String/JSON | `[]`; PV-Flaechen mit DC-Leistung, Ausrichtung und Wechselrichter-ID. |
|
|
| `AnlagenBatterien` | String/JSON | `[]`; Batteriespeicher mit Kapazitaeten, Kopplung, Leistung, SOC sowie Lade- und Entladeenergiezaehlern. |
|
|
| `PrognoseSendeintervall` | Integer | `60` s; Intervall fuer den Upload aktueller Messwerte, zulaessig sind 60 bis 3600 Sekunden. |
|
|
| `PrognoseAnschluss` | String/JSON | Verdeckte Altproperty fuer bestehende Konfigurationen. |
|
|
| `SDLAnschluss` | String/JSON | Optionaler SDL/VGT-Anschluss. |
|
|
| `Lizenzcode` | String | Im Enelix-Lizenzportal erworbener Aktivierungscode. |
|
|
| `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. |
|
|
| `EnergieaufzeichnungAktiv` | Boolean | `true`; managergefuehrte Leistungs- und Energieaufzeichnung aktivieren. |
|
|
| `MesswerteAnzeigen` | Boolean | `false`; einzelne Manager-Messwerte in der Objektstruktur anzeigen. |
|
|
| `EnergyPieAnzeigen` | Boolean | `false`; Energy Pie unter dem Manager anlegen oder entfernen. |
|
|
| `EnergiediagrammeAnzeigen` | Boolean | `false`; native Leistungs- und Energiediagramme anlegen oder entfernen. |
|
|
| `FunFactsAnzeigen` | Boolean | `false`; responsive Energy Facts anlegen oder entfernen. |
|
|
| `EnergieflussAnzeigen` | Boolean | `false`; native Energy Distribution anlegen oder entfernen. |
|
|
| `LeistungsaufzeichnungMinuten` | Auswahl | `1`; Verdichtung auf 1 Minute, 5 Minuten oder 1 Stunde. |
|
|
| `LeistungLoeschenMonate` | Integer | `12`; Leistungswerte nach zwoelf Monaten loeschen, `0` deaktiviert die Loeschung. |
|
|
| `EnergieaufzeichnungMinuten` | Auswahl | `5`; Verdichtung auf 1 Minute, 5 Minuten oder 1 Stunde. |
|
|
| `EnergieVerdichtenMonate` | Integer | `12`; Energiezaehler nach zwoelf Monaten auf Tageswerte verdichten. |
|
|
| `EnergieLoeschenMonate` | Integer | `0`; Energiezaehler nicht loeschen. |
|
|
|
|
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.
|
|
|
|
## Energieaufzeichnung und Visualisierung
|
|
|
|
Sobald Netzleistung und mindestens eine PV-Istleistung in der Anlagentopologie
|
|
konfiguriert sind, tastet der Manager die Quellen minuetlich ab. PV-Leistung ist
|
|
die Summe der den PV-Flaechen zugeordneten Wechselrichter. Batterieleistung und
|
|
der kapazitaetsgewichtete SOC stammen aus den Batteriespeichern. Positive
|
|
Batterieleistung bedeutet Laden, negative Entladen. Der Hausverbrauch wird als
|
|
`PV + Netz - Batterie` bilanziert. Sind Netzbezugs-, Einspeise-, PV-Erzeugungs-
|
|
sowie gegebenenfalls Batterie-Lade- und Entladezaehler vollstaendig hinterlegt,
|
|
verwendet der Manager deren Deltas fuer die Energieaufzeichnung. Die Hausenergie
|
|
wird dann als `PV + Netzbezug + Batterieentladung - Einspeisung - Batterieladung`
|
|
berechnet. Ohne vollstaendigen Zaehlerdatensatz integriert der Manager weiterhin
|
|
die Leistungswerte. Dieselben Quellen versorgen ohne zweite Eingabe auch die
|
|
Prognosetelemetrie. Ausfallluecken ueber fuenf Minuten werden bei der
|
|
Leistungsintegration nicht nachberechnet.
|
|
|
|
Batteriespeicher bleiben als physische Komponenten samt Messquellen in der
|
|
Anlagentopologie. Ein zusaetzliches Batterieverbrauchermodul beschreibt dagegen
|
|
Regelung, Leistungsangebot und Betriebszustand; beide Rollen sind bewusst
|
|
getrennt.
|
|
|
|
Die eigenen Variablen werden automatisch im ersten Archive Control aktiviert.
|
|
Leistungen verwenden die Standardaggregation, Energievariablen den Zaehlermodus.
|
|
Standardmaessig werden Leistungen auf eine Minute verdichtet und nach zwoelf
|
|
Monaten geloescht. Energie wird auf fuenf Minuten verdichtet, nach zwoelf
|
|
Monaten auf Tageswerte reduziert und nie geloescht. Aenderungen an diesen
|
|
Regeln werden idempotent ueber die Archiv-API gesetzt und reaggregiert.
|
|
|
|
Vier Schalter im Bereich `Energieaufzeichnung` verwalten die
|
|
Visualisierungen idempotent. Beim Einschalten werden die Objekte direkt unter
|
|
dem Manager angelegt oder aktualisiert. Beim Ausschalten werden ausschliesslich
|
|
die vom Manager anhand ihrer festen Kennung und ihres Typs erkannten Objekte
|
|
entfernt beziehungsweise die native Energy Distribution ausgeblendet:
|
|
|
|
- Energy Pie aus Enelix Utils mit den vier relevanten Energiezaehlern,
|
|
- zwei native IP-Symcon-Diagrammmedien fuer Leistungen und Energien,
|
|
- responsive Energy Facts mit Solar-, Netz-, Haus- und Vergleichswerten,
|
|
- native Energy Distribution fuer PV, Netz, Haus und Batterie.
|
|
|
|
## Anlagenweite Einspeisebegrenzung
|
|
|
|
Die Einspeisebegrenzung ist Bestandteil von Peak Shaving und arbeitet auf der
|
|
Messung am Netzanschlusspunkt. Fuer jeden regelbaren PV- oder Hybridwechselrichter
|
|
werden die Istleistungsvariable und eine bedienbare Begrenzungsvariable
|
|
konfiguriert. Der Stellwert kann als Prozent der AC-Nennleistung oder als
|
|
absolute Leistung in Watt ausgegeben werden.
|
|
|
|
Der Manager berechnet eine einzige Grenze fuer die Gesamtanlage. Beim Abregeln
|
|
verteilt er sie nach der tatsaechlichen Erzeugung, beim Freigeben nach der
|
|
AC-Nennleistung auf alle angebotenen Wechselrichter. Jede gemessene Abweichung
|
|
wird stufenlos nachgefuehrt; ein zusaetzliches Toleranzfenster wird nicht
|
|
verwendet. Beim Abschalten des Managers oder der Funktion werden zuvor gesetzte
|
|
Grenzen kontrolliert auf die jeweilige
|
|
Nennleistung zurueckgesetzt. Wechselrichter ohne beide Register werden nicht
|
|
geregelt; sobald eines der beiden Register gesetzt ist, muessen beide gueltig
|
|
sein und das Begrenzungsregister eine IP-Symcon-Aktion besitzen.
|
|
|
|
Der intelligente Netzfahrplan verwendet die PV-, Verbrauchs- und
|
|
Netzleistungsprognose sowie Tarife und Batteriespeicher. Liegt im
|
|
Prognosezeitraum mehr PV-Ertrag als zulaessige Einspeisung vor, wird dieses
|
|
Potenzial als flexibler Verbrauch beziehungsweise Speicherladung eingeplant.
|
|
Damit werden Verbraucher in ertragreiche Zeitfenster verschoben, bevor der
|
|
harte Anlagenregler die Wechselrichter reduziert. Ein fehlender oder
|
|
abgelaufener Fahrplan fuehrt automatisch zum konfigurierten
|
|
`SollwertSolarladen` zurueck; die harte Einspeisebegrenzung bleibt unabhaengig
|
|
davon aktiv.
|
|
|
|
## Anlagentopologie und Prognoseexport
|
|
|
|
Der Manager ist die fuehrende Quelle fuer die technischen Stammdaten. Die
|
|
Konfiguration trennt Wechselrichter, PV-Flaechen und Batteriespeicher. AC-Leistung
|
|
wird am Wechselrichter, DC-Leistung an der PV-Flaeche gepflegt. Individuelle
|
|
AC-Einspeise- und Bezugsgrenzen werden nicht erfasst, weil die Begrenzung
|
|
anlagenweit am Netzanschlusspunkt erfolgt. Modulanzahl und Modulleistung sind
|
|
optional und muessen gemeinsam gesetzt werden.
|
|
|
|
PV-Flaechen und Batterien referenzieren ihren Wechselrichter ueber dessen stabile
|
|
ID. Bei `hybrid` koennen beide denselben Wechselrichter verwenden. Der Export
|
|
`ENELIX_AnlagentopologieExportieren($InstanzID)` weist dann eine gemeinsame
|
|
AC-Grenze aus, damit PV und Batterie die Nennleistung nicht unabhaengig doppelt
|
|
beanspruchen.
|
|
|
|
Der JSON-Export enthaelt die Vertragsversion `1.0`, die Lizenz-Installations-ID,
|
|
die drei Komponentenlisten, gemeinsame AC-Nennleistungen und aggregierte Summen
|
|
fuer die schrittweise Prognoseanbindung. Interne Symcon-Variablen-IDs werden
|
|
nicht exportiert. Tarif- und Variantenparameter bleiben im Prognoseportal. Bei
|
|
aktivierter Prognose wird eine nichtleere Topologie beim Speichern automatisch ueber
|
|
einen separaten, widerrufbaren Installationszugang synchronisiert. Der
|
|
Lizenzserver liefert diesen Zugang nur auf ausdrueckliche Geraeteanforderung;
|
|
der Manager entfernt ihn vor dem Speichern aus der Lease und haelt ihn in einem
|
|
internen Attribut. Der Lizenzcode wird nicht als API-Token verwendet. Ein
|
|
Synchronisationsfehler erscheint im `Prognosestatus`, blockiert die lokale
|
|
EMS-Regelung aber nicht.
|
|
|
|
Der Forecast-Schalter zeigt direkt an, ob fuer die Manager-ID eine passende
|
|
Kombination `forecast_pv` plus `forecast_load` oder `grid_schedule` vorhanden ist. Nach der Aktivierung sendet der
|
|
Manager PV-Leistung, berechneten Hausverbrauch, Netzleistung und Batterie-SOC
|
|
mit UTC-Zeitstempel im eingestellten Sendeintervall. Dieses Intervall bestimmt
|
|
also, wie oft aktuelle Messwerte zum Prognosedienst hochgeladen werden; es ist
|
|
kein Regelintervall. Das Minimum von 60 Sekunden
|
|
passt zum Rate-Limit des Lizenzportals. Die Uebertragung nutzt denselben
|
|
widerrufbaren Installationszugang wie die Topologie; Lizenzcode und Geraet Token
|
|
werden weder als Telemetriefelder noch im Debug-Log ausgegeben. Bei HTTP 401
|
|
oder 403 verwirft der Manager den Geraetezugang und fordert ihn bei der naechsten
|
|
Lizenzpruefung neu an.
|
|
|
|
Die Entscheidung und ihre Alternativen sind in
|
|
[ADR 0005](../../adr/0005-anlagentopologie-fuer-prognosen.md) dokumentiert.
|
|
|
|
## Lizenzierung
|
|
|
|
Der Manager arbeitet nur mit einer gueltigen Manager-Lizenz. Das Lizenzfeld steht
|
|
zuoberst im Konfigurationsformular. Ohne Freigabe bleibt die Instanz mit Status
|
|
`203` inaktiv und sendet keine Leistungsvorgaben.
|
|
|
|
### Voraussetzungen
|
|
|
|
- Der Auftrag im Enelix-Lizenzportal ist bezahlt und enthaelt eine aktive
|
|
Manager-Berechtigung.
|
|
- IP-Symcon erreicht `https://license.enelix.ch` ueber HTTPS (Port 443).
|
|
- Der Lizenzcode liegt im Format `ENX-XXXX-XXXX-XXXX-XXXX` vor.
|
|
|
|
### Lizenz aktivieren
|
|
|
|
1. Manager-Konfiguration in IP-Symcon oeffnen.
|
|
2. Lizenzcode im Bereich `Lizenzierung` eintragen.
|
|
3. `Lizenz pruefen und binden` ausloesen.
|
|
4. Die erfolgreiche Freigabe am angezeigten Lizenzstatus kontrollieren.
|
|
5. Die Manager-Konfiguration mit `Uebernehmen` beziehungsweise `OK` speichern,
|
|
damit der eingegebene Lizenzcode als Property erhalten bleibt.
|
|
|
|
Beim ersten Anlegen erzeugt die Manager-Instanz eine UUIDv4 als stabile
|
|
Installations-ID. Die Aktivierung sendet ausschliesslich `code` und
|
|
`installationId` per
|
|
`POST https://license.enelix.ch/api/v1/licenses/activate`. Sie benoetigt weder
|
|
Portal-Cookies noch einen CSRF-Token. Derselbe Code kann von derselben
|
|
Installation erneut abgerufen werden; die Bindung an eine andere Installation
|
|
wird vom Lizenzserver abgelehnt.
|
|
|
|
### Berechtigungen
|
|
|
|
| Berechtigung | Freigegebene Funktion |
|
|
| --- | --- |
|
|
| `manager_standard` | Manager-Grundregelung ohne Peak Shaving. |
|
|
| `manager_peak` | Bezugs- und Einspeisebegrenzung am Netzanschlusspunkt. |
|
|
| `forecast_pv` | PV-Ertragsprognose; interne Modellvarianten bleiben verborgen. |
|
|
| `forecast_load` | Verbrauchsprognose; interne Modellvarianten bleiben verborgen. |
|
|
| `grid_schedule` | Intelligenter Netzfahrplan inklusive PV- und Verbrauchsprognose sowie Vermeidung von Abregelung. |
|
|
|
|
Wird mit `manager_standard` ein Lastspitzenmodus aktiviert, bleibt der Manager
|
|
mit dem Hinweis `Peak Shaving ist nicht lizenziert` gesperrt. `manager_peak`
|
|
gilt zugleich als Berechtigung fuer die Grundregelung.
|
|
|
|
### Erneuerung und Offline-Betrieb
|
|
|
|
Die erfolgreiche Serverantwort wird als Lease in der Manager-Instanz gespeichert.
|
|
Der Manager erneuert sie ab `refreshAfter` automatisch ueber denselben
|
|
Aktivierungsendpunkt. Schlaegt eine Erneuerung fehl, wird fruehestens nach einer
|
|
Stunde erneut angefragt. Eine bereits bestaetigte Entwicklungsfreigabe bleibt
|
|
bis `offlineUntil` verwendbar. Der aktuelle Entwicklungsvertrag setzt diesen
|
|
Zeitpunkt ungefaehr 14 Tage nach Ausstellung. Danach sperrt der Manager die
|
|
Regelung, bis der Lizenzserver wieder eine gueltige Antwort liefert.
|
|
|
|
Die Installations-ID und die Lease liegen in internen Instanzattributen. Die
|
|
ID wird erst nach dem Laden bestehender Attribute initialisiert und bleibt bei
|
|
Modulupdates, Modul-Neuladen und einem normalen Neustart unveraendert. Bei einer
|
|
Migration muss trotzdem die vollstaendige Manager-Instanz mitsamt ihren
|
|
Attributen uebernommen werden. Eine neu erzeugte Instanz erhaelt eine andere
|
|
Installations-ID und kann einen bereits gebundenen Code nicht selbststaendig
|
|
uebertragen. Wurde die ID mit einer aelteren Manager-Version bereits ungewollt
|
|
geaendert, muss im Lizenzportal einmalig ein Ersatzcode erzeugt und an die nun
|
|
stabile ID gebunden werden.
|
|
|
|
### Status und Fehlerbehebung
|
|
|
|
| Anzeige / Serverstatus | Bedeutung und Massnahme |
|
|
| --- | --- |
|
|
| `Lizenzcode fehlt.` | Code eintragen, pruefen und die Konfiguration speichern. |
|
|
| `Lizenzcode ist ungueltig.` | Format und Zeichen des Codes kontrollieren. |
|
|
| HTTP `404` | Code unbekannt oder zugehoeriger Auftrag noch nicht bezahlt. |
|
|
| HTTP `409` | Code ist bereits an eine andere Installation gebunden. |
|
|
| HTTP `429` | Zu viele Aktivierungsversuche; vor dem naechsten Versuch warten. |
|
|
| `Lizenzserver nicht erreichbar` | DNS, Internetzugang, HTTPS und Systemzeit des Symcon-Systems pruefen. Eine bestehende Lease gilt nur bis `offlineUntil`. |
|
|
| `Offline-Freigabe ist abgelaufen.` | Verbindung zum Lizenzserver wiederherstellen und Lizenz erneut pruefen. |
|
|
| `Keine Prognoseberechtigung vorhanden` | Im Lizenzportal entweder PV-Ertragsprognose zusammen mit Verbrauchsprognose oder den Intelligenten Netzfahrplan ergaenzen. Anschliessend im Manager `Lizenz pruefen und binden` ausloesen, die Prognose aktivieren und die Konfiguration speichern. |
|
|
|
|
Fuer eine genauere Diagnose koennen die Diagnosevariablen eingeblendet werden.
|
|
`Lizenzstatus` zeigt dann den aktuellen Zustand. Mit aktiviertem Debug-Logging
|
|
werden Fehlermeldungen der Lizenzpruefung ausgegeben, niemals jedoch der
|
|
Lizenzcode selbst.
|
|
|
|
### Datenschutz und Entwicklungsstand
|
|
|
|
Der Lizenzcode wird als Manager-Property in der IP-Symcon-Konfiguration
|
|
gespeichert. Fuer den internen Abgleich mit der Lease verwendet der Manager
|
|
zusaetzlich nur einen SHA-256-Hash und schreibt den Code nicht ins Debug-Log.
|
|
Die aktuelle Serverantwort ist ein Entwicklungsvertrag mit
|
|
`development: true` und noch nicht kryptografisch signiert. Ein optionaler
|
|
Geraete-Public-Key sowie Challenge-, Heartbeat- oder separate
|
|
Entitlement-Endpunkte werden vom Manager derzeit bewusst nicht verwendet.
|
|
|
|
## 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 oder aktuell angebotlose Verbraucher behalten ihre Leistung
|
|
und erhalten keine neue Vorgabe. Jeder verfügbare, synchronisierte Verbraucher
|
|
mit einem nicht leeren Angebot erhält dagegen einen Sollwert aus diesem Angebot.
|
|
Das gilt auch bei `AenderungMoeglich=false`: Ein fixes Angebot wie `[11000]`
|
|
wird mit genau `11000 W` zugeteilt.
|
|
|
|
Die Verbraucher werden nach der gemeldeten PV- beziehungsweise Peak-Priorität
|
|
sortiert. Bei gleicher Priorität bevorzugt der Manager wie Enelix 1 den
|
|
Verbraucher mit der bisher kleineren bezogenen Energie; verglichen wird in
|
|
2-kWh-Gruppen. Erst wenn auch diese Gruppe gleich ist, entscheidet stabil die
|
|
Instanz-ID. Zuerst reserviert der Manager für jeden Verbraucher den kleinsten
|
|
erlaubten Leistungswert. Nur das danach
|
|
verbleibende Budget wird in Prioritätsreihenfolge 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.
|
|
- Ohne gueltige Manager-Berechtigung bleibt der Manager mit Status `203` gesperrt.
|
|
- Die Serverantwort wird lokal gespeichert und ab `refreshAfter` erneuert. Bei
|
|
einem Verbindungsfehler gilt eine zuvor bestaetigte Entwicklungsfreigabe bis
|
|
`offlineUntil`; danach wird die Regelung wieder gesperrt.
|
|
- `manager_standard` erlaubt die Grundregelung. Ein aktiver Lastspitzenmodus
|
|
benoetigt `manager_peak`.
|
|
- Der Lizenzcode wird nie geloggt. Lokal wird fuer den Lease-Abgleich nur sein
|
|
SHA-256-Wert gespeichert.
|
|
- 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 und Störüberwachung festlegen.
|
|
- Produktive signierte Lizenz-Leases nach Abschluss des Entwicklungsvertrags integrieren.
|
|
- Verhalten und Messabgrenzung bei Untermanagern im Anlagentest bestätigen.
|