# 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
