FCR
Diese Anleitung hilft Ihnen dabei, FCR auf Ihrem SmartgridOne Controller zu konfigurieren, um Batterieinstallationen aus der Ferne zu steuern und zu überwachen.
Bevor Sie fortfahren, stellen Sie sicher, dass Ihr Netzwerk und Ihre Geräte bereit sind, indem Sie der Anleitung MQTT-Einrichtung folgen.
Übersicht
Vorsicht
HINWEIS: FCR überschreibt die ursprüngliche Funktionalität des Controllers.
Unterstützte Geräte
| Device Type | Variants | Supported |
|---|---|---|
| Solar Inverters | All | ❌ |
| Storage Devices | ✅ | |
| EV Chargers | ❌ |
Unterstützte Länder
| Country | Supported |
|---|---|
| Belgium | ❌ |
| Netherlands | |
| Switzerland | ✅ |
Voraussetzungen
Hinweis
Nur bestimmte Installationen können über FCR eingerichtet werden. Bitte überprüfen Sie, ob die Installation zertifiziert ist.
1. Geräte hinzufügen
Melden Sie sich bei der Inbetriebnahmeschnittstelle an und stellen Sie sicher, dass die Geräte zum SmartgridOne Controller hinzugefügt wurden.
2. Netzleistungsgrenzen prüfen
In den Einstellungen sollten die Netzleistungsgrenzen korrekt eingestellt sein. Klicken Sie auf „Einstellungen“ und überprüfen Sie die hervorgehobene Einstellung im Bild. Passen Sie die Einstellungen bei Bedarf an.
3. Adresse überprüfen
Stellen Sie sicher, dass die Adresse korrekt eingestellt ist.
Warnung
Die Integration funktioniert möglicherweise nicht korrekt, wenn die Adresse nicht stimmt!
FCR aktivieren
Gehen Sie in der Inbetriebnahmeschnittstelle zum Tab „External Signals“.

Klicken Sie auf „Energy Markets“.

