Add energy skills: OpenOCPP, EVerest, CitrineOS

- Skills classified under energy/ directory
- OpenOCPP: firmware OCPP 1.6J/2.0.1 for EV chargers
- EVerest: EV charging middleware
- CitrineOS: CSMS open-source OCPP 2.0.1
This commit is contained in:
Eric F
2026-06-07 23:48:03 -04:00
parent b4e1f6f3f5
commit 09794b31f9
3 changed files with 163 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
# Skill CitrineOS - Cariflex Energy
## Description
Déploiement de CitrineOS (Charge Station Management System open-source) pour la gestion des bornes de recharge EV de Cariflex.
## Source
https://github.com/lfenergy/citrineos
## Prérequis
- Docker / Podman
- PostgreSQL
- OCPP 2.0.1 compatible charging stations
## Installation
### 1. Cloner CitrineOS
```bash
git clone https://github.com/lfenergy/citrineos.git /home/eric/cariflex/tools/citrineos
```
### 2. Déploiement Docker
```bash
cd /home/eric/cariflex/tools/citrineos
docker compose up -d
```
### 3. Configuration
```yaml
# docker-compose.yaml
services:
citrineos:
image: citrineos/citrineos:latest
ports:
- "8080:8080"
- "8443:8443"
environment:
DB_URL: jdbc:postgresql://postgres:5432/citrineos
OCPP_VERSION: 2.0.1
```
## Fonctionnalités
- Gestion des bornes OCPP 2.0.1
- Monitoring en temps réel
- Transactions de recharge
- Smart Charging (limitation puissance)
- Reporting et analytics
- API REST pour intégration FlexMeasures
## Intégration FlexMeasures
### Flux
```
Borne EV → OCPP 2.0.1 → CitrineOS → REST API → FlexMeasures
```
### API Endpoints
| Endpoint | Méthode | Usage |
|----------|---------|-------|
| /api/v1/charge-points | GET | Liste des bornes |
| /api/v1/transactions | GET | Transactions |
| /api/v1/meter-values | GET | Mesures |
| /api/v1/remote-start | POST | Démarrage distance |
| /api/v1/remote-stop | POST | Arrêt distance |
| /api/v1/change-availability | POST | Changer disponibilité |
| /api/v1/set-charging-profile | POST | Profil de charge |
## Liens
- GitHub: https://github.com/lfenergy/citrineos
- LF Energy: https://lfenergy.org/projects/citrineos/
- OCPP 2.0.1: https://www.openchargealliance.org/

View File

@@ -0,0 +1,93 @@
# Skill EVerest - Cariflex Energy
## Description
Déploiement et configuration d'EVest (EV charging middleware) pour l'intégration des bornes de recharge EV dans Cariflex.
## Source
https://github.com/EVerest/EVerest
## Prérequis
- Linux environment
- Docker / Podman
- OCPP 1.6/2.0.1 compatible charging stations
## Installation
### 1. Cloner EVerest
```bash
git clone https://github.com/EVerest/EVerest.git /home/eric/cariflex/tools/everest
cd /home/eric/cariflex/tools/everest
```
### 2. Installation via Docker (recommandé)
```bash
cd docker
docker compose up -d
```
### 3. Installation depuis les sources
```bash
# Dépendances
sudo apt install -y build-essential cmake libssl-dev
# Build
mkdir build && cd build
cmake ..
make -j4
sudo make install
```
## Architecture EVerest
### Composants
| Composant | Rôle |
|-----------|------|
| **EvManager** | Gestionnaire central |
| **OCPP Module** | Communication OCPP 1.6/2.0.1 |
| **ISO 15118 Module** | Communication véhicule-chargeur |
| **Power Module** | Gestion de la puissance |
| **Auth Module** | Authentification RFID/app |
| **Meter Module** | Mesures d'énergie |
### Modules EVerest pour Cariflex
| Module | Usage |
|--------|-------|
| OCPP | Communication avec CitrineOS CSMS |
| ISO 15118 | V2G, Plug & Charge |
| SmartCharging | Limitation de puissance |
| Metering | Comptage énergétique |
| Auth | Identification utilisateur |
| Reservation | Réservation de borne |
## Intégration Cariflex
### Flux de données
```
Véhicule EV → ISO 15118 → EVerest → OCPP → CitrineOS → FlexMeasures
Scheduling
Grafana
```
### Configuration
```yaml
# everest-config.yaml
active_modules:
ocpp:
connection_timeout: 30
reconnect_interval: 10
iso15118:
_enabled: true
smart_charging:
max_power_kw: 22
metering:
sample_interval_s: 5
auth:
type: token
```
## Liens
- GitHub: https://github.com/EVerest/EVerest
- Documentation: https://everest.github.io/
- Docker: https://github.com/EVerest/EVerest/tree/main/docker

