Approved by Daniel Haefliger for develop and beta. Author dh_Agent, authenticated account dh. Preserve published battery, charging and overall Energy Pie changes. No deployment or plant control authorization.
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. |
SDLAktiv |
Boolean | false; separat gemessene SDL-/Regelenergie in der Anlagenbilanz beruecksichtigen. Keine SDL-Steuerung. |
SDLLeistungVariableID |
Integer | 0; bei aktiver SDL erforderliche numerische Istleistungsquelle. |
SDLLeistungsfaktor |
Float | 1; Umrechnung nach W, positiv Laden/Bezug, negativ Entladen/Abgabe. Fuer kW 1000, bei umgekehrtem Vorzeichen negativ. |
SDLSOCVariableID |
Integer | 0; optionaler separater SDL-Ladezustand in Prozent, 0 bis 100. |
SDLEnergieflussAnzeigen |
Boolean | false; SDL mit optionalem SOC als eigenen Speicher im aktivierten Energiefluss anzeigen. |
SDLDiagrammeAnzeigen |
Boolean | false; SDL-Leistung, Lade-/Entladeenergie und optionalen SOC in aktivierten Diagrammen anzeigen. |
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.
SDL / Regelenergie
SDL aktiv blendet die Quellen- und Anzeigeauswahl ein. Die SDL-Istleistung
beschreibt einen separat gemessenen AC-Zweig am selben Netzanschlusspunkt.
Sie darf weder in der normalen Batterieleistung noch in einer PV-Leistung
enthalten sein. Eine identische Variablen-ID fuer SDL und Netz/PV/Batterie wird
abgewiesen. Ueberschneidungen in extern gebildeten Summen muss die
Anlagenkonfiguration ausschliessen. Ein gemeinsamer Speicher mit nur einem
Gesamtleistungsmesswert kann damit nicht in EMS- und SDL-Anteile zerlegt werden.
Bei aktiver SDL lautet die Hauslast max(0, PV + Netz - Batterie - SDL).
Die Korrektur geschieht vor der Begrenzung auf null und unabhaengig davon,
ob SDL angezeigt wird. Diese Hauslast wird an den Prognosedienst gesendet;
Netzleistung und der kapazitaetsgewichtete SOC der normalen Batterien bleiben
unveraendert. SDL-SOC ersetzt keinen Batterie-SOC und wird nicht als
planbare EMS-Speicherkapazitaet exportiert. Ungueltige SDL-Leistungswerte
unterbrechen die Messaufzeichnung und den jeweiligen Telemetrieversand,
statt als null in die Hauslast einzugehen. Der SDL-Status ist bei aktiver
SDL auch ohne eingeschaltete Diagnosevariablen sichtbar.
SDLLeistungArchiv zeichnet Watt auf, SDLSOCArchiv gueltige Prozentwerte.
SDLLadenEnergie und SDLEntladenEnergie integrieren die getrennten Richtungen
in kWh. Die Abtastung erfolgt wie bei den anderen Leistungen minuetlich, nicht
als abrechnungsgenaue SDL-Energiemessung. Auch bei vorhandenen physikalischen
Energiezaehlern wird die Hausenergie um die im selben Intervall integrierte
SDL-Ladung vermindert und um SDL-Entladung erhoeht. Bei Messluecken ueber
fuenf Minuten, Quellenwechseln oder Zaehlerresets wird keine unvollstaendige
Hausenergie nachberechnet; Historie und bereits erfasste Zaehler bleiben erhalten.
Die Anzeigeoptionen wirken beim Anwenden direkt auf die vorhandenen Manager-Visualisierungen. Nur die eigenen SDL-Knoten und -Datensaetze werden ergaenzt oder entfernt. Andere Knoten, Farben, Datensaetze und sonstige Anpassungen bleiben bestehen. Im Energiefluss verwendet SDL dieselbe W/kW- Einheit wie die anderen Manager-Knoten; ein ungueltiger SOC wird dort nicht als aktueller Zusatzwert angezeigt. Ohne separaten SDL-Knoten enthaelt der Manager-Sammelknoten Batteriespeicher die normale Batterie plus SDL, damit die dargestellte Leistungsbilanz vollstaendig bleibt. Im Leistungsdiagramm erscheint die signierte SDL-Istleistung, im Energiediagramm erscheinen Laden und Entladen getrennt. SOC verwendet in beiden Diagrammen eine eigene rechte Prozentachse. Die allgemeinen Schalter fuer Energiefluss, Diagramme und Energieaufzeichnung bleiben erforderlich.
Migration: SDL bleibt nach dem Modulupdate standardmaessig aus. Bestehende
Installationen behalten damit ihre bisherige Bilanz. Erst Quellen und
Vorzeichen pruefen, SDL aktivieren und anwenden. Historische Hauslasten oder
bereits trainierte Prognosen werden nicht rueckwirkend korrigiert; neue
Prognoseeingaben sind ab Aktivierung bereinigt. Ausschalten entfernt nur
SDL-Anzeigen, nicht die aufgezeichnete Historie. Der alte SDLAnschluss
bleibt lesbar; externe SDL-Regelung und Stellbefehle werden nicht veraendert.
Native Darstellungsvertraege: Energy Distribution und Diagramme.
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 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.chueber HTTPS (Port 443). - Der Lizenzcode liegt im Format
ENX-XXXX-XXXX-XXXX-XXXXvor.
Lizenz aktivieren
- Manager-Konfiguration in IP-Symcon oeffnen.
- Lizenzcode im Bereich
Lizenzierungeintragen. Lizenz pruefen und bindenausloesen.- Die erfolgreiche Freigabe am angezeigten Lizenzstatus kontrollieren.
- Die Manager-Konfiguration mit
UebernehmenbeziehungsweiseOKspeichern, 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. Zuerst reserviert der Manager die richtungsneutralen erlaubten Werte sowie die gemessene Leistung fester oder gesperrter Verbraucher.
Positives Restbudget wird innerhalb jeder Priorität schrittweise verteilt: Zuerst kommt die kleinste nächste erreichbare absolute Sollleistung, nicht die kleinste Erhöhung. Bei gleicher nächster Sollleistung entscheidet die exakt gezählte bezogene Energie in Wh, danach stabil die Instanz-ID. Die bisherigen 2-kWh-Gruppen werden für diese Vergabe nicht mehr verwendet. Vom Budget wird nur die Differenz zum bereits zugeteilten Sollwert abgezogen. Ein nicht finanzierbarer Schritt wird übersprungen; andere passende Schritte und danach tiefere Prioritäten können das verbleibende Budget nutzen.
Beispiel bei gleicher Priorität: A bietet [0,100,200,400,800] bei 10 kWh,
B bietet [0,100,110,500,780,1500] bei 12 kWh. Die Zuteilungsfolge bei
ausreichendem Budget ist A100, B100, B110, A200, A400, B500, B780, A800, B1500.
Die zugehörigen Gesamtbudgets sind 100, 200, 210, 310, 510, 900, 1180, 1580 und
2300 W. Energie entscheidet nur bei gleichen nächsten Leistungsstufen, nicht
mehr über die vollständige Versorgung eines Verbrauchers vor allen anderen.
Ganzzahlige Bereiche folgen derselben Reihenfolge wie einzelne Wattstufen,
werden aber über gemeinsame Leistungsniveaus effizient verarbeitet. Lücken
werden nie durch unzulässige Werte geschlossen. Bei negativem Restbudget bleibt
die bestehende Defizitregelung einschliesslich ihrer Energiegruppen unverändert.
Eine verbleibende Abweichung wird im Verbraucherstatus dokumentiert.
Für das Update sind keine neuen Properties oder eine Migration nötig. Bestehende Energiezähler, Sperrzeiten und Freigaben bleiben erhalten. Nach dem Modulupdate gilt die neue Vergabe beim nächsten Regellauf. Vor einem Update einer laufenden Anlage Einstellungen sichern und die neuen Sollwerte kontrolliert prüfen; die Git-Veröffentlichung allein aktualisiert keine laufende Installation.
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.
Energy Pie: Gesamtbilanz inklusive SDL
Der Manager aktiviert am eigenen Energy Pie Gesamtbilanz=true, unabhaengig
von SDLAktiv. Der bilanzielle Gesamtverbrauch ist Produktion plus physischer
Netzbezug minus Einspeisung (mindestens 0). SDL-Ladung bzw. -Abgabe wirkt damit
ueber die bereits vorhandenen Netzzaehler; separate SDL-Zaehler werden nicht
nochmals addiert. Eine Versorgung des Hauses durch SDL ist keine Netzeinspeisung.
Die Hausquelle bleibt gespeichert, fliesst jedoch nicht in diese Gesamtbilanz ein.
Die weiterhin SDL-bereinigte Hauslast fuer Regelung und Prognose bleibt unveraendert.
Die Quoten sind ausdruecklich bilanziell, keine reine PV-Herkunftszuordnung oder physische Hausautarkie. Speicherentladung kann den Netto-Bilanzverbrauch senken; bei negativem Saldo zeigt der Pie einen Hinweis und begrenzt Verbrauch und Quoten auf 0. Fehlende Daten werden weiterhin als unbekannt behandelt.
Migration: zuerst Enelix Utils mit Gesamtbilanz-Unterstuetzung aktualisieren,
dann den EMS-Manager anwenden. Zaehlervariablen, Archivdaten und individuelle
Farben bleiben erhalten. Historische Zeitraeume werden neu aus den vorhandenen
drei Zaehlern berechnet. Die alte Property EnergieanteileBerechenbar bleibt
fuer einen Rueckwechsel erhalten und blockiert die Gesamtbilanz nicht.
Mit einem alten Utils bleibt die bisherige SDL-Schutzlogik bestehen, bis Utils
aktualisiert wird; es wird keine falsche Hausbilanz erzwungen. Kein Anlagenrollout
oder Stellbefehl ist Teil dieser Quellcode-Aenderung.
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
Inaktivund sendet keine neuen Vorgaben. - Ohne gueltige Manager-Berechtigung bleibt der Manager mit Status
203gesperrt. - Die Serverantwort wird lokal gespeichert und ab
refreshAftererneuert. Bei einem Verbindungsfehler gilt eine zuvor bestaetigte Entwicklungsfreigabe bisofflineUntil; danach wird die Regelung wieder gesperrt. manager_standarderlaubt die Grundregelung. Ein aktiver Lastspitzenmodus benoetigtmanager_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.
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.
Ergänzungen zum Kanalstand vom 8. Oktober 2026
Diese Referenz gilt für Testing (develop) und Beta mit Quellbasis 5885681.
Stable (main, Quellbasis b6253f9) enthält noch keinen installierbaren Manager.
Die Kanalnamen sind keine Anlagenabnahme. Die Kanalübersicht
trennt Funktionen, Fehlerkorrekturen und noch offene Betriebsnachweise.
Prognosebedienung und Netzfahrplan V4
Im Bereich Prognose / Forecast sind Topologie, Empfang, Vorschau und bewusste
Start-/Stoppbedienung zusammengeführt. PrognoseAktiv schaltet Telemetrie und
Topologiesynchronisation ein, startet aber keine V4-Regelung. NetzfahrplanAktiv
gehört weiterhin zum bisherigen Netzfahrplanregler. Bei eingerichteter V4-
Konfiguration wird dessen ausgeschalteter Altschalter verborgen; ein aktiver
Altregler bleibt zum Ausschalten sichtbar. Beide Regler nicht parallel starten.
Die neue Bedienung FormNetzfahrplanSchalten prüft gespeicherte Konfiguration,
Lizenz und lokale Testfreigaben erneut. Ausschalten bleibt bei Lizenzverlust
möglich. Der Stopp widerruft die Testsitzung und kann danach eine frisch
berechnete normale EMS-Zuteilung auslösen. Er ist kein anlagenweiter Not-Aus
und löscht keinen unabhängigen SDL-Auftrag.
V4 ist ein begrenzter Testpfad, kein freigegebener Dauerregler. Ein vorhandener
Plan, optimal, shadow_seen oder eine erfolgreiche Befehlsquittung belegt
weder physische Leistungsnachführung noch Einsparungen. Nach dem Modul-Reload
vom 6. Oktober wurde eine Batterietimerblockade dokumentiert. Die spätere
Nachkontrolle vom 7. Oktober meldet laufende periodische Timer, keine physische
V4-Abnahme. Ursache und Wiederholbarkeit des Reload-Problems bleiben offen;
nach Updates Timer erneut prüfen. Watchdog, Planwechsel und sicherer Stopp
bleiben separat abzunehmen. Die frühere befristete Testfreigabe endete am
7. Oktober 2026. Diese Dokumentation erneuert sie nicht; Schutzprüfungen dürfen
nicht umgangen werden.
| Property | Typ / Standard | Zweck und Grenze |
|---|---|---|
NetzfahrplanV4SchattenAktiv |
Boolean / false |
Versand nativer Betriebsdaten für die Schattenplanung; allein keine Stellbefehle. |
NetzfahrplanV4EmpfangAktiv |
Boolean / false |
Planempfang und lokale Vorschau; Empfang ist keine Ausführung. |
NetzfahrplanV4NetzladenErlaubt |
Boolean / false |
Netzladen in den Planungsrandbedingungen erlauben; ersetzt keine lokale Freigabe. |
NetzfahrplanV4BatterieOptionen |
String/JSON / {} |
Batteriebezogene Planungsoptionen, gebunden an die Asset-ID der Topologie. |
NetzfahrplanV4MessnachweisVariableID |
Integer / 0 |
Stringvariable mit geprüftem JSON-Messnachweis, keine Leistungsvariable. |
NetzfahrplanV4BezugszaehlerQuellen |
String/JSON / [] |
Separate Bezugszählerquellen für Viertelstunden-/Monatspeaknachweise. Keine Übernahme eines ungeprüften Altzählers. |
NetzfahrplanV4MessdatenAktiv |
Boolean / false |
Rohmessaufnahme alle 30 s mit Originalzeitstempeln, lokaler Outbox und bestätigtem Versand. |
NetzfahrplanV4ArchivAktiv |
Boolean / false |
Optionale lokale Archivierung bestätigter Messdaten; kein Ersatz für externe Sicherungen. |
NetzfahrplanV4Messkonfiguration |
String/JSON / {} |
Validierte Quellen-/Messgrenzenzuordnung, an Installation und Manager gebunden. |
NetzfahrplanV4Datensatz |
String / leer | Datensatzkennung, 1 bis 80 Buchstaben, Ziffern, _ oder -. |
NetzfahrplanV4RegeltestErlaubt |
Boolean / false |
Lokale Freigabe des begrenzten Regeltests; weitere Server-/Batteriegates bleiben erforderlich. |
NetzfahrplanV4AktivtestErlaubt |
Boolean / false |
Zusätzliche Freigabe des ausdrücklich begrenzten Aktivtests, keine Produktionsfreigabe. |
NetzfahrplanV4WatchdogVerzichtErlaubt |
Boolean / false |
Nur dokumentierte Testanlagen-Ausnahme, niemals Ersatz für einen Geräte-Watchdog im Dauerbetrieb. |
Komplexe Messkonfigurationen müssen aus den tatsächlichen Quellen abgeleitet
werden. Leere Standardwerte sind nicht ausführbare Musterkonfigurationen.
Vorhandene Datenkennungen, Outbox-Cursor und Bestätigungen nicht manuell ändern.
Normaler Rohdatenversand erfolgt im 60-s-Abstand; ein bestätigter Rückstand kann
schneller abgearbeitet werden, Fehler warten mindestens 60 s. scheduled
bezeichnet daher nicht automatisch einen Fehler. Die letzte Quittung ist
entscheidend. Ein HTTP-429 beim Planempfang behält seinen Backoff.
| Variable | Typ / Zugriff | Inhalt |
|---|---|---|
NetzfahrplanV4Vorschau |
String/HTML / Anzeige | Geprüfte Planvorschau ohne Stellfreigabe. |
NetzfahrplanV4VorschauJSON |
String/JSON / Diagnose | Plan-, Eingangs- und Ablehnungsdiagnose. |
NetzfahrplanV4Datenstatus |
String/JSON / Diagnose | Aufnahme, Versand, Datensatz und letzte Bestätigung; controlEnabled=false bezieht sich auf diesen Datenweg. |
NetzfahrplanV4Aktivtest |
Boolean / bedienbar | Bestehender Schalter für den begrenzten Testbetrieb; kein automatischer Start beim Update. |
Die Idents bleiben für bestehende Verknüpfungen erhalten. Die separaten V4-Diagnosevariablen sind im integrierten Stand verborgen; die Bedienung erfolgt im Prognosebereich. Verborgene Diagnosen sind nicht gelöscht.
Weitere Properties und Diagnosewerte
| Property | Typ / Standard | Beschreibung |
|---|---|---|
StoerueberwachungAktiv |
Boolean / false |
Optionale Übertragung des Störungszustands ans Portal. |
StoerungsSendeintervall |
Integer / 300 |
Sendeintervall der Störungsüberwachung in Sekunden. |
DiagrammPVModus |
Integer / 0 |
0 gesamt, 1 einzeln, 2 gesamt und einzeln. |
DiagrammBatterieModus |
Integer / 0 |
0 gesamt, 1 einzeln, 2 gesamt und einzeln. |
LadestationenSeparatAnzeigen |
Boolean / true |
Ladestationen in neu aufgebauten Darstellungen separat führen. |
VerbraucherSeparatAnzeigen |
Boolean / true |
Weitere Verbraucher separat führen. Hausdarstellung wird entsprechend abgegrenzt. |
EnergieflussLeistungseinheit |
Integer / 0 |
0 W, 1 kW; interne Regelungswerte bleiben W. |
PrognosePVVariableID, PrognoseHausverbrauchVariableID, PrognoseSOCVariableID |
Integer / 0 |
Verdeckte Altproperties; neue Messquellen über die Anlagentopologie pflegen. |
MessungPVLeistungVariableID, MessungHausverbrauchLeistungVariableID, MessungBatterieleistungVariableID |
Integer / 0 |
Verdeckte frühere Messquellen, nicht als zweite aktive Topologie konfigurieren. |
MessungPVLeistungsfaktor, MessungHausverbrauchLeistungsfaktor, MessungBatterieleistungsfaktor |
Float / 1.0 |
Zugehörige frühere Normierungsfaktoren. |
LizenzAnschluss |
String/JSON / {} |
Verdeckte Altproperty; aktuelle Aktivierung über Lizenzcode. Keine Zugangsdaten in Beispielen. |
| Variable | Typ / Einheit | Beschreibung |
|---|---|---|
NichtGeregelteGeraete |
String/JSON | Diagnose nicht geregelter Geräte. |
Monatsgrenzen |
String/JSON | Diagnose der Monatsgrenzen; gleichnamige Property ist die Konfiguration. |
EnergieFunFacts |
String/HTML | Optionale Energy-Facts-Anzeige. |
SDLLeistungArchiv |
Float / W | Separate signierte SDL-Leistung. |
SDLSOCArchiv |
Float / % | Separater SDL-Ladezustand. |
SDLLadenEnergie, SDLEntladenEnergie |
Float / kWh | Getrennte integrierte SDL-Richtungen. |
EnergieflussPV, EnergieflussNetz, EnergieflussHaus, EnergieflussBatterie |
Float / W oder kW | Verborgene Anzeigequellen des Energieflusses, keine Stellregister. |
EnergieflussSDL |
Float / W oder kW | Optionaler separater SDL-Knoten; verwendet die Einheit des Energieflusses. |
EnergieflussIst_<InstanzID>, EnergieflussSoll_<InstanzID> |
Float / W oder kW | Darstellungswerte je separat geführtem Verbraucher. |
DiagrammHausLeistung, DiagrammHausEnergie |
Float / W bzw. kWh | Haus ohne separat dargestellte Verbraucher. |
DiagrammPVLeistung_<Hash>, DiagrammPVEnergie_<Hash> |
Float / W bzw. kWh | Einzel-PV-Quellen aus der Topologie. |
DiagrammBatterieLeistung_<Hash>, DiagrammBatterieLaden_<Hash>, DiagrammBatterieEntladen_<Hash> |
Float / W bzw. kWh | Einzelbatterie und richtungsgetrennte Energie. |
DiagrammVerbraucherLeistung_<InstanzID>, DiagrammVerbraucherEnergie_<InstanzID> |
Float / W bzw. kWh | Einzelverbraucher und integrierte Energie. |
Die dynamischen Variablen entstehen nur bei passenden Quellen und aktivierter
Darstellung. <Hash> ist eine vom Modul berechnete stabile Kennung, keine
einzutragende Objekt-ID. Bestehende individuelle Energieflussknoten, Diagramm-
reihen und Energy-Pie-Messquellen bleiben erhalten. Anzeigeoptionen bei einer
Migration nicht zum Erzwingen eines Neuaufbaus aus- und wieder einschalten.
SDL und Energieanteile: Beispiel
Bei 10 kW PV, 2 kW Netzbezug, 3 kW Batterieladung und 4 kW separat abgegrenzter
SDL-Ladung ergibt sich max(0, 10 + 2 - 3 - 4) = 5 kW Hauslast. Ein Faktor
1000 wandelt eine kW-Quelle in W um. Eine bereits in der Batteriemessung
enthaltene SDL-Leistung darf nicht ein zweites Mal abgezogen werden.
Bei aktiver SDL lässt sich aus dem gemeinsamen Netzbezug nicht eindeutig
bestimmen, welcher Hausverbrauch aus PV stammt. Der Manager setzt deshalb
EnergieanteileBerechenbar=false am eigenen Energy Pie. Zähler bleiben sichtbar;
Autarkie und Eigenverbrauch werden als nicht bestimmbar statt als null angezeigt.
Zuerst Utils aktualisieren: Erkennt ein altes Utils diese Property nicht, blendet
EMS den eigenen Energy Pie aus und protokolliert den Aktualisierungsbedarf.
Die Regelung wird dadurch nicht gestoppt.
Sicheres Lesebeispiel
In der Symcon-Schnellausführung zuerst eine vorhandene Manager-ID einsetzen. Das Beispiel liest nur ausgewählte Werte, keine Lizenzdaten, und gibt keine Stellbefehle aus. Fehlende optionale Diagnosevariablen werden übersprungen.
<?php
$managerId = 0; // Vorhandene Manager-Instanz eintragen.
if ($managerId <= 0 || !IPS_InstanceExists($managerId)) {
throw new RuntimeException('Vorhandene Manager-ID erforderlich.');
}
foreach (['Aktiv', 'Betriebsart', 'Netzleistung', 'SDLStatus'] as $ident) {
$id = @IPS_GetObjectIDByIdent($ident, $managerId);
if ($id !== false && IPS_VariableExists($id)) {
echo $ident . ': ' . json_encode(GetValue($id), JSON_THROW_ON_ERROR) . PHP_EOL;
}
}
V4-Zwei-Schalter-Workflow (08.10.2026)
Diese Bedienung ersetzt die historische separate V4-Testbedienung; Altangaben weiter unten erteilen keine Freigabe fuer den neuen Workflow.
| Property | Typ / Standard | Wirkung |
|---|---|---|
PrognoseAktiv |
Boolean / true |
Prognose lernen; Uebertragung erfordert Lizenz und gueltige Messzuordnung. |
NetzfahrplanRegelungAktiv |
Boolean / false |
Explizite lokale Regelanforderung. Kein Aktivstatus ohne frischen Plan, gueltige Rueckmeldung und lokale Schutzpruefung. |
Vorhandene Spezialzuordnungen bleiben erhalten. Alte Testschalter werden nicht in eine Regelanforderung umgedeutet. Bei ungueltigen Daten bleibt der normale lokale Regelpfad massgeblich. Eine Portalbestaetigung ist kein physischer Soll-/Ist-Nachweis. Einrichtung, Migration und Grenzen.