OCPP protocol implementation statement
OCPP specifies the exchange of messages between a charge point and a CSMS such as PcVue. OCPP messages are grouped in profiles. This topic includes detailed information about the level of support of OCPP by PcVue.
Only one CSMS can be connected with PcVue proxy at the time of writing.
Supported OCPP versions
-
OCPP protocol revision 1.6 - OCPP via Json over WebSocket.
-
OCPP protocol revision 2.0.1.
When creating a WebSocket connection to a 3rd party system PcVue sends an HTTP header of type "Connection”. The value of this header consists of two directives: “Upgrade,Keep-Alive”. However, when evaluating the HTTP response to this message, PcVue is unable to parse a value that contains more than one directive. In other words, the value of the HTTP header “Connection” in the HTTP response must be nothing else than “Upgrade”.
Supported OCPP profiles
Profile name | Description |
Core | Basic charge point functionality. No support for firmware updates, local authorization list management and reservations |
Local Auth List Management | Features to manage the local authorization list in charge point |
Reservation | Support for reservation of a charge point |
Smart Charging | Support for basic Smart Charging functionality, for instance, using control pilot |
Remote Trigger | Support for remote triggering of charge point initiated messages |
Supported OCPP messages
Message | Profile | Initiated by | Responded directly by proxy | Forwarded by proxy | Requested/Responded from proxy routed to charge point |
Authorize (see note below) | Core |
Client (Charge Point) |
No |
Yes |
Yes |
BootNotification | Core |
Client (Charge Point) |
Yes |
Yes |
No |
ChangeAvailability | Core |
Client (Charge Point) |
Yes |
Yes |
|
ChangeConfiguration | Core |
Server (Central System) |
Yes |
Yes |
|
ClearCache | Core |
Server (Central System) |
Yes |
Yes |
|
DataTransfer | Core |
Client (Charge Point) / Server (Central System) |
No |
Yes |
Yes |
GetConfiguration | Core |
Client (Charge Point) |
Yes |
Yes |
|
Heartbeat | Core |
Client (Charge Point) |
Yes |
Yes |
No |
MeterValues | Core |
Server (Central System) |
Yes |
Yes |
No |
RemoteStartTransaction | Core |
Server (Central System) |
Yes |
Yes |
|
RemoteStopTransaction | Core |
Server (Central System) |
Yes |
Yes |
|
Reset | Core |
Server (Central System) |
Yes |
Yes |
|
StartTransaction (See note below) | Core |
Client (Charge Point) |
No |
Yes |
Yes |
StatusNotification | Core |
Client (Charge Point) |
Yes |
Yes |
No |
StopTransaction (See note below) | Core |
Client (Charge Point) |
No |
Yes |
Yes |
UnlockConnector | Core |
Server (Central System) |
Yes |
Yes |
|
GetDiagnostics | Firmware Management |
Server (Central System) |
Yes |
Yes |
|
DiagnosticsStatusNotification | Firmware Management |
Client (Charge Point) |
Yes |
No |
|
FirmwareStatusNotification | Firmware Management |
Client (Charge Point) |
Yes |
No |
|
UpdateFirmware | Firmware Management |
Server (Central System) |
Yes |
Yes |
|
GetLocalListVersion | Local Auth List Management |
Server (Central System) |
Yes |
Yes |
|
SendLocalList | Local Auth List Management |
Server (Central System) |
Yes |
Yes |
|
CancelReservation | Reservation |
Server (Central System) |
Yes |
Yes |
|
ReserveNow | Reservation |
Server (Central System) |
Yes |
Yes |
|
ClearChargingProfile | Smart Charging |
Server (Central System) |
Yes |
Yes |
|
GetCompositeSchedule | Smart Charging |
Server (Central System) |
Yes |
Yes |
|
SetChargingProfile | Smart Charging |
Server (Central System) |
Yes |
Yes |
|
TriggerMessage (See note below) | Remote Trigger |
Server (Central System) |
Yes |
Yes |
For the messages Authorize, StartTransaction, StopTransation, and TriggerMessage to be processed, some form of trigger must be implemented as part of the PcVue project. It typically consists of a SCADA Basic script to monitor and control the value of some variables but may vary depending on the design of your project (could be event-based, executed cyclically or upon a user action, etc.).