Tests / test (push) Successful in 1m1s
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.
623 lines
40 KiB
Markdown
623 lines
40 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. |
|
|
| `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](https://www.symcon.de/en/service/documentation/module-reference/energy/energy-distribution/)
|
|
und [Diagramme](https://www.symcon.de/en/service/documentation/basics/media/charts/).
|
|
|
|
## 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. 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 `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.
|
|
|
|
## 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](../../../README.md)
|
|
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
|
|
<?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](../../prognose-v4-workflow.md).
|