Зарядка электромобилей · Easee · Wallbox · OCPP 1.6J · KNX · 10 мин чтения

Интеграция Easee Home и Wallbox Pulsar с KNX через шлюз OCPP 1.6J

Подключение зарядных устройств Easee Home и Wallbox Pulsar Plus к KNX через центральную систему OCPP 1.6J позволяет уровню автоматизации здания управлять током заряда, контролировать энергию сеанса, запускать авторизацию RFID из сцены KNX и реализовывать зарядку от собственного потребления PV — все это координируется через стандартные групповые адреса KNX.

Обзор OCPP 1.6J и настройка локального режима

OCPP (Open Charge Point Protocol) 1.6J — это протокол на основе WebSocket, который разделяет зарядное устройство (аппаратное обеспечение EV) и систему управления зарядными устройствами (CPMS, также называемую центральной системой). Как Easee Home, так и Wallbox Pulsar Plus поддерживают OCPP 1.6J нативно, что позволяет любой совместимой центральной системе — облачной или локальной — управлять ими и контролировать их.

Для интеграции с KNX наиболее надежным подходом является использование локальной центральной системы OCPP вместо облака производителя, что устраняет зависимость от облака и обеспечивает задержку управления менее секунды. Home Assistant с дополнением интеграции OCPP или IP-Symcon с модулем OCPP — два практичных варианта локальной центральной системы, которые также предоставляют мосты групповых адресов к KNX.

Easee Home — включение локального режима OCPP

1. Open Easee app → select charger → Settings → Advanced
   Scroll to OCPP — select "Custom OCPP server"

2. Enter local OCPP WebSocket URL:
   ws://<home-assistant-ip>:9000/Easee01
   (port 9000 is HA OCPP add-on default; /Easee01 = charger ID)

3. OCPP version: OCPP 1.6J (select from dropdown)
   Authentication: leave blank for local unauthenticated setup
   or set a shared secret if HA OCPP requires it

4. Save — charger will attempt WebSocket connection within 30s
   HA OCPP add-on log: "New charge point connected: Easee01"

Note: Easee also supports cloud OCPP via api.easee.cloud
  Use local mode for KNX integration — removes cloud dependency

Wallbox Pulsar Plus — включение локального режима OCPP

1. Open myWallbox app → charger settings → Smart charging
   Select OCPP → Custom OCPP server

2. OCPP URL: ws://<home-assistant-ip>:9000/WallboxPulsar01
   OCPP version: OCPP 1.6J
   Charge point ID: WallboxPulsar01

3. Alternatively via Wallbox local REST API:
   POST http://<wallbox-ip>/api/2/ocpp/setConfig
   {"ocppServer": "ws://<ha-ip>:9000/WallboxPulsar01"}

4. Verify: HA OCPP logs confirm "WallboxPulsar01 connected"
   Status should show: Available (no EV plugged in)

Схема групповых адресов KNX для управления зарядным устройством

Структура групповых адресов KNX связывает параметры OCPP с типами данных KNX. Интеграция KNX в HA (библиотека XKNX) считывает и записывает эти GA, преобразуя значения DPT KNX в сообщения протокола OCPP. Каждое зарядное устройство в многозарядной установке получает свой набор GA в выделенной подгруппе.

Групповой адресОписаниеDPTНаправление
10/0/0Уставка тока заряда 0–32ADPT 5.001 (1-байт %)KNX → OCPP (запись)
10/0/1Зарядное устройство активно / включеноDPT 1.001 (1-бит)KNX → OCPP (запись)
10/0/2Заряженная энергия сессии, кВт·чDPT 13.013 (4-байта со знаком, кВт·ч)OCPP → KNX (чтение)
10/0/3Статус подключения вилкиDPT 1.001 (1-бит)OCPP → KNX (чтение)
10/0/4Статус зарядного устройства (0=доступно, 1=зарядка, 2=ошибка)DPT 5.010 (1-байт перечисление)OCPP → KNX (чтение)
10/0/5Триггер авторизации RFIDDPT 1.001 (1-бит, передний фронт)KNX → OCPP (запись)

DPT 5.001 для тока заряда: 1-байтовый процентный DPT кодирует 0–100% как 0–255. Значение 50% (128) соответствует 16A на зарядном устройстве 32A. Для Easee Home (макс. 16A) отображайте 0–100% на 0–16A в автоматизации HA. Для Wallbox Pulsar Plus 3-фазный (макс. 32A) отображайте 0–100% на 0–32A. Альтернативно используйте DPT 5.010 беззнаковый байт и отображайте 0–32 напрямую в амперы.

Конфигурация моста Home Assistant OCPP в KNX

Home Assistant выступает в роли центральной системы OCPP и одновременно шлюза интерфейса KNX IP. Дополнение интеграции OCPP в HA создает сущности для каждого зарядного устройства, а автоматизации HA переводят записи KNX GA в команды OCPP и наоборот.

HA configuration.yaml — сущности KNX для зарядного устройства EV