Wählen Sie Eniris und FCR aus und klicken Sie auf „Next“.
FCR-Betrieb
Die Frequency Containment Reserve (FCR) ist die schnellste automatische Reserve, die verwendet wird, um die Netzfrequenz nahe ihrem Nennwert zu halten (50 Hz in Europa). Die Netzfrequenz ist ein direktes Maß für das Gleichgewicht zwischen Erzeugung und Verbrauch: Wenn der Verbrauch die Erzeugung übersteigt, fällt die Frequenz unter 50 Hz, und wenn die Erzeugung den Verbrauch übersteigt, steigt sie über 50 Hz. FCR reagiert innerhalb von Sekunden auf diese Abweichungen, um das Gleichgewicht wiederherzustellen.
Als EMS misst der SmartgridOne Controller kontinuierlich lokal die Netzfrequenz und lädt oder entlädt die Batterie abhängig von der Frequenz, entsprechend einer vorgegebenen Droop-Kurve:
- Frequenz unter 50 Hz (Leistungsmangel im Netz): Die Batterie entlädt sich und speist Leistung ein, um die Frequenz wieder auf den Nennwert anzuheben.
- Frequenz über 50 Hz (Leistungsüberschuss im Netz): Die Batterie lädt sich und nimmt Leistung auf, um die Frequenz wieder zu senken.
- Frequenz bei 50 Hz (ausgeglichenes Netz): Die Batterie bleibt innerhalb des Totbands im Leerlauf.
Die Droop-Kurve legt fest, wie viel Leistung die Batterie bei einer bestimmten Frequenzabweichung liefert. Ein kleines Totband, üblicherweise 10 mHz, um 50 Hz verhindert eine Reaktion auf geringfügige Schwankungen. Die Reaktion skaliert linear mit der Abweichung bis zur maximalen Reserveleistung am Rand des Betriebsbands. Im europäischen FCR-Markt wird die vollständige Aktivierung bei einer Abweichung von ±200 mHz erreicht (d. h. bei 49,8 Hz und 50,2 Hz).
Da der Controller die Frequenz selbst misst und die Droop-Kurve autonom anwendet, reagiert die Batterie automatisch und in Echtzeit auf Änderungen der Netzfrequenz – zur Aktivierung der Reserve ist kein externer Sollwert erforderlich.
Der Netzbetreiber steuert die Teilnahme über MQTT-Nachrichten (siehe unten). Diese Nachrichten legen Folgendes fest:
- Ob FCR aktiv ist oder nicht — Der Netzbetreiber aktiviert oder deaktiviert die Reserve. Wenn FCR inaktiv ist, reagiert der Controller nicht auf Frequenzabweichungen.
- Die zugewiesene Kapazität — Die Menge an Reserveleistung, die die Batterie bereitstellen muss. Diese zugewiesene Kapazität kann von der Nennleistung der Batterie (nompower) abweichen; die Droop-Kurve wird auf diese zugewiesene Kapazität und nicht auf die vollständige Nennleistung der Batterie skaliert.
FCR-MQTT-Nachrichten
FCR wird durch MQTT-Nachrichten gesteuert, die an den SmartgridOne Controller gesendet werden. Für alle Informationen zur Verbindung mit dem MQTT-Broker – Netzwerkanforderungen und Zugangsdaten – befolgen Sie zuerst die Anleitung Live MQTT Control. FCR verwendet denselben Broker und dieselbe Verbindung, jedoch eigene dedizierte Themen, die im Folgenden beschrieben werden.
MQTT-Themen
FCR verwendet eine separate Gruppe von Themen gegenüber der standardmäßigen Fernsteuerung. Ersetzen Sie <Controller SN> durch die Seriennummer des SmartgridOne Controller, das Sie steuern möchten.
| Thema | Richtung | Zweck |
|---|---|---|
standard1/rp_one_s/remoteFCRMetrics/<Controller SN> | Zum Controller | Eingehendes Thema — Wird zum Senden des FCR-Befehls verwendet (der JSON-Nachricht unten). |
standard1/outbound/remoteFCRMetrics/ack/<Controller SN> | Vom Controller | Bestätigungsthema — Der Controller bestätigt hier, dass der Befehl empfangen und gespeichert wurde. |
standard1/outbound/remoteFCRMetrics/feedback/<Controller SN> | Vom Controller | Feedback-Thema — Der Controller veröffentlicht hier jede Sekunde Feedback. |
Nachrichtenformat
Die FCR-Nachricht hat die folgende Struktur:
{
"time": 1714652046,
"extraTags": {
"nodeId": "<Controller SN>_site_0"
},
"fields": {
"fcr": {
"active": true,
"capacity_kW": 100.0,
"start_time": 1714652046,
"end_time": 1714655646
},
"management": {
"setpoint_W": -5000.0,
"start_time": 1714652046,
"end_time": 1714655646
},
"test": {
"mode": "frequency_injection",
"ramp": {
"f_start_Hz": 50.0,
"f_target_Hz": 49.8,
"duration_s": 30.0,
"t_start": 1714652046
}
}
}
}Felderbeschreibung
- time (Integer): Unix-Zeitstempel in Sekunden, der angibt, wann die Nachricht gesendet wurde.
- extraTags (Object):
- nodeId (String): Eindeutige Kennung des Standortknotens. Dies ist Ihre Seriennummer, gefolgt von
_site_0, für die meisten SmartgridOne Controller-Geräte.
- nodeId (String): Eindeutige Kennung des Standortknotens. Dies ist Ihre Seriennummer, gefolgt von
- fields (Object): Enthält die FCR-Anweisung, aufgeteilt in die unten beschriebenen Blöcke
fcr,managementundtest. Jeder Block ist optional; nehmen Sie nur die zutreffenden Blöcke auf.
fcr
Definiert die eigentliche FCR-Teilnahme. Dies ist der Hauptblock, der festlegt, ob die Reserve aktiv ist und wie die Droop-Kurve skaliert wird.
- active (Boolean): Gibt an, ob FCR aktiv ist. Wenn
true, reagiert der Controller gemäß der Droop-Kurve auf Frequenzabweichungen. Wennfalse, ist FCR deaktiviert und der Controller reagiert nicht auf die Netzfrequenz. - capacity_kW (Float): Die zugewiesene Reservekapazität in Kilowatt, die die Batterie bereitstellen muss. Die Droop-Kurve wird auf diesen Wert skaliert. Wie oben erwähnt, kann dieser von der Nennleistung der Batterie (nompower) abweichen.
- start_time (Integer): Unix-Zeitstempel in Sekunden, zu dem diese FCR-Anweisung aktiv wird.
- end_time (Integer): Unix-Zeitstempel in Sekunden, zu dem diese FCR-Anweisung abläuft.
management
Wendet zusätzlich zur FCR-Reaktion oder an deren Stelle einen expliziten Leistungs-Sollwert an – beispielsweise, um den Ladezustand der Batterie während der FCR-Teilnahme wieder in einen nutzbaren Bereich zu bringen.
- setpoint_W (Float): Gewünschter Leistungs-Sollwert in Watt. Ein positiver Wert lädt die Batterie, ein negativer Wert entlädt sie.
- start_time (Integer): Unix-Zeitstempel in Sekunden, zu dem der Management-Sollwert aktiv wird.
- end_time (Integer): Unix-Zeitstempel in Sekunden, zu dem der Management-Sollwert abläuft.
test
Wird verwendet, um einen Qualifikations- oder Verifizierungstest der Installation durchzuführen. Nehmen Sie diesen Block nur bei der Durchführung eines Tests auf.
- mode (String): Der durchzuführende Test. Einer der folgenden Werte:
"frequency_injection": Simuliert eine Frequenzabweichung, indem das Frequenzsignal angehoben oder abgesenkt wird, um die Droop-Reaktion zu überprüfen. Erfordert das unten beschriebene Objektramp."usable_energy": Überprüft die nutzbare Energie der Batterie.
- ramp (Object): Wird nur verwendet, wenn
modeden Wert"frequency_injection"hat. Beschreibt die simulierte Frequenzrampe:- f_start_Hz (Float): Frequenz am Beginn der Rampe in Hertz.
- f_target_Hz (Float): Frequenz, auf die hoch- oder heruntergeregelt wird, in Hertz.
- duration_s (Float): Dauer der Rampe in Sekunden.
- t_start (Integer): Unix-Zeitstempel in Sekunden, zu dem die Rampe beginnt.
- target_soc (Float): Wird nur verwendet, wenn
modeden Wert"usable_energy"hat. Der Zielladezustand als Wert zwischen 20 und 100, den die Batterie während des Tests der nutzbaren Energie erreichen soll. Der Controller lädt oder entlädt die Batterie bis zu diesem Ladezustand und misst die übertragene Energie, um die nutzbare Energie der Batterie zu überprüfen.
Bestätigungsnachricht
Nachdem ein Befehl über das eingehende Thema empfangen wurde, veröffentlicht der SmartgridOne Controller eine Bestätigung im Bestätigungsthema. Die Bestätigung gibt an, ob der Befehl akzeptiert und gespeichert oder abgelehnt wurde. Sie wird in einem der folgenden beiden Formate übertragen.
Nach Empfang des Befehls:
{
"requestTime": "<Unix Timestamp>",
"time": "<Unix Timestamp>",
"siteNodeId": "<Controller SN>_site_0",
"data": {
"status": "accepted" or "rejected",
"error": "<error message>"
},
"fields": {}
}Felderbeschreibung
- requestTime (Integer): Unix-Zeitstempel in Sekunden des ursprünglichen Befehls, der bestätigt wird. Dieser entspricht dem Feld
timedes gesendeten Befehls, sodass Sie die Bestätigung der Anfrage zuordnen können. - time (Integer): Unix-Zeitstempel in Sekunden, zu dem die Bestätigung gesendet wurde.
- siteNodeId (String): Der
nodeIdder Site, die die Bestätigung sendet. - data (Object):
- status (String): Entweder
"accepted", wenn der Befehl empfangen und gespeichert wurde, oder"rejected", wenn er nicht angewendet werden konnte. - error (String): Nur vorhanden, wenn
status"rejected"ist. Beschreibt, warum der Befehl abgelehnt wurde.
- status (String): Entweder
- fields (Object): Leeres Objekt.
Feedback-Nachricht
Während FCR ausgeführt wird, veröffentlicht der SmartgridOne Controller jede Sekunde eine Feedback-Nachricht im Feedback-Thema. Dadurch können Sie den Live-Zustand der Installation und die FCR-Reaktion in Echtzeit überwachen.
{
"time": "<Unix Timestamp>",
"siteNodeId": "<Controller SN>_site_0",
"data": {
"fcr_active": <bool>,
"frequency_Hz": <float>,
"actualPowerTot_W": <float>,
"setpoint_W": <float>,
"fcrSetpoint_W": <float>,
"managementSetpoint_W": <float>,
"min_soc_perc": <float>,
"max_soc_perc": <float>,
"soc_perc": <float>,
"droop_perc": <float>
}
}Felderbeschreibung
- time (Integer): Unix-Zeitstempel in Sekunden, zu dem die Feedback-Nachricht gesendet wurde.
- siteNodeId (String): Der
nodeIdder Site, die das Feedback sendet. - data (Object):
- fcr_active (Boolean): Gibt an, ob FCR derzeit aktiv ist.
- frequency_Hz (Float): Die vom Controller lokal gemessene Netzfrequenz in Hertz.
- actualPowerTot_W (Float): Die tatsächliche Wirkleistung der Batterie in Watt. Ein positiver Wert zeigt das Laden an, ein negativer Wert das Entladen.
- setpoint_W (Float): Der aktuelle Gesamtleistungs-Sollwert in Watt. Dies ist die Summe aus
fcrSetpoint_WundmanagementSetpoint_Wunten. Ein positiver Wert lädt die Batterie, ein negativer Wert entlädt sie. - fcrSetpoint_W (Float): Der FCR-Anteil am Leistungs-Sollwert in Watt. Dies ist der Teil des Sollwerts, der aus der Frequenzabweichung und der Droop-Kurve resultiert.
- managementSetpoint_W (Float): Der Management-Anteil am Leistungs-Sollwert in Watt. Dies ist der Teil des Sollwerts, der aus dem Lade-/Entladesignal
managementstammt und zusätzlich zur FCR-Reaktion angewendet wird. - min_soc_perc (Float): Der minimal zulässige Ladezustand in Prozent. Unterhalb dieses Werts beendet die Batterie das Entladen, um genügend Energie als Reserve für FCR zu bewahren.
- max_soc_perc (Float): Der maximal zulässige Ladezustand in Prozent. Oberhalb dieses Werts beendet die Batterie das Laden, um genügend Spielraum als Reserve für FCR zu bewahren.
- soc_perc (Float): Der durchschnittliche Ladezustand der Batterie in Prozent.
- droop_perc (Float): Die aktive Droop-Regelung in Prozent – der Anteil der zugewiesenen FCR-Kapazität, der derzeit als Reaktion auf die Frequenzabweichung bereitgestellt wird.
