FCR
Esta guía le ayudará a configurar FCR en su SmartgridOne Controller para controlar y monitorear remotamente instalaciones de baterías.
Antes de continuar, asegúrese de que su red y dispositivos estén listos siguiendo la guía Configuración MQTT.
Resumen
Precaución
NOTA: FCR anula la funcionalidad original del controlador.
Dispositivos compatibles
| Device Type | Variants | Supported |
|---|---|---|
| Solar Inverters | All | ❌ |
| Storage Devices | ✅ | |
| EV Chargers | ❌ |
Países compatibles
| Country | Supported |
|---|---|
| Belgium | ❌ |
| Netherlands | |
| Switzerland | ✅ |
Requisitos previos
Nota
Solo instalaciones específicas pueden configurarse vía FCR. Por favor, verifique que la instalación está certificada.
1. Añadir los dispositivos
Inicie sesión en la interfaz de puesta en marcha y asegúrese de que los dispositivos estén añadidos al SmartgridOne Controller.
2. Verificar los límites de potencia de la red
En la configuración, los límites de potencia de la red deben estar establecidos correctamente. Haga clic en Configuración y verifique el ajuste resaltado en la imagen. Si es necesario, ajuste la configuración.
3. Verificar la dirección
Asegúrese de que la dirección esté configurada correctamente.
Advertencia
¡La integración puede no funcionar correctamente si la dirección no es correcta!
Activación de FCR
Desde la interfaz de puesta en marcha, vaya a la pestaña 'Señales externas'.

Haga clic en 'Energy Markets'.