# configuration.yaml
knx:
  sensor:
    - name: "EV Charger 1 Current Setpoint"
      state_address: "10/0/0"
      type: "percent"          # DPT 5.001

  binary_sensor:
    - name: "EV Charger 1 Enable"
      state_address: "10/0/1"
    - name: "EV Charger 1 Plug Connected"
      state_address: "10/0/3"

  number:
    - name: "EV Charger 1 Current Control"
      address: "10/0/0"
      min: 0
      max: 100
      type: "percent"

  switch:
    - name: "EV Charger 1 Active"
      address: "10/0/1"
      state_address: "10/0/1"

# automation.yaml — KNX GA write → OCPP SetChargingProfile
automation:
  - alias: "EV Charger 1 — KNX current setpoint to OCPP"
    trigger:
      - platform: state
        entity_id: sensor.ev_charger_1_current_setpoint
    action:
      - service: ocpp.set_max_charge_rate_amps
        data:
          charge_point_id: "Easee01"
          charge_rate: >
            {{ (trigger.to_state.state | float) * 0.16 | round(0) }}

Автоматизация HA — избыток PV → OCPP SetChargingProfile

# Triggered when KNX solar surplus GA (9/0/1) updates
automation:
  - alias: "EV Solar Self-Consumption — Surplus to Charge Current"
    trigger:
      - platform: state
        entity_id: sensor.knx_solar_surplus_w
    condition:
      - condition: state
        entity_id: binary_sensor.ev_charger_1_plug_connected
        state: "on"
    action:
      - choose:
          - conditions:
              - condition: numeric_state
                entity_id: sensor.knx_solar_surplus_w
                above: 2500
            sequence:
              - service: ocpp.set_max_charge_rate_amps
                data:
                  charge_point_id: "Easee01"
                  charge_rate: >
                    {{ [[(states('sensor.knx_solar_surplus_w')|float / 230)|round(0), 6]|max, 16]|min }}
          - conditions:
              - condition: numeric_state
                entity_id: sensor.knx_solar_surplus_w
                below: 1400
            sequence:
              - service: ocpp.stop_transaction
                data:
                  charge_point_id: "Easee01"

Модуль OCPP IP-Symcon как альтернативная центральная система

IP-Symcon (IPS) — это платформа домашней автоматизации для Windows/Linux с нативной поддержкой KNX и модулем OCPP, доступным на маркетплейсе IPS. Для установок, где IP-Symcon уже служит платформой логики и визуализации KNX, модуль OCPP IPS позволяет избежать внедрения отдельного сервера Home Assistant.

Конфигурация IP-Symcon OCPP + KNX

1. Install IPS OCPP module from marketplace
   Create OCPP Central System instance:
   Port: 9000 (WebSocket server, IPS listens)
   Charge Point ID: Easee01

2. IPS OCPP variables auto-created per charger:
   MaxChargingCurrent (0–32A integer)
   ChargerStatus (string: Available/Charging/Faulted)
   SessionEnergyWh (float)
   PlugConnected (boolean)

3. Link IPS OCPP variables to KNX via IPS KNX module:
   KNX device → Group Address 10/0/0 → link to MaxChargingCurrent
   KNX device → GA 10/0/2 → link to SessionEnergyWh (send on change)

4. IPS script for solar surplus → charge current:
   $surplus = GetValue(12345); // KNX GA 9/0/1 variable ID
   $current = max(6, min(16, round($surplus / 230)));
   if ($surplus > 2500) {
     SetValue(OCPP_MaxCurrent_ID, $current);
   } elseif ($surplus < 1400) {
     OCPP_StopTransaction("Easee01");
   }

Последовательность зарядки с самопотреблением PV

Последовательность зарядки с самопотреблением описывает полный контур управления от обнаружения избытка солнечной энергии через KNX до регулировки тока OCPP — включая логику гистерезиса, предотвращающую быстрые переключения при колебаниях солнечной генерации около минимального порога.

Последовательность зарядки с самопотреблением PV

1. KNX GA 9/0/1 (Grid Power, signed W) published by
   Intesis IN701KNX gateway reading Fronius Modbus register 40225
   Poll interval: 10 seconds

2. KNX logic (MDT Logic Module or HA automation) evaluates:
   IF Grid Power < −2500W (exporting > 2.5 kW):
     → Calculate OCPP current: surplus_W ÷ 230V
     → Clamp: max(6, min(16, calculated_A)) for Easee Home
     → Write clamped value to GA 10/0/0 (charge current)
     → HA/IPS translates GA write → OCPP SetChargingProfile

3. OCPP SetChargingProfile message:
   {
     "connectorId": 1,
     "csChargingProfiles": {
       "chargingProfileKind": "TxProfile",
       "chargingSchedule": {
         "chargingRateUnit": "A",
         "chargingSchedulePeriod": [{"startPeriod": 0, "limit": <amps>}]
       }
     }
   }

4. Charger applies new limit within 5–10 seconds
   KNX GA 10/0/2 (Session Energy kWh) updates every 60s

