Introduction
ChargePilot is a hardware neutral Charging and Load Management System for EV charging infrastructure. It distributes the power between several connectors considering, physical boundaries (fuses, capabilities, etc.), regulative boundaries (phase asymmetry, grid connection, etc.), economical boundaries (peak loading, low tariff regimes, etc.) and E-Mobility needs (departure time, SoC, etc.). Therefore, ChargePilot uses a local controller device called Smart Charging Controller (SCC), which is connected to the charge points via OCPP 1.6J and to the TMH Cloud backend via a proprietary, TLS encrypted connection. The following schematic shows how ChargePilot is connected to the charge points and to a third-party CSMS using OCPP 1.6J.

Connectivity Setup
The SCC is connected directly to the Charging Stations via a local ethernet connection. All Charging Station have ChargePilot configured as CSMS. ChargePilot default OCPP back-end url: ws://172.22.0.1:9000
ChargePilot uses one internet connection to connect to the TMH Cloud and to the 3rd party CSMS. This connection can be established via Ethernet or via GSM with an additional router. So Charging Stations do not require to be connected to the internet (i.g. need their own SIM card for cellular connectivity).
Messages
The OCPP proxy forwards all allowed messages (see table below) initiated by the 3rd Party CSMS or by the Charging Station without any changes to the Charging Station or respectively to the 3rd Party CSMS. The 3rd Party CSMS will not see any difference within the messages to a direct connection to a charging station. Even vendor specific changes in the OCPP protocol will be forwarded without being touched. ChargePilot does not "normalize" or alter any messages.
This also applies to all signed meter values according to German "Eichrecht". The proxy has no influence on the Eichrechts-confirmity.
Handling of OCPP Messages
The following Profiles of OCPP1.6 are supported by the proxy
Fully Supported | Partly Supported | Local Auth List Management |
---|---|---|
Core | Firmware Management | Reservations |
Remote Trigger | Smart Charging | |
Local Auth List Management |
Messages Initiated by Charging Station
Message | Behavior Proxy |
---|---|
Authorize | Send to Third Party for verification |
Boot Notification | Send to Third Party for verification Send to ChargePilot to check against the config |
Data Transfer | Forward to Third Party |
Diagnostics Status Notification | Not supported |
Firmware Status Notification | Not supported |
Heartbeat | Forward to Third Party |
Meter Values | Forward to Third Party |
Start Transaction | Forward to Third Party |
Stop Transaction | Forward to Third Party |
Status Notification | Forward to Third Party |
Cancel Reservation Response | Not supported |
Change Availability Response | Forward to initiator |
Change Configuration Response | Forward to initiator |
Clear Cache Response | Forward to initiator |
Data Transfer Response | Forward to initiator |
Get Configuration Response | Forward to initiator |
Get Diagnostics Response | Forward to initiator |
Get Local List Version Response | Forward to initiator |
Remote Start Transaction Response | Forward to initiator |
Remote Stop Transaction Response | Forward to initiator |
Reserve Now Response | Not supported |
Reset Response | Forward to initiator |
Send Local List Response | Forward to initiator |
Set Charging Profile Response | Not supported |
Trigger Message Response | Forward to initiator |
Unlock Connector Response | Forward to initiator |
Update Firmware Response | Not supported |
Messages Initiated by Third Party
Message | Behavior Proxy |
---|---|
Authorize Response | Forward response to Chargeing Station |
Boot Notification Response | If both backends send a 'Accepted', the message will be forwarded to the Charging Station |
Data Transfer Response | Forward response to Chargeing Station |
Diagnostics Status Notification Response | Not supported |
Firmware Status Notification Response | Not supported |
Heartbeat Response | Drops Message (handled by ChargePilot) |
Meter Values Response | Forward response to Chargeing Station |
Start Transaction Response | Forward response to Chargeing Station |
Stop Transaction Response | Forward response to Chargeing Station |
Status Notification Response | Forward response to Chargeing Station |
Cancel Reservation | Send 'Rejected' to Third Party |
Change Availability | Forward response to Chargeing Station |
Change Configuration | Forward response to Chargeing Station or reject depending on the keys (see below) |
Clear Cache | Forward response to Chargeing Station |
Data Transfer | Forward response to Chargeing Station |
Get Configuration | Forward response to Chargeing Station |
Get Diagnostics | Send 'Rejected' to Third Party |
Get Local List Version | Forward response to Chargeing Station |
Remote Start Transaction | Forward response to Chargeing Station |
Remote Stop Transaction | Forward response to Chargeing Station |
Reserve Now | Send 'Rejected' to Third Party |
Reset | Forward response to Chargeing Station |
Send Local List | Forward response to Chargeing Station |
Set Charging Profile | Send 'Rejected' to Third Party |
Trigger Message | Forward response to Chargeing Station |
Unlock Connector | Forward response to Chargeing Station |
Update Firmware | Send 'Rejected' to Third Party |
Handling of Configuration
Configuration keys, which are supported by the charging station, can be changed using the ChangeConfiguration Message. The default value for the key MeterValueSampleInterval is 300s. The max limit and default value for the HeartbeatInterval is 300s. Higher values will be limited accordingly.
However, the following keys cannot be changed: MeterValueSampleData
Encryption
The following section shall describe the measures to secure the connection between ChargePilot's local Smart Charging Controller and an OCPP 1.6J based Charging Station Management System (CSMS). The proposal is based on the "Improved security for OCPP 1.6-J, Edition 2" published by OCA.
TLS with Basic Authentication
In principle, the SCC mimics the behavior of the charge point descripted in the "Improved security for OCPP 1.6J, chapter 2.4" of the OCA whitepaper. The charge points authenticate themselves using HTTP Basic Authentication. The CSMS authenticates itself using a TLS server certificate.
The username shall be equal to the Charge Point identity. The CSMS vendor shall provide a password for each charge point in a secure way. TMH will configure the SCC using their administration application. The CSMS can update the password using the AuthorizationKey in the configuration. In case of connection loss, the last known credentials will used. All defined errors described by OCA are implemented as described. In the current version, an Update of the AuthorizationKey cannot be performed.
Offline States
In the following table, the offline behavior in case of a connection loss is documented.
Situation | Changes / Reasons |
---|---|
No connection between Charging Station and SCC |
|
No connection between SCC and 3ra party CSMS |
|
Charger Restart while connection loss to 3rd party CSMS |
|
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article