Skip to main content

Спецификация для разработчиков EV зарядных станций

Спецификация системыдля упразработчиковления EV заряднымих станциямий

1. Обзор системы

1.1 АОбщая архитектура системы

graph TB
    subgraph "Backend Infrastructure"
        CSMS[Central System Management Service]
        API[REST API Gateway]
        DB[(Database)]
    WS[WebSocket Handler]
    end
    
    subgraph "EV Charging Station"Station (Ваша зона ответственности)"
        CP[Charge Point]Point Controller]
        MODEM[4G Modem]
        BATTERY[Battery Management]
        CONNECTOR[Charging Connector]
        METER[Energy Meter]
        RFID[RFID Reader]
        DISPLAY[Display/UI]
        GPS[GPS Module]
    end
    
    subgraph "ExternalExternal"
        Systems"USER[End MOBILE[MobileUser]
        App]VEHICLE[Electric WEB[Web Dashboard]
        BILLING[Billing System]Vehicle]
    end
    
    MOBILE --> API
    WEB --> API
    API --> CSMS
    CSMS --> DB
    CSMS <--> WS
    WS <--> MODEM
    MODEM <--> CP
    CP --> BATTERY
    CP --> CONNECTOR
    CSMSCP --> BILLINGMETER
    CP --> RFID
    CP --> DISPLAY
    CP --> GPS
    USER --> RFID
    USER --> DISPLAY
    VEHICLE <--> CONNECTOR

1.2 Протокол коммуникации

Протокол: OCPP 2.0.1 (Open Charge Point Protocol)
Транспорт: WebSocket Secure (WSS) over 4G
Формат данных: JSON
Аутентификация: Certificate-based authentication + API KeysKey в заголовке Authorization

2. КомпЗона отвенты систвемы

2.1 Backend Service (CSMS - Central System Management Service)

Обязанности:

  • Упразработчиковление пулом зарядных станций
  • и
  • 2.1 Обрсновные заботкдачи

    mindmap
      root((EV Station Tasks))
        OCPP сообщений
  • Client
  • МонWebSocket Connection Message Handling Error Recovery Hardware Integration Connector Control Meter Reading Battery Monitoring RFID Processing State Management Station Status Transaction Lifecycle Error States Local Features Offline Mode Local Authorization Display Management Monitoring Self Diagnostics Event Logging Telemetry Collection

    2.2 Архитоектуринга состоянияПО станций

  • Управление транзакциями зарядки
  • Аналитика и отчетность
  • Интеграция с внешними системами

2.2 EV Charging Station (Charge Point)

Обязанности:

flowchart 
    TD
  • Выполнениеsubgraph команд"Application отLayer" CSMS
  • OCPP[OCPP
  • ОтправкаClient] телеметрииSM[State иMachine] событий
  • AUTH[Authorization
  • УправлениеManager] процессомend зарядки
  • subgraph
  • Локальная"Business авторизацияLogic" (offlineTXN[Transaction mode)
  • Manager]
  • ДиагностикаMETER_MGR[Meter иManager] самотестирование
  • EVENT[Event
Manager] CONFIG[Configuration Manager] end subgraph "Hardware Abstraction Layer" CONN_HAL[Connector HAL] METER_HAL[Meter HAL] BATTERY_HAL[Battery HAL] COMM_HAL[Communication HAL] RFID_HAL[RFID HAL] end subgraph "Hardware" HW[Physical Components] end OCPP <--> SM OCPP <--> TXN SM <--> AUTH TXN <--> METER_MGR TXN <--> EVENT METER_MGR <--> METER_HAL CONN_HAL <--> HW METER_HAL <--> HW BATTERY_HAL <--> HW COMM_HAL <--> HW RFID_HAL <--> HW

3. OCPP MessageClient FlowImplementation

3.1 ИУстанициовкализация соединения

