Apostol CSMS
Система управления сетями зарядных станций, которой можно владеть. Работает в промышленной эксплуатации: три бренда на двух рынках - в Европе и России, - включая розничный сервис, где владельцы станций принимают реальные платежи от реальных водителей.
О чём идёт речь
Электромобилей на дорогах с каждым годом больше, и каждому нужна зарядка. Но зарядная станция сама по себе - просто шкаф с разъёмом: кто-то должен показывать её водителям на карте, запускать и останавливать зарядку, считать стоимость, принимать оплату, выдавать чек, следить за исправностью. Всё это делает управляющая программная система - в отрасли её называют CSMS, Charging Station Management System. Без неё зарядный бизнес невозможен, с какой бы стороны вы в него ни входили.
У желающего работать на этом рынке обычно два пути
Арендовать чужую систему
Ежемесячная плата облачному поставщику, чужой бренд «под капотом», зависимость от его тарифов, приоритетов и права отказать - на годы вперёд.
Разработать свою
Годы работы инженерной команды. Для масштаба: только реализованный здесь объём одного протокола станций оценивается в отрасли в 10-16 человеко-месяцев, а таких подсистем в зарядной платформе - полтора десятка.
Третий путь - владение
Apostol CSMS - готовая, проверенная в реальной эксплуатации система, которую можно приобрести или лицензировать и запустить под собственным брендом. Развёртывание нового бренда занимает минуты, а не годы.
Шаблон развёртывания бренда на GitHub ↗Что вы получаете
Законченный программный комплекс - всё, что нужно для запуска зарядного бизнеса.
Центр управления станциями
Подключение зарядных станций основных производителей по отраслевым стандартам, наблюдение и управление в реальном времени - от первого выхода станции на связь до вывода из эксплуатации.
Приложение для водителей
Карта станций, запуск зарядки, оплата, история, кошелёк с автопополнением - на десятке языков. Устанавливается на телефон как обычное приложение и работает при слабой связи. Открытое демо: driver.ocpp-css.com, вход driver / driver.
Приём платежей
Три платёжные системы под два рынка, включая оплату по QR-коду без регистрации - обязательное требование европейского законодательства.
Панель управления бизнесом
Тарифы, клиенты, партнёры, счета, отчёты, права сотрудников. Покупатель администрирует систему сам, без участия разработчика.
Роуминг
Обмен станциями, тарифами и сессиями с другими зарядными сетями по международному стандарту OCPI - от российских роуминговых операторов, таких как EV2GO, до объединений уровня Hubject и Gireve.
Белый ярлык
Та же платформа разворачивается под новым брендом - со своим оформлением, юридическим лицом и платёжными реквизитами - за 5-10 минут.
Как на этом зарабатывают
Три типовых сценария - по числу читателей этой страницы.
Собственный зарядный бренд
Вместо двух-трёх лет разработки и содержания инженерной команды - запуск на готовой платформе в течение недель: время уходит на юридические формальности и оборудование, а не на программное обеспечение. Источники дохода - комиссия с каждой зарядной операции, абонентская плата операторов станций, роуминговые расчёты с другими сетями.
Владение ядром вместо аренды
Приобретается сам программный актив, а не подписка на чужую услугу. Это снимает главный стратегический риск зарядного бизнеса - зависимость от облачного поставщика на горизонте 5-10 лет. Владелец платформы сам становится поставщиком: белый ярлык позволяет лицензировать систему другим операторам и строить собственную экосистему брендов.
Монетизация оборудования
На действующем сервисе OCPP CSS владелец подключает станцию самостоятельно, примерно за 15 минут. Деньги водителей поступают напрямую на его расчётный счёт, фискальный чек оформляется на его налоговые реквизиты автоматически, платформа удерживает фиксированный процент с операции. Ни аренды программного обеспечения, ни собственной разработки.
Возможности - по контурам
Полный контур зарядного бизнеса: станции, водители, деньги, роуминг, управление. Всё перечисленное работает в действующих развёртываниях - это не план, а состав поставки.
Станции
Полный жизненный цикл: от автоматической регистрации при первом выходе на связь до вывода из эксплуатации.
- •Три версии стандарта OCPP одновременно - 1.5, 1.6 и 2.0.1. Версия определяется автоматически, команды переводятся между форматами: смешанный парк оборудования обслуживается без ограничений
- •Подтверждена работа с оборудованием десятков производителей - ABB, Schneider Electric, Wallbox и другие; все основные разъёмы, включая Type 2, CCS2, CHAdeMO, GB/T и ГОСТ
- •Дистанционное обновление прошивок с библиотекой прошивок и наглядным ходом установки; журнал событий безопасности станции с классификацией по критичности
- •Программный имитатор станции в поставке - обучение персонала и проверка сценариев без реального оборудования
Водители
Водитель пользуется веб-приложением, которое устанавливается на телефон как обычное, - без магазинов приложений.
- •Карта станций с фильтрами, запуск и остановка зарядки, кошелёк с автопополнением, бронирование, история сессий - интерфейс на десятке языков
- •Оплата по QR-коду без регистрации: водитель сканирует код на станции, видит тариф, платит картой и заряжается. Сценарий закрывает обязательное требование европейского регламента AFIR и реализован для обоих рынков
- •Открытый демонстрационный вход в приложение: driver.ocpp-css.com, логин driver, пароль driver - посмотрите глазами водителя до переговоров
Деньги
Полный финансовый цикл в одной транзакционной системе: расчёт, счёт и платёж не могут разойтись друг с другом.
- •Stripe для Европы и ЮKassa для России: предавторизация, списания, частичные и полные возвраты, выплаты партнёрам
- •Партнёрская модель ЮKassa: выручка идёт напрямую оператору станции, фискальный чек 54-ФЗ оформляется на его налоговые реквизиты
- •Все движения средств ведутся двойной записью: каждая операция одновременно списывается с одного счёта и зачисляется на другой - балансовая сходимость гарантирована конструктивно
- •Стоимость зарядки считается в реальном времени по показаниям счётчика станции; тарифы - по энергии, времени и простою, с расписаниями по часам и индивидуальными скидками
Роуминг
Стандарт OCPI определяет, как зарядные сети обмениваются станциями, тарифами и сессиями, - это позволяет водителю одной сети заряжаться в другой.
- •Обе действующие версии стандарта - 2.2.1 и 2.3.0 - одновременно, в обеих ролях: оператор станций и поставщик услуг водителю
- •Большинство модулей стандарта - уровень, достаточный для обмена с российскими роуминговыми операторами (например, EV2GO) и для вступления в Hubject и Gireve без доработок
- •Очереди исходящих обновлений с повторными попытками и полный журнал обмена
Управление и безопасность
Панель управления, наблюдение и контроль доступа рассчитаны на самостоятельную эксплуатацию покупателем.
- •Сводные панели: станции по состояниям, отдаваемая мощность, активные сессии, выручка и энергия в разрезах; инцидентный пульт со сквозным просмотром любого объекта и живой лентой событий
- •Несколько независимых операторов на одном экземпляре с полной изоляцией данных: принадлежность оператору встроена в ядро системы, а не наклеена поверх
- •Аутентификация по стандарту OAuth2, три независимых уровня контроля доступа, семь журналов аудита - любая история восстановима, регуляторная проверка выполнима
Белый ярлык - главное отличие
Конкуренты работают по модели облачной аренды: клиент получает страницу чужой системы, где разрешено поменять логотип и цвета. Здесь иначе: одна программная сборка разворачивается у нового брендового оператора за 5-10 минут - со своим доменом, юридическим лицом, платёжной системой и оформлением.
Лицензия
Криптографически подписанный документ: имя бренда, юридическое лицо, рынок, домен, налоговые реквизиты. Подделать её или переиздать без владельца платформы невозможно - контроль над тем, кто работает на ядре, остаётся у владельца.
Манифест бренда
Оформление - логотипы, цвета, тёмная тема, платёжная система, язык, валюта, карты - редактируется через панель управления и применяется немедленно, без перекомпиляции и перезапуска.
Обновления
Обновление платформы у бренда - одной командой, с проверкой состояния и возможностью отката на предыдущую версию той же механикой.
Готовность к перепродаже
Владелец платформы может лицензировать её другим операторам - разовое приобретение превращается в источник регулярного дохода и собственную экосистему брендов.
Проверьте сами - за один вечер
Без соглашений о неразглашении и долгого цикла продаж. Всё, что написано выше, проверяется до первого разговора с нами.
Открытый доступ к панели управления и приложению водителя: виртуальные станции, тарифы, журналы, клиенты, счета. Логины и пароли - прямо здесь, регистрация не нужна.
OCPP CSS
ocpp-css.com ↗
Розничный сервис в производственной эксплуатации: владельцы станций подключаются самостоятельно, деньги водителей идут напрямую на их счета. Действующий публичный образец монетизации платформы.
ChargeMeCar
chargemecar.com ↗
Европейский контур платформы: расчёты через Stripe, сценарии AFIR, роуминговая готовность.
PlugMe
plugme.ru ↗
Российский контур платформы: ЮKassa и CloudKassir в одной системе.
Открытое ядро
github.com/apostoldevel ↗
Платформенное ядро открыто: стиль кода, дисциплина коммитов и документация на двух языках - на виду, а не за соглашением о неразглашении.
Честное сравнение
Место платформы на рынке - средний сегмент между корпоративными системами и продуктами для малого бизнеса, с предложением, которого нет ни у тех, ни у других.
| Возможность | Apostol CSMS | AMPECO | Driivz | Virta |
|---|---|---|---|---|
| OCPP 1.6 | Да | Да | Да | Да |
| OCPP 2.0.1 - основной объём | Да | Да | Да | Да |
| OCPP 1.5 - старый парк станций | Да | Нет | Нет | Нет |
| Обновление прошивок станций | Да | Да | Да | Да |
| ISO 15118 «Подключи и заряжай» | Пока нет | Да | Да | Частично |
| Роуминг OCPI 2.2.1 и 2.3.0 | Да - большинство модулей | Да | Да | Да |
| Оплата по QR без регистрации (AFIR) | Да - Stripe и ЮKassa | Да | Да | Да |
| Российские платёжные системы | Да | Нет | Нет | Нет |
| Несколько операторов с изоляцией данных | Да | Да | Да | Да |
| Партнёрский B2B-контур | Да | Да | Да | Частично |
| Родные мобильные приложения | Пока нет - веб-приложение | Да | Да | Да |
| Балансировка нагрузки на площадке | Базовая | Развитая | Развитая | Развитая |
| Каталог проверенного оборудования | Десятки | Сотни | Сотни | Множество |
| Развёртывание бренда за минуты | Да | Нет | Нет | Нет |
| Владение ядром, а не аренда облака | Да | Нет | Нет | Нет |
Сильные стороны корпоративных лидеров - глубина аналитики и размер каталогов оборудования; их цена - долгий цикл продаж и аренда вместо владения. Наши «пока нет» - предмет дорожной карты ниже. Двух последних строк таблицы не предлагает никто из них.
Куда движется платформа
Мы знаем, где уступаем корпоративным лидерам, и говорим об этом прямо. Ни один из этих пунктов не мешает эксплуатировать систему и зарабатывать уже сейчас - все они предмет плановых доработок.
ISO 15118 «Подключи и заряжай»
Автомобиль авторизуется сам, без карты и приложения. Значимо для премиальных парков оборудования и части европейских субсидий.
Родные мобильные приложения
Сегодня водитель пользуется веб-приложением, которое ставится на телефон одним касанием; присутствие в App Store и Google Play - следующий шаг.
Балансировка нагрузки на площадке
Управление мощностью отдельной станции реализовано; распределение мощности между станциями одной подстанции и реакция на пики энергосети - в плане.
Расширенная бизнес-аналитика
Оперативные панели и сводные показатели есть; прогнозы выручки, рекомендации по тарифам и конструктор отчётов - впереди.
Внешний мониторинг
Внутренние инструменты наблюдения развиты; интеграция с Prometheus и Grafana появится для операторов с собственной службой эксплуатации.
Для технического директора
Коротко о том, как это устроено, - для читателя с опытом в серверной разработке, базах данных и эксплуатации.
Платформа построена как трёхслойный конструктор: транспортный слой на C++20 - единый цикл событий epoll, HTTP, WebSocket, TLS, OCPP; платформенный слой в PostgreSQL - более двух десятков модулей, открытый код; и слой бизнес-логики зарядного домена - около 120 тысяч строк PL/pgSQL. Главный архитектурный выбор - тонкий транспорт и бизнес-логика в базе данных. Это осознанное инженерное решение, и вот его аргументы.
Один цикл событий для HTTP и PostgreSQL
Соединения с базой зарегистрированы в том же цикле событий, что и HTTP-соединения: весь запрос - один обмен с базой, одна транзакция. Время отклика меньше миллисекунды, десятки тысяч запросов в секунду на реальных запросах с базой.
Целостность денег - свойство архитектуры
Расчёт стоимости, проверка остатка, защита от двойного списания и выставление счёта выполняются внутри одной транзакции СУБД - атомарность гарантирует сама PostgreSQL, а не прикладной код. Ошибки распределённых систем - «сессия завершена, счёт потерян», двойное списание при одновременных запросах - исключены конструктивно.
Соответствие профилю нагрузки OCPP
Зарядные станции держат постоянные WebSocket-соединения годами. Архитектура на epoll расходует около 1 КБ памяти на соединение и не имеет пауз сборщика мусора - десятки тысяч станций обслуживаются одним узлом со стабильной задержкой.
Цена выбора зафиксирована честно: рынок специалистов по C++ и PL/pgSQL уже, чем по массовым технологиям. Издержка смягчается самой архитектурой: наёмная команда работает в верхнем слое - бизнес-логика по подробным образцам - и во фронтенде на массовых React и Vue, не касаясь ядра; ядро открыто и задокументировано.
Подробнее об архитектуре платформы →Состав и метрики
| Компонент | Технологии и объём |
|---|---|
| Серверный транспорт | C++20, около 30 000 строк |
| OCPP-сервер (отдельный сервис) | C++20, около 30 000 строк |
| Бизнес-логика | PL/pgSQL, около 120 000 строк |
| Панель управления | современный React-стек, десятки страниц |
| REST API | сотни путей (OpenAPI) |
| Автотесты | сотни проверок (pytest) |
| Языки интерфейса | десяток, единый механизм переводов |
Тестирование
Автотесты покрывают уровень базы данных, REST, протокольные сценарии OCPP обеих версий - включая обновление прошивок и события безопасности - и сквозной платёжный сценарий с реальным Stripe. Маркерная система прогоняет релевантное подмножество за секунды.
Релизный цикл
Релиз - согласованная пометка версии в пяти исходных репозиториях; конвейер собирает публичные контейнерные образы и фиксирует контрольные суммы. Брендовый оператор применяет версию тремя командами: чистая установка около 5 минут, обновление без простоя, десять проверок состояния. Откат - той же механикой на предыдущую версию.
Частые вопросы
Конкретика по работе платформы. Не нашли ответа - напишите, ответим предметно.
Что нужно, чтобы подключить станцию?+
Станция с поддержкой OCPP 1.5, 1.6 или 2.0.1 и доступ в интернет. Станция регистрируется автоматически при первом выходе на связь. Подключение новой модели, с которой мы ещё не работали, занимает обычно один-три дня - задача операционная, не программная.
Можно ли получить платформу под своим брендом?+
Да, это основной сценарий поставки. Новый бренд разворачивается за 5-10 минут на подготовленном сервере: свой домен, юридическое лицо, платёжная система и оформление. Бренд действует по криптографически подписанной лицензии - тиражирование без ведома владельца платформы невозможно.
Можно ли развернуть систему в своей инфраструктуре?+
Да. Поставка - Docker Compose на вашем сервере: сервисы в изолированных сетях, база данных физически недоступна из внешнего сегмента. Полный суверенитет данных и контроль соответствия - в том числе для компаний с собственными политиками безопасности.
Что с роумингом через Hubject или Gireve?+
Поддержаны OCPI 2.2.1 и 2.3.0 одновременно, в ролях оператора станций и поставщика услуг водителю, с большинством модулей стандарта. Этого достаточно и для обмена с российскими роуминговыми операторами - например, EV2GO, - и для вступления в международные объединения уровня Hubject и Gireve без доработок.
Как один код работает на двух настолько разных рынках?+
Европейский контур - Stripe, сценарии AFIR, GDPR - и российский - ЮKassa, CloudKassir, фискализация 54-ФЗ - реализованы в одной системе изначально, а не портированы задним числом. Выход на второй рынок не требует новой разработки: это вопрос лицензии и платёжных реквизитов.
Сколько это стоит?+
Зависит от сценария: партнёрство на действующем сервисе, облачная подписка, лицензия на вашу инфраструктуру или приобретение платформы. Универсального прайса нет и честнее его не выдумывать: расскажите о задаче - предложим модель и цифры под неё.
Как проверить систему до переговоров?+
За один вечер: открытое демо панели управления (cloud.ocpp-css.com, логин operator, пароль operator) и приложения водителя (driver.ocpp-css.com, логин driver, пароль driver), действующий розничный сервис ocpp-css.com, открытое платформенное ядро на GitHub. Ни один из шагов не требует соглашений или звонков.
Расскажите о вашей задаче
Свой бренд, лицензия на вашу инфраструктуру, партнёрство - или просто станции, которым нужна система. Напишите, обсудим ваш сценарий и предложим модель под него.