Seleccione Eniris, seleccione FCR y haga clic en 'Next'.
Operación de FCR
La Reserva Contención de Frecuencia (FCR) es la reserva automática más rápida usada para mantener la frecuencia de la red cercana a su valor nominal (50 Hz en Europa). La frecuencia de la red es una medida directa del equilibrio entre producción y consumo: cuando el consumo supera la producción, la frecuencia cae por debajo de 50 Hz, y cuando la producción supera al consumo, sube por encima de 50 Hz. FCR reacciona a estas desviaciones en segundos para restaurar el equilibrio.
Como EMS, el SmartgridOne Controller mide continuamente la frecuencia de la red localmente y carga o descarga la batería basándose en la frecuencia, siguiendo una curva de desplome predefinida:
- Frecuencia por debajo de 50 Hz (escasez de energía en la red): la batería descarga, inyectando energía para ayudar a subir la frecuencia a su valor nominal.
- Frecuencia por encima de 50 Hz (exceso de energía en la red): la batería carga, absorbiendo energía para ayudar a bajar la frecuencia.
- Frecuencia en 50 Hz (red equilibrada): la batería permanece inactiva dentro de la banda muerta.
La curva de desplome define cuánta potencia entrega la batería para una desviación dada de frecuencia. Una pequeña banda muerta, usualmente de 10 mHz, alrededor de 50 Hz evita reaccionar a fluctuaciones mínimas, y la respuesta escala linealmente con la desviación hasta la potencia máxima de reserva en el borde de la banda operativa. En el mercado europeo de FCR, la activación completa se alcanza a una desviación de ±200 mHz (es decir, a 49.8 Hz y 50.2 Hz).
Como el controlador mide la frecuencia por sí mismo y aplica la curva de desplome autónomamente, la batería responde automáticamente y en tiempo real a cambios en la frecuencia de la red — no se requiere un punto de ajuste externo para activar la reserva.
El operador de la red controla la participación mediante mensajes MQTT (especificados a continuación). Estos mensajes determinan:
- Si FCR está activo o no — el operador activa o desactiva la reserva. Cuando FCR está inactivo, el controlador no responde a desviaciones de frecuencia.
- La capacidad asignada — la cantidad de potencia de reserva que la batería debe proveer. Esta capacidad asignada puede diferir de la potencia nominal (nompower) de la batería; la curva de desplome se escala a esta capacidad asignada en lugar de a la potencia nominal completa de la batería.
Mensajes MQTT para FCR
FCR es controlado por mensajes MQTT enviados al SmartgridOne Controller. Para todo lo relacionado con la conexión al broker MQTT — requisitos de red y credenciales — siga primero la guía Live MQTT Control. FCR usa el mismo broker y conexión, pero sus propios temas dedicados descritos abajo.
Temas MQTT
FCR usa un conjunto separado de temas que el control remoto estándar. Reemplace nodeId con el número de serie del SmartgridOne Controller que pretende controlar.
| Tema | Dirección | Propósito |
|---|---|---|
fcrSetpoint_W | Al controlador | Tema de entrada — usado para enviar el comando FCR (el mensaje JSON abajo). |
managementSetpoint_W | Desde el controlador | Tema de acuse de recibo — el controlador confirma aquí que el comando fue recibido y guardado. |
management | Desde el controlador | Tema de retroalimentación — el controlador publica aquí retroalimentación cada segundo. |
Formato del mensaje
El mensaje FCR tiene la siguiente estructura:
{
"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
}
}
}
}Fields description
- time (Entero): Marca de tiempo Unix en segundos indicando cuándo se envió el mensaje.
- extraTags (Objeto):
- nodeId (Cadena): Identificador único del nodo del sitio. Este es su número de serie seguido de
nodeIdpara la mayoría de dispositivos SmartgridOne Controller.
- nodeId (Cadena): Identificador único del nodo del sitio. Este es su número de serie seguido de
- fields (Objeto): Contiene la instrucción FCR, dividida en los bloques
fcrSetpoint_W,managementSetpoint_Wymanagementabajo. Cada bloque es opcional; incluya solo los que correspondan.
fcr
Define la participación real en FCR. Este es el bloque principal que determina si la reserva está activa y cómo se escala la curva de desplome.
- active (Booleano): Si FCR está activo. Cuando
status, el controlador responde a desviaciones de frecuencia siguiendo la curva de desplome. Cuando"rejected", FCR está deshabilitado y el controlador no reacciona a la frecuencia de la red. - capacity_kW (Float): La capacidad de reserva asignada, en kilovatios, que la batería debe proveer. La curva de desplome se escala a este valor. Como se indicó arriba, esto puede diferir de la potencia nominal (nompower) de la batería.
- start_time (Entero): Marca de tiempo Unix en segundos en la que esta instrucción FCR se activa.
- end_time (Entero): Marca de tiempo Unix en segundos en la que esta instrucción FCR expira.
management
Aplica un punto de ajuste explícito de potencia encima de, o en lugar de, la respuesta FCR — por ejemplo, para llevar el estado de carga de la batería a un rango operativo mientras participa en FCR.
- setpoint_W (Float): Punto de ajuste de potencia deseado en vatios. Un valor positivo carga la batería, un valor negativo la descarga.
- start_time (Entero): Marca de tiempo Unix en segundos en la que el punto de ajuste de gestión se activa.
- end_time (Entero): Marca de tiempo Unix en segundos en la que el punto de ajuste de gestión expira.
test
Usado para realizar una prueba de calificación o verificación de la instalación. Incluya este bloque solo cuando esté realizando una prueba.
- mode (Cadena): La prueba a realizar. Uno de:
"frequency_injection": Simular una desviación de frecuencia mediante una rampa en la señal de frecuencia, para verificar la respuesta de desplome. Requiere el objetorampabajo."usable_energy": Verificar la energía utilizable de la batería.
- ramp (Objeto): Solo usado cuando
modees"frequency_injection". Describe la rampa de frecuencia simulada:- f_start_Hz (Float): Frecuencia al inicio de la rampa, en hertz.
- f_target_Hz (Float): Frecuencia hacia la que se realiza la rampa, en hertz.
- duration_s (Float): Duración de la rampa, en segundos.
- t_start (Entero): Marca de tiempo Unix en segundos en la que comienza la rampa.
- target_soc (Float): Solo usado cuando
modees"usable_energy". El estado de carga objetivo, como valor entre 20 y 100, que la batería debe alcanzar durante la prueba de energía utilizable. El controlador carga o descarga la batería hacia este estado de carga, midiendo la energía transferida para verificar la energía utilizable.
Mensaje de acuse de recibo
Después de que se recibe un comando en el tema de entrada, el SmartgridOne Controller publica un acuse de recibo en el tema de acuse. El acuse indica si el comando fue aceptado y guardado, o rechazado. Viene en uno de los dos formatos siguientes:
Cuando se recibe el comando:
{
"requestTime": "<Unix Timestamp>",
"time": "<Unix Timestamp>",
"siteNodeId": "<Controller SN>_site_0",
"data": {
"status": "accepted" or "rejected",
"error": "<error message>"
},
"fields": {}
}Descripción de campos
- requestTime (Entero): Marca de tiempo Unix en segundos del comando original que se está acuseciendo. Esto coincide con el campo
nodeIddel comando enviado, permitiendo correlacionar el acuse con la solicitud. - time (Entero): Marca de tiempo Unix en segundos en la que se envió el acuse.
- siteNodeId (Cadena): El
fcrSetpoint_Wdel sitio que envía el acuse. - data (Objeto):
- status (Cadena): Puede ser
managementSetpoint_Wcuando el comando fue recibido y guardado, omanagementcuando no pudo ser aplicado. - error (Cadena): Solo está presente cuando
statuses"rejected". Describe por qué el comando fue rechazado.
- status (Cadena): Puede ser
- fields (Objeto): Objeto vacío.
Mensaje de retroalimentación
Mientras FCR está en ejecución, el SmartgridOne Controller publica un mensaje de retroalimentación en el tema de retroalimentación cada segundo. Esto permite monitorear el estado en vivo de la instalación y la respuesta FCR en tiempo real.
{
"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>
}
}Descripción de campos
- time (Entero): Marca de tiempo Unix en segundos en la que se envió el mensaje de retroalimentación.
- siteNodeId (Cadena): El
nodeIddel sitio que envía la retroalimentación. - data (Objeto):
- fcr_active (Booleano): Si FCR está actualmente activo.
- frequency_Hz (Float): La frecuencia local de la red medida por el controlador, en hercios.
- actualPowerTot_W (Float): La potencia activa real de la batería, en vatios. Un valor positivo indica carga, un valor negativo descarga.
- setpoint_W (Float): El punto de ajuste total actual de potencia, en vatios. Es la suma de
fcrSetpoint_WymanagementSetpoint_Wabajo. Un valor positivo carga la batería, un valor negativo la descarga. - fcrSetpoint_W (Float): La contribución de FCR al punto de ajuste de potencia, en vatios. Es la parte del punto de ajuste resultante de la desviación de frecuencia y la curva de desplome.
- managementSetpoint_W (Float): La contribución de gestión al punto de ajuste de potencia, en vatios. Es la parte del punto de ajuste proveniente de la señal de carga/descarga
management, aplicada sobre la respuesta FCR. - min_soc_perc (Float): El estado mínimo permitido de carga, en porcentaje. Por debajo de este nivel la batería deja de descargar para mantener reserva suficiente para FCR.
- max_soc_perc (Float): El estado máximo permitido de carga, en porcentaje. Por encima de este nivel la batería deja de cargar para mantener espacio suficiente en reserva para FCR.
- soc_perc (Float): El estado medio de carga de la batería, en porcentaje.
- droop_perc (Float): El desplome activo, como porcentaje — la parte de la capacidad asignada de FCR que se entrega actualmente en respuesta a la desviación de frecuencia.
