Open Charge Point Protocol - открытый протокол взаимодействия зарядной станции и сервера управления.
Наши зарядные станции поддерживает OCPP 1.6 Json, использующий websocket соединение с зарядной станцией и не требуюет публичный белый IP адрес станции.
В данной версии реализовано:
1. Основное:
Наименование | Реализация |
---|---|
Версия | OCPP1.6-J |
TLS | Есть поддержка |
HTTP Basic Authentication | Есть поддержка |
Feature Profiles | Core, Firmware Management, Remote Trigger, Reservation, Smart Charging |
Get Diagnostics Protocol | Отправка файла диагностики методом POST. Используемые протоколы: HTTP, HTTPS |
Update Firmware Protocol | Допускается использование протоколов: HTTP, HTTPS |
2. Безопасность:
Уровень | Реализация | Описание |
---|---|---|
0 | Обычный OCPP 1.6J без защиты. | |
1 | OCPP 1.6J с базовой аутентификацией. | |
2 | OCPP 1.6J с TLS и базовая аутентификация. | |
3 | OCPP 1.6J с TLS (серверный и/или клиентский сертификаты). |
3. Профили функций:
В OCPP 1.6 функции и связанные с ними сообщения сгруппированы в профили:
Имя профиля | Реализация | Описание/комментарий |
---|---|---|
Core | Базовая функциональность без поддержки обновлений прошивки, локальных списков авторизации и резервирования. | |
Firmware Management | Поддержка управления обновлениями встроенного ПО и загрузки файла журнала диагностики. | |
Local Auth List Management | Возможности для управления локальным списком авторизации. | |
Reservation | Поддержка бронирования станции/порта зарядки. | |
Smart Charging | Поддержка базовой интеллектуальной зарядки. Нами реализовано решение балансировки нагрузки между портами зарядки и/или однопортовый режим (в двухпортовом решениие). | |
Remote Trigger | Поддержка удаленного запроса сообщений, инициированных точкой зарядки |
4. Операции инициируемые станцией:
Запрос | Реализация | Описание/комментарий |
---|---|---|
Authorize | Используется для авторизации инициатора зарядной сессии. | |
BootNotification | Отправка запроса на сервер с информацией о станции (название производителя, версия прошивки и др.). | |
DataTransfer | Отправка запросов не регламентированных протоколом OCPP. | |
DiagnosticsStatusNotification | Отправка уведомлений о состоянии загрузки диагностических данных. | |
FirmwareStatusNotification | Отправка уведомлений о ходе обновления прошивки. | |
Heartbeat | Чтобы центральная система знала, что станция в сети, отправляется запрос через настраиваемый промежуток времени. | |
MeterValues | Отправка показаний счетчика энергии или другого оборудования (датчика). | |
StartTransaction | Отправка запроса о начатой транзакции. | |
StatusNotification | Отправка информационных уведомлений об изменении состояния или ошибке станции/порта. | |
StopTransaction | Информирование сервера о завершении транзакции. |
5. Операции инициируемые сервером:
Запрос | Реализация | Описание/комментарий |
---|---|---|
Cancel Reservation | Отмена бронирования. | |
Change Availability | Изменение статуса станции/порта заряда: Доступен/недоступен. | |
Change Configuration | Изменение настроек станции/порта. | |
Clear Cache | Очистка кэша авторизации. (Не реализовано Local Auth List Management. Ответ станции: Accepted) | |
Clear Charging Profile | Очистка профилей заряда, которые ранее были установлены в станцци/порту заряда. | |
Data Transfer | Отправка запросов не регламентированных протоколом OCPP. | |
Get Composite Schedule | Запрос на получение отчета о составном графике начислений (Composite Charging Schedule). (В текущей реализации график не формируется. Ответ станции: "Rejected") | |
Get Configuration | Получение информации о настройках станции/порта. | |
Get Diagnostics | Получение диагностической информации о станции с указанием места, куда необходимо загрузить свои диагностические данные. (Метод отправки файла: POST. Протоколы: HTTP, HTTPS) Допускается базовая авторизация в URL формата: http://user:password@example.ru/file.bin | |
Get Local List Version | Для синхронизации локального списка авторизации центральная система может запросить станцию номер версии локального списка авторизации. (Локальные списки авторизации не поддерживаюся в текущей реализации. Ответ станции: -1) | |
Remote Start Transaction | Запрос на начало транзакции. | |
Remote Stop Transaction | Запрос на окончание транзакции. | |
Reserve Now | Бронирование порта заряда. (Максимально 1439 минут) | |
Reset | Перезагрузка станции. | |
Send Local List | Отправка локального списка авторизации. (Не реализовано Local Auth List Management. Ответ станции: NotImplemented) | |
Set Charging Profile | Установка профиля зарядной сессии. | |
Trigger Message | Позволяет центральной системе запрашивать станцию и отправлять сообщения, инициированные станцией. | |
Unlock Connector | Запрос на разблокировку коннектора. (В случае отсутствия блокировки коннектора ответ станции: NotSupported) | |
Update Firmware | Обновление программного обеспечения станции. (Получение файла прошивки методом: GET. Протоколы: HTTP, HTTPS) Допускается базовая авторизация в URL формата: http://user:password@example.ru/file.bin ПРИМЕЧАНИЕ: если станция использует GSM подключение предпочтительным вариантом является использование HTTP протокола. |
6. Конфигурационные ключи (Core):
Ключ | Реализация | Описание/комментарий |
---|---|---|
AllowOfflineTxForUnknownId | Поддержка неизвестной автономной авторизации. | |
AuthorizationCacheEnabled | Поддержка кеша авторизации. | |
AuthorizeRemoteTxRequests | (RW) | Необходима дополнительная проверка авторизации при получение команды Remote Start Transaction. В случае установки данного ключа в true станция отправит запрос на авторизацию полученого idTag. По умолчанию: false |
BlinkRepeat | Количество миганий индикатора станции при подаче сигнала. | |
ClockAlignedDataInterval | (RW) | Размер (в секундах) интервала передачи данных, выровненного по часам. Это размер (в секундах) равномерно распределенных интервалов агрегации в сутки, начиная с 00:00:00 (полночь). Значение «0» по соглашению следует интерпретировать как означающее, что никакие синхронизированные данные не должны передаваться. По умолчанию: 900 |
ConnectionTimeOut | (RW) | Интервал (в секундах) от начала состояния: «Подготовка» до автоматической отмены начинающейся транзакции из-за того, что водитель электромобиля не смог (правильно) вставить разъем зарядного кабеля в соответствующий разъем электромобиля. Станция вернет состояние в исходное состояние, возможно: «Доступно». По умолчанию: 45 |
ConnectorPhaseRotation | Чередование фаз на разъеме относительно электрического счетчика (или, если он отсутствует, подключения к сети). | |
ConnectorPhaseRotationMaxLength | Максимальное количество элементов в ключе конфигурации ConnectorPhaseRotation. | |
GetConfigurationMaxKeys | (R) | Максимальное количество запрошенных ключей конфигурации. |
HeartbeatInterval | (RW) | Интервал бездействия (без обмена OCPP) с центральной системой, после которого станция должна отправить Heartbeat. По умолчанию: 60 |
LightIntensity | (RW) | Процент максимальной яркости освещения станции. По умолчанию: 100 |
LocalAuthorizeOffline | Будет ли станция в автономном режиме запускать транзакцию для локально авторизованных идентификаторов. (Не реализовано Local Auth List Management) | |
LocalPreAuthorize | Будет ли станция в онлайн-режиме начинать транзакцию для локально авторизованных идентификаторов. (Не реализовано Local Auth List Management) | |
MaxEnergyOnInvalidId | Максимальная энергия в Вт·ч, доступная к заряду для недействительного идентификатора. | |
MeterValuesAlignedData | (RW) | Выровненные по часам измеряемые величины, которые должны быть включены в MeterValues, отправляемые каждые ClockAlignedDataInterval секунды. Доступны: Energy.Active.Import.Register, Power.Active.Import, Voltage, Temperature, Current.Import По умолчанию: Energy.Active.Import.Register,Power.Active.Import,Voltage,Current.Import,Temperature |
MeterValuesAlignedDataMaxLength | (R) | Максимальное количество элементов в ключе конфигурации MeterValuesAlignedData. |
MeterValuesSampledData | (RW) | Выборочные измеряемые величины включенные в MeterValues каждые MeterValueSampleInterval секунды. Доступны: Energy.Active.Import.Register, Power.Active.Import, Voltage, Temperature, Current.Import По умолчанию: Energy.Active.Import.Register,Power.Active.Import,Voltage,Current.Import |
MeterValuesSampledDataMaxLength | (R) | Максимальное количество элементов в ключе конфигурации MeterValuesSampledData. |
MeterValueSampleInterval | (RW) | Интервал между выборками данных, предназначенных для передачи MeterValues. Для данных сеанса (ConnectorId>0) выборки периодически собираются и передаются через этот интервал с начала транзакции. Значение «0» означает что никакие выборочные данные не должны передаваться. По умолчанию: 30 |
MinimumStatusDuration | (RW) | Минимальная продолжительность, в течение которой состояние станции или коннектора является стабильным, прежде чем отправить StatusNotification. По умолчанию: 0 |
NumberOfConnectors | (R) | Количество физических коннекторов. |
ResetRetries | Количество попыток перезагрузки станции. | |
StopTransactionOnEVSideDisconnect | (RW) | Если установлено значение true, станция ДОЛЖНА остановить транзакцию, когда кабель отключен от электромобиля. По умолчанию: true |
StopTransactionOnInvalidId | Будет ли станция останавливать текущую транзакцию, когда она получает статус авторизации Non-Accepted в StartTransaction для этой транзакции. | |
StopTxnAlignedData | Выровненные по часам периодические измеряемые величины, которые должны быть включены в элемент TransactionData файла StopTransaction. | |
StopTxnAlignedDataMaxLength | Максимальное количество элементов в ключе конфигурации StopTxnAlignedData. | |
StopTxnSampledData | Выборочные измеряемые величины, которые должны быть включены в элемент TransactionData StopTransaction, каждые MeterValueSampleInterval секунд с начала сеанса зарядки. | |
StopTxnSampledDataMaxLength | Максимальное количество элементов в ключе конфигурации StopTxnSampledData. | |
SupportedFeatureProfiles | (R) | Список поддерживаемых профилей функций. См. пункт 3. |
SupportedFeatureProfilesMaxLength | (R) | Максимальное количество элементов в ключе конфигурации SupportedFeatureProfiles. |
TransactionMessageAttempts | Как часто станция должна пытаться отправить сообщение, связанное с транзакцией, если центральная система не может его обработать. | |
TransactionMessageRetryInterval | Как долго станция должна ждать, прежде чем повторно отправить сообщение, связанное с транзакцией, которое Центральная система не смогла обработать. | |
UnlockConnectorOnEVSideDisconnect | (RW) | Если установлено значение true, станция ДОЛЖНА разблокировать кабель, когда он отсоединен от электромобиля. (Реализовано на станциях с установленным замком блокировки кабеля) По умолчанию: true |
WebSocketPingInterval | (RW) | «0» отключает Ping/Pong веб-сокета на стороне клиента. В этом случае либо нет ping/pong, либо сервер инициирует ping, а клиент отвечает Pong. Положительные значения интерпретируются как количество секунд между пингами. Отрицательные значения не допускаются. По умолчанию: 45 |
7. Конфигурационные ключи (Local Auth List Management):
Ключ | Реализация | Описание/комментарий |
---|---|---|
LocalAuthListEnabled | Включен или нет локальный список авторизации. | |
LocalAuthListMaxLength | Максимальное количество идентификаторов, которые можно сохранить в локальном списке авторизации. | |
SendLocalListMaxLength | Максимальное количество идентификаций, которые можно отправить в одном SendLocalList. |
8. Конфигурационные ключи (Reservation):
Ключ | Реализация | Описание/комментарий |
---|---|---|
ReserveConnectorZeroSupported | (R) | Если этот конфигурационный ключ присутствует и имеет значение true: доступно резервирование коннектора 0. Значение: false |
9. Конфигурационные ключи (Smart Charging):
Ключ | Реализация | Описание/комментарий |
---|---|---|
ChargeProfileMaxStackLevel | (R) | Максимальный уровень стека для ChargingProfile. Указывает максимально допустимое количество установленных графиков зарядки для Charging Profile Purposes. Значение: 20 |
ChargingScheduleAllowedChargingRateUnit | (R) | Список поддерживаемых велечин для использования в ChargingSchedule. Допустимые значения: «Current» и «Power». Значение: Current,Power |
ChargingScheduleMaxPeriods | (R) | Максимальное количество периодов, которое может быть определено для ChargingSchedule. Значение: 255 |
ConnectorSwitch3to1PhaseSupported | (R) | Поддержка переключения с 3 на 1 фазу во время транзакции. Значение: false |
MaxChargingProfilesInstalled | (R) | Максимальное количество профилей зарядки, установленных одновременно. Значение: 20 |
10. DataTransfer:
Vendor ID | Message ID | Data | Описание/Ответ |
---|---|---|---|
flash | info | NULL | Получение информации о состоянии флэш памяти устройства: Общий размер, свободное место в байтах (full - общий размер, free - свободно). Ответ: full:X,free:X |
flash | format | NULL | Форматирование флэш памяти. При форматировании: - Настройки станции будут сохранены. - Будут удалены все настройки OCPP (кроме регистрационных данных)! - Будут удалены все записанные карты доступа RFID! - Устройство будет перезагружено! Ответ: result:OK или ERR |
limits | get | N - номер коннектора | Получение информации установленных лимитах зарядной сессии на коннекторах (время или мощность). Время в минутах, мощность в кВт·ч Ответ: connectorId:N,time:X,power:X |
limits | set | N,X,UNIT | Установка лимита заряда, где N - номер коннектора, X - количество кВт·ч или минут, UNIT - тип лимита (time или power) ПРИМЕЧАНИЯ: - Лимит времени должен быть кратен 15 минутам. - Максимальное время лимита 3000 минут. - Максимальная мощность 200 кВт·ч - Лимиты заряда устанавливаются только при подключенной машине. Ответы: - OK - лимит установлен - Invalid connectorId - неверно указан номер коннектора - Invalid value - неверно указано количество - Vehicle not connected - машина не подключена к коннектору - Limit not set - лимит не установлен в контроллер заряда. |
coast | get | NULL | Получение информации о стоимости 1 кВт·ч (в копейках). Ответ: N |
coast | set | N | Установка стоимости 1 кВт·ч (в копейках). Ответы: - N - стоимость установлена - Invalid format - ошибка установки. |
freemode | get | NULL | Получение информации о режиме работы станции: свободный/ограниченный доступ. Ответ: - true - свободный режим - false - ограниченный режим |
freemode | set | true/false | Установка режима работы станции: свободный/ограниченный доступ. Ответы: - true - свободный режим - false - ограниченный режим - Invalid format - ошибка установки. |
rfid | get | NULL | Получение способа авторизации карты доступа. Ответы: - ecars - служба my.eCars - ocpp - OCPP сервер - local - локальный список карт - off - карты отключены |
rfid | set | ecars, ocpp, local, off | Установка способа авторизации карты доступа. Ответы: - OK - новый режим установлен - UnknownMessageId - ошибка установки. |
11. Коды ошибок коннектора (vendorErrorCode):
vendorErrorCode | Описание |
---|---|
reboot | Произошла перезагрузка контроллера заряда |
ventRequired | Требуется вентиляция |
diodeCheck | Ошибка кабеля |
gfiFault | Ошибка УЗО |
noEarthGround | Нет заземления |
stuckRelay | Ошибка реле/контактора |
gfiSelfTestFailed | Ошибка теста УЗО |
overTemperature | Превышение температуры |
overCurrent | Превышение тока заряда |
tempSensor | Сработал температурный датчик На станция, оборудованных датчиками температуры на силовых проводах |
alertButton | Нажата кнопка аварийной остановки На станция, оборудованных данной кнопкой |
adminOff | Коннектор отключен администратором станции |
notConnector | Нет связи с контроллером заряда |
disabled | Контроллер заряда отключен |
evseOffTime | Контроллер заряда отключен по таймеру заряда |
flashError | Ошибка флэш памяти или память переполнена |
Изменения в данной версии:
11.07.2024
Get Diagnostics - добавлен протокол HTTPS и базовая авторизация для отправки файла диагностики.
Update Firmware - переработали принцип обновления ПО. Теперь есть возможность обновления ПО со стороннего ресурса. (подробное описание в п.5)
18.04.2023
Добавлено усправление RFID считывателем (через отправку DataTransfer).
03.02.2023
Изменены некоторые параметры по умолчанию.
09.11.2022
Добавлена возможность указать производителя (chargePointVendor) и модель станции (chargePointModel) для авторизованных пользователей.
26.08.2022
Установка режима работы станции: свободный/ограниченный доступ.
22.06.2022
Установка стоимости зарядной сессии.
25.05.2022
Реализация DataTransfer.
12.05.2022
Первая публичная версия с поддержкой OCPP 1.6J