FEMS Glossar
1. Komponente
Die FEMS-Software ist modular in Komponenten aufgebaut - z. B. sind ein Stromspeichersystem, ein Energiezähler, ein Steuerungalgorithmus, eine API-Schnittstelle usw. jeweils Komponenten.
Jede Komponente besitzt eine im System eindeutige ID. Sie können diese ID z. B. im Online-Monitoring im Anlagenprofil einsehen.
Typische Komponenten-IDs sind z. B.:
_sum
-
Diese Komponente errechnet Summenwerte über alle Komponenten, also z. B. die gesamte Produktion aller Erzeugungsanlagen.
ess0
-
Der erste oder einzige Stromspeicher im System
meter0
-
Der erste Energiezähler, üblicherweise der Zähler am Netzanschlusspunkt
2. Kanal
Jede FEMS-Komponente verfügt über Datenpunkte. Diese werden in sogenannten "Kanälen" abgelegt.
Jeder Kanal besitzt eine im System eindeutige ID.
3. Kanal-Adresse
Jeder Kanal kann mit einer eindeutigen Adresse im FEMS adressiert werden. Diese Adresse setzt sich aus der Komponenten-ID und der Kanal-ID zusammen - also z. B. _sum/EssSoc
als eindeutige Adresse des Kanals 'EssSoc' in der Komponente '_sum'.
4. Nature
FEMS kategorisiert und strukturiert Komponenten anhand von Natures. "Nature" umfasst dabei die wesentlichen Eigenschaften - also die "Natur" - einer Komponentenkategorie. Eine Komponente, die eine Nature implementiert, sagt damit aus, dass sie über gewisse Kanäle, also Datenpunkte, verfügt.
So beschreibt z. B. die Nature "SymmetricMeter" einen symmetrischen Leistungszähler und gibt vor, dass dieser z. B. den Kanal "ActivePower", also die aktuell gemessene Wirkleistung zur Verfügung stellt. Die Nature definiert darüber hinaus, dass dieser Wert immer in der Einheit Watt [W] bereitgestellt wird.
Welche konkreten Kanäle ein in Gerät oder Dienst zur Verfügung stellt ergibt sich damit aus:
-
den Natures, die die Komponente implementiert
-
den darüber hinaus gehenden, spezifischen und nicht standardisierten weiteren Kanälen der Komponente
Im Folgenden finden Sie die FEMS-Natures. Die Unterüberschriften stellen jeweils die IDs der Kanäle dar:
4.1. OpenemsComponent
"OpenemsComponent" ist die Basis-Nature; alle Komponenten implementieren diese Nature.
4.2. SymmetricEss
Symmetrisches Stromspeichersystem.
Weiterführende technische Informationen finden Sie in OpenEMS Javadoc
4.3. AsymmetricEss
Asymmetrisches Stromspeichersystem.
Weiterführende technische Informationen finden Sie in OpenEMS Javadoc
4.4. ManagedSymmetricEss
Symmetrisches, steuerbares Stromspeichersystem.
Weiterführende technische Informationen finden Sie in OpenEMS Javadoc
4.4.2. Leistungsvorgabe
Über die Kanäle zur Leistungsvorgabe können Soll-Werte für Wirk- und Blindleistung vorgegeben werden.
Zur Vorgabe von konkreten Set-Points können die Kanäle Set…Equals
(SetActivePowerEquals
oder SetReactivePowerEquals
) verwendet werden. Das ist der häufigste Anwendungsfall für externe Leistungsvorgabe.
Beispiel: SetActivePowerEquals = 10000
gibt eine Entladung von 10 kW vor.
Mit den Kanälen Set…LessOrEquals
und Set…GreaterOrEquals
werden keine fixen Set-Points, sondern nur Beschränkungen für die minimale oder maximale Leistung vorgegeben. Ein Anwendungsfall ist, dass das FEMS seine eigene Eigenverbrauchsoptimierung fahren soll; allerdings von extern z. B. eine minimale Beladeleistung der Batterie vorgegeben werden soll.
Beispiel: SetActivePowerLessOrEquals = -1000
wird gesetzt, um eine Mindest-Beladung mit 1 kW zu forcieren. Sollte die Eigenverbrauchsoptimierung nun eine Entladung mit 3 kW (3000
) durchführen wollen, würde dieser Wert auf -1000
korrigiert. Eine Beladung durch die Eigenverbrauchsoptimierung mit 3 kW (-3000
) wäre jedoch erlaubt.
Für diese Anwendung ist es notwendig, dass der Scheduler für die Controller richtig gesetzt ist, also die externe Leistungsvorgabe mit höherer Priorität als die Eigenverbrauchsoptimierung ausgeführt wird. |
SetActivePowerEquals
Wirkleistungsvorgabe eines Fixwerts in [W]. Negativer Wert für Beladung, positiver Wert für Entladung.
SetActivePowerLessOrEquals
Wirkleistungsvorgabe eines Maximalwerts in [W], z. B. um eine maximale Entladung oder eine Zwangsbeladung (negativer Wert) vorzugeben
4.5. ManagedAsymmetricEss
Asymmetrisches, steuerbares Stromspeichersystem.
Weiterführende technische Informationen finden Sie in OpenEMS Javadoc
5. Controller
Ein Controller ist eine Komponente, die einen definierten Steuerungsalgorithmus umsetzt. Beispiele für Controller sind die Ansteuerung eines Stromspeichersystems zur Eigenverbrauchsoptimierung, die dynamische Steuerung einer Ladesäule zur Optimierung des Eigenverbrauchs, usw.
6. Liste der Komponenten und Kanäle
6.1. Sum-Komponente (_sum
)
Die 'Sum-Komponente' mit der festen Komponenten-ID _sum
enthält die akkumulierten Datenpunkte des gesamten Energiesystems.
Weiterführende technische Informationen finden Sie in OpenEMS Javadoc
6.1.2. Informationen zum Stromspeichersystem
6.1.3. Informationen zur Erzeugung
ProductionAcActivePower
Leistung der AC-Erzeuger in [W]; bei mehreren AC-Erzeugern die Summe aller Leistungen
6.1.4. Informationen zum Verbrauch
6.1.5. Weitere Informationen zum Energiesystem
State
Status des Gesamtsystems.
0 |
Ok - keine Probleme |
1 |
Info - es liegt eine Information vor |
2 |
Warnung - es liegt eine Warnung vor |
3 |
Fault - es liegt ein Fehler vor |
Jede einzelne Komponente im System besitzt einen Kanal State
, der den Status der Komponente wiedergibt - also ob z. B. zum Stromspeichersystem eine Warnung oder ein Fehler vorliegt. Der globale State (_sum/State
) fasst die Statusmeldungen aller Komponenten zusammen und nimmt den höchsten Status an.
Beispiel: die E-Auto Ladesäule (evcs0
) meldet eine Warnung (evcs0/State = 2
) und die Modbus-Bridge zum Stromspeichersystem (modbus0
) meldet einen Fehler (modbus0/State = 3
). Für alle weiteren Komponenten liegen keine Probleme vor (jeweils State = 0
). In diesem Fall wird der Gesamtstatus des Systems einen Fehler melden (_sum/State = 3
).
7. JSON-RPC
Die gesamte Kommunikation zwischen FEMS, den FENECON Cloud-Servern und dem FEMS Online-Monitoring baut auf dem Kommunikationsprotokoll JSON-RPC auf. Details zum Protokoll finden Sie in der JSON-RPC Spezifikation. Kurz zusammengefasst unterscheidet das Protokoll:
- JSON-RPC Request
-
Identifiziert anhand einer eindeutigen ID, mit einem Methodennamen und spezifischen Parametern. Auf einen Request folgt immer eine Response - entweder Success oder Error.
Ein JSON-RPC Request ist so aufgebaut:
{ "jsonrpc": "2.0", (1) "id": "UUID", (2) "method": "xxx", (3) "params": {} (4) }
1 Festlegung der JSON-RPC Version. Immer "2.0". 2 Eine eindeutige id als "Universally Unique Identifier" (UUID) 3 Der eindeutige Methodenname 4 Die spezifischen Parameter als JSON Objekt - JSON-RPC Success Response
-
Bezieht sich auf die eindeutige ID des Requests; enthält eine erfolgreiche Antwort, die leer sein kann oder spezifische Daten als JSON-Objekt enthält
- JSON-RPC Error Response
-
Bezieht sich auf die eindeutige ID des Requests; enthält einen Fehlercode, Fehlermeldung und optionale Daten.
- JSON-RPC Notification
-
Identifiziert anhand eines Methodennamens mit spezifischen Parametern. Auf eine Notification folgt keine Antwort.