Зарядка электромобиля от солнечных панелей с EVCC и KNX: координация Fronius Modbus и SG Ready
EVCC (Electric Vehicle Charge Controller) — это контроллер самопотребления с открытым исходным кодом, который считывает текущую генерацию с инверторов Fronius или SMA через Modbus TCP и автоматически регулирует ток зарядки электромобиля в соответствии с избытком солнечной энергии. Интеграция с KNX через плагин EVCC KNX позволяет переключать режимы и отслеживать статус из системы умного дома.
Обзор EVCC: что делает и как работает
EVCC — это проект с открытым исходным кодом (github.com/evcc-io/evcc), который работает как специализированный контроллер самопотребления для зарядки электромобилей. Он подключается к солнечному инвертору для получения данных о генерации и потреблении из сети, соединяется с одним или несколькими зарядными станциями через OCPP или нативные API и непрерывно регулирует ток зарядки, чтобы максимизировать долю солнечной энергии, используемой для зарядки, вместо экспорта в сеть.
EVCC запускается как Docker-контейнер или как дополнение Home Assistant, что позволяет легко развернуть его на Raspberry Pi 4 вместе с Home Assistant. Веб-дашборд EVCC показывает в реальном времени мощность солнечных панелей, поток энергии из сети, уровень заряда аккумулятора и состояние зарядки. Для интеграции с KNX плагин EVCC KNX, включаемый в файле evcc.yaml, публикует переменные состояния EVCC в групповые адреса KNX и считывает групповые адреса выбора режима от кнопок KNX.
Варианты развертывания EVCC
- Raspberry Pi 4 (4 ГБ): EVCC в Docker, работает 24/7 при功耗 ~4 Вт
- Home Assistant OS: Официальное дополнение EVCC, единый сервер
- Synology NAS: Docker-контейнер в Container Manager
- Виртуальная машина Proxmox: Docker или нативный Linux-бинарник для домашних серверов
Поддерживаемые автомобили EVCC (неполный список)
- Tesla (Model 3, Model Y, Model S) — через Tesla API
- VW ID.4, ID.3 — через WeConnect API
- Hyundai Ioniq 5, Ioniq 6 — через Bluelink API
- BMW iX, i4 — через BMW ConnectedDrive API
- Автомобиль без API: фиксированный лимит заряда 80%
Настройка Modbus Fronius GEN24 в evcc.yaml
EVCC считывает инвертор Fronius GEN24 через SunSpec Modbus TCP, используя встроенный тип счетчика Fronius. В настройках требуется статический IP для инвертора и включенный Modbus TCP в веб-интерфейсе Fronius.
evcc.yaml — конфигурация счетчика и зарядного устройства 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 — альтернатива 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: gridПлагин EVCC KNX: включение и настройка
Плагин EVCC KNX подключает EVCC к шине KNX через IP-интерфейс KNX (туннелирование или маршрутизация KNXnet/IP). Он публикует состояние точки зарядки EVCC в групповые адреса KNX и слушает команды режима от кнопок KNX или сценариев автоматизации. Включите его в evcc.yaml в разделе messaging или plugins.
evcc.yaml — конфигурация плагина 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)
| Режим EVCC | Значение KNX | Поведение | Триггер от KNX |
|---|---|---|---|
| Выкл | 0 | Зарядка отключена — электромобиль не подключен к расписанию | Долгое нажатие кнопки или ручной переключатель |
| Сейчас (быстро) | 1 | Зарядка максимальным током независимо от солнечной энергии | Short press: 'Charge Now' scene |
| мин. PV | 2 | Зарядка минимум (6А) + увеличение при избытке солнца | Short press: 'Min + Solar' scene |
| PV | 3 | Только от солнца: приостановка ниже 6А, возобновление при избытке | По умолчанию / расписание KNX в 09:00 |
Координация теплового насоса SG Ready: логика приоритетов
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.
Логика координации приоритетов 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 importКонфигурация зарядного устройства ABB Terra в EVCC
Зарядные устройства ABB Terra AC (11 кВт и 22 кВт) часто используются в коммерческих зданиях с KNX. EVCC поддерживает ABB Terra через OCPP 1.6J, используя тот же подход к конфигурации, что и для Easee, с немного другим форматом URL подключения OCPP.
evcc.yaml — конфигурация зарядного устройства 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)Панель управления EVCC с групповыми адресами статуса KNX
Веб-панель EVCC (доступна по адресу http://evcc-server-ip:7070) обеспечивает визуализацию самопотребления в реальном времени. Для систем визуализации KNX (Gira X1, IP-Symcon, ARISTO BewO) групповые адреса статуса EVCC передают данные в реальном времени на панельные дисплеи и панели мобильных приложений.
Интеграция визуализации KNX для статуса 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
Ввод в эксплуатацию с данными PV в реальном времени
Ввод EVCC в эксплуатацию следует проводить в день активной солнечной генерации, чтобы проверить, что вся цепочка — от данных Modbus Fronius через логику EVCC до регулировки тока OCPP и обновлений групповых адресов KNX — работает корректно в реальных условиях.
Последовательность тестирования при вводе 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
Нужен щит самопотребления EVCC с интеграцией KNX?
Мы настраиваем EVCC с Modbus Fronius или SMA, подключаем плагин KNX, реализуем логику координации SG Ready и предоставляем полную документацию по вводу в эксплуатацию — развертывание и тестирование на Raspberry Pi или HA Green вместе с вашим щитом KNX.
Запросить расчёт →