Реализация OCPP в станциях my.eCars

Open Charge Point Protocol - открытый протокол взаимодействия зарядной станции и сервера управления.
Наши зарядные станции поддерживает OCPP 1.6 Json, использующий websocket соединение с зарядной станцией и не требуюет публичный белый IP адрес станции.

В данной версии реализовано:


1. Основное:

НаименованиеРеализация
ВерсияOCPP1.6-J
TLSЕсть поддержка
HTTP Basic AuthenticationЕсть поддержка
Feature ProfilesCore, Firmware Management, Remote Trigger, Reservation, Smart Charging
Get Diagnostics ProtocolОтправка файла диагностики методом POST. Используемые протоколы: HTTP, HTTPS
Update Firmware ProtocolДопускается использование протоколов: HTTP, HTTPS

2. Безопасность:

УровеньРеализацияОписание
0Обычный OCPP 1.6J без защиты.
1OCPP 1.6J с базовой аутентификацией.
2OCPP 1.6J с TLS и базовая аутентификация.
3OCPP 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 IDMessage IDDataОписание/Ответ
flashinfoNULLПолучение информации о состоянии флэш памяти устройства: Общий размер, свободное место в байтах (full - общий размер, free - свободно).
Ответ: full:X,free:X
flashformatNULLФорматирование флэш памяти. При форматировании:
- Настройки станции будут сохранены.
- Будут удалены все настройки OCPP (кроме регистрационных данных)!
- Будут удалены все записанные карты доступа RFID!
- Устройство будет перезагружено!
Ответ: result:OK или ERR
limitsgetN - номер коннектораПолучение информации установленных лимитах зарядной сессии на коннекторах (время или мощность). Время в минутах, мощность в кВт·ч
Ответ: connectorId:N,time:X,power:X
limitssetN,X,UNITУстановка лимита заряда, где N - номер коннектора, X - количество кВт·ч или минут, UNIT - тип лимита (time или power)
ПРИМЕЧАНИЯ:
- Лимит времени должен быть кратен 15 минутам.
- Максимальное время лимита 3000 минут.
- Максимальная мощность 200 кВт·ч
- Лимиты заряда устанавливаются только при подключенной машине.
Ответы:
- OK - лимит установлен
- Invalid connectorId - неверно указан номер коннектора
- Invalid value - неверно указано количество
- Vehicle not connected - машина не подключена к коннектору
- Limit not set - лимит не установлен в контроллер заряда.
coastgetNULLПолучение информации о стоимости 1 кВт·ч (в копейках).
Ответ: N
coastsetNУстановка стоимости 1 кВт·ч (в копейках).
Ответы:
- N - стоимость установлена
- Invalid format - ошибка установки.
freemodegetNULLПолучение информации о режиме работы станции: свободный/ограниченный доступ.
Ответ:
- true - свободный режим
- false - ограниченный режим
freemodesettrue/falseУстановка режима работы станции: свободный/ограниченный доступ.
Ответы:
- true - свободный режим
- false - ограниченный режим
- Invalid format - ошибка установки.
rfidgetNULLПолучение способа авторизации карты доступа.
Ответы:
- ecars - служба my.eCars
- ocpp - OCPP сервер
- local - локальный список карт
- off - карты отключены
rfidsetecars, 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

Cookie-файлы

На нашем сайте используются cookie-файлы и другие аналогичные технологии. Если, прочитав это сообщение, вы остаетесь на нашем сайте, это означает, что вы не возражаете против использования этих технологий.

ХорошоПодробнее