sequenceDiagram
    participant CP as Charge Point
    participant CSMS as Backend CSMS
    
    Note over CP: Power On / Network Available
    CP->>CSMS: WebSocket Connection Request<br/>wss://csms.server.com/ocpp/{stationId}
    Note over CP: Headers: Authorization: Bearer {apiKey}
    CSMS->>CP: WebSocket Connection Accepted
    
    CP->>CSMS: BootNotification
    Note over CP: {<br/>"reason": "PowerUp",<br/>"chargingStation": {<br/>"model": "YourModel",<br/>"vendorName": "YourVendor",<br/>"firmwareVersion": "1.0.0"<br/>}<br/>}
    
    CSMS->>CP: BootNotification Response
    (Accepted)Note over CSMS: {<br/>"status": "Accepted",<br/>"interval": 300,<br/>"currentTime": "2025-07-12T10:00:00Z"<br/>}
    
    CP->>CSMS: StatusNotification
    (Available)Note over CP: Connector Status: "Available"
    
    loop Heartbeat Every 300s
        CP->>CSMS: Heartbeat
        CSMS->>CP: Heartbeat Response
    end

3.2 ПолАучтентиефикация

WebSocket Headers:

Authorization: Bearer your-api-key-here
Sec-WebSocket-Protocol: ocpp2.0.1

Reconnection Strategy:

flowchart TD
    DISCONNECT[Connection Lost] --> WAIT[Wait Period]
    WAIT --> RETRY[Retry Connection]
    RETRY --> SUCCESS{Connected?}
    SUCCESS -->|Yes| BOOT[Send BootNotification]
    SUCCESS -->|No| BACKOFF[Increase Wait Period]
    BACKOFF --> WAIT
    BOOT --> OPERATIONAL[Operational State]

4. Состояния зарядной станции

4.1 Основная диаграмма состояния станции (Backend-инициированное)й

sequenceDiagramstateDiagram-v2
    participant[*] --> PowerOn
    PowerOn --> Connecting: Network Available
    Connecting --> Available: CSMS asConnected
    BackendConnecting CSMS--> participantOffline: CPConnection asFailed
    
    ChargeAvailable Point--> NotePreparing: overCable CSMS,CP:Connected
    ЗAvailable --> Reserved: RemoteStartTransaction
    Available --> Unavailable: SetChargingProfile(Unavailable)
    
    Preparing --> Charging: RFID Authorized
    Preparing --> Available: Authorization Failed
    Preparing --> Available: Cable Disconnected
    
    Reserved --> Preparing: Cable Connected
    Reserved --> Available: Reservation Expired
    
    Charging --> SuspendedEVSE: Station Error
    Charging --> SuspendedEV: Vehicle Error  
    Charging --> Finishing: Stop Requested
    
    SuspendedEVSE --> Charging: Error Cleared
    SuspendedEV --> Charging: Vehicle Ready
    SuspendedEVSE --> Faulted: Critical Error
    
    Finishing --> Available: Transaction Complete
    
    Faulted --> Available: Fault Cleared
    Faulted --> Unavailable: Manual Reset Required
    
    Offline --> Connecting: Retry Connection
    Unavailable --> Available: Reset Command

4.2 Обрапрботка событий в каждом состоянияи

батареи
flowchart CSMS-TD
    subgraph "Available State"
        A1[Cable Connected] --> A2[Send StatusNotification: Preparing]
        A3[RemoteStartTransaction] -->CP: GetReportA4[Send (component:StatusNotification: Battery)Reserved]
        CP-A5[RFID Scan] --> A6[Local Authorization Check]
    end
    
    subgraph "Charging State"
        C1[Meter Reading Timer] -->CSMS: GetReportC2[Send ResponseMeterValues]
        CP-C3[Vehicle Disconnected] --> C4[Send TransactionEvent: Ended]
        C5[Error Detected] -->CSMS: NotifyReportC6[Send (BatteryStatusNotification: Status)SuspendedEVSE]
    Noteend
    
    oversubgraph CSMS,CP:"Error ЗапросHandling"
        статусаE1[Hardware зарядкиError] CSMS---> E2[Log Error Locally]
        E2 -->CP: GetTransactionStatusE3[Send CP-NotifyEvent]
        E3 -->>CSMS: GetTransactionStatusE4[Update ResponseState Noteto overFaulted]
    CSMS,CP: Запрос местоположения
    CSMS->>CP: GetLocationInfo
    CP->>CSMS: GetLocationInfo Response (GPS coordinates)end

