Skip to content

Instantly share code, notes, and snippets.

@folkengine
Last active October 3, 2024 00:45
Show Gist options
  • Save folkengine/48d8d487930b342708247d6959248b53 to your computer and use it in GitHub Desktop.
Save folkengine/48d8d487930b342708247d6959248b53 to your computer and use it in GitHub Desktop.

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
Loading
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
 
Loading


## 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)

2 - Firmware Update

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)
Loading

OCPP 2.0.1

K05 - Remote Start Transaction with Charging Profile

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  
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment