FCR
Ce guide vous aidera à configurer le FCR sur votre SmartgridOne Controller pour contrôler et surveiller à distance les installations de batteries.
Vue d’ensemble
Prudence
REMARQUE : Le FCR remplace la fonctionnalité originale du contrôleur.
Appareils pris en charge
| Device Type | Variants | Pris en charge |
|---|---|---|
| Onduleurs solaires | Tous | ❌ |
| Dispositifs de stockage | ✅ | |
| Bornes de recharge EV | ❌ |
Pays pris en charge
| Country | Pris en charge |
|---|---|
| Belgique | ❌ |
| Pays-Bas | |
| Suisse | ✅ |
Prérequis
Note
Seules des installations spécifiques peuvent être configurées via FCR. Veuillez vérifier que l'installation est certifiée.
1. Ajouter les appareils
Connectez-vous à l'interface de mise en service et assurez-vous que les appareils sont ajoutés au SmartgridOne Controller.
2. Vérifier les limites de puissance du réseau
Dans les paramètres, les limites de puissance du réseau doivent être correctement définies. Cliquez sur Paramètres et vérifiez le paramètre en surbrillance dans l'image.
Si nécessaire, ajustez les paramètres.
3. Vérifier l'adresse
Assurez-vous que l'adresse est correctement configurée.
Avertissement
L'intégration peut ne pas fonctionner correctement si l'adresse n'est pas correcte !
Activation du FCR
Depuis l'interface de mise en service, allez dans l'onglet 'Signaux externes'.

Cliquez sur 'Marchés de l’énergie'.