3.3

5. СОбязательные OCPP сообытщения от станции

(Station-и

5.1 Инициированные)

sequenceDiagram
    participant CP as Charge Point
    participant CSMS as Backend CSMS
    participant USER as End User
    
    Note over CP,CSMS: Начало изарядки
    USER->>CP: Подключение автомобиля
    CP->>CSMS: StatusNotification (Preparing)
    CP->>CSMS: TransactionEvent (Started)
    CSMS->>CP: TransactionEvent Response
    
    Note over CP,CSMS: Процесс зарядки
    loop Во время зарядки
        CP->>CSMS: MeterValues (Energy, Power, Voltage, Current)
        CP->>CSMS: StatusNotification (Charging)
    end
    
    Note over CP,CSMS: Ошибка зарядки
    CP->>CSMS: StatusNotification (Faulted)
    CP->>CSMS: NotifyEvent (Error Details)
    
    Note over CP,CSMS: Окончание зарядки
    USER->>CP: Отключение автомобиля
    CP->>CSMS: TransactionEvent (Ended)
    CP->>CSMS: StatusNotification (Available)
    CSMS->>CP: TransactionEvent Response

3.4 Удаленное управление

sequenceDiagram
    participant API as REST API
    participant CSMS as Backend CSMS
    participant CP as Charge Point
    
    Note over API,CP: Удаленный запуск зарядки
    API->>CSMS: POST /stations/{id}/start
    CSMS->>CP: RequestStartTransaction
    CP->>CSMS: RequestStartTransaction Response
    CP->>CSMS: TransactionEvent (Started)
    CSMS->>API: 200 OK
    
    Note over API,CP: Удаленная остановка зарядки
    API->>CSMS: POST /stations/{id}/stop
    CSMS->>CP: RequestStopTransaction
    CP->>CSMS: RequestStopTransaction Response
    CP->>CSMS: TransactionEvent (Ended)
    CSMS->>API: 200 OK

4. Детальная спецификация и сообщтатус

BootNotification (при старте)

{
  "reason": "PowerUp",
  "chargingStation": {
    "model": "EV-CHARGER-V1",
    "vendorName": "YourCompany", 
    "firmwareVersion": "1.2.3",
    "serialNumber": "SN123456789"
  }
}

StatusNotification (при изменений

4.1 Запросы Backend → Station

4.1.1 Получение состояния батареи)

OCPP Message: GetReport

{
  "requestId": 1,
  "componentVariable": [
    {
      "component": {
        "name": "BatteryManagement"
      },
      "variable": {
        "name": "StateOfCharge"
      }
    },
    {
      "component": {
        "name": "BatteryManagement"
      },
      "variable": {
        "name": "BatteryVoltage"
      }
    }
  ]
}

Response: NotifyReport

{
  "requestId": 1,
  "generatedAt"timestamp": "2025-07-12T10:30:00Z",
  "reportData": [
    {
      "component": {
        "name"connectorStatus": "BatteryManagement"
      }Available",
  "variable"evseId": {1,
  "name"connectorId": "StateOfCharge"
      },
      "variableAttribute": {
        "value": "85",
        "unit": "Percent"
      }
    },
    {
      "component": {
        "name": "BatteryManagement"
      },
      "variable": {
        "name": "BatteryVoltage"
      },
      "variableAttribute": {
        "value": "48.2",
        "unit": "V"
      }
    }
  ]1
}

4.1.2Heartbeat П(периолудичение статуса зарядки)

OCPP Message: GetTransactionStatus

{
  "transactionId": "TXN_123456"
}

Response:

{
  "ongoingIndicator": true,
  "messagesInQueue": false
}

4.1.3 Получение местоположения

OCPP Message: GetLocationInfo

{
  "requestId": 2
}

Response:

{
  "location": {
    "latitude": "55.7558",
    "longitude": "37.6176",
    "altitude": "156.0"
  },
  "timestamp"currentTime": "2025-07-12T10:30:00Z"
}

