Introduction
A set of standardized Minimum Required Error Codes (MRECS) is proposed to address the challenges associated with custom error codes in the North American Electric Vehicle (EV) charging ecosystem. The proposed MRECs can be effectively used to address the challenges of custom error codes.
The ChargeX consortium recommends that the industry implement MRECs uniformly to streamline error reporting and improve diagnostics. This report is based on independent analysis of custom error codes by ChargeX, and it assigns one or more entities responsible for the resolution of each MREC. It also provides a functional classifications for each error code to describe its nature.
Motivation
To simplify troubleshooting and increase charging reliability, the ChargeX Consortium proposes a unified methodology to define and classify a minimum required set of error codes (MRECs). All MREC messages are critical and must be supported by manufacturers. If a manufacturer’s error code matches all of the conditions of an MREC, the manufacturer can simply indicate which internal code maps to the corresponding MREC code and transmit it using the given their respective fault codes.
Scope
The scope of this work is limited to Open Charge Point Protocol (OCPP) versions 1.61 and above.
Minimum Required Error Codes
The following tables list the ChargeX proposed Minimum Required Error Codes (MRECs), their descriptions and their functional and responsibility classifications.
Number | Error Code | Fault Code | Description |
1. | ConnectorLockFailure | CX001 | Failure to lock or unlock connector on the vehicle side. |
2. | GroundFailure | CX002 | Ground fault circuit interrupter has been activated. |
3. | HighTemperature | CX003 | High temperature inside the EVSE is derating power delivery. |
4. | OverCurrentFailure | CX004 | Over current protection device has tripped. |
5. | OverVoltage | CX005 | Input voltage to the vehicle has risen above an acceptable level. |
6. | UnderVoltage | CX006 | Input voltage to the vehicle has dropped below an acceptable level. |
7. | WeakSignal | CX007 | Wireless communication device reported a weak signal. |
8. | EmergencyStop | CX008 | Emergency stop is pressed by the user (required if equipped). |
9. | AuthorizationTimeout | CX009 | The user plugs in but fails to authorize a charging session prior to the connection timeout between the vehicle and EVSE. |
10. | InvalidVehicleMode | CX010 | The vehicle is in an invalid mode for charging. |
11. | CableCheckFailure | CX011 | Failure during the cable check phase. Includes isolation failure |
12. | PreChargeFailure | CX012 | The EVSE did not reach the correct pre-charge voltage. |
13. | NoInternet | CX013 | The EVSE has no internet connectivity. |
14. | PilotFault | CX014 | The control pilot voltage is out of range. |
15. | PowerLoss | CX015 | The EVSE is unable to supply any power due to mains failure. |
16. | EVContactorFault | CX016 | Contactors fail to open or close on the vehicle side. May also include welding related errors. |
17. | EVSEContactorFault | CX017 | Contactors fail to open or close on EVSE’s side. May also include welding related errors. |
18. | CableOverTempDerate | CX018 | Temperature of charging cable or connector assembly is too high, resulting in reduced power operation. |
19. | CableOverTempStop | CX019 | Temperature of charging cable or connector assembly is too high, resulting in a stopped charging session. |
20. | PartialInsertion | CX020 | Cable latch is raised due to incomplete insertion into the vehicle charging port. |
21. | CapacitanceFault | CX021 | An Isolation Monitoring Device tripped due to high capacitance during active charging. |
22. | ResistanceFault | CX022 | An Isolation Monitoring Device tripped due to low resistance to the chassis during active charging. |
23. | ProximityFault | CX023 | The proximity voltage is out of range. |
24. | ConnectorVoltageHigh | CX024 | The output voltage of EVSE is high before charging starts or after charging ends. |
25. | BrokenLatch | CX025 | The latch on the connector is broken. |
26. | CutCable | CX026 | The output cable has been severed from the EVSE. |
Number | Error Code | Responsibility Classification | |||
EV User | CSO | EVSE | EV | ||
1. | ConnectorLockFailure | ✓ | – | – | ✓ |
2. | GroundFailure | – | – | ✓ | ✓ |
3. | HighTemperature | – | – | ✓ | – |
4. | OverCurrentFailure | – | – | ✓ | ✓ |
5. | OverVoltage | – | – | ✓ | ✓ |
6. | UnderVoltage | – | – | ✓ | ✓ |
7. | WeakSignal | – | ✓ | ✓ | – |
8. | EmergencyStop | ✓ | – | ✓ | – |
9. | AuthorizationTimeout | ✓ | ✓ | ✓ | ✓ |
10. | InvalidVehicleMode | ✓ | – | – | ✓ |
11. | CableCheckFailure | – | – | ✓ | ✓ |
12. | PreChargeFailure | – | – | ✓ | ✓ |
13. | NoInternet | – | ✓ | ✓ | – |
14. | PilotFault | – | – | ✓ | ✓ |
15. | PowerLoss | – | – | ✓ | – |
16. | EVContactorFault | – | – | – | ✓ |
17. | EVSEContactorFault | – | – | ✓ | – |
18. | CableOverTempDerate | – | – | ✓ | – |
19. | CableOverTempStop | – | – | ✓ | ✓ |
20. | PartialInsertion | ✓ | – | ✓ | ✓ |
21. | CapacitanceFault | – | – | ✓ | ✓ |
22. | ResistanceFault | – | – | ✓ | ✓ |
23. | ProximityFault | – | – | ✓ | ✓ |
24. | ConnectorVoltageHigh | – | – | ✓ | – |
25. | BrokenLatch | – | ✓ | ✓ | – |
26. | CutCable | – | ✓ | ✓ | – |
This work also proposes functional classifications for segregating the errors based on the functions or operations they disrupt or compromise in the charging process, such as safety, security, maintenance, financial, and authorization.
Number | Error Code | Functional Classifications | ||||
Safety | Security | Maintenance | Financial | Authorization | ||
1. | ConnectorLockFailure | ✓ | ✓ | – | – | – |
2. | GroundFailure | ✓ | – | ✓ | – | – |
3. | HighTemperature | ✓ | – | – | – | – |
4. | OverCurrentFailure | ✓ | – | – | – | – |
5. | OverVoltage | ✓ | – | – | – | – |
6. | UnderVoltage | ✓ | – | – | – | – |
7. | WeakSignal | – | – | – | – | ✓ |
8. | EmergencyStop | ✓ | – | – | – | – |
9. | AuthorizationTimeout | – | ✓ | – | – | ✓ |
10. | InvalidVehicleMode | ✓ | – | – | – | – |
11. | CableCheckFailure | ✓ | – | ✓ | – | – |
12. | PreChargeFailure | ✓ | – | – | – | – |
13. | NoInternet | – | – | – | – | ✓ |
14. | PilotFault | – | – | ✓ | – | – |
15. | PowerLoss | ✓ | – | ✓ | – | – |
16. | EVContactorFault | ✓ | – | – | – | – |
17. | EVSEContactorFault | ✓ | – | – | – | – |
18. | CableOverTempDerate | ✓ | – | – | – | – |
19. | CableOverTempStop | ✓ | – | – | – | – |
20. | PartialInsertion | ✓ | – | – | – | – |
21. | CapacitanceFault | ✓ | – | – | – | – |
22. | ResistanceFault | ✓ | – | – | – | – |
23. | ProximityFault | ✓ | – | ✓ | – | – |
24. | ConnectorVoltageHigh | ✓ | – | – | – | – |
25. | BrokenLatch | ✓ | ✓ | – | – | – |
26. | CutCable | ✓ | – | ✓ | – | – |
Documents
About ChargeX
The National Charging Experience Consortium, or ChargeX Consortium, is a collaborative effort between Argonne National Laboratory, Idaho National Laboratory, National Renewable Energy Laboratory, electric vehicle (EV) charging industry experts, consumer advocates, and other stakeholders.
Webpage: https://inl.gov/chargex/
Revision Log
2023-09-29 – v1.0.1
- Initial release of ChargeX proposed implementation guide for Minimum Required Error Codes
- Release under the Apache 2.0 license
2023-09-11 – v1.0.0
- Initial release of ChargeX proposed Minimum Required Error Codes
- Release under the Apache 2.0 license
Code Format
Fault Codes
This work recommends the use of specific fault codes for the transmission of each MREC. Uniquely, each fault code mentioned in this report begins with ‘CX,’ signifying its association to the set of MRECs proposed by the ChargeX consortium. The subsequent three digits uniquely identify each error code. As an illustration, the fault code ‘CX001’ is designated for the first error code (ConnectorLockFailure) within the set of MRECs proposed by the ChargeX consortium.Conventions for OCPP 1.6J
It is recommended to transmit MRECs using the vendorErrorCode field in the StatusNotification.req message housed within OCPP 1.6J. The table below outlines all the data fields housed within the StatusNotification.req message that need to be modified to transmit MRECs using OCPP 1.6J.Data Field | Suggested Data | Description |
errorCode | ChargePointErrorCode | If available, suitable ChargePointErrorCode in OCPP 1.6 should be reported here. If not available, ‘OtherError’ should be used. |
info | Actual Value | This includes additional information related to the error. The actual or observed value is recommended to be reported here and can be left blank if no information is available. More details of the error can be included in this field separated by the “;” delimiter. |
vendorId | {vendor specific information}; https://chargex.inl.gov | This identifies the vendor-specific implementation. It is highly recommended to use https://chargex.inl.gov to help provide the end-user easier access to the details of the reported MREC, including its description and responsibility and functional classifications using the “;” delimiter. |
vendorErrorCode | Fault code | Fault code for a specified MREC as given in table above. |
(i) OCPP’s Certification Process and ChargeX MRECs
To allow stakeholders to use ChargeX’s MRECs without interfering with OCPP’s certification process we recommend populating the vendorErrorCode with ‘CXxxx’ along with the vendorId set to ‘https://chargex.inl.gov.’ This should re-direct the end user to the ChargeX documentation to identify and interpret the error. All MRECs that are cross listed in OCPP 1.6 should be reported in this way.Example
{
"connectorId": 1,
"errorCode": "HighTemperature",
"info": "50",
"status": "Finishing",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX003"
}
(ii) Multiple Simultaneous Faults with Custom Errors
When reporting multiple simultaneous faults, it is recommended that the info data field and the vendorErrorCode data field report multiple values in the same sequence separated by the “;” delimiter. It is also possible to add and report custom errors along with ChargeX MRECs in the same way but with additional vendor information in the vendorId field.Example
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "50;105",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "www.vendor.com;https://chargex.inl.gov",
"vendorErrorCode": "CustomError;CX019"
}
Conventions for OCPP 2.0.1
It is recommended to transmit MRECs using the techCode data field in the NotifyEventRequest message of OCPP 2.0.1 for transmitting the MRECs. The table below highlights the data fields within the NotifyEventRequest message that need to be modified for transmitting MRECs using OCPP 2.0.1.Data Field | Suggested Data | Description |
techCode | Fault code | Fault code for a specified MREC as given in table above. |
(i) ChargeX MRECs and Device Model
We do not mandate any specific device model or component-variable-monitor combination in this work. The examples provided draw from a conceptual device and information model and are intended to provide illustrations of component-variable-monitor pairings.
(ii) ChargeX MRECs and Component-Variable-Monitor Pairings
It is important to note that while some of these sample messages mention monitors, a majority of the MRECs can be reported without configuring monitors.
Example fault without a monitor
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Delta",
"actualValue": "true",
"cause": "",
"techCode": "CX001",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "EVRetentionLock",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1}
},
"variable": {
"name": "Problem",
"instance": "Main"}
}
]
}
Example fault with a monitor
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "50",
"cause": "",
"techCode": "CX003",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": 1,
"eventNotificationType": "HardWiredMonitor",
"component": {
"name": "TemperatureSensor",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Temperature",
"instance": "Main"
}
}
]
}
(iii) Multiple Simultaneous Faults with Custom Errors
The NotifyEventRequest message within OCPP 2.0.1 is well-equipped to simultaneously handle multiple error codes. Below is an example NotifyEventRequest message with multiple faults:
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 100,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Delta",
"actualValue": "true",
"cause": "",
"techCode": "CX026",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "CableBreakawaySensor",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Tripped",
"instance": "Main"
}
},
{
"eventId": 101,
"timestamp": "2023-09-06T00-08-10Z",
"trigger": "Delta",
"actualValue": "120",
"cause": 100,
"techCode": "CX019",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": 2,
"eventNotificationType": "HardWiredMonitor",
"component": {
"name": "CableTemperatureSensor",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Active",
"instance": "Main"
}
}
]
}
MRECS
This section dives deeper into the MRECs and shows some sample JSON packets, demonstrating how MRECs can be transmitted in illustrative scenarios.
We do not mandate any specific device model or component-variable-monitor combination in this work. The examples provided below draw from a conceptual device and information model and are intended to provide example component-variable-monitor pairings. It is important to note that while some of these sample messages mention monitors (for illustrative purposes), a majority of the 26 MRECs can be reported without configuring monitors, which expedites their way into real-world implementations of OCPP 2.0.1.
Description
- Triggered when the connector fails to lock or unlock on the vehicle side.
Responsibility Classification
- EV User
- EV
Functional Classifications
- Safety
- Security
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "ConnectorLockFailure",
"info": "",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX001"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Delta",
"actualValue": "true",
"cause": "",
"techCode": "CX001",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "EVRetentionLock",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Problem",
"instance": "Main"
}
}
]
}
Description
- Triggered when the Ground fault circuit interrupter is activated.
- EVSE
- EV
- Safety
- Maintenance
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "GroundFailure",
"info": "",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX002"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Delta",
"actualValue": "true",
"cause": "",
"techCode": "CX002",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "RCD",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Tripped",
"instance": "Main"
}
}
]
}
Description
- Triggered when high temperature inside the EVSE is derating power delivery.
- EVSE
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "HighTemperature",
"info": "50",
"status": "Finishing",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX003"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "50",
"cause": "",
"techCode": "CX003",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": 1,
"eventNotificationType": "HardWiredMonitor",
"component": {
"name": "TemperatureSensor",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Temperature",
"instance": "Main"
}
}
]
}
Description
- Triggered when overcurrent protection device has been tripped.
Responsibility Classification
- EVSE
- EV
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OverCurrentFailure",
"info": "",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX004"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "",
"cause": "",
"techCode": "CX004",
"techInfo": "",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId":"",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "OverCurrentProtection",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Active",
"instance": "Main"
}
}
]
}
Description
- Triggered when the input voltage to the vehicle has risen above an acceptable level.
Responsibility Classification
- EVSE
- EV
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OverVoltage",
"info": "",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX005"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "",
"cause": "",
"techCode": "CX005",
"techInfo": "Additional information"
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "EVSE",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "DCVoltage",
"instance": "Main"
}
}
]
}
Description
- Triggered when the input voltage to the vehicle dropped below an acceptable level.
Responsibility Classification
- EVSE
- EV
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "UnderVoltage",
"info": "0",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX006"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "0",
"cause": "",
"techCode": "CX006",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "EVSE",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "DCVoltage",
"instance": "Main"
}
}
]
}
Description
- Triggered when the wireless communication device reports a weak signal.
Responsibility Classification
- CSO
- EVSE
Functional Classification
- Authorization
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "WeakSignal",
"info": "0",
"status": "Finishing",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX007"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "0",
"cause": "",
"techCode": "CX007",
"techInfo": "",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "DataLink",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "SignalStrength",
"instance": "Main"
}
}
]
}
Description
- Triggered when the emergency stopped is pressed by the user. This is only required if the charging station is configured with an emergency stop button.
Responsibility Classification
- EV User
- EVSE
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX008"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Delta",
"actualValue": "true",
"cause": "",
"techCode": "CX008",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "EmergencyStopSensor",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Active",
"instance": "Main"
}
}
]
}
Description
- Triggered when the user plugs in but fails to authorize a charging session prior to the connection timeout between the vehicle and the EVSE.
Responsibility Classification
- EV User
- CSO
- EVSE
- EV
Functional Classification
- Security
- Authorization
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "",
"status": "Preparing",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX009"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "",
"cause": "",
"techCode": "CX009",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "TxCtrlr",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Timeout",
"instance": "Main"
}
}
]
}
Description
- Triggered when the vehicle is in an invalid mode for charging.
Responsibility Classification
- EV User
- EV
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "",
"status": "SuspendedEV",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX010"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "",
"cause": "",
"techCode": "CX010",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "ConnectedEV",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "VehicleShiftPosition",
"instance": "Main"
}
}
]
}
Description
- Triggered when there is a failure during the cable check phase.
Responsibility Classification
- EVSE
- EV
Functional Classification
- Safety
- Maintenance
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX011"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "",
"cause": "",
"techCode": "CX011",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "Connector",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Problem",
"instance": "Main"
}
}
]
}
Description
- Triggered if the EVSE did not reach the correct pre-charge voltage.
Responsibility Classification
- EVSE
- EV
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX012"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "",
"cause": "",
"techCode": "CX012",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": 1,
"eventNotificationType": "HardWiredMonitor",
"component": {
"name": "EVSE",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Problem",
"instance": "Main"
}
}
]
}
Description
- Triggered if the EVSE has internet connectivity.
Responsibility Classification
- CSO
- EVSE
Functional Classification
- Authorization
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "",
"status": "Available",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX013"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Delta",
"actualValue": "true",
"cause": "",
"techCode": "CX013",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": 1,
"eventNotificationType": "HardWiredMonitor",
"component": {
"name": "DataLink",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Problem",
"instance": "Main"
}
}
]
}
Description
- Triggered when the control pilot voltage is out of range.
Responsibility Classification
- EVSE
- EV
Functional Classification
- Maintenance
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "5",
"status": "Finishing",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX014"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "5",
"cause": "",
"techCode": "CX014",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": 1,
"eventNotificationType": "HardWiredMonitor",
"component": {
"name": "CPPWMController",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "DCVoltage",
"instance": "Main"
}
}
]
}
Description
- Triggered when the EVSE is unable to supply any power due to mains failure.
Responsibility Classification
- EVSE
- EV
Functional Classification
- Safety
- Maintenance
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "0",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX015"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "0",
"cause": "",
"techCode": "CX015",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": 1,
"eventNotificationType": "HardWiredMonitor",
"component": {
"name": " ElectricalFeed",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Power",
"instance": "Main"
}
}
]
}
Description
- Triggered when the contactors fail to open or close on the vehicle side. May also include welding related errors.
Responsibility Classification
- EV
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "",
"status": "Finishing",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX016"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Delta",
"actualValue": "true",
"cause": "",
"techCode": "CX016",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "PowerContactor",
"instance": "EV",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Problem",
"instance": "Main"
}
}
]
}
Description
- Triggered when the contactors fail to open or close on the EVSE side. May also include welding related errors.
Responsibility Classification
- EVSE
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "",
"status": "Finishing",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX017"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Delta",
"actualValue": "true",
"cause": "",
"techCode": "CX017",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "PowerContactor",
"instance": "EVSE",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Problem",
"instance": "Main"
}
}
]
}
Description
- Triggered when the temperature of charging cable or connector assembly is too high, resulting in a reduced power operation.
Responsibility Classification
- EVSE
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "",
"status": "Charging",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX018"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Delta",
"actualValue": "true",
"cause": "",
"techCode": "CX018",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": 1,
"eventNotificationType": "CustomMonitor",
"component": {
"name": "Connector",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Problem",
"instance": "Main"
}
}
]
}
Description
- Triggered when the temperature of charging cable or connector assembly is too high, resulting in a stopped charging session.
Responsibility Classification
- EVSE
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "105",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX019"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "105",
"cause": "",
"techCode": "CX019",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": 2,
"eventNotificationType": "HardWiredMonitor",
"component": {
"name": "CableTemperatureSensor",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Active",
"instance": "Main"
}
}
]
}
Description
- Triggered when the cable latch is raised due to incomplete insertion into the vehicle charging port.
Responsibility Classification
- EV User
- EVSE
- EV
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "",
"status": "Available",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX020"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Delta",
"actualValue": "true",
"cause": "",
"techCode": "CX020",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "TiltSensor",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Active",
"instance": "Main"
}
}
]
}
Description
- Triggered when an isolation monitoring device tripped due to high capacitance during active charging.
Responsibility Classification
- EVSE
- EV
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "10",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX021"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "10",
"cause": "",
"techCode": "CX021",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": 1,
"eventNotificationType": "HardWiredMonitor",
"component": {
"name": " IsolationProtection",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Capacitance",
"instance": "Main"
}
}
]
}
Description
- Triggered when an isolation monitoring device tripped due to low resistance during active charging.
Responsibility Classification
- EVSE
- EV
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "20",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX022"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "20",
"cause": "",
"techCode": "CX022",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": 1,
"eventNotificationType": "HardWiredMonitor",
"component": {
"name": "IsolationProtection",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Resistance",
"instance": "Main"
}
}
]
}
Description
- Triggered when the proximity voltage is out of range.
Responsibility Classification
- EVSE
- EV
Functional Classification
- Safety
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "1.0",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX023"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "1.0",
"cause": "",
"techCode": "CX023",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "EVSE",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "PrxVoltage",
"instance": "Main"
}
}
]
}
Description
- Triggered when the output voltage of EVSE is high before charging starts or after charging ends.
Responsibility Classification
- EVSE
Functional Classification
- Safety
- Security
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "70",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX024"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Alerting",
"actualValue": "70",
"cause": "",
"techCode": "CX024",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "Connector",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Problem",
"instance": "Main"
}
}
]
}
Description
- Triggered when latch on the connector is broken.
Responsibility Classification
- CSO
- EVSE
Functional Classification
- Safety
- Security
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX025"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Delta",
"actualValue": "true",
"cause": "",
"techCode": "CX025",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "ConnectorPlugRetentionLock",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Problem",
"instance": "Main"
}
}
]
}
Description
- Triggered when the output cable is severed from the EVSE.
Responsibility Classification
- CSO
- EVSE
Functional Classification
- Safety
- Maintenance
Example in OCPP 1.6J
{
"connectorId": 1,
"errorCode": "OtherError",
"info": "",
"status": "Faulted",
"timestamp": "2023-09-06T00-08-09Z",
"vendorId": "https://chargex.inl.gov",
"vendorErrorCode": "CX026"
}
Example in OCPP 2.0.1
{
"generatedAt": "2023-09-06T00-08-09Z",
"tbc": false,
"seqNo": 0,
"eventData": [
{
"eventId": 1,
"timestamp": "2023-09-06T00-08-09Z",
"trigger": "Delta",
"actualValue": "true",
"cause": "",
"techCode": "CX026",
"techInfo": "Additional information",
"cleared": false,
"transactionId": "12345",
"variableMonitoringId": "",
"eventNotificationType": "HardWiredNotification",
"component": {
"name": "CableBreakAwaySensor",
"instance": "Main",
"evse": {
"id": 1,
"connectorId": 1
}
},
"variable": {
"name": "Tripped",
"instance": "Main"
}
}
]
}