EVCC Autoconsommation Recharge VE avec KNX : Coordination Fronius Modbus et SG Ready
EVCC (Electric Vehicle Charge Controller) est un contrôleur d'autoconsommation open-source qui lit la production PV en direct des onduleurs Fronius ou SMA via Modbus TCP et ajuste automatiquement le courant de charge VE pour correspondre au surplus solaire exporté – intégré avec KNX via le plugin EVCC KNX pour la commutation de mode et la supervision depuis la couche d'automatisation du bâtiment.
Aperçu d'EVCC : ce qu'il fait et comment il fonctionne
EVCC est un projet open-source (github.com/evcc-io/evcc) qui agit comme un contrôleur d'autoconsommation dédié pour la recharge des véhicules électriques. Il se connecte à l'onduleur solaire pour lire la production en temps réel et la puissance réseau, se connecte à un ou plusieurs chargeurs EV via OCPP ou des API natives, et ajuste en continu le courant de charge pour maximiser la fraction d'énergie solaire utilisée pour la recharge EV plutôt que d'être exportée vers le réseau.
EVCC fonctionne comme un conteneur Docker ou comme un add-on Home Assistant, ce qui le rend simple à déployer sur un Raspberry Pi 4 aux côtés de Home Assistant. Le tableau de bord web EVCC fournit une visualisation en temps réel de la puissance PV, du flux réseau, du SOC de la batterie et de l'état de charge EV. Pour l'intégration KNX, le plugin KNX EVCC — activé dans evcc.yaml — publie les variables d'état EVCC sur les adresses de groupe KNX et lit les adresses de groupe de sélection de mode à partir des boutons-poussoirs KNX.
Options de déploiement EVCC
- Raspberry Pi 4 (4 Go) : EVCC en conteneur Docker, fonctionne 24h/24 et 7j/7 à ~4 W
- Home Assistant OS : Add-on officiel EVCC, configuration mono-serveur
- NAS Synology : Conteneur Docker dans le gestionnaire de conteneurs
- VM Proxmox : Docker ou binaire Linux natif pour les configurations homelab
Prise en charge des véhicules EVCC (liste partielle)
- Tesla (Model 3, Model Y, Model S) — via l'API Tesla
- VW ID.4, ID.3 — via l'API WeConnect
- Hyundai Ioniq 5, Ioniq 6 — via l'API Bluelink
- BMW iX, i4 — via l'API BMW ConnectedDrive
- Véhicule générique (pas d'API) : limite de batterie fixe à 80 %
Configuration Modbus Fronius GEN24 dans evcc.yaml
EVCC lit l'onduleur Fronius GEN24 via SunSpec Modbus TCP en utilisant le type de compteur Fronius intégré. La configuration nécessite une IP statique pour l'onduleur et Modbus TCP activé dans le panneau de paramètres du serveur web Fronius.
evcc.yaml — configuration du compteur et du chargeur Fronius GEN24
meters:
- name: fronius_pv
type: template
template: fronius-symo
uri: http://192.168.1.100 # Fronius static IP
usage: pv # PV generation meter
- name: fronius_grid
type: template
template: fronius-smart-meter
uri: http://192.168.1.100
usage: grid # Grid import/export meter
- name: fronius_battery
type: template
template: fronius-battery
uri: http://192.168.1.100
usage: battery # Battery SOC + charge power (GEN24 Plus only)
chargers:
- name: easee_home
type: template
template: easee
user: user@email.com
password: EaseeAppPassword
charger: XXXXXXXX # Easee charger serial number
vehicles:
- name: my_tesla
type: template
template: tesla
title: Tesla Model 3
accessToken: <Tesla API token>
refreshToken: <Tesla refresh token>
site:
title: Home
meters:
grid: fronius_grid
pv: fronius_pv
battery: fronius_battery
loadpoints:
- title: EV Charger
charger: easee_home
vehicle: my_tesla
mode: pv # Default: PV-only self-consumption mode
minCurrent: 6 # Minimum 6A (1.38kW @ 230V)
maxCurrent: 16 # Maximum 16A (3.68kW @ 230V)evcc.yaml — alternative SMA Energy Meter
# SMA Sunny Boy + SMA Energy Meter
meters:
- name: sma_pv
type: template
template: sma-sunnyboy
uri: https://192.168.1.101 # SMA inverter static IP (HTTPS)
password: <SMA web UI password>
usage: pv
- name: sma_grid
type: template
template: sma-energymeter
# SMA Energy Meter uses Multicast UDP — no IP config needed
serial: 1234567890 # Serial from SMA Energy Meter label
usage: gridPlugin EVCC KNX : activation et configuration
Le plugin EVCC KNX connecte EVCC au bus KNX via une interface IP KNX (KNXnet/IP tunnelling ou routage). Il publie l'état du point de charge EVCC sur des adresses de groupe KNX et écoute les commandes de mode provenant de boutons-poussoirs KNX ou de scènes d'automatisation. Activez-le dans evcc.yaml sous la section messaging ou plugins.
evcc.yaml — configuration du plugin KNX
# evcc.yaml — KNX plugin section knx: gateway: 192.168.1.10 # KNX IP interface / IP router static IP # or use: gateway: 224.0.23.12 (KNX multicast for IP routing) # Mode selection GAs — written by KNX pushbutton or automation # Values: 0=off, 1=now (fast), 2=minpv (min+pv), 3=pv (solar only) mode: "10/1/0" # Status GAs — published by EVCC to KNX (read-only from KNX side) activeMode: "10/1/1" # Current active mode (DPT 5.010) charging: "10/1/2" # Charging active boolean (DPT 1.001) chargePower: "10/1/3" # Current charge power W (DPT 13.010) sessionEnergy: "10/1/4" # Session energy kWh (DPT 14.056) vehicleSoc: "10/1/5" # Vehicle SOC % (DPT 5.001, if API connected) pvPower: "10/1/6" # PV power W from inverter (DPT 13.010) gridPower: "10/1/7" # Grid power W signed (DPT 13.010)
| Mode EVCC | Valeur KNX | Comportement | Déclenchement depuis KNX |
|---|---|---|---|
| arrêt | 0 | Pas de charge — VE déconnecté du planning | Appui long sur bouton-poussoir ou forçage manuel |
| maintenant (rapide) | 1 | Charge à courant maximum indépendamment du solaire | Short press: 'Charge Now' scene |
| minpv | 2 | Charge au minimum (6A) + augmentation avec surplus solaire | Short press: 'Min + Solar' scene |
| pv | 3 | Solaire uniquement : suspendre en dessous du seuil de 6A, reprendre en cas de surplus | Par défaut / programmation KNX à 09:00 |
Coordination pompe à chaleur SG Ready : logique de priorité
When both EVCC (controlling EV charging) and SG Ready (controlling heat pump) compete for the same PV surplus, a priority arbitration layer prevents grid import while maximising total self-consumption across both loads. The coordination logic runs in KNX (MDT Logic Module) or Home Assistant automations using EVCC's KNX status GAs.
Logique de coordination de priorité SG Ready + EVCC
Source data from KNX GAs (all published by EVCC KNX plugin):
GA 10/1/6 = PV power W (from Fronius Modbus)
GA 10/1/7 = Grid power W (negative = export, positive = import)
GA 10/1/3 = Current EV charge power W
Priority logic (KNX Logic Module or HA automation):
STEP 1 — Heat pump base load:
IF GA 10/1/7 < −500W (exporting > 500W):
→ SG Ready State 3 (S2=1, S1=0) = encouraged mode
Heat pump increases setpoint by +2°C, absorbs ~1 kW extra
STEP 2 — EV charging from remainder:
Available for EV = GA 10/1/7 (grid export W) − 0W margin
IF available > 1400W (enough for 6A minimum):
→ Write EVCC mode=pv to GA 10/1/0 (value 3)
EVCC automatically adjusts current to use remaining surplus
STEP 3 — Maximum surplus (SG Ready State 4):
IF GA 10/1/7 < −6000W AND EVCC charging at maximum (16A):
→ SG Ready State 4 (S1=1, S2=1) = maximum HP power
Heat pump runs at rated capacity, absorbs 3–6 kW additional
STEP 4 — Grid import prevention:
IF GA 10/1/7 > +200W (importing more than 200W):
→ SG Ready → State 2 (normal, reduce heat pump load)
→ If still importing after 60s: EVCC mode=off (suspend EV)
Prevents the heat pump + EV combination from causing grid importConfiguration du chargeur EVCC ABB Terra
Les chargeurs ABB Terra AC (11 kW et 22 kW) sont couramment spécifiés dans les bâtiments KNX commerciaux. EVCC prend en charge ABB Terra via OCPP 1.6J en utilisant la même approche de configuration que pour Easee, avec un format d'URL de connexion OCPP légèrement différent.
evcc.yaml — Configuration du chargeur ABB Terra
chargers:
- name: abb_terra_1
type: template
template: ocpp
id: ABBTerra01 # Charge point ID configured in ABB Terra
# ABB Terra OCPP central system URL in charger settings:
# ws://192.168.1.200:8887/ABBTerra01
maxCurrent: 32 # ABB Terra AC W22 max 32A 3-phase
# ABB Terra specific: enable OCPP in charger web UI
# URL: http://<ABB-terra-IP>/configuration
# OCPP Central System URI: ws://evcc-server-ip:8887/ABBTerra01
# OCPP version: OCPP16 (select from dropdown)Tableau de bord EVCC avec adresses de groupe d'état KNX
Le tableau de bord web EVCC (accessible à http://evcc-server-ip:7070) fournit une visualisation en direct de l'autoconsommation. Pour les systèmes de visualisation KNX (Gira X1, IP-Symcon, ARISTO BewO), les adresses de groupe d'état KNX d'EVCC alimentent les données en temps réel aux écrans de panneaux et aux tableaux de bord d'applications mobiles.
Intégration de la visualisation KNX pour l'état EVCC
Gira X1 / Gira HomeServer visualisation page: Display widget: "PV Power" → reads GA 10/1/6 (DPT 13.010 W) Display widget: "Grid Power" → reads GA 10/1/7 (DPT 13.010 W) Display widget: "EV Charging W" → reads GA 10/1/3 Toggle button: "Charge Mode" → writes 1/2/3 to GA 10/1/0 Indicator lamp: "Charging Active" → reads GA 10/1/2 (DPT 1.001) IP-Symcon dashboard: Create KNX variables linked to EVCC GAs Dashboard widget type: Gauge (PV Power, 0–10000W) Dashboard widget type: LED indicator (Charging Active) Dashboard widget type: Selector (Mode: Off/Now/MinPV/PV) → Variable change triggers IPS script to write GA 10/1/0 KNX touch panel (e.g. Gira e2 or MDT IP touch panel): EV charging page with live power values Mode selector from page pushbutton widgets Session energy total shown in kWh display element
Mise en service avec données PV en direct
La mise en service d'EVCC doit être effectuée un jour avec une production solaire active pour vérifier que la chaîne complète – des données Modbus Fronius via la logique EVCC jusqu'à l'ajustement du courant OCPP et les mises à jour des adresses de groupe KNX – fonctionne correctement dans des conditions de fonctionnement réelles.
Séquence de test de mise en service EVCC
Step 1 — Inverter data verification: Open EVCC dashboard (http://evcc-ip:7070) Confirm: PV power > 0W on sunny morning by 10:00 Confirm: Grid power negative (exporting) when PV > building load Cross-check: EVCC PV power should match Fronius webserver ±5% Step 2 — Charger connection test: Plug EV into charger EVCC dashboard: Loadpoint shows "Connected" status Vehicle SOC displayed (if API configured) Step 3 — PV mode test: Set EVCC mode: PV (write 3 to GA 10/1/0 from ETS6) Observe: EVCC begins charging when surplus > 1.4 kW EVCC dashboard: current slider visible and tracking solar Step 4 — KNX status GA verification: ETS6 Group Monitor: watch GA 10/1/3 (charge power) Verify: value updates every 30 seconds as current changes Watch GA 10/1/2: confirms 1 (true) when EV charging active Step 5 — Mode switching from KNX: ETS6 → write 1 to GA 10/1/0 (mode: now/fast) Confirm: EVCC dashboard shows "Now" mode, current jumps to 16A Write 3 back → confirm PV mode resume, current reduces to surplus-matched level Step 6 — SG Ready coordination test: With EV charging at 6A (low surplus): confirm SG Ready stays at State 2 With >3kW surplus: confirm SG Ready activates State 3 Confirm EV current increases alongside SG Ready activation
Besoin d'un panneau d'autoconsommation EVCC avec intégration KNX ?
Nous configurons EVCC avec Fronius ou SMA Modbus, la mise en place du plugin KNX, la logique de coordination SG Ready et la documentation complète de mise en service — déployé et testé sur un Raspberry Pi ou HA Green aux côtés de votre panneau KNX.
Demander un devis →