5. IF Grid Power > −1400W (surplus dropped below 1.4 kW):
   → Wait 120 seconds (hysteresis — solar cloud pass-through)
   → IF still < 1400W → OCPP StopTransaction
   → Charger status: Suspended / Available

Триггер авторизации RFID от сцены KNX

Стандартная зарядка OCPP требует от водителя предъявить RFID-карту или использовать приложение для авторизации сессии. Для жилых KNX-установок, где владелец хочет начать зарядку с настенной KNX-кнопки или по временному расписанию, KNX-активированная RFID-авторизация может запустить сессию без физического предъявления карты.

Последовательность: KNX-сцена → RFID-авторизация OCPP

KNX push button (Scene 5 = "EV Start Charging"):
  → GA 10/0/5 (RFID authorize trigger) → DPT 1.001 value 1

HA automation triggered by GA 10/0/5:
  - service: ocpp.authorize
    data:
      charge_point_id: "Easee01"
      id_tag: "HOME_RESIDENT_01"  # pre-authorized RFID tag

OCPP Authorize.req sends idTag to Central System (HA OCPP)
HA OCPP returns: Authorize.conf { "idTagInfo": { "status": "Accepted" }}
Charger begins transaction: StartTransaction.req sent to HA

KNX scene "EV Stop Charging":
  → GA 10/0/1 (charger active) → DPT 1.001 value 0
  → HA automation: ocpp.stop_transaction charge_point_id=Easee01

Use case: time-of-use tariff schedule — IPS script runs at
  23:00 → writes 1 to GA 10/0/5 → starts cheap overnight charge
  07:00 → writes 0 to GA 10/0/1 → stops transaction before peak

Примечание по безопасности: подход с предварительно авторизованным idTag обходит физическую RFID-аутентификацию. Используйте это только в жилых или частных помещениях, где владелец здания контролирует как систему KNX, так и зарядное устройство. Для коммерческих установок с несколькими пользователями сохраняйте физическое предъявление RFID-карты для каждой сессии, чтобы обеспечить аудиторский след и точность биллинга.

Пусконаладочный тест с Group Monitor ETS6

Последовательность пусконаладки проверяет полный путь от подключения вилки электромобиля через центральную систему OCPP до обновления группового адреса KNX, подтверждая, что логика самопотребления и управление током работают от начала до конца перед сдачей установки в эксплуатацию.

Последовательность пусконаладочного теста

Step 1 — OCPP connectivity verification:
  Open HA OCPP add-on log
  Confirm: "Easee01 connected via OCPP 1.6J WebSocket"
  Charger LED: solid green (available, not charging)

Step 2 — Plug connected status KNX update:
  Plug test EV cable into Easee Home socket
  ETS6 Group Monitor → watch GA 10/0/3
  Expected: value changes to 1 (true) within 5 seconds
  Charger status GA 10/0/4 → should read 1 (charging prep)

Step 3 — Manual current setpoint test:
  ETS6 Group Monitor → write value 50 to GA 10/0/0 (50% = 8A)
  Verify: HA log shows OCPP SetChargingProfile 8A sent
  Verify: Easee app shows "Charging at 8A"
  Write 100 to GA 10/0/0 → confirm Easee shows 16A

Step 4 — PV surplus simulation:
  ETS6 Group Monitor → write −4000 to GA 9/0/1 (simulate 4kW export)
  Confirm: HA automation fires → OCPP current = 4000÷230 = 17A → clamped to 16A
  GA 10/0/0 should update to reflect new current

Step 5 — Session energy readback:
  After 2 minutes of active charging
  GA 10/0/2 should show non-zero kWh value
  Compare with Easee app session energy reading

Step 6 — RFID trigger from KNX:
  ETS6 → write 1 to GA 10/0/5
  Confirm: HA log "Authorize.req idTag HOME_RESIDENT_01 → Accepted"
  Charger starts transaction

Поведение при переподключении WebSocket

Если сервер HA перезагружается, Easee автоматически переподключается к центральной системе OCPP в течение 30 секунд. Во время окна переподключения зарядное устройство продолжает зарядку с последним установленным OCPP пределом тока — оно не снижается до минимума. Проверьте восстановление переподключения, перезапустив HA и убедившись, что объект состояния зарядного устройства обновляется в течение 60 секунд.

Отличия Wallbox Pulsar Plus

Wallbox Pulsar Plus использует идентичные команды OCPP 1.6J, но формат идентификатора зарядного устройства в URL WebSocket по умолчанию использует суффикс серийного номера. Подтвердите идентификатор зарядного устройства в настройках приложения myWallbox перед настройкой HA OCPP. Минимальный принимаемый ток Wallbox OCPP составляет 6A для однофазных и 8A для трехфазных вариантов.

Нужен щит для зарядки электромобилей с интеграцией KNX OCPP по спецификации?

Мы проектируем слаботочные щиты с интеграцией Easee или Wallbox OCPP, конфигурацией шлюза HA KNX, логикой самопотребления от солнечных батарей и полной пусконаладочной документацией — поставляем протестированными и проверенными на вашем объекте.

Запросить расчёт →
Загрузка ...
Наверх