# 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/
