Моніторинг EV-зарядок: мобільний додаток під ключ

Оператори зарядних станцій часто стикаються з простоями обладнання та недоотриманим прибутком через відсутність віддаленого контролю. Ми розробляємо мобільний застосунок для моніторингу та управління зарядною інфраструктурою, інтегруючи його з вашою CSMS через OCPP. Наша команда реалізує проєкт під ключ — від аудиту до запуску, забезпечуючи стабільну роботу та подальшу підтримку.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Моніторинг EV-зарядок: мобільний додаток під ключ

Інтеграція з пристроями (BLE, NFC, IoT, HomeKit)Середній~1-2 тижні
Часті запитання

Моніторинг зарядних станцій EV: додаток під ключ

Проблема: оператори зарядних станцій втрачають до 15% виручки через невідстежувані сесії та відсутність віддаленого моніторингу. Мобільний додаток для зарядки електромобілів з інтеграцією CSMS вирішує це завдання. Він дає операторам повний контроль: карта станцій, запуск сесій, оплата та роумінг через OCPI. Без такого рішення ви ризикуєте простоєм обладнання та недоотриманим прибутком.

Зарядна станція для електромобілів працює за OCPP — Open Charge Point Protocol (OCPP 2.0.1 від Open Charge Alliance). OCPP 1.6 — JSON поверх WebSocket, OCPP 2.0.1 — складніша версія з покращеною безпекою. Мобільний додаток не спілкується з зарядкою напряму: між ними — Central System (CSMS), який керує сесіями та зберігає історію. Наша команда має досвід реалізації понад 20 проєктів для операторів зарядних мереж. Ми гарантуємо безшовну інтеграцію з будь-яким CSMS через REST API або WebSocket, плюс опціонально — роботу з OCPI для роумінгу між мережами. Додаток для моніторингу зарядки дозволяє відстежувати стан станцій у реальному часі та скорочувати простої. Отримайте консультацію з інтеграції з вашим CSMS вже сьогодні.

Як ми проєктуємо архітектуру OCPP та CSMS?

Електромобіль ↓ CCS / CHAdeMO / Type 2
Зарядна станція (Charge Point) ↓ OCPP 1.6/2.0.1
WebSocket Central System (CSMS) — Everest, ChargePoint, EVCC, самописний ↓ REST API / WebSocket
Мобільний додаток

Найпоширеніші open-source CSMS: EVCC (німецький, Go, фокус на home charging), Everest (Linux Foundation EV Charging, C++), SteVe (Java, для публічних мереж). Для комерційних — ChargePoint, Driivz, Ampeco. Наші інженери сертифіковані з роботи з OCPP 2.0.1 та мають досвід міграції з 1.6 на 2.0.1 без простоїв. Ми використовуємо GitLab CI/CD для автоматизації збірки та деплою.

Покрокова інструкція: підключення мобільного додатку до CSMS — моніторинг зарядних станцій

  1. Проведіть аналіз специфікації вашого CSMS: визначте доступні API та WebSocket-ендпоінти.
  2. Налаштуйте WebSocket-з'єднання для підписки на події станцій (MeterValues, StatusNotification).
  3. Реалізуйте моделі даних для сесій, транзакцій та тарифів.
  4. Протестуйте інтеграцію на open-source CSMS (EVCC, SteVe або Everest).
  5. Розгорніть додаток через CI/CD з використанням Firebase App Distribution або TestFlight.

Порівняння CSMS для тестування

CSMS Мова Складність налаштування Рекомендація
EVCC Go Середня Домашні мережі
Everest C++ Висока Промислові рішення
SteVe Java Низька Публічні мережі

Метрики моніторингу сесії зарядки

Ключові дані сесії: статус конектора (Available/Occupied/Charging/Faulted), потужність зарядки (кВт), передана енергія (кВт·год), тривалість, SoC автомобіля (якщо станція OCPP 2.0.1 і авто підтримує).

WebSocket підписка на оновлення через CSMS API:

class ChargingSessionRepository(
    private val wsClient: OkHttpClient,
    private val restApi: CsmsApi,
) {
    private var webSocket: WebSocket? = null
    private val _sessionFlow = MutableStateFlow<ChargingSession?>(null)
    val sessionFlow: StateFlow<ChargingSession?> = _sessionFlow.asStateFlow()

    fun observeSession(stationId: String, connectorId: Int) {
        val request = Request.Builder()
            .url("wss://csms.example.com/api/v1/stations/$stationId/events")
            .header("Authorization", "Bearer $accessToken")
            .build()
        webSocket = wsClient.newWebSocket(request, object : WebSocketListener() {
            override fun onMessage(webSocket: WebSocket, text: String) {
                val event = json.decodeFromString<StationEvent>(text)
                when (event.type) {
                    "MeterValues" -> _sessionFlow.update { current ->
                        current?.copy(
                            currentPowerKw = event.payload.activePower,
                            energyDeliveredKwh = event.payload.energyActiveImportRegister,
                        )
                    }
                    "StatusNotification" -> handleStatusChange(event.payload.status)
                    "TransactionEvent" -> handleTransactionEvent(event.payload)
                }
            }

            override fun onFailure(webSocket: WebSocket, t: Throwable, response: Response?) {
                // Експоненційний backoff для перепідключення
                scheduleReconnect(stationId, connectorId, t)
            }
        })
    }
}

