# Cariflex - S2 Customer Energy Manager (CEM)

Pour répondre au besoin de flexibilité d'un DSO (Distribution System Operator),
le projet Cariflex intègre le standard S2 via un CEM (Customer Energy Manager).

## Architecture S2 / OpenADR

```
                          ┌─────────────┐
                          │    DSO      │
                          │  (OpenADR)  │
                          └──────┬──────┘
                                 │ OpenADR 2.0b
                                 │ / WebSocket S2
                          ┌──────▼──────┐
                          │  OpenLEADR  │
                          │    ou CEM   │
                          └──────┬──────┘
                                 │
                    ┌────────────┼────────────┐
                    │            │            │
             ┌──────▼──┐  ┌─────▼────┐  ┌───▼─────┐
             │ RM_PV   │  │ RM_Bat   │  │ RM_EV   │
             │ (PV_01) │  │ (Bat_01) │  │ (EV_01) │
             └─────────┘  └──────────┘  └─────────┘

RM = Resource Manager (gère un ou plusieurs actifs)
CEM = Customer Energy Manager (agrège les RMs)
DSO = Distribution System Operator (demande de flexibilité)
```

## S2 Standard

Le standard S2 (S2standard.org) définit les interactions entre :
- **CEM** (Customer Energy Manager) — agrège les ressources flexibles
- **RM** (Resource Manager) — gère un dispositif flexible spécifique

Messages S2 :
- `PowerForecast` — prévision de puissance
- `PowerMeasurement` — mesure de puissance
- `Setpoint` — consigne de puissance
- `Instruction` — instruction du DSO
- `ReplayResponse` — réponse à une demande de flexibilité

## Intégration avec FlexMeasures

FlexMeasures joue le rôle de RM (Resource Manager) :
1. Reçoit les données des capteurs (IoT)
2. Génère des prévisions
3. Crée des schedules d'optimisation
4. Applique les consignes du DSO via S2

Le CEM FlexMeasures Client fait le pont entre :
- FlexMeasures (côté RM)
- OpenADR / S2 (côté DSO)

## Déploiement

Voir `scripts/deploy_s2.sml` pour le déploiement du CEM.

## Références

- S2 Standard : https://s2standard.org
- FlexMeasures Client : https://github.com/FlexMeasures/flexmeasures-client
- OpenLEADR : https://github.com/openleadr/openleadr
- FlexMeasures S2 Docs : https://flexmeasures-client.readthedocs.io/en/latest/CEM.html
