EV Armenia

OCPP-сервер и CSMS для сети зарядных станций

Автор команда EV Armenia · Обновлено

Коротко

CSMS EV Armenia - это OCPP-сервер, к которому станции подключаются по WebSocket. Он принимает OCPP 1.6J, 2.0.1 и 2.1, проверяет пароль каждой станции, записывает каждое входящее сообщение в надёжную очередь до подтверждения и позволяет управлять станциями из админ-панели. Биллинг, приложения для водителей и армянские платежи входят в ту же платформу.

Что делает OCPP-сервер

Система управления зарядными станциями (CSMS) - это бэкенд, с которым общаются станции. Наш сервер слушает один WebSocket-адрес, определяет версию протокола, которую запросила станция, и передаёт соединение подходящему обработчику. Станции нужны только адрес сервера, идентификатор и пароль.

Принимаемые версии OCPP
ВерсияСтатус в платформе
OCPP 1.6J (JSON)Основной поток: загрузка, heartbeat, статус, авторизация, начало и окончание транзакции, показания счётчика, статусы прошивки и диагностики, DataTransfer.
OCPP 2.0.1Основной поток через события транзакций, статусы и показания, а также события безопасности, отчёты об устройстве и журналы - принимаются и сохраняются.
OCPP 2.1Соединение согласуется как 2.1, основной поток транзакций использует обработчики 2.0.1. Сообщения только из 2.1 (V2X, управление DER, обмен батарей) подтверждаются, но не обрабатываются.

OCPP 1.6 и 2.x несовместимы между собой, поэтому сервер обрабатывает каждую версию отдельно. Подробнее: OCPP простыми словами.

Прокрутите таблицу в сторону, чтобы увидеть её целиком

Удалённое управление из админ-панели

  • Старт и стоп сессии на коннекторе, живая сессия: энергия, мощность и стоимость по мере набора.
  • Перезагрузка станции (мягкая или жёсткая) и разблокировка коннектора с застрявшим кабелем.
  • Доступность: вывод коннектора из работы и возврат.
  • Запрос сообщения от станции, например статуса или показаний.
  • Очистка кэша, чтение и изменение ключей конфигурации.
  • Произвольные команды: любой вызов OCPP, который поддерживает станция, например профиль зарядки, с показом ответа. Произвольные команды не ограничены фиксированным списком, поэтому пользуйтесь ими осторожно.

Надёжность: показания счётчика не теряются

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

В имитационном тесте 200 виртуальных станций OCPP 1.6 слали по 150 сообщений в секунду на общей машине с 2 vCPU: медианное время подтверждения MeterValues было около 2 мс с очередью против 5-6 мс при синхронной обработке; 95-й процентиль - 4-6 мс против 11-23 мс. Это синтетический замер на общем оборудовании с имитированными станциями, а не обещание для вашей площадки. На пилоте мы повторим тест с вашими цифрами.

Безопасность

  • Каждая станция проходит проверку по HTTP Basic (подход профилей безопасности OCPP 1 и 2). Чтобы получить профиль 2, запускайте сервер за TLS на вашем обратном прокси. Аутентификация клиентскими сертификатами (профиль 3) не реализована.
  • Конечную точку защищают ограничения размера сообщений, частоты подключений и keep-alive-пинги.
  • Аккаунты команды в админ-панели используют роли, двухфакторный вход и журнал аудита - кто что изменил.
  • Журнал сообщений OCPP хранит трафик по станциям для поддержки и споров, срок хранения настраивается.

Масштабирование и эксплуатация

Сервер - процесс Node.js с PostgreSQL 16 и Redis 7. Можно запустить несколько экземпляров за балансировщиком: Redis хранит присутствие станций и передаёт команды экземпляру, который держит соединение станции. Метрики Prometheus и проверки состояния встроены, весь стек запускается через Docker Compose. Цифр мощности кроме приведённой симуляции мы не публикуем.

Чего пока нет

  • Автоматического управления нагрузкой. Профили умной зарядки можно отправлять вручную; платформа сама не распределяет мощность площадки между коннекторами.
  • Возможностей OCPP 2.1 сверх базы 2.0.1.
  • Аутентификации станций по сертификатам и ISO 15118 Plug and Charge.
  • Роуминга OCPI. Модуль 2.2.1 существует, но выключен по умолчанию и пока не проверен на чужих сетях.

CSMS - одна часть платформы. Водители пользуются приложением, платят через местные платёжные сервисы, а вы управляете всем из одной панели. Смотрите обзор платформы или закажите демо ниже.

Вопросы и ответы

Чем OCPP 1.6J отличается от 2.0.1?

Это разные протоколы, они несовместимы. В 2.0.1 есть управление устройством, улучшенные транзакции и безопасность, поддержка ISO 15118. Многие станции в эксплуатации ещё на 1.6J, поэтому CSMS должна говорить на обоих.

Нужно ли менять мои станции?

Нет, если они поддерживают OCPP 1.6J, 2.0.1 или 2.1. В настройках станции указываются адрес сервера, идентификатор и пароль.

Можно ли отправлять профили умной зарядки?

Да, через произвольные команды в админ-панели. Автоматического балансирования нагрузки пока нет.

Хранится ли история сообщений OCPP?

Да. Журнал сообщений хранит трафик по станциям настраиваемый срок, это помогает в поддержке и спорах по биллингу.

Где это работает?

На нашем хостинге или на вашем сервере через Docker Compose с PostgreSQL 16 и Redis 7.

Источники

Расскажите о вашей зарядной сети

Опишите станции и способы оплаты. Ответим в течение одного рабочего дня.

info@ev-armenia.net

Связанные страницы