OCPP 2.0.1 Part 2 — Errata v2.0
Source: OCPP 2.0.1 Part 2 — Errata v2.0 (140 pages). Items are tagged
(v1)for those introduced in errata v1.0 and(v2)for those new to v2.0.
This file is an index of every errata item, grouped by spec section and by which message/use case the correction applies to. For each item the bracket reference (e.g. [14], [592]) is the OCA tracker id; the page number is the original Part 2 page being corrected.
3. General
- 3.1 (v1) Requirements take precedence over text
[14]. - 3.2 (v1) Error in changelog
[381]. - 3.3 (v1) Respond to request before sending result messages
[397]. - 3.4 (v2)
ChargingState = EVDetectedshould be read asEVConnected[545]. - 3.5 (v2) Recommendation on restoring a connection
[567].
4. Use case A — Security
- 4.1 (v1) p.19 — Note about needing correct date to validate certificates
[496]. - 4.2 (v1) p.20 — Type of
BasicAuthPassword[489]— introduces a new primitivepasswordString; updates Security Profiles 1 and 2. - 4.3 (v1) p.20 — Note about changed password encoding between OCPP 1.6 and 2.0.1
[431]— touches Security Profiles 1 and 2. - 4.4 (v1) p.20 — Unnecessary precondition removed for
A00.FR.205[429]. - 4.5 (v1) p.20 — Implicit CSMS requirement made explicit
[440]. - 4.6 (v1) p.23 — Wrong precondition in requirements
[444]. - 4.7 (v1) p.24 — Provision for accepting Charging Station with expired certificate
[401]. - 4.8 (v1) p.29 — Recommendations for handling expired manufacturer certificate
[400]. - 4.9 (v1) p.31 — Additional requirements for updating a CS certificate, including new
SecurityCtrlrvariables. - 4.10 (v1) Clarification for reconnection with new certificate
[149]— applies toA02.FR.08(p.33) andA03.FR.08(p.36).
5. Use case B — Provisioning
- 5.1 (v1) p.45 — Heartbeat interval must be
> 0[370]— addsminLimittoHeartbeatIntervalconfig variable. - 5.2 (v1) p.54 — Return first instance when no instance specified
[476]. - 5.3 (v2) p.54 — Return only specified instance with
GetVariablesRequest[608]. - 5.4 (v2) p.55 — B06: missing requirement when exceeding
ItemsPerMessageGetVariables[605]. - 5.5 (v1) p.56 — B07: requirement for CSMS to request
FullInventoryis missing[511]. - 5.6 (v1) p.56 — B08: conflicting requirements
[355]. - 5.7 (v2) p.59 — B08: missing requirement when exceeding
ItemsPerMessageGetReport[615]. - 5.8 (v2) p.59 — B08: handling of empty variables/instances in
GetReport[565]. - 5.9 (v2) p.62 — B10: requirement note should have been a separate requirement; missing preconditions.
- 5.10 (v2) p.63 — B11: allow
Unavailablenotification during reset[581]. - 5.11 (v1) p.66 — Incomplete preconditions in B12
[442].
6. Use case C — Authorization
- 6.1 (v1) p.74 — Part of requirement is actually a precondition
[439]. - 6.2 (v2) p.74 —
C01.FR.06:AuthorizeResponsemust returngroupIdToken[641]. - 6.3 (v1) p.75 — Requirement to avoid authorizing multiple
idTokens in a transaction[514]. - 6.4 (v1) p.83 — Sequence diagram of use case C05
[435]. - 6.5 (v1) p.84 — Description and remarks of C05
[503, 504]. - 6.6 (v2) p.89 — C07: certificate in
AuthorizeRequestcontains certificate chain[533]— touches both the C07 requirements and theAuthorizeRequestfield description (p.338). - 6.7 (v2) p.94 — Improved requirements for
groupIdToken[601]. - 6.8 (v1) p.94 —
C09.FR.11is partly incorrect[513]. - 6.9 (v2) p.101 —
C13.FR.02 / C13.FR.04are about authorizing, not starting[640]. - 6.10 (v1) p.105 —
chargingStatein requirementC15.FR.03[464]. - 6.11 (v2) p.105 — Incorrect
TxStartPoint = PowerPathClosedreference in requirement precondition.
7. Use case E — Transactions
- 7.1 (v2) p.114 — Improved definition of transaction
[538]. - 7.2 (v1) p.115 — Setting for OCPP 1.6 transaction compatibility
[516]. - 7.3 (v1) p.116 — Using
seqNoinTransactionEventRequestwhen EVSE is not known[525]. - 7.4 (v2) p.116 — Solution for ever-increasing
seqNoper EVSE may lead to race condition and eventual overflow[592]. - 7.5 (v2) p.116 — Clarification for optional fields in
TransactionEventRequest[101]. - 7.6 (v2) p.119 — References to
AlignedDataSignReadingsinstead ofSampledDataSignReadings[626]— touches scenario S4 (p.119) and requirements E01.FR.04, E02.FR.14, E03.FR.10, E04.FR.10, E05.FR.06, E07.FR.12, E08.FR.12, E09.FR.08, E10.FR.07, E11.FR.08, E12.FR.10. - 7.7 (v2) p.122 — Obsolete references to power relay for
PowerPathClosed[600]— affects E01 S5 objective, E01.FR.05, E06 S5, E06.FR.06. - 7.8 (v2) p.123 —
E01.FR.12:TransactionEventResponsemust also returngroupIdToken[642]. - 7.9 (v2) p.123 — Requirements about
chargingStateandSuspendedEV[582]. - 7.10 (v2) p.125 — E02: invalid remark about multiple authorizations
[568]. - 7.11 (v2) p.125 — Sequence diagram error:
idToken.idshown more than once[591]. - 7.12 (v1) p.126 —
E02.FR.05new note aboutNotifyEvent[437]. - 7.13 (v1) p.126 — Precondition
E02.FR.06is incomplete[438]. - 7.14 (v1) p.126 — Missing requirement about authorization during transaction
[514, 547]. - 7.15 (v2) p.126 — Broken table caused a requirement to be hidden.
- 7.16 (v1) p.130 — Precondition
E03.FR.04is incomplete[435]. - 7.17 (v2) p.139 — Handling of
EVConnectionTimeoutbetter defined[627]— affects E03 and F02. - 7.18 (v2) p.136 —
E05.FR.02should not containPowerPathClosed[604]. - 7.19 (v2) p.137 —
chargingStateinE05.FR.09[596, 647]. - 7.20 (v2) p.140 — E06: scenario S4 is not valid
[537]. - 7.21 (v2) p.142 — E06: missing a common stopping scenario
[540]. - 7.22 (v1) p.143 — Confusing precondition in
E06.FR.06[506]. - 7.23 (v1) p.143 — Requirements for
eventType=Starteddon't belong in E06/E07[453](E06.FR.11, E06.FR.17, E07.FR.08, E07.FR.13). - 7.24 (v2) p.143 — E07 should use
TxStopPoint = Authorized[541]. - 7.25 (v1) p.144 — E07 sequence diagram is not complete.
- 7.26 (v2) p.145 — Report
idTokenfor stopping authorization[583]. - 7.27 (v1) p.162 — Misspelled field name in requirements/remark
[452].
8. Use case F — Remote Control
- 8.1 (v2) p.169 — F01: requirements unclear about when transaction starts
[580]. - 8.2 (v1) p.169 — Missing requirements for rejecting request
[449, 509]. - 8.3 (v1) p.170 — Requirement missing for
remoteStartId[517]. - 8.4 (v2) p.170 — F01/F02:
ChargingProfileinRequestStartTransaction[558]— touches F01, F02, and the description ofremoteStartId(p.358). - 8.5 (v1) p.171 — F02 sequence diagram error
[435](description +TxStartPoint = Authorized[549]). - 8.6 (v2) p.171 — F02: sequence diagram for
TxStartPoint = EVConnected[579]. - 8.7 (v1) p.172 — Some E03 requirements also apply to F02
[441]. - 8.8 (v2) p.172 — Relevant F01 requirements copied to F02 Remote Start First
[590]. - 8.9 (v2) p.174 — F03: replace
TxStartPointbyTxStopPoint[557]. - 8.10 (v2) p.174 — F03: some requirements only valid for
TxStopPoint = EVConnected[563]. - 8.11 (v1) p.180 —
F06.FR.07description improvement[451]. - 8.12 (v1) p.180 — Note to
F06.FR.11is contradictingF06.FR.12. - 8.13 (v1) p.180 —
F06.FR.12:evseIdcannot be0[450].
9. Use case G — Availability
- 9.1 (v2) p.184 — G01: added alternative scenario using
NotifyEvent[530]. - 9.2 (v2) p.184 — Missing requirements for
StatusNotification[569]— adds connect/disconnect state-transition overview. - 9.3 (v2) p.184 —
StatusNotificationsfor multiple connectors on an EVSE[530]. - 9.4 (v1) p.188 — Precondition of
G03.FR.05is incomplete[368].
10. Use case H — Reservation
- 10.1 (v1) p.197 — Merging two requirements
[445]. - 10.2 (v1) p.197 — Missing requirement about reserving for
evseId[472, 505]. - 10.3 (v1) p.197 —
H01.FR.20needs to be split[447, 472]. - 10.4 (v2) p.197 — Use field
reservationIdinstead ofidinReserveNow[584]. - 10.5 (v2) p.203 — Incorrect dataType reference
AvailabilityTypeshould beoperationalStatus.
11. Use case I — Tariff and Cost
- 11.1 (v1) p.207 — I02: show running total cost in
TransactionEventResponse[361]— updates I02 requirements (p.208) andTransactionEventResponse(p.367).
12. Use case J — Meter Values
- 12.1 (v1) p.214 — Limit the amount of meter values in
TransactionEvent(Ended)[371]— touches §2.1 and J02 requirements. - 12.2 (v2) p.215 — Incorrect sentence in description for
AlignedDataTxEndedInterval[624](p.439). - 12.3 (v1) p.216 — Including phases for register meter values
[328]— adds new config variableSampledDataRegisterValuesWithoutPhases(p.439). - 12.4 (v1) p.218 — Missing requirement for dealing with
AlignedDataDuringIdle[457]. - 12.5 (v1) p.218 — Wrong placement of
Aligned/SampledDataSignReadings—J01.FR.16belongs to J02;J02.FR.15belongs to J01. - 12.6 (v2) p.220 — J02: improved definition of
J01.FR.11[535]. - 12.7 (v1) p.221 — J03: dealing with ISO 15118 signed metering receipts is unclear
[352, 353]— touches J03 rows 7/10 andJ03.FR.03.
13. Use case K — Smart Charging
- 13.1 (v2) p.231 — K.2.6.1: error in JSON examples
[552]. - 13.2 (v1) p.233 — K01: recommendation to not limit duration of
TxProfile[519]. - 13.3 (v2) p.233 — Transaction does not fall back to
TxDefaultProfilewhenTxProfileends early[603]. - 13.4 (v1) p.234 — K01:
SetChargingProfilecannot replace external constraints[507]. - 13.5 (v2) p.234 — K01: improved explanation of
TxDefaultProfileonevseId = 0[593]— updates requirements at p.234 and p.251 (GetChargingProfileRequest). - 13.6 (v2) p.236 — K01:
numberPhases/phaseToUsemismatch with EVSE capabilities[577]— updates description ofnumberPhases(p.374). - 13.7 (v1) p.236 — K01: missing requirement for
startSchedule[510]. - 13.8 (v2) p.235 — Definition of start of a relative charging profile
[638]— updatesChargingScheduleType(p.373) andChargingProfileKindEnumType(p.395). - 13.9 (v2) p.238 — K02: incorrect note of
K02.FR.03[597]. - 13.10 (v1) p.245 — K05: Remote Start Transaction with Charging Profile
[354]— updates §2.10 ChargingProfile (p.373). - 13.11 (v2) p.245 — K05: added requirements from F01/F02
[558]. - 13.12 (v1) p.250 — Unclear precondition of
K08.FR.06[462]. - 13.13 (v1) p.251 — Requirements K09
GetChargingProfiles[406]— updatesGetChargingProfileRequest(p.346). - 13.14 (v1) p.252 — K10: requirements are incomplete
[502]. - 13.15 (v1) p.253 —
K01.FR.34refers toChargingSchedulePeriodType, should beChargingScheduleType[363]. - 13.16 (v1) p.254 — Charging profile ids for external constraints profiles
[365]. - 13.17 (v1) p.259 — K15: recommendation for
NotifyEVChargingScheduleRequest[349]— affects K15, K16, K17. - 13.18 p.259 — Improved requirement definitions regarding
NotifyEVChargingScheduleRequest[349]. - 13.19 (v1) p.260 — K15: improved error handling description; note added to
K15.FR.05. - 13.20 (v1) p.260 — Note to
K15.FR.07about composite schedule. - 13.21 (v1) p.261 —
K15.FR.17has incomplete precondition[366].
14. Use case L — Firmware Management
- 14.1 (v2) p.271, p.277 — Sequence diagrams allow reboot before
status = Installed[639](L01 + L02). - 14.2 (v2) p.273 — Firmware update process graph is incomplete
[634]. - 14.3 (v1) p.273 — Missing requirement if firmware verification fails
[455]. - 14.4 (v1) p.274, p.278 — Changed note of
L01.FR.13[456](L01 + L02). - 14.5 (v2) p.274 — Changed preconditions for
DownloadScheduled[614](L01 + L02). - 14.6 (v1) p.275, p.279 — Requirement for
DownloadFailedmissing[384]. - 14.7 (v2) p.275, p.279 — Requirement for
Installedis unclear[634]. - 14.8 (v2) p.275 — Requirement for SecurityEvent
FirmwareUpdated[648]. - 14.9 (v2) p.275 — Allow the CS to report
InstallRebootingafter installing but before activating new firmware.
15. Use case M — ISO 15118 Certificate Management
- 15.1 (v2) p.285 — Improved sequence diagram (Figure 121).
- 15.2 (v1) p.288 — Improving definition of
V2GRootCertificate[283]. - 15.3 (v1) p.292 — M01/M02: contract certificate pool
[288]— updates M01.FR.01 and M02.FR.01. - 15.4 (v1) p.294 — Some occurrences of
typeOfCertificateinstead ofcertificateType[389]. - 15.5 (v2) p.296 — M05: reference to sub-CA certificate instead of root certificate
[388]. - 15.6 (v1) p.296 — M04: a CS should be allowed to prevent deletion of the last certificate of a defined type — updates
DeleteCertificateStatusEnumType(p.399). - 15.7 (v1) p.296 —
M04.FR.06misses status code[471]. - 15.8 (v2) p.296 — M04: deletion of certificate also deletes its child certificates
[309]. - 15.9 (v2) p.298 — M05: missing requirement about replacing a certificate
[617]. - 15.10 (v2) p.299 —
M06.FR.04refers to wrong status[576].
16. Use case N — Diagnostics
- 16.1 (v1) p.303 — Misspelled enumeration in
N01.FR.10[443]. - 16.2 (v1) p.303 — Requirements for
GetLogRequestare incomplete[497]. - 16.3 (v2) p.303 —
LogStatusNotificationforAcceptedCanceledmade explicit[594]. - 16.4 (v1) p.305 — N02
GetMonitoringReport: conflicting requirements[355]. - 16.5 (v2) p.305 — N02: handling of empty variables/instances in
GetMonitoringReport[565]. - 16.6 (v2) p.306 — N03:
SetMonitoringBaseRequestclarification[616]. - 16.7 (v1) p.307 — Misspelled type in
N04.FR.05[372]. - 16.8 (v1) p.308 —
N04.FR.10is too restrictive[358]. - 16.9 (v1) p.308 — Precondition incomplete in
N04.FR.11[373]. - 16.10 (v1) p.308 — Precondition unclear in
N04.FR.16[374]. - 16.11 (v2) p.308 — N04: requirement missing that hard-wired monitors cannot be changed
[628]. - 16.12 (v2) p.308 — N04: recommend
GetMonitoringReportafter reboot[643]. - 16.13 (v2) p.310 — N06: requirement missing when exceeding
ItemsPerMessage/BytesPerMessage[620]. - 16.14 (v1) p.310 — Error in
N06.FR.05[369]. - 16.15 (v2) p.311 — N07: remark about
OfflineMonitoringEventQueuingSeverity[633]. - 16.16 (v2) p.311 — Typo in
N07.FR.04[633]. - 16.17 (v1) p.311 —
N07.FR.06usesvariableMonitoringId[477]. - 16.18 (v1) p.312 — Wrong precondition in
N07.FR.14[356]. - 16.19 (v1) p.312 — Added note to
N07.FR.16andN07.FR.17[359]. - 16.20 (v1) p.312 — Moved requirements about periodic monitors from N07 to N08
[367]—N08.FR.01replaced byN08.FR.06andN08.FR.07.
17. Use case P — Data Transfer
- 17.1 (v2) p.331 — Added example for using JSON in
DataTransfer.data[574].
18. Messages
- 18.1 (v2) p.339 — Error in description of
CertificateSignedRequest[425]. - 18.2 (v1) p.344 — Typographical error in
FirmwareNotificationRequest[480]. - 18.3 (v2) p.345 — Enlarging
exiResponseinGet15118EVCertificate[637]— also updates the device-model variable. - 18.4 (v2) p.349 — Better definition of
retries[586]— applies toGetLogRequest(p.349),PublishFirmwareRequest(p.456),UpdateFirmwareRequest(p.468). - 18.5 (v1) p.351 — Remark at
InstallCertificateRequest[283]. - 18.6 (v2) p.358 — Description of
groupIdTokeninRequestStartTransactionRequest[645]. - 18.7 (v1) p.365 — Wrong description of
timestampinStatusNotificationRequest[379]. - 18.8 (v2) p.366 — Description of
IdTokeninTransactionEventRequest[583].
19. Datatypes
- 19.1 (v2) p.371 — Description of
CertificateHashDataType[542]. - 19.2 (v1) p.380 — Description of
MessageInfoType[481]. - 19.3 (v2) p.382 — Description of
OCSPRequestDataType[542]. - 19.4 (v1) p.386 —
SetVariablesRequestcan have empty string[488].
20. Enumerations
- 20.1 (v1) p.400 — Wrong description of
EventTriggerEnumType.Alerting[351]. - 20.2 (v1) p.404 —
LocationEnumType.Inletdescription[494]. - 20.3 (v2) p.406 — Voltage: improved description
[544]. - 20.4 (v1) p.409 — Enumeration value for OCPP 2.0.1 missing
[501].
21. Referenced Components and Variables
- 21.1 (v1) p.420 — List of Components and Variables in XLS format
[145]. - 21.2 (v1) p.420 — Added reference to part 1; updates Charging Infrastructure-related variables (p.446).
- 21.3 (v1) p.422 — Improved description of
OfflineThreshold[487]. - 21.4 (v2) p.423 — Variable
UnlockOnEVSideDisconnectdoes not have anevseattribute. - 21.5 (v2) p.432 —
DeviceDataCtrlr.Items/BytesPerMessagealso applies toGetMonitoringReport[649]— updatesItemsPerMessageGetReportandBytesPerMessageGetReport. - 21.6 (v1) p.426 — Variable
ClockCtrlr.TimeAdjustmentReportingThreshold[492]. - 21.7 (v1) p.427 — Variable
SecurityCtrlr.BasicAuthPassword[489]. - 21.8 (v2) p.428 — Improved description of
OrganizationName[393]. - 21.9 (v1) p.428 — Note with
AdditionalRootCertificateCheckvariable[479]. - 21.10 (v1) p.429 — Improved description of
AuthEnabled[485]. - 21.11 (v1) p.430 — New optional variable
DisableRemoteAuthorization[486]. - 21.12 (v1) p.431 — New optional variable
DisablePostAuthorize[484]. - 21.13 (v1) p.434 — Better description of
TxStartPoint/TxStopPoint[348]. - 21.14 (v1) p.435 — Note to
SampledDataSignReadings[526]. - 21.15 (v2) p.438 — Variable
AlignedDataSendDuringIdledoes not haveevseattribute. - 21.16 (v2) p.438 —
AlignedDataSignReadingsonly applies to meter values inTransactionEvent[625]. - 21.17 (v1) p.439 — Note to
PublicKeyWithSignedMeterValue[460]. - 21.18 (v2) p.440 — Improved description of
ChargingProfileMaxStackLevel[551]. - 21.19 (v2) p.442 — Typo in description of
QueueAllMessages[546]. - 21.20 (v1) p.445 — New optional
MonitoringCtrlrvariables[357]. - 21.21 (v1) p.446 —
CustomImplementationEnabledis located in wrong section[387]. - 21.22 (v1) p.447 — Reporting new connector types
[478]. - 21.23 (v1) p.449 — New variables for
ISO15118Ctrlrabout protocol version in use[378]. - 21.24 (v2) p.449 — Variables about
ISO15118Ctrlrprotocol versions moved toConnectedEV[598]. - 21.25 (v1) p.449 — New configuration variables for
ISO15118Ctrlr[180, 443]— addsISO15118PnCEnabled,ISO15118CtrlrEvseId,ISO15118RequestMeteringReceipt. - 21.26 (v2) p.449 —
ISO15118Ctrlr.PnCEnableddescription improved; new variables:ISO15118V2GCertificateInstallationEnabled,ISO15118ContractCertificateInstallationEnabled. - 21.27 (v2) p.449 — Setting Plug-and-Charge variables
[564, 571]— addsSeccId,CountryName,OrganizationName,EvseId.
22. Appendix 1 — Security Events
- 22.1 (v2) p.3 — Certain security events must be marked as
Critical[585]. - 22.2 (v2) p.3 — Unclear which security events are mandatory to implement and how that relates to
Criticalevents.
23. Appendix 3 — Standardized Components
- 23.1 (v1) p.8 —
DefaultMessageTimeoutmissing forOCPPCommCtrlr[482]. - 23.2 (v1) p.8 — Description of
NetworkConfigurationPriorityforOCPPCommCtrlr[483]. - 23.3 (v1) p.9 —
BasicAuthPasswordofSecurityCtrlr[490]. - 23.4 (v1) p.14 — New component
ConnectedEV. - 23.5 (v2) p.14 —
ConnectedEV: newEnergyCapacityvariable[553].
24. Appendix 5 — Reason Codes
- 24.1 (v1) New reason code:
MissingDeviceModelInfo[383].
Cross-reference: errata items per action file
The errata items that materially change a specific message field, response status, or behaviour are listed against the corresponding action file. Items that only fix typos or reorganize prose are not listed here.
File in ocpp2.0.1/ | Errata items |
|---|---|
Authorize.md | 6.6 (certificate chain in AuthorizeRequest), 6.2 (groupIdToken in AuthorizeResponse) |
BootNotification.md | 5.1 (HeartbeatInterval > 0) |
CertificateSigned.md | 18.1 (description) |
DataTransfer.md | 17.1 (JSON-in-data example) |
DeleteCertificate.md | 15.6 (DeleteCertificateStatusEnumType add prevention status), 15.8 (delete cascades to children) |
FirmwareStatusNotification.md | 18.2 (typo in name), 14.7 (Installed requirement), 14.9 (InstallRebooting allowed after install) |
Get15118EVCertificate.md | 18.3 (enlarged exiResponse) |
GetLog.md | 18.4 (retries definition) |
InstallCertificate.md | 18.5 (remark), 15.9 (replacing a certificate) |
MeterValues.md / TransactionEvent.md | 12.1 (limit meter values in TransactionEvent(Ended)), 12.2 (description), 12.3 (new config var), 12.5–12.7 (sign-readings placement) |
NotifyEVChargingSchedule.md | 13.17, 13.18 (recommendations) |
PublishFirmware.md / UpdateFirmware.md | 18.4 (retries definition) |
RequestStartTransaction.md | 8.4 (charging profile rules), 18.6 (groupIdToken description) |
ReserveNow.md | 10.4 (reservationId field naming) |
Reset.md | 5.10 (allow Unavailable notification during reset) |
SetChargingProfile.md | 13.4 (cannot replace external), 13.5 (evseId = 0 semantics), 13.6 (numberPhases), 13.8 (relative kind), 13.10 (ChargingProfile updates) |
SignCertificate.md / CertificateSigned.md | 4.10 (reconnect with new certificate) |
StatusNotification.md | 9.1, 9.2, 9.3 (alternative scenario, missing requirements, multi-connector) |
TransactionEvent.md | 7.1 (transaction definition), 7.4 (seqNo overflow), 7.5 (optional fields), 7.8 (groupIdToken in response), 11.1 (running cost), 18.8 (IdToken description) |
UnlockConnector.md | (no material errata) |
UpdateFirmware.md | 14.x (sequence + state graph), 18.4 (retries) |