Як виконується дистанційний запуск зарядки?

Remote Start Transaction через CSMS API — один із базових сценаріїв. Користувач сканує QR-код на станції (в якому зашифровано stationId та connectorId), додаток авторизує транзакцію:

// iOS func startCharging(stationId: String, connectorId: Int) async throws -> Transaction {
    let request = RemoteStartRequest(
        connectorId: connectorId,
        idTag: currentUser.rfidToken, // токен користувача для авторизації на станції
        chargingProfile: ChargingProfile(
            chargingProfilePurpose: .txProfile,
            chargingSchedule: ChargingSchedule(
                chargingRateUnit: .watts,
                chargingSchedulePeriod: [
                    ChargingSchedulePeriod(startPeriod: 0, limit: 11000) // 11 кВт
                ]
            )
        )
    )
    return try await csmsClient.remoteStart(stationId: stationId, request: request)
}

OCPP 1.6 RemoteStartTransaction.conf повертає Accepted або Rejected — це лише підтвердження, що станція прийняла команду, не що зарядка почалася. Фактичний початок сесії — окремий StartTransaction.req від станції до CSMS. Статус потрібно відстежувати через WebSocket або polling.

Що входить у реалізацію карти зарядних станцій?

Для публічних мереж — карта з кластеризацією, фільтрація за типом роз'єму (CCS, CHAdeMO, Type 2) та потужністю. OCPI (Open Charge Point Interface) — протокол роумінгу між операторами, дозволяє показувати станції різних мереж. У рамках роботи ми надаємо повну документацію, вихідні коди інтеграції, схему бази даних та навчаємо вашу команду роботі з системою.

На Flutter з Google Maps SDK або MapLibre:

Future<List<ChargingStation>> loadNearbyStations(LatLng center) async {
  return _ocpiClient.getLocations(
    latitude: center.latitude,
    longitude: center.longitude,
    radiusKm: 25,
    filters: StationFilters(
      connectorTypes: [ConnectorType.ccs2, ConnectorType.type2],
      minPowerKw: 11,
      availableOnly: true,
    ),
  );
}

Кластеризація через google_maps_cluster_manager для великих списків — без неї при 500+ точках карта гальмує при зумі.

Оплата та тарифікація: порівняння підходів

Параметр Тарифікація за кВт·год Погодинна тарифікація Комбінована
Прозорість для користувача Висока: знає ціну за кВт·год Середня: залежить від швидкості зарядки Низька: складно передбачити підсумок
Інтеграція з OCPI Підтримується через TariffElement Підтримується Вимагає складної логіки
Мотивація швидше відключати Відсутня Присутня (щоб менше платити) Помірна
Рекомендація Для домашніх і повільних зарядок Для швидких (50+ кВт) Для мереж з різними станціями

OCPI TariffElement описує всі варіанти: похвилинна, покіловатна, фіксована плата. Можна комбінувати елементи, наприклад, 0.20 €/кВт·год + 0.05 €/хв після перших 30 хвилин. Вибір схеми залежить від бізнес-моделі оператора.

Тарифікація у EV-додатках — складна частина. Станція може тарифікувати за кВт·год, за часом, з мінімальною сумою сесії або за комбінованою схемою. Оплата — через Stripe або локальний платіжний шлюз, інтегрований з CSMS.

Терміни та що входить у роботу

Розробка додатку для моніторингу та керування зарядними станціями з інтеграцією в існуючий CSMS: 4-6 тижнів. Розробка з нуля, включаючи CSMS-інтеграцію, карту, оплату та роумінг через OCPI: 3-4 місяці. Вартість розраховується після аналізу стеку та вимог.

Відмітимо: що входить у результат:

  • Вихідний код мобільного додатку (iOS/Android/Flutter)
  • Документація з інтеграції з CSMS
  • Інструкція з експлуатації та адміністрування
  • Доступ до репозиторію та CI/CD
  • Навчання ваших розробників (2 дні онлайн)
  • Підтримка протягом 3 місяців після релізу

Ваш проєкт отримає гарантію на відповідність специфікаціям OCPP та сертифікацію для публікації в Google Play і App Store. Наші клієнти відзначають зниження операційних витрат на 20% після впровадження мобільного додатку. Типовий термін окупності проєкту — 6–9 місяців. Оцініть старт: напишіть нам, додайте опис поточної інфраструктури — ми підготуємо комерційну пропозицію за 2 робочих дні. Отримайте консультацію з інтеграції з вашим CSMS вже сьогодні.

Наші компетенції:

Останні роботи

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1011
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714