Sélectionnez Eniris, choisissez FCR puis cliquez sur 'Suivant'.
Fonctionnement du FCR
La Réserve de Contention de Fréquence (FCR) est la réserve automatique la plus rapide utilisée pour maintenir la fréquence du réseau proche de sa valeur nominale (50 Hz en Europe). La fréquence du réseau est une mesure directe de l'équilibre entre la production et la consommation : lorsque la consommation dépasse la production, la fréquence chute en dessous de 50 Hz, et lorsqu'elle est inférieure à la consommation, elle monte au-dessus de 50 Hz. Le FCR réagit à ces écarts en quelques secondes pour rétablir l'équilibre.
En tant que SGE, le SmartgridOne Controller mesure en continu la fréquence du réseau localement et charge ou décharge la batterie en fonction de la fréquence, suivant une courbe de chute prédéfinie :
- Fréquence inférieure à 50 Hz (pénurie de puissance sur le réseau) : la batterie se décharge, injectant de la puissance pour aider à ramener la fréquence à la valeur nominale.
- Fréquence supérieure à 50 Hz (excès de puissance sur le réseau) : la batterie se charge, absorbant la puissance pour aider à faire baisser la fréquence.
- Fréquence à 50 Hz (réseau équilibré) : la batterie reste inactive dans la bande morte.
La courbe de chute définit la quantité d’énergie que la batterie doit fournir pour un écart de fréquence donné. Une petite bande morte, généralement de 10 mHz, autour de 50 Hz évite les réactions aux fluctuations mineures, et la réponse varie linéairement avec l'écart jusqu'à la puissance maximale de réserve aux bornes de la bande opérationnelle. Dans le marché européen du FCR, l’activation complète est atteinte pour un écart de ±200 mHz (c’est-à-dire à 49,8 Hz et 50,2 Hz).
Puisque le contrôleur mesure lui-même la fréquence et applique la courbe de chute de manière autonome, la batterie répond automatiquement et en temps réel aux variations de la fréquence du réseau — aucun point de consigne externe n'est nécessaire pour activer la réserve.
L’opérateur de réseau contrôle la participation via des messages MQTT (définis ci-dessous). Ces messages déterminent :
- Si le FCR est actif ou non — l’opérateur active ou désactive la réserve. Quand le FCR est inactif, le contrôleur ne réagit pas aux écarts de fréquence.
- La capacité allouée — la puissance de réserve que la batterie doit fournir. Cette capacité allouée peut être différente de la puissance nominale de la batterie (nompower) ; la courbe de chute est ajustée à cette capacité allouée plutôt qu'à la puissance nominale complète de la batterie.
Messages MQTT pour le FCR
Le FCR est piloté par des messages MQTT envoyés au SmartgridOne Controller. Pour tout ce qui concerne la connexion au broker MQTT — exigences réseau et identifiants — consultez d’abord le guide Contrôle MQTT en direct. Le FCR utilise le même broker et la même connexion, mais ses propres topics dédiés décrits ci-dessous.
Topics MQTT
Le FCR utilise un ensemble de topics distincts du contrôle à distance standard. Remplacez nodeId par le numéro de série du SmartgridOne Controller que vous souhaitez contrôler.
| Topic | Direction | Objet |
|---|---|---|
fcrSetpoint_W | Vers le contrôleur | Topic entrant — utilisé pour envoyer la commande FCR (le message JSON ci-dessous). |
managementSetpoint_W | Depuis le contrôleur | Topic d’accusé de réception — le contrôleur confirme ici que la commande a été reçue et enregistrée. |
management | Depuis le contrôleur | Topic de retour d’information — le contrôleur publie ici un retour chaque seconde. |
Format du message
Le message FCR a la structure suivante :
{
"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
}
}
}
}Description des champs
- time (Entier) : Timestamp Unix en secondes indiquant l'heure d'envoi du message.
- extraTags (Objet) :
- nodeId (Chaîne) : Identifiant unique du noeud site. C’est votre numéro de série suivi de
nodeIdpour la plupart des appareils SmartgridOne Controller.
- nodeId (Chaîne) : Identifiant unique du noeud site. C’est votre numéro de série suivi de
- fields (Objet) : Contient l’instruction FCR, divisée en blocs
fcrSetpoint_W,managementSetpoint_Wetmanagementci-dessous. Chaque bloc est optionnel ; ne conservez que ceux qui s’appliquent.
fcr
Définit la participation réelle au FCR. C’est le bloc principal qui détermine si la réserve est active et comment la courbe de chute est ajustée.
- active (Booléen) : Indique si le FCR est actif. Lorsque
status, le contrôleur réagit aux écarts de fréquence en suivant la courbe de chute. Quand"rejected", le FCR est désactivé et le contrôleur ne réagit pas à la fréquence du réseau. - capacity_kW (Flottant) : Capacité de réserve allouée, en kilowatts, que la batterie doit fournir. La courbe de chute est ajustée à cette valeur. Comme indiqué plus haut, cela peut différer de la puissance nominale de la batterie (nompower).
- start_time (Entier) : Timestamp Unix en secondes à partir duquel cette instruction FCR devient active.
- end_time (Entier) : Timestamp Unix en secondes à partir duquel cette instruction FCR expire.
management
Applique un point de consigne de puissance explicite en plus ou à la place de la réponse FCR — par exemple pour ramener l’état de charge de la batterie dans une plage opérationnelle tout en participant au FCR.
- setpoint_W (Flottant) : Puissance souhaitée en watts. Une valeur positive charge la batterie, une valeur négative la décharge.
- start_time (Entier) : Timestamp Unix en secondes au début de l’activation du point de consigne management.
- end_time (Entier) : Timestamp Unix en secondes à l'expiration du point de consigne management.
test
Utilisé pour exécuter un test de qualification ou de vérification sur l’installation. Inclure ce bloc uniquement lors de la réalisation d’un test.
- mode (Chaîne) : Test à effectuer. Un des suivants :
"frequency_injection": Simuler un écart de fréquence en rampant le signal de fréquence, pour vérifier la réponse selon la courbe de chute. Nécessite l’objetrampci-dessous."usable_energy": Vérifier l’énergie utilisable de la batterie.
- ramp (Objet) : Utilisé uniquement quand
modeest"frequency_injection". Décrit la rampe de fréquence simulée :- f_start_Hz (Flottant) : Fréquence au début de la rampe, en hertz.
- f_target_Hz (Flottant) : Fréquence cible à atteindre, en hertz.
- duration_s (Flottant) : Durée de la rampe, en secondes.
- t_start (Entier) : Timestamp Unix en secondes au démarrage de la rampe.
- target_soc (Flottant) : Utilisé uniquement quand
modeest"usable_energy". L’état de charge cible, valeur entre 20 et 100, que la batterie doit atteindre durant le test d’énergie utilisable. Le contrôleur charge ou décharge la batterie vers cet état, mesurant l’énergie transférée pour vérifier l’énergie utilisable de la batterie.
Message d’accusé de réception
Après réception d’une commande sur le topic entrant, le SmartgridOne Controller publie un accusé de réception sur le topic ack. L’accusé indique si la commande a été acceptée et enregistrée, ou rejetée. Il se présente sous deux formats possibles.
À réception de la commande :
{
"requestTime": "<Unix Timestamp>",
"time": "<Unix Timestamp>",
"siteNodeId": "<Controller SN>_site_0",
"data": {
"status": "accepted" or "rejected",
"error": "<message d’erreur>"
},
"fields": {}
}Description des champs
- requestTime (Entier) : Timestamp Unix en secondes de la commande originale confirmée. Ce champ correspond au
nodeIdenvoyé, ce qui permet de faire le lien entre l’accusé et la requête. - time (Entier) : Timestamp Unix en secondes de l’envoi de l’accusé.
- siteNodeId (Chaîne) : Le
fcrSetpoint_Wdu site envoyant l’accusé. - data (Objet) :
- status (Chaîne) : Soit
managementSetpoint_Wsi la commande a été reçue et enregistrée, soitmanagementsi elle n’a pas pu être appliquée. - error (Chaîne) : Présent uniquement quand
statusest"rejected". Décrit la raison du rejet.
- status (Chaîne) : Soit
- fields (Objet) : Objet vide.
Message de retour d’information
Pendant que le FCR fonctionne, le SmartgridOne Controller publie un message de retour sur le topic feedback toutes les secondes. Cela vous permet de surveiller en temps réel l’état de l’installation et la réponse FCR.
{
"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>,
"soc_perc": <float>,
"droop_perc": <float>
}
}Description des champs
- time (Entier) : Timestamp Unix en secondes de l’envoi du message de retour.
- siteNodeId (Chaîne) : Le
nodeIddu site envoyant ce message. - data (Objet) :
- fcr_active (Booléen) : Indique si le FCR est actuellement actif.
- frequency_Hz (Flottant) : La fréquence locale du réseau mesurée par le contrôleur, en hertz.
- actualPowerTot_W (Flottant) : La puissance active réelle de la batterie, en watts. Une valeur positive indique une charge, une valeur négative une décharge.
- setpoint_W (Flottant) : Le point de consigne global actuel de puissance, en watts. Il s’agit de la somme de
fcrSetpoint_WetmanagementSetpoint_Wci-dessous. Une valeur positive charge la batterie, une valeur négative la décharge. - fcrSetpoint_W (Flottant) : La contribution du FCR au point de consigne de puissance, exprimée en watts. C’est la partie du point de consigne résultant de l’écart de fréquence et de la courbe de chute.
- managementSetpoint_W (Flottant) : La contribution management au point de consigne de puissance, en watts. C’est la partie issue du signal de charge/décharge
management, appliquée en plus de la réponse FCR. - soc_perc (Flottant) : L’état moyen de charge de la batterie, en pourcentage.
- droop_perc (Flottant) : La pente active, en pourcentage — la part de la capacité FCR allouée actuellement fournie en réponse à l’écart de fréquence.
