Перейти к содержанию

⚡ OCPP Протоколы

Open Charge Point Protocol — коммуникация с зарядными станциями

Поддержка OCPP 1.6J (текущие станции) и OCPP 2.0.1 (новые станции)

21Хендлеров v1.6
9Хендлеров v2.0.1
12/12E2E тестов pass

Сравнение версий

Характеристика OCPP 1.6J OCPP 2.0.1
Статус Основная (большинство станций) Для новых станций
Транспорт WebSocket (JSON) WebSocket (JSON)
Порт 9210 9211
Авторизация idTag (RFID/app) idToken (расширенный)
Безопасность Basic Auth TLS + Certificates
Мониторинг MeterValues MeterValues + Variables
Smart Charging Профили зарядки Расширенные профили
Firmware UpdateFirmware Signed updates
Хендлеров 21 9 (реализованных)

OCPP 1.6J — 21 хендлер

Station → Server (входящие)

# Хендлер Описание Статус
1 BootNotification Станция загрузилась, регистрация
2 Heartbeat Пульс каждые 30 сек
3 StatusNotification Изменение статуса коннектора
4 Authorize Запрос авторизации idTag
5 StartTransaction Начало зарядной сессии
6 StopTransaction Завершение зарядной сессии
7 MeterValues Данные счётчика (каждые 15 сек)
8 DataTransfer Произвольные данные
9 DiagnosticsStatusNotification Статус диагностики
10 FirmwareStatusNotification Статус обновления firmware

Server → Station (исходящие)

# Хендлер Описание Статус
11 RemoteStartTransaction Удалённый старт зарядки
12 RemoteStopTransaction Удалённый стоп зарядки
13 Reset Перезагрузка станции (Soft/Hard)
14 ChangeAvailability Включить/выключить коннектор
15 UnlockConnector Разблокировать коннектор
16 GetConfiguration Получить конфигурацию станции
17 ChangeConfiguration Изменить параметр станции
18 ClearCache Очистить кэш авторизации
19 TriggerMessage Запросить сообщение от станции
20 SetChargingProfile Установить профиль зарядки
21 GetDiagnostics Запросить диагностику

OCPP 2.0.1 — 9 хендлеров

# Хендлер Описание Статус
1 BootNotification Регистрация с расширенными данными
2 Heartbeat Пульс станции
3 StatusNotification Статус коннектора
4 TransactionEvent Единый хендлер транзакций
5 MeterValues Расширенные данные счётчика
6 Authorize idToken авторизация
7 RequestStartTransaction Удалённый старт
8 RequestStopTransaction Удалённый стоп
9 SetVariables Установка переменных станции

Процесс зарядной сессии

sequenceDiagram participant C as 📱 Клиент (PWA) participant A as 🖥 API Server participant O as ⚡ OCPP Server participant S as 🔌 Станция participant R as 🔴 Redis Note over C,S: 1. Инициация зарядки C->>A: POST /charging/start A->>A: Проверка баланса A->>A: Резервирование средств (95% лимита) A->>O: RemoteStartTransaction(idTag, connectorId) O->>S: RemoteStartTransaction.req S-->>O: RemoteStartTransaction.conf (Accepted) Note over C,S: 2. Начало транзакции S->>O: StartTransaction(idTag, meterStart) O->>A: Создание charging_session O->>R: PUB session:started R-->>C: WS: {status: charging} Note over C,S: 3. Мониторинг (каждые 15 сек) loop MeterValues S->>O: MeterValues(energy, power, current, voltage) O->>R: PUB meter:update R-->>C: WS: {kWh, power, cost, duration} O->>O: Проверка лимита (95% → авто-стоп) end Note over C,S: 4. Завершение C->>A: POST /charging/stop A->>O: RemoteStopTransaction O->>S: RemoteStopTransaction.req S-->>O: StopTransaction(meterStop, reason) O->>A: Финализация: списание, расчёт A-->>C: Чек (PDF) + Push уведомление

E2E Test Results

12/12 шагов пройдено — 2026-02-19

# Шаг Результат
1 Подключение WebSocket ✅ Pass
2 BootNotification ✅ Pass
3 Heartbeat ✅ Pass
4 StatusNotification (Available) ✅ Pass
5 Authorize (idTag) ✅ Pass
6 RemoteStartTransaction ✅ Pass
7 StartTransaction ✅ Pass
8 MeterValues (3 цикла) ✅ Pass
9 RemoteStopTransaction ✅ Pass
10 StopTransaction ✅ Pass
11 StatusNotification (Available) ✅ Pass
12 Disconnect ✅ Pass

Предупреждения (3)

W1 — Charge24 API

Нет документации по Charge24 API для роуминга. Нужен контакт от Red Petroleum.

W2 — OCPP 2.0.1 Smart Charging

Smart Charging профили для v2.0.1 реализованы базово. Полная поддержка ISO 15118 — в следующей фазе.

W3 — Firmware Update

FirmwareUpdate тестировался только на симуляторе. Нужен тест на реальной станции.