sequenceDiagram
participant EV as Electric Vehicle (EV)
participant EVSE as Electric Vehicle Supply Equipment (EVSE)
EV ->> EVSE: Plug-in
EVSE ->> EV: Detect EV connected (Pilot signal)
EVSE ->> EV: Send control pilot signal (PWM)
EV ->> EVSE: Respond to pilot signal (EV state)
EVSE ->> EV: AC power available (via pilot signal)
EV ->> EVSE: Start charging
EVSE ->> EV: AC Power delivered to EV
EV ->> EVSE: Charging status feedback (via pilot signal)
Note over EV, EVSE: Charging continues...
EV ->> EVSE: Charging complete or disconnect request
EVSE ->> EV: Stop AC power delivery
EVSE ->> EV: Send disconnect signal (Pilot signal)
EV ->> EVSE: Unplug
sequenceDiagram
participant EV as Electric Vehicle (EV)
participant EVSE as Electric Vehicle Supply Equipment (EVSE)
EV->>EVSE: Plug-in
EVSE-->>EV: Proximity Check (PP Signal)
EV->>EVSE: Detect Proximity
EVSE-->>EV: Control Pilot Signal
EV->>EVSE: Signal Response (State A to State B1)
EVSE-->>EV: Power Available?
EV-->>EVSE: Ready to Charge (State B2)
EVSE-->>EV: Start Charging (State B2 to State C2)
Note over EVSE, EV: Charging in progress
EV->>EVSE: Request Stop (State C2 to State B)
EVSE-->>EV: Power Cut Off
EVSE-->>EV: Control Pilot Signal (State B)
EV->>EVSE: Unplug (State A)
Note over EVSE, EV: Session Ends
## 1 - Starting and stopping a transaction
```mermaid
sequenceDiagram
participant CP as ChargePoint
participant CS as CentralSystem
CP->>CS: Authorize.req(idTag)
activate CS
CS->>CP: Authentication Request
Note left of CP: Start Charging
CP->>CS: StartTransaction.req(connectorId, idTag, meterStart, timestamp, [reservationId])
activate CS
CS->>CP: StartTransaction.conf(idTagInfo, transactionId)
Note left of CP: Charging...
CP->>CS: Authorize.req(idTag)
activate CS
CS->>CP: Authorize.conf(idTagInfo)
Note left of CP: Stop Charging
CP->>CS: StopTransaction.req(meterStop, timestamp, transactionId, [reason], [idTag], [transactionData])
activate CS
CS->>CP: StopTransaction.conf(idTagInfo)
sequenceDiagram
participant CP as ChargePoint
participant CS as CentralSystem
CS->>CP: UpdateFirmware.req(location, retrieveDate, [retries], retryInterval)
CP->>CS: UpdateFirmware.conf()
Note left of CP: Downloading firmware...
CP->>CS: FirmwareStatusNotification.req(status: Downloaded)
CS->>CP: FirmwareStatusNotification.conf()
Note left of CP: Installing...
CP->>CS: FirmwareStatusNotification.req(status: Installed)
CS->>CP: FirmwareStatusNotification.conf()
Note left of CP: Rebooting...
CP->>CS: BootNotification.req(chargePointModel, chargePointVendor,[chargeBoxSerialNumber], [chargePointSerialNumber], [firmwareVersion], [iccid], [imsi], [meterSerialNumber], [meterType])
CS->>CP: BootNotification.conf(currentTime, heartbeatInterval, status)
sequenceDiagram
actor ET as External Trigger
participant CSMS
participant CS as Charging Station
actor user
ET->>CSMS: remote_start()
CSMS->>CS: RequestStartTransactionRequest(idToken, chargingProfile, remoteStartId = 123)
CS->>CSMS: RequestStartTransactionResponse(status = Accepted)
opt
CSMS->>ET: notification
end
opt AuthorizationRemoteStart = true
CS->>CSMS: AuthorizeRequest(idToken)
CSMS->>CS: AuthorizeResponse(idTokenInfo)
end
CS->>CSMS: StatusNotificationRequest(Occupied)
CSMS->>CS: StatusNotificationResponse()
alt within ConnectionTimeOut
ET->>CS: Plugin Cable
opt if cable not permanently attached
CS->>CS: lock connector
end
CS->>CS: start energy offer
opt
CS->>ET: notification
end
CS->>CSMS: TransactionEventRequest(eventType = Started, chargingState = Charging, remoteStartId = 123)
CSMS->>CS: TransactionEventResponse()
CS-->>user: Continue regular smart charging session
end