4.5.2 События Station → Backendтранзакций

4.2.1TransactionEvent Начало зарядки)

OCPP Message: TransactionEvent

{
  "eventType": "Started",
  "timestamp": "2025-07-12T10:30:00Z",
  "triggerReason": "Authorized",
  "seqNo": 0,
  "transactionInfo": {
    "transactionId": "TXN_123456"TXN_" + generateUniqueId(),
    "chargingState": "Charging"
  },
  "evse": {
    "id": 1,
    "connectorId": 1
  },
  "idToken": {
    "idToken": "RFID_12345",
    "type": "ISO14443"
  },
  "meterValue": [
    {
      "timestamp": "2025-07-12T10:30:00Z",
      "sampledValue": [
        {
          "value": "0.0",
          "measurand": "Energy.Active.Import.Register",
          "unit": "kWh"
        }
      ]
    }
  ]
}

4.2.2MeterValues Ошибка(во время зарядки каждые 60 сек)

OCPP

{
  Message"evseId": 1,
  "meterValue": [
    {
      "timestamp": "2025-07-12T10:31:00Z",
      "sampledValue": [
        {
          "value": "7.2",
          "measurand": "Power.Active.Import",
          "unit": "kW"
        },
        {
          "value": "1.2",
          "measurand": "Energy.Active.Import.Register", 
          "unit": "kWh"
        },
        {
          "value": "230.5",
          "measurand": "Voltage",
          "unit": "V"
        },
        {
          "value": "31.2",
          "measurand": "Current.Import",
          "unit": "A"
        }
      ]
    }
  ]
}

5.3 События системы

NotifyEvent

 (ошибки и важные события)

{
  "generatedAt": "2025-07-12T10:35:00Z",
  "eventData": [
    {
      "eventId": 1,
      "timestamp": "2025-07-12T10:35:00Z",
      "trigger": "Alerting",
      "eventType": "FaultDetected",
      "component": {
        "name": "ChargingStation"
      },
      "variable": {
        "name": "OverCurrentProtection"ConnectorLockFailure"
      },
      "eventNotificationType": "Alert"
    }
  ]
}

4.2.3

6. ТеОбработка команд от CSMS

6.1 Команды управления

RemoteStartTransaction

sequenceDiagram
    participant CSMS
    participant CP as Charge Point
    participant USER as User
    
    CSMS->>CP: RemoteStartTransaction
    Note over CSMS: {<br/>"idToken": {"idToken": "RFID_123", "type": "ISO14443"},<br/>"evseId": 1<br/>}
    
    CP->>CP: Check EVSE Availability
    alt EVSE Available
        CP->>CSMS: RemoteStartTransaction Response (Accepted)
        CP->>CSMS: StatusNotification (Reserved)
        
        USER->>CP: Connect Cable
        CP->>CSMS: StatusNotification (Preparing)
        CP->>CSMS: TransactionEvent (Started)
    else EVSE Occupied/Faulted
        CP->>CSMS: RemoteStartTransaction Response (Rejected)
    end

RemoteStopTransaction

sequenceDiagram
    participant CSMS
    participant CP as Charge Point
    
    CSMS->>CP: RemoteStopTransaction
    Note over CSMS: {"transactionId": "TXN_123456"}
    
    CP->>CP: Find Active Transaction
    alt Transaction Found
        CP->>CSMS: RemoteStopTransaction Response (Accepted)
        CP->>CP: Stop Power Delivery
        CP->>CSMS: TransactionEvent (Ended)
        CP->>CSMS: StatusNotification (Available)
    else Transaction Not Found
        CP->>CSMS: RemoteStopTransaction Response (Rejected)
    end

6.2 Команды мониторинга

GetReport (запрос данных)

Запрос от CSMS:

{
  "requestId": 1,
  "componentVariable": [
    {
      "component": {"name": "BatteryManagement"},
      "variable": {"name": "StateOfCharge"}
    }
  ]
}

Ваш ответ:

{
  "status": "Accepted",
  "statusInfo": {
    "reasonCode": "NoError"
  }
}

