Skip to main content
Skip table of contents

OCPP 2.0.1/2.1 and V2X requirements

This document lists the OCPP 2.0.1 and OCPP 2.1 messages a charger must support, in order to be integrated with the CSMS.

The majority of the message need to follow the OCPP 2.0.1 specification. Some of the message must follow the specification as defined in “OCPP 2.1 Additions V2X/15118-20”. In the column ‘specification’ in the table below indicates specification is required.

This document is a first draft and shall work as basis for first integration discussions. Is has no claim to be complete.

Summary

Priority

Message

Specification

#1

TransactionEvent

OCPP 2.0.1

#1

NotifyEvChargingNeeds

OCPP 2.1

#1

SetChargingProfile

OCPP 2.1

#1

SetVariables

OCPP 2.0.1

#2

Heartbeat

OCPP 2.0.1

#2

BootNotification

OCPP 2.0.1

#2

Authorize

OCPP 2.1

#3

StatusNotification

OCPP 2.0.1

#3

NotifyEvent

OCPP 2.0.1

#3

SecurityNotifyEvent

OCPP 2.0.1

#3

SendLocalList

OCPP 2.0.1

#3

ClearCache

OCPP 2.0.1

#4

GetLog

OCPP 2.0.1

#4

LogStatusNotification

OCPP 2.0.1

#4

RequestStartTransaction

OCPP 2.0.1

#4

RequestStopTransaction

OCPP 2.0.1

#4

Reset

OCPP 2.0.1

Priority #1

In order to start integrating a charger, the charger should support a few messages make smart charging possible. This set of messages should allow TMH charge and discharge an EV in a test environment.

☑️ The chargers must inform the about transaction and charge metrics TransactionEvents.

☑️ The charger must send NotifyEvChargingNeeds (V2X) that express the mobility needs of the EV. This message should contain at least the EV’s departure time and requested energy transfer. The V2X parameters must contain the energy needs and (dis)charge boundaries:

CODE
[2,
 '2108818a-a34d-4ec7-b2aa-0ecfa964c0c9',
 'NotifyEVChargingNeeds',
 {'chargingNeeds': {'controlMode': 'Dynamic',
                    'departureTime': '2023-04-14T14:22:37.000Z',
                    'mobilityNeedsMode': 'EVCC',
                    'requestedEnergyTransfer': 'AC_single_phase_BPT',
                    'v2xChargingParameters': {'evMaxEnergyRequest': 5000,
                                              'evMinEnergyRequest': -20000,
                                              'evTargetEnergyRequest': 0,
                                              'evMinV2XEnergyRequest': -27000,
                                              'evMaxV2XEnergyRequest': -3000
                                              'maxChargePower': 11000,
                                              'maxDischargePower': -11000,
                                              'minChargePower': 0,
                                              'minDischargePower': 0}},
  'evseId': 1}]

☑️ The charger must support SetChargingProfile (V2X). Below is a example of how a SetChargingProfile that we could send. Notice how we rely on v2xOperationModes “CentralSetpoint” and “Idle”:

CODE
[2,
 '598de41d-067a-4d2c-89b4-bc2d02ece057',
 'SetChargingProfile',
 {'chargingProfile': {'chargingProfileKind': 'Absolute',
                      'chargingProfilePurpose': 'TxProfile',
                      'chargingSchedule': [{'chargingRateUnit': 'W',
                                            'chargingSchedulePeriod': [{'limit': 3000,
                                                                        'setpoint': 3000,
                                                                        'startPeriod': 0,
                                                                        'v2xOperationMode': 'CentralSetpoint'},
                                                                       {
                                                                        'limit': 3000,
                                                                        'setpoint': -3000,
                                                                        'startPeriod': 900,
                                                                        'v2xOperationMode': 'CentralSetpoint'},
                                                                       {'limit': 3000,
                                                                        'setpoint': 0,
                                                                        'startPeriod': 1800,
                                                                        'v2xOperationMode': 'Idle'}],
                                            'id': 0,
                                            'startSchedule': '2023-07-06T15:33:07Z'}],
                      'id': 1,
                      'stackLevel': 1,
                      'transactionId': '6462336'},
  'evseId': 1}]

☑️ Lastly, the charger must support SetVariables so the CSMS can configure the charger.

Priority #2

☑️ The charger must support Heartbeat to synchronize time with CCSMS.

☑️ The charger must implement Authorize (V2X).

☑️ The charger must implement BootNotification.

Priority #3

☑️ The charger must implement StatusNotifcation, NotifyEvent and SecurityEventNotification.

☑️ In order to support support periods where charger is offline, charger should support SendLocalList and ClearCache.

After reaching this stage, a charger is ready to be operated in a beta environment where a few individuals rely on correct operation of the charger.

Priority #4

☑️ To operate and manage the charger in a production environment, it should support:

  • GetLog

  • LogStatusNotification

  • RequestStartTransaction

  • RequestStopTransaction

  • Reset

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.