View File

@@ -0,0 +1,100 @@
# Skill OpenOCPP - Cariflex
## Description
Installation et configuration d'OpenOCPP (firmware OCPP 1.6J/2.0.1) pour les bornes de recharge EV de Cariflex.
## Prérequis
- Bornes de recharge EV compatibles OCPP
- CitrineOS (CSMS) déployé
- FlexMeasures (RM) configuré
## Installation
### 1. Cloner OpenOCPP
```bash
git clone https://github.com/ChargeLab/OpenOCPP.git /home/eric/cariflex/tools/openocpp
cd /home/eric/cariflex/tools/openocpp
```
### 2. Compiler le firmware
```bash
# Prérequis: CMake, C++ compiler
mkdir build && cd build
cmake ..
make -j4
```
### 3. Déployer sur les bornes
```bash
# Configurer le point d'accès CSMS (CitrineOS)
# Dans la configuration de la borne:
# - CSMS URL: wss://flexmeasures.digitswarm.fr
# - OCPP version: 2.0.1
# - Security: TLS + certificat client
```
## Configuration OCPP
### Paramètres OCPP 2.0.1
```json
{
"core_profile": true,
"smart_charging_profile": true,
"remote_trigger_profile": true,
"security_profile": 2,
"heartbeat_interval": 60,
"connection_timeout": 30,
"max_message_size": 65536
}
```
### Messages OCPP supportés
| Message | Direction | Usage |
|---------|-----------|-------|
| BootNotification | CSMS → Borne | Démarrage |
| Heartbeat | Bidirectionnel | Keep-alive |
| MeterValues | CSMS → Borne | Mesures |
| TransactionEvent | CSMS → Borne | Début/fin transaction |
| RemoteStartTransaction | Borne → CSMS | Démarrage à distance |
| RemoteStopTransaction | Borne → CSMS | Arrêt à distance |
| SetChargingProfile | Borne → CSMS | Programme de charge |
| TriggerMessage | Bidirectionnel | Déclenchement |
| ChangeConfiguration | Borne → CSMS | Configuration |
| GetConfiguration | Borne → CSMS | Lecture config |
| Reset | Borne → CSMS | Redémarrage |
| ClearChargingProfile | Borne → CSMS | Effacer profil |
| GetCompositeSchedule | Borne → CSMS | Lire schedule |
| NotifyReport | CSMS → Borne | Rapport |
| NotifyEvent | CSMS → Borne | Événement |
| LogStatusNotification | CSMS → Borne | Statut log |
| SignedFirmwareStatusNotification | CSMS → Borne | Statut firmware |
### Smart Charging (ISO 15118)
- Charging profiles : TxProfile, TxDefaultProfile
- Schedule periods : puissance max, durée
- Tarification : coût par kWh, coût fixe
- Recharge intelligente : V2G, PV couverture
## Intégration FlexMeasures
### Flux de données
```
Borne EV → OCPP → CitrineOS → FlexMeasures API → PostgreSQL
Scheduling/Optimisation
Grafana (viz)
```
### Configuration FlexMeasures pour bornes
1. Créer un device/asset par Borne VE
2. Créer un sensor de puissance (kW) par asset
3. Configurer le flex_context pour la flexibilité
4. Configurer les charging profiles OCPP
## Liens utiles
- GitHub: https://github.com/ChargeLab/OpenOCPP
- Documentation OCPP: https://www.openchargealliance.org/
- OCA Certification: https://www.openchargealliance.org/
- Guide OCPP complet: https://www.ampeco.com/guides/complete-ocpp-guide/
- Open Charge Point Protocol: https://openocpp.com/