Затем отправить NotifyReport:

{
  "requestId": 1,
  "generatedAt": "2025-07-12T10:30:00Z",
  "reportData": [
    {
      "component": {"name": "BatteryManagement"},
      "variable": {"name": "StateOfCharge"},
      "variableAttribute": {
        "value": "85",
        "unit": "Percent"
      }
    }
  ]
}

7. Мониторинг компонентов станции

7.1 Компоненты для мониторинга

graph TD
    subgraph "Station Components"
        BATTERY[Battery Management]
        CONNECTOR[Charging Connector]
        METER[Energy Meter]
        TEMP[Temperature Sensors]
        RFID[RFID Reader]
        NETWORK[Network Module]
    end
    
    subgraph "Monitored Variables"
        BATTERY --> B1[StateOfCharge]
        BATTERY --> B2[BatteryVoltage]
        BATTERY --> B3[BatteryTemperature]
        
        CONNECTOR --> C1[ConnectorStatus]
        CONNECTOR --> C2[LockStatus]
        
        METER --> M1[Energy.Active.Import.Register]
        METER --> M2[Power.Active.Import]
        METER --> M3[Voltage]
        METER --> M4[Current.Import]
        
        TEMP --> T1[InletTemperature]
        TEMP --> T2[OutletTemperature]
        
        RFID --> R1[ReaderStatus]
        
        NETWORK --> N1[SignalStrength]
        NETWORK --> N2[NetworkStatus]
    end

7.2 Периодическая отправка данных

MeterValues каждые 60 секунд во время зарядки

OCPP Message:: MeterValues

{flowchart "evseId":TD
    1,START[Transaction "meterValue":Started] [--> {TIMER[Start "timestamp":60s "2025-07-12T10:30:00Z",Timer]
    "sampledValue":TIMER [--> {READ[Read "value":All "7.2",Meters]
    "measurand":READ "Power.Active.Import",--> "unit":SEND[Send "kW"MeterValues]
    },SEND {--> "value":CHECK{Transaction "230.5",
          "measurand": "Voltage",
          "unit": "V"
        },
        {
          "value": "31.2",
          "measurand": "Current.Import",
          "unit": "A"
        },
        {
          "value": "45.2",
          "measurand": "Temperature",
          "unit": "Celsius"
        Active?}
    ]CHECK }-->|Yes| ]TIMER
    }CHECK -->|No| END[Stop Reporting]

5.8. REST API дЛокальная авнешнторихзация систем(Offline Mode)

5.8.1 ЭндпКэш авторинтызации

у
flowchart TD
    RFID[RFID Scanned] --> CACHE{In Local Cache?}
    CACHE -->|Yes| AUTH[Authorize Locally]
    CACHE -->|No| ONLINE{CSMS Online?}
    ONLINE -->|Yes| REMOTE[Request Remote Auth]
    ONLINE -->|No| REJECT[Reject Authorization]
    
    REMOTE --> RESPONSE{Authorized?}
    RESPONSE -->|Yes| CACHE_ADD[Add to Local Cache]
    RESPONSE -->|No| REJECT
    CACHE_ADD --> AUTH
    AUTH --> START[Start Transaction]

8.2 Управленияе станциякэшеми

GET    /api/v1/stations                    # 

Списотрук всех станций GET /api/v1/stations/{id} # Информация о станции GET /api/v1/stations/{id}/status # Текущий статус станции GET /api/v1/stations/{id}/battery # Состояние батареи GET /api/v1/stations/{id}/location # Местоположение POST /api/v1/stations/{id}/start # Запуск зарядки POST /api/v1/stations/{id}/stop # Остановка зарядкписи GETв /api/v1/stations/{id}/transactions # История транзакций GET /api/v1/stations/{id}/events # События станции

5.2 WebSocket для real-time событий

ws://backend.com/api/v1/stations/{id}/events

Примэшер сообщения::

{
  "stationId"idToken": "STATION_001"RFID_12345",
  "timestamp"type": "ISO14443",
  "status": "Accepted",
  "expiryDate": "2025-07-12T10:30:00Z"12-31T23:59:59Z",
  "eventType"groupIdToken": "ChargingStarted",
  "data": {
    "transactionId": "TXN_123456",
    "connectorId": 1,
    "power": 7.2,
    "vehicleId": "RFID_CARD_123"
  }GROUP_001"
}

6. Схема состояний зарядной станции

stateDiagram-v2
    [*] --> Offline
    Offline --> Available: BootNotification
    Available --> Preparing: Cable Connected
    Preparing --> Charging: Authorization Success
    Preparing --> Available: Authorization Failed
    Charging --> SuspendedEVSE: Station Fault
    Charging --> SuspendedEV: Vehicle Fault
    Charging --> Finishing: Charging Complete
    SuspendedEVSE --> Charging: Fault Cleared
    SuspendedEV --> Charging: Vehicle Resumed
    Finishing --> Available: Cable Disconnected
    Available --> Unavailable: Maintenance Mode
    Unavailable --> Available: Maintenance Complete
    Available --> Faulted: Critical Error
    Faulted --> Available: Error Resolved
    Faulted --> Offline: System Restart Required

7.9. Обработка ошибок и вдиагносстикановление

7.9.1 Типы ошибок и реакция

    flowchart 
  1. TD ERROR[Error Detected] --> TYPE{Error Type} TYPE -->|Communication| COMM[Connection Lost] TYPE -->|Hardware| HW[Hardware Fault] TYPE -->|Software| SW[Software Error] COMM --> RECONNECT[Start Reconnection] COMM --> OFFLINE[Switch to Offline Mode] HW --> DIAG[Run Diagnostics] HW --> NOTIFY[Send NotifyEvent] HW --> FAULT[Set Status to Faulted] SW --> LOG[Log Error Details] SW --> RESTART[Restart Component] SW --> NOTIFY RECONNECT --> ONLINE{Connected?} ONLINE -->|Yes| SYNC[Sync Offline Data] ONLINE -->|No| OFFLINE
  2. 9.2 Self-Diagnostics

    КПериоммундические проверки кацждые 5 мионут:

    flowchart TD
        START[Diagnostic Timer] --> BATTERY[Check Battery Status]
        BATTERY --> CONNECTOR[Check Connector Status]
        CONNECTOR --> METER[Check Meter Communication]
        METER --> TEMP[Check Temperature Sensors]
        TEMP --> NETWORK[Check Network Signal]
        NETWORK --> RFID[Check RFID Reader]
        RFID --> RESULT{All OK?}
        RESULT -->|Yes| SCHEDULE[Schedule Next Check]
        RESULT -->|No| ALERT[Send Alert to CSMS]
        ALERT --> SCHEDULE
        SCHEDULE --> START
    

    10. Схема данныех ошибки

    • Потердля связилокального с backend
    • Timeout сообщхранений
    • я

  3. Ош

    10.1 Структура данных

    erDiagram
        TRANSACTIONS {
            string transaction_id PK
            datetime start_time
            datetime end_time
            string rfid_token
            float start_energy
            float end_energy
            string status
            json meter_values
        }
        
        AUTH_CACHE {
            string rfid_token PK
            string status
            datetime expiry_date
            string group_id
        }
        
        ERROR_LOG {
            int id PK
            datetime timestamp
            string error_type
            string component
            string description
            string status
        }
        
        CONFIG {
            string key PK
            string value
            datetime updated_at
        }
    

    11. Прибкмеры реали аутентификзации

  4. Аппаратные ошибки

    • Неисправность коннектора
    • Прлючевышх функций

      11.1 OCPP Message Handler

      // Псение температуры
    • Проблемы с электропитанием
  5. Программные ошибки

    • Ошибки протвдокод дла OCPP
    • Неверные параметры конфигурации
    • Ошибкия обработки транзакций

7.2 Стратегии восстановления

flowchart TD
    ERROR[Ошибка] --> CHECK{Тип ошибки}
    CHECK -->|Коммуникация| RECONNECT[Перепходключенящие]
    CHECK -->|Аппаратная| HARDWARE[Диагностика]
    CHECK -->|Программная| SOFTWARE[Restart Service]
    
    RECONNECT --> BACKOFF[Exponential Backoff]
    BACKOFF --> SUCCESS{Успешно?}
    SUCCESS -->|Да| RESUME[Возобновление работы]
    SUCCESS -->|Нет| OFFLINE[Offline режим]
    
    HARDWARE --> REPAIR{Можно починить?}
    REPAIR -->|Да| FIX[Автоматическое исправление]
    REPAIR -->|Нет| MAINTENANCE[Режим обслуживания]
    
    SOFTWARE --> RESTART[Перезапуск]
    RESTART --> RESUME
    
    FIX --> RESUME

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

8.1 Аутентификация и авторизация

  • Certificate-based authentication для OCPP соединений
  • JWT токены для REST API
  • Role-based access control (RBAC)
  • API Rate limiting

8.2 Шифрование

  • TLS 1.3 для всех соединений
  • End-to-end encryption для критичных данных
  • Certificate pinning для mobile приложений

9. Мониторинг и логирование

9.1 Метрики мониторинга

  • Availability зарядных станций
  • Время отклика OCPP сообщений
  • Количествоfunction активныхhandleOCPPMessage(messageType, сессийmessageId, зарядки
  • payload)
  • Энергопотребление{ иswitch(messageType) эффективность
  • {
  • Частотаcase ошибок'RemoteStartTransaction': иreturn типыhandleRemoteStart(payload); неисправностей
  • case
'RemoteStopTransaction':

9.2return ЛогированиеhandleRemoteStop(payload); событий

case
    'GetReport':
  • Всеreturn OCPPhandleGetReport(payload); сообщенияcase (request/response)
  • 'Reset':
  • Системныеreturn событияhandleReset(payload); иdefault: ошибки
  • return
  • Транзакции{ зарядки
  • status:
  • Изменения'NotSupported', конфигурации
  • statusInfo:
  • События{ безопасности
  • reasonCode:
'MessageNotSupported'

10.} Требования}; к} реализации

}

10.1 Backend Requirements

Технологии:

  • WebSocket server (Node.js/Python/Java)
  • REST API framework
  • База данных (PostgreSQL/MongoDB)
  • Message queue (Redis/RabbitMQ)
  • Monitoring (Prometheus/Grafana)

Функциональность:

  • OCPP 2.0.1 protocol handler
  • Station management interface
  • Real-time monitoring dashboard
  • Billing integration
  • Analytics and reporting

10.2 Station Requirements

Технологии:

  • Embedded Linux/RTOS
  • OCPP 2.0.1 client library
  • 4G/5G modem with static IP
  • Local storage for offline mode
  • Secure element for certificates

Функциональность:

  • OCPP message handling
  • Local authorization cache
  • Meter data collection
  • Hardware diagnostics
  • Firmware update support

11. Тестирование

11.1 Unit тесты

  • OCPP message parsing/generation
  • Business logic компонентов
  • API endpoints

11.2 IntegrationState тестыMachine Implementation

    // 
  • End-to-endПсевдокод OCPPдля flows
  • state
  • Databasemachine operations
  • class
  • ExternalChargingStationStateMachine system{ integration
  • constructor()
{

11.3this.currentState Load= тесты

'Available';
    this.allowedTransitions
  • Concurrent= charging{ sessions
  • 'Available':
  • High['Preparing', message'Reserved', volume
  • 'Unavailable'],
  • Network'Preparing': failure['Available', scenarios
  • 'Charging'],
'Charging': ['Finishing', 'SuspendedEVSE', 'SuspendedEV'], 'Finishing': ['Available'] }; } transitionTo(newState, reason) { if (this.allowedTransitions[this.currentState].includes(newState)) { this.currentState = newState; this.sendStatusNotification(newState, reason); return true; } return false; } }

Данная спецификация оспредновазначена для разработчиков ПО заряднаых станций и содержит все необходимые требования для ртеализации OCPP 2.0.1 кли лучших прентактиках индустрии EV charging infrastructure..