ocpp_rs 0.3.0

Protocol implementation for Open Charge Point Protocol (OCPP) in Rust.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
Open Charge Point Protocol JSON 1.6 (OCPP-J 1.6) Specification Summary

1. Introduction
OCPP-J is a protocol for communication between Charge Points and Central Systems using JSON over WebSocket. The Central System acts as a WebSocket server, and the Charge Point acts as a client.

2. Connection
- The Charge Point connects to the Central System using a WebSocket URL derived by appending its unique identity to the endpoint URL.
  Example: ws://centralsystem/ocpp/CP001
- The OCPP version must be specified in the Sec-WebSocket-Protocol header (e.g., "ocpp1.6").
- If the Central System does not recognize the identity or subprotocol, it should reject the connection.

3. Message Framework (RPC)
- All messages are JSON arrays encoded in UTF-8.
- Three message types:
  - CALL (2): Client-to-Server request
  - CALLRESULT (3): Server-to-Client response
  - CALLERROR (4): Server-to-Client error

Message Structures:
- CALL: [2, "<UniqueId>", "<Action>", {<Payload>}]
- CALLRESULT: [3, "<UniqueId>", {<Payload>}]
- CALLERROR: [4, "<UniqueId>", "<errorCode>", "<errorDescription>", {<errorDetails>}]

- UniqueId: string, max 36 chars, used to match requests and responses.
- Action: case-sensitive string, the name of the remote procedure.
- Payload: JSON object with arguments or results. Use {} for empty payloads.

Error Codes (for CALLERROR):
- NotImplemented, NotSupported, InternalError, ProtocolError, SecurityError, FormationViolation, PropertyConstraintViolation, OccurenceConstraintViolation, TypeConstraintViolation, GenericError

4. Security
- Use either network-level security or OCPP-J over TLS.
- For TLS: Use an RSA certificate (max 2048 bytes).
- Charge Point authentication uses HTTP Basic Auth over TLS:
  - Username: Charge Point identity
  - Password: 20-byte key stored on the Charge Point
- The Central System can set the Charge Point's authorization key using ChangeConfiguration.req with key "AuthorizationKey".

5. Configuration
- WebSocketPingInterval: integer, controls client-side WebSocket Ping/Pong interval (0 disables client ping).

This summary omits implementation details, references, and extended explanations, focusing on the protocol essentials for OCPP 1.6 JSON/WebSocket.

6. Messages
6.1. Authorize.req
This contains the field definition of the Authorize.req PDU sent by the Charge Point to the Central System. See
also Authorize
FIELD NAME FIELD TYPE CARD. DESCRIPTION
idTag IdToken 1..1 Required. This contains the identifier that needs to be authorized.
6.2. Authorize.conf
This contains the field definition of the Authorize.conf PDU sent by the Central System to the Charge Point in
response to a Authorize.req PDU. See also Authorize
FIELD NAME FIELD TYPE CARD. DESCRIPTION
idTagInfo IdTagInfo 1..1 Required. This contains information about authorization status, expiry and
parent id.
6.3. BootNotification.req
This contains the field definition of the BootNotification.req PDU sent by the Charge Point to the Central System.
See also Boot Notification
FIELD NAME FIELD TYPE CARD. DESCRIPTION
chargeBoxSerialNumber CiString25Type 0..1 Optional. This contains a value that identifies the serial number of
the Charge Box inside the Charge Point. Deprecated, will be
removed in future version
chargePointModel CiString20Type 1..1 Required. This contains a value that identifies the model of the
ChargePoint.
chargePointSerialNumber CiString25Type 0..1 Optional. This contains a value that identifies the serial number of
the Charge Point.
chargePointVendor CiString20Type 1..1 Required. This contains a value that identifies the vendor of the
ChargePoint.
firmwareVersion CiString50Type 0..1 Optional. This contains the firmware version of the Charge Point.
iccid CiString20Type 0..1 Optional. This contains the ICCID of the modem’s SIM card.
imsi CiString20Type 0..1 Optional. This contains the IMSI of the modem’s SIM card.
meterSerialNumber CiString25Type 0..1 Optional. This contains the serial number of the main electrical
meter of the Charge Point.
FIELD NAME FIELD TYPE CARD. DESCRIPTION
meterType CiString25Type 0..1 Optional. This contains the type of the main electrical meter of
the Charge Point.
6.4. BootNotification.conf
This contains the field definition of the BootNotification.conf PDU sent by the Central System to the Charge Point
in response to a BootNotification.req PDU. See also Boot Notification
FIELD NAME FIELD TYPE CARD. DESCRIPTION
currentTime dateTime 1..1 Required. This contains the Central System’s current time.
interval integer 1..1 Required. When RegistrationStatus is Accepted, this contains the heartbeat
interval in seconds. If the Central System returns something other than
Accepted, the value of the interval field indicates the minimum wait time before
sending a next BootNotification request.
status RegistrationStatus 1..1 Required. This contains whether the Charge Point has been registered within the
System Central.
6.5. CancelReservation.req
This contains the field definition of the CancelReservation.req PDU sent by the Central System to the Charge
Point. See also Cancel Reservation
FIELD NAME FIELD TYPE CARD. DESCRIPTION
reservationId integer 1..1 Required. Id of the reservation to cancel.
6.6. CancelReservation.conf
This contains the field definition of the CancelReservation.conf PDU sent by the Charge Point to the Central
System in response to a CancelReservation.req PDU. See also Cancel Reservation
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status CancelReservationStatus 1..1 Required. This indicates the success or failure of the cancelling of
a reservation by Central System.
6.7. ChangeAvailability.req
This contains the field definition of the ChangeAvailability.req PDU sent by the Central System to the Charge
Point. See also Change Availability
FIELD NAME FIELD TYPE CARD. DESCRIPTION
connectorId integer
connectorId >= 0
1..1 Required. The id of the connector for which availability needs to change. Id '0'
(zero) is used if the availability of the Charge Point and all its connectors needs
to change.
type AvailabilityType 1..1 Required. This contains the type of availability change that the Charge Point
should perform.
6.8. ChangeAvailability.conf
This contains the field definition of the ChangeAvailability.conf PDU return by Charge Point to Central System.
See also Change Availability
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status AvailabilityStatus 1..1 Required. This indicates whether the Charge Point is able to perform the
availability change.
6.9. ChangeConfiguration.req
This contains the field definition of the ChangeConfiguration.req PDU sent by Central System to Charge Point. It
is RECOMMENDED that the content and meaning of the 'key' and 'value' fields is agreed upon between Charge
Point and Central System. See also Change Configuration
FIELD NAME FIELD TYPE CARD. DESCRIPTION
key CiString50Type 1..1 Required. The name of the configuration setting to change.
See for standard configuration key names and associated values
value CiString500Type 1..1 Required. The new value as string for the setting.
See for standard configuration key names and associated values
6.10. ChangeConfiguration.conf
This contains the field definition of the ChangeConfiguration.conf PDU returned from Charge Point to Central
System. See also Change Configuration
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status ConfigurationStatus 1..1 Required. Returns whether configuration change has been accepted.
6.11. ClearCache.req
This contains the field definition of the ClearCache.req PDU sent by the Central System to the Charge Point. See
also Clear Cache
No fields are defined.
6.12. ClearCache.conf
This contains the field definition of the ClearCache.conf PDU sent by the Charge Point to the Central System in
response to a ClearCache.req PDU. See also Clear Cache
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status ClearCacheStatus 1..1 Required. Accepted if the Charge Point has executed the request, otherwise
rejected.
6.13. ClearChargingProfile.req
This contains the field definition of the ClearChargingProfile.req PDU sent by the Central System to the Charge
Point.
The Central System can use this message to clear (remove) either a specific charging profile (denoted by id) or a
selection of charging profiles that match with the values of the optional connectorId, stackLevel and
chargingProfilePurpose fields. See also Clear Charging Profile
FIELD NAME FIELD TYPE CARD. DESCRIPTION
id integer 0..1 Optional. The ID of the charging profile to clear.
connectorId integer 0..1 Optional. Specifies the ID of the connector for which to clear
charging profiles. A connectorId of zero (0) specifies the charging
profile for the overall Charge Point. Absence of this parameter
means the clearing applies to all charging profiles that match the
other criteria in the request.
chargingProfilePurpose ChargingProfilePurposeType 0..1 Optional. Specifies to purpose of the charging profiles that will be
cleared, if they meet the other criteria in the request.
stackLevel integer 0..1 Optional. specifies the stackLevel for which charging profiles will
be cleared, if they meet the other criteria in the request
6.14. ClearChargingProfile.conf
This contains the field definition of the ClearChargingProfile.conf PDU sent by the Charge Point to the Central
System in response to a ClearChargingProfile.req PDU. See also Clear Charging Profile
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status ClearChargingProfileStatus 1..1 Required. Indicates if the Charge Point was able to execute the
request.
6.15. DataTransfer.req
This contains the field definition of the DataTransfer.req PDU sent either by the Central System to the Charge
Point or vice versa. See also Data Transfer
FIELD NAME FIELD TYPE CARD. DESCRIPTION
vendorId CiString255Type 1..1 Required. This identifies the Vendor specific implementation
messageId CiString50Type 0..1 Optional. Additional identification field
data Text
Length undefined
0..1 Optional. Data without specified length or format.
6.16. DataTransfer.conf
This contains the field definition of the DataTransfer.conf PDU sent by the Charge Point to the Central System or
vice versa in response to a DataTransfer.req PDU. See also Data Transfer
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status DataTransferStatus 1..1 Required. This indicates the success or failure of the data transfer.
data Text
Length undefined
0..1 Optional. Data in response to request.
6.17. DiagnosticsStatusNotification.req
This contains the field definition of the DiagnosticsStatusNotification.req PDU sent by the Charge Point to the
Central System. See also Diagnostics Status Notification
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status DiagnosticsStatus 1..1 Required. This contains the status of the diagnostics upload.
6.18. DiagnosticsStatusNotification.conf
This contains the field definition of the DiagnosticsStatusNotification.conf PDU sent by the Central System to the
Charge Point in response to a DiagnosticsStatusNotification.req PDU. See also Diagnostics Status Notification
No fields are defined.
6.19. FirmwareStatusNotification.req
This contains the field definition of the FirmwareStatusNotifitacion.req PDU sent by the Charge Point to the
Central System. See also Firmware Status Notification
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status FirmwareStatus 1..1 Required. This contains the progress status of the firmware installation.
6.20. FirmwareStatusNotification.conf
This contains the field definition of the FirmwareStatusNotification.conf PDU sent by the Central System to the
Charge Point in response to a FirmwareStatusNotification.req PDU. See also Firmware Status Notification
No fields are defined.
6.21. GetCompositeSchedule.req
This contains the field definition of the GetCompositeSchedule.req PDU sent by the Central System to the Charge
Point. See also Get Composite Schedule
FIELD NAME FIELD TYPE CARD. DESCRIPTION
connectorId integer 1..1 Required. The ID of the Connector for which the schedule is
requested. When ConnectorId=0, the Charge Point will calculate
the expected consumption for the grid connection.
duration integer 1..1 Required. Time in seconds. length of requested schedule
chargingRateUnit ChargingRateUnitType 0..1 Optional. Can be used to force a power or current profile
6.22. GetCompositeSchedule.conf
This contains the field definition of the GetCompositeSchedule.conf PDU sent by the Charge Point to the Central
System in response to a GetCompositeSchedule.req PDU. See also Get Composite Schedule
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status GetCompositeScheduleStatus 1..1 Required. Status of the request. The Charge Point will indicate if it
was able to process the request
connectorId integer 0..1 Optional. The charging schedule contained in this notification
applies to a Connector.
scheduleStart dateTime 0..1 Optional. Time. Periods contained in the charging profile are
relative to this point in time.
If status is "Rejected", this field may be absent.
chargingSchedule ChargingSchedule 0..1 Optional. Planned Composite Charging Schedule, the energy
consumption over time. Always relative to ScheduleStart.
If status is "Rejected", this field may be absent.
6.23. GetConfiguration.req
This contains the field definition of the GetConfiguration.req PDU sent by the Central System to the Charge
Point. See also Get Configuration
FIELD NAME FIELD TYPE CARD. DESCRIPTION
key CiString50Type 0..* Optional. List of keys for which the configuration value is requested.
6.24. GetConfiguration.conf
This contains the field definition of the GetConfiguration.conf PDU sent by Charge Point the to the Central
System in response to a GetConfiguration.req. See also Get Configuration
FIELD NAME FIELD TYPE CARD. DESCRIPTION
configurationKey KeyValue 0..* Optional. List of requested or known keys
unknownKey CiString50Type 0..* Optional. Requested keys that are unknown
6.25. GetDiagnostics.req
This contains the field definition of the GetDiagnostics.req PDU sent by the Central System to the Charge Point.
See also Get Diagnostics
FIELD NAME FIELD TYPE CARD. DESCRIPTION
location anyURI 1..1 Required. This contains the location (directory) where the diagnostics file shall
be uploaded to.
retries integer 0..1 Optional. This specifies how many times Charge Point must try to upload the
diagnostics before giving up. If this field is not present, it is left to Charge Point
to decide how many times it wants to retry.
retryInterval integer 0..1 Optional. The interval in seconds after which a retry may be attempted. If this
field is not present, it is left to Charge Point to decide how long to wait between
attempts.
startTime dateTime 0..1 Optional. This contains the date and time of the oldest logging information to
include in the diagnostics.
stopTime dateTime 0..1 Optional. This contains the date and time of the latest logging information to
include in the diagnostics.
6.26. GetDiagnostics.conf
This contains the field definition of the GetDiagnostics.conf PDU sent by the Charge Point to the Central System
in response to a GetDiagnostics.req PDU. See also Get Diagnostics
FIELD NAME FIELD TYPE CARD. DESCRIPTION
fileName CiString255Type 0..1 Optional. This contains the name of the file with diagnostic information that will
be uploaded. This field is not present when no diagnostic information is
available.
6.27. GetLocalListVersion.req
This contains the field definition of the GetLocalListVersion.req PDU sent by the Central System to the Charge
Point. See also Get Local List Version
No fields are defined.
6.28. GetLocalListVersion.conf
This contains the field definition of the GetLocalListVersion.conf PDU sent by the Charge Point to Central System
in response to a GetLocalListVersion.req PDU. See also Get Local List Version
FIELD NAME FIELD TYPE CARD. DESCRIPTION
listVersion integer 1..1 Required. This contains the current version number of the local authorization list
in the Charge Point.
6.29. Heartbeat.req
This contains the field definition of the Heartbeat.req PDU sent by the Charge Point to the Central System. See
also Heartbeat
No fields are defined.
6.30. Heartbeat.conf
This contains the field definition of the Heartbeat.conf PDU sent by the Central System to the Charge Point in
response to a Heartbeat.req PDU. See also Heartbeat
FIELD NAME FIELD TYPE CARD. DESCRIPTION
currentTime dateTime 1..1 Required. This contains the current time of the Central System.
6.31. MeterValues.req
This contains the field definition of the MeterValues.req PDU sent by the Charge Point to the Central System. See
also Meter Values
FIELD NAME FIELD TYPE CARD. DESCRIPTION
connectorId integer
connectorId >= 0
1..1 Required. This contains a number (>0) designating a connector of the Charge
Point.‘0’ (zero) is used to designate the main powermeter.
transactionId integer 0..1 Optional. The transaction to which these meter samples are related.
meterValue MeterValue 1..* Required. The sampled meter values with timestamps.
6.32. MeterValues.conf
This contains the field definition of the MeterValues.conf PDU sent by the Central System to the Charge Point in
response to a MeterValues.req PDU. See also Meter Values
No fields are defined.
6.33. RemoteStartTransaction.req
This contains the field definitions of the RemoteStartTransaction.req PDU sent to Charge Point by Central
System. See also Remote Start Transaction
FIELD NAME FIELD TYPE CARD. DESCRIPTION
connectorId integer 0..1 Optional. Number of the connector on which to start the transaction.
connectorId SHALL be > 0
idTag IdToken 1..1 Required. The identifier that Charge Point must use to start a transaction.
chargingProfile ChargingProfile 0..1 Optional. Charging Profile to be used by the Charge Point for the requested
transaction. ChargingProfilePurpose MUST be set to TxProfile
6.34. RemoteStartTransaction.conf
This contains the field definitions of the RemoteStartTransaction.conf PDU sent from Charge Point to Central
System. See also Remote Start Transaction
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status RemoteStartStopStatus 1..1 Required. Status indicating whether Charge Point accepts the
request to start a transaction.
6.35. RemoteStopTransaction.req
This contains the field definitions of the RemoteStopTransaction.req PDU sent to Charge Point by Central
System. See also Remote Stop Transaction
FIELD NAME FIELD TYPE CARD. DESCRIPTION
transactionId integer 1..1 Required. The identifier of the transaction which Charge Point is requested to
stop.
6.36. RemoteStopTransaction.conf
This contains the field definitions of the RemoteStopTransaction.conf PDU sent from Charge Point to Central
System. See also Remote Stop Transaction
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status RemoteStartStopStatus 1..1 Required. Status indicating whether Charge Point accepts the
request to stop a transaction.
6.37. ReserveNow.req
This contains the field definition of the ReserveNow.req PDU sent by the Central System to the Charge Point. See
also Reserve Now
FIELD NAME FIELD TYPE CARD. DESCRIPTION
connectorId integer
connectorId >= 0
1..1 Required. This contains the id of the connector to be reserved. A value of 0
means that the reservation is not for a specific connector.
expiryDate dateTime 1..1 Required. This contains the date and time when the reservation ends.
idTag IdToken 1..1 Required. The identifier for which the Charge Point has to reserve a connector.
parentIdTag IdToken 0..1 Optional. The parent idTag.
reservationId integer 1..1 Required. Unique id for this reservation.
6.38. ReserveNow.conf
This contains the field definition of the ReserveNow.conf PDU sent by the Charge Point to the Central System in
response to a ReserveNow.req PDU. See also Reserve Now
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status ReservationStatus 1..1 Required. This indicates the success or failure of the reservation.
6.39. Reset.req
This contains the field definition of the Reset.req PDU sent by the Central System to the Charge Point. See also
Reset
FIELD NAME FIELD TYPE CARD. DESCRIPTION
type ResetType 1..1 Required. This contains the type of reset that the Charge Point should perform.
6.40. Reset.conf
This contains the field definition of the Reset.conf PDU sent by the Charge Point to the Central System in
response to a Reset.req PDU. See also Reset
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status ResetStatus 1..1 Required. This indicates whether the Charge Point is able to perform the reset.
6.41. SendLocalList.req
This contains the field definition of the SendLocalList.req PDU sent by the Central System to the Charge Point.
If no (empty) localAuthorizationList is given and the updateType is Full, all identifications are removed from the
list. Requesting a Differential update without (empty) localAuthorizationList will have no effect on the list. All
idTags in the localAuthorizationList MUST be unique, no duplicate values are allowed. See also Send Local List
FIELD NAME FIELD TYPE CARD. DESCRIPTION
listVersion integer 1..1 Required. In case of a full update this is the version number of the
full list. In case of a differential update it is the version number of
the list after the update has been applied.
localAuthorizationList AuthorizationData 0..* Optional. In case of a full update this contains the list of values
that form the new local authorization list. In case of a differential
update it contains the changes to be applied to the local
authorization list in the Charge Point. Maximum number of
AuthorizationData elements is available in the configuration key:
SendLocalListMaxLength
updateType UpdateType 1..1 Required. This contains the type of update (full or differential) of
this request.
6.42. SendLocalList.conf
This contains the field definition of the SendLocalList.conf PDU sent by the Charge Point to the Central System in
response to a SendLocalList.req PDU. See also Send Local List
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status UpdateStatus 1..1 Required. This indicates whether the Charge Point has successfully received and
applied the update of the local authorization list.
6.43. SetChargingProfile.req
This contains the field definition of the SetChargingProfile.req PDU sent by the Central System to the Charge
Point.
The Central System uses this message to send charging profiles to a Charge Point. See also Set Charging Profile
FIELD NAME FIELD TYPE CARD. DESCRIPTION
connectorId integer 1..1 Required. The connector to which the charging profile applies. If connectorId = 0,
the message contains an overall limit for the Charge Point.
csChargingProfiles ChargingProfile 1..1 Required. The charging profile to be set at the Charge Point.
6.44. SetChargingProfile.conf
This contains the field definition of the SetChargingProfile.conf PDU sent by the Charge Point to the Central
System in response to a SetChargingProfile.req PDU. See also Set Charging Profile
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status ChargingProfileStatus 1..1 Required. Returns whether the Charge Point has been able to process the
message successfully. This does not guarantee the schedule will be followed to
the letter. There might be other constraints the Charge Point may need to take
into account.
6.45. StartTransaction.req
This section contains the field definition of the StartTransaction.req PDU sent by the Charge Point to the Central
System. See also Start Transaction
FIELD NAME FIELD TYPE CARD. DESCRIPTION
connectorId integer
connectorId > 0
1..1 Required. This identifies which connector of the Charge Point is used.
idTag IdToken 1..1 Required. This contains the identifier for which a transaction has to be started.
meterStart integer 1..1 Required. This contains the meter value in Wh for the connector at start of the
transaction.
reservationId integer 0..1 Optional. This contains the id of the reservation that terminates as a result of
this transaction.
timestamp dateTime 1..1 Required. This contains the date and time on which the transaction is started.
6.46. StartTransaction.conf
This contains the field definition of the StartTransaction.conf PDU sent by the Central System to the Charge Point
in response to a StartTransaction.req PDU. See also Start Transaction
FIELD NAME FIELD TYPE CARD. DESCRIPTION
idTagInfo IdTagInfo 1..1 Required. This contains information about authorization status, expiry and
parent id.
transactionId integer 1..1 Required. This contains the transaction id supplied by the Central System.
6.47. StatusNotification.req
This contains the field definition of the StatusNotification.req PDU sent by the Charge Point to the Central
System. See also Status Notification
FIELD NAME FIELD TYPE CARD. DESCRIPTION
connectorId integer
connectorId >= 0
1..1 Required. The id of the connector for which the status is reported.
Id '0' (zero) is used if the status is for the Charge Point main
controller.
errorCode ChargePointErrorCode 1..1 Required. This contains the error code reported by the Charge
Point.
info CiString50Type 0..1 Optional. Additional free format information related to the error.
status ChargePointStatus 1..1 Required. This contains the current status of the Charge Point.
timestamp dateTime 0..1 Optional. The time for which the status is reported. If absent time
of receipt of the message will be assumed.
vendorId CiString255Type 0..1 Optional. This identifies the vendor-specific implementation.
vendorErrorCode CiString50Type 0..1 Optional. This contains the vendor-specific error code.
6.48. StatusNotification.conf
This contains the field definition of the StatusNotification.conf PDU sent by the Central System to the Charge
Point in response to an StatusNotification.req PDU. See also Status Notification
No fields are defined.
6.49. StopTransaction.req
This contains the field definition of the StopTransaction.req PDU sent by the Charge Point to the Central System.
See also Stop Transaction
FIELD NAME FIELD TYPE CARD. DESCRIPTION
idTag IdToken 0..1 Optional. This contains the identifier which requested to stop the charging. It is
optional because a Charge Point may terminate charging without the presence
of an idTag, e.g. in case of a reset. A Charge Point SHALL send the idTag if known.
meterStop integer 1..1 Required. This contains the meter value in Wh for the connector at end of the
transaction.
timestamp dateTime 1..1 Required. This contains the date and time on which the transaction is stopped.
transactionId integer 1..1 Required. This contains the transaction-id as received by the
StartTransaction.conf.
reason Reason 0..1 Optional. This contains the reason why the transaction was stopped. MAY only
be omitted when the Reason is "Local".
transactionData MeterValue 0..* Optional. This contains transaction usage details relevant for billing purposes.
6.50. StopTransaction.conf
This contains the field definition of the StopTransaction.conf PDU sent by the Central System to the Charge Point
in response to a StopTransaction.req PDU. See also Stop Transaction
FIELD NAME FIELD TYPE CARD. DESCRIPTION
idTagInfo IdTagInfo 0..1 Optional. This contains information about authorization status, expiry and
parent id. It is optional, because a transaction may have been stopped without
an identifier.
6.51. TriggerMessage.req
This contains the field definition of the TriggerMessage.req PDU sent by the Central System to the Charge Point.
See also Trigger Message
FIELD NAME FIELD TYPE CARD. DESCRIPTION
requestedMessage MessageTrigger 1..1 Required.
connectorId integer
connectorId > 0
0..1 Optional. Only filled in when request applies to a specific connector.
6.52. TriggerMessage.conf
This contains the field definition of the TriggerMessage.conf PDU sent by the Charge Point to the Central System
in response to a TriggerMessage.req PDU. See also Trigger Message
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status TriggerMessageStatus 1..1 Required. Indicates whether the Charge Point will send the requested
notification or not.
6.53. UnlockConnector.req
This contains the field definition of the UnlockConnector.req PDU sent by the Central System to the Charge
Point. See also Unlock Connector
FIELD NAME FIELD TYPE CARD. DESCRIPTION
connectorId integer
connectorId > 0
1..1 Required. This contains the identifier of the connector to be unlocked.
6.54. UnlockConnector.conf
This contains the field definition of the UnlockConnector.conf PDU sent by the Charge Point to the Central
System in response to an UnlockConnector.req PDU. See also Unlock Connector
FIELD NAME FIELD TYPE CARD. DESCRIPTION
status UnlockStatus 1..1 Required. This indicates whether the Charge Point has unlocked the connector.
6.55. UpdateFirmware.req
This contains the field definition of the UpdateFirmware.req PDU sent by the Central System to the Charge Point.
See also Update Firmware
FIELD NAME FIELD TYPE CARD. DESCRIPTION
location anyURI 1..1 Required. This contains a string containing a URI pointing to a location from which to retrieve the firmware.
retries integer 0..1 Optional. This specifies how many times Charge Point must try to download the firmware before giving up. If this field is not present, it is left to Charge Point to decide how many times it wants to retry.
retrieveDate dateTime 1..1 Required. This contains the date and time after which the Charge Point is allowed to retrieve the (new) firmware.
retryInterval integer 0..1 Optional. The interval in seconds after which a retry may be attempted. If this field is not present, it is left to Charge Point to decide how long to wait between attempts.
6.56. UpdateFirmware.conf
This contains the field definition of the UpdateFirmware.conf PDU sent by the Charge Point to the Central
System in response to a UpdateFirmware.req PDU. See also Update Firmware
No fields are defined.
7. Types
7.1. AuthorizationData
Class
Elements that constitute an entry of a Local Authorization List update.
FIELD NAME FIELD TYPE CARD. DESCRIPTION
idTag IdToken 1..1 Required. The identifier to which this authorization applies.
idTagInfo IdTagInfo 0..1 Optional. (Required when UpdateType is Full) This contains information about
authorization status, expiry and parent id. For a Differential update the following
applies: If this element is present, then this entry SHALL be added or updated in
the Local Authorization List. If this element is absent, than the entry for this
idtag in the Local Authorization List SHALL be deleted.
7.2. AuthorizationStatus
Enumeration
Status in a response to an Authorize.req.
VALUE DESCRIPTION
Accepted Identifier is allowed for charging.
Blocked Identifier has been blocked. Not allowed for charging.
Expired Identifier has expired. Not allowed for charging.
Invalid Identifier is unknown. Not allowed for charging.
ConcurrentTx Identifier is already involved in another transaction and multiple transactions are not allowed. (Only relevant for a
StartTransaction.req.)
7.3. AvailabilityStatus
Enumeration
Status returned in response to ChangeAvailability.req.
VALUE DESCRIPTION
Accepted Request has been accepted and will be executed.
Rejected Request has not been accepted and will not be executed.
Scheduled Request has been accepted and will be executed when transaction(s) in progress have finished.
7.4. AvailabilityType
Enumeration
Requested availability change in ChangeAvailability.req.
VALUE DESCRIPTION
Inoperative Charge point is not available for charging.
Operative Charge point is available for charging.
7.5. CancelReservationStatus
Enumeration
Status in CancelReservation.conf.
VALUE DESCRIPTION
Accepted Reservation for the identifier has been cancelled.
Rejected Reservation could not be cancelled, because there is no reservation active for the identifier.
7.6. ChargePointErrorCode
Enumeration
Charge Point status reported in StatusNotification.req.
VALUE DESCRIPTION
ConnectorLockFailure Failure to lock or unlock connector.
EVCommunicationError Communication failure with the vehicle, might be Mode 3 or other communication protocol problem. This is
not a real error in the sense that the Charge Point doesn’t need to go to the faulted state. Instead, it should go
to the SuspendedEVSE state.
GroundFailure Ground fault circuit interrupter has been activated.
HighTemperature Temperature inside Charge Point is too high.
InternalError Error in internal hard- or software component.
LocalListConflict The authorization information received from the Central System is in conflict with the LocalAuthorizationList.
NoError No error to report.
OtherError Other type of error. More information in vendorErrorCode.
OverCurrentFailure Over current protection device has tripped.
OverVoltage Voltage has risen above an acceptable level.
PowerMeterFailure Failure to read electrical/energy/power meter.
PowerSwitchFailure Failure to control power switch.
ReaderFailure Failure with idTag reader.
ResetFailure Unable to perform a reset.
UnderVoltage Voltage has dropped below an acceptable level.
WeakSignal Wireless communication device reports a weak signal.
7.7. ChargePointStatus
Enumeration
Status reported in StatusNotification.req. A status can be reported for the Charge Point main controller
(connectorId = 0) or for a specific connector. Status for the Charge Point main controller is a subset of the
enumeration: Available, Unavailable or Faulted.
States considered Operative are: Available, Preparing, Charging, SuspendedEVSE, SuspendedEV, Finishing, Reserved.
States considered Inoperative are: Unavailable, Faulted.
STATUS CONDITION
Available When a Connector becomes available for a new user (Operative)
Preparing When a Connector becomes no longer available for a new user but there is no ongoing Transaction (yet). Typically a Connector
is in preparing state when a user presents a tag, inserts a cable or a vehicle occupies the parking bay
(Operative)
Charging When the contactor of a Connector closes, allowing the vehicle to charge
(Operative)
SuspendedEVSE When the EV is connected to the EVSE but the EVSE is not offering energy to the EV, e.g. due to a smart charging restriction,
local supply power constraints, or as the result of StartTransaction.conf indicating that charging is not allowed etc.
(Operative)
SuspendedEV When the EV is connected to the EVSE and the EVSE is offering energy but the EV is not taking any energy.
(Operative)
Finishing When a Transaction has stopped at a Connector, but the Connector is not yet available for a new user, e.g. the cable has not
been removed or the vehicle has not left the parking bay
(Operative)
Reserved When a Connector becomes reserved as a result of a Reserve Now command
(Operative)
Unavailable When a Connector becomes unavailable as the result of a Change Availability command or an event upon which the Charge
Point transitions to unavailable at its discretion. Upon receipt of a Change Availability command, the status MAY change
immediately or the change MAY be scheduled. When scheduled, the Status Notification shall be send when the availability
change becomes effective
(Inoperative)
Faulted When a Charge Point or connector has reported an error and is not available for energy delivery . (Inoperative).
7.8. ChargingProfile
Class
A ChargingProfile consists of a ChargingSchedule, describing the amount of power or current that can be
delivered per time interval.
ChargingProfile
chargingProfileId: int [1..1]
transactionId: int [0..1]
stackLevel: int [1..1]
chargingProfilePurpose: ChargingProfilePurposeType 1..1
chargingProfileKind: ChargingProfileKindType [1..1]
recurrencyKind: RecurrencyKindType 0..1
validFrom: DateTime 0..1
validTo: DateTime 0..1
chargingSchedule: ChargingSchedule [1..1]
ChargingSchedule
duration: int [0..1]
startSchedule: DateTime [0..1]
schedulingUnit: SchedulingUnitType [1..1]
chargingSchedulePeriod: ChargingSchedulepPeriod [1..*]
minChargingRate: decimal [0..1]
ChargingSchedulePeriod
startPeriod: int [1..1]
limit: int [1..1]
numberPhases: int [0..1]
ChargingProfilePurposeType
ChargePointMaxProfile
TxDefaultProfile
TxProfile
ChargingProfileKindType
Absolute
Recurring
Relative
RecurrencyKindType
Daily
Weekly
1
1
1
*
Figure 42. Class Diagram: ChargingProfile
FIELD NAME FIELD TYPE CARD. DESCRIPTION
chargingProfileId integer 1..1 Required. Unique identifier for this profile.
transactionId integer 0..1 Optional. Only valid if ChargingProfilePurpose is set to TxProfile,
the transactionId MAY be used to match the profile to a specific
transaction.
stackLevel integer >=0 1..1 Required. Value determining level in hierarchy stack of profiles.
Higher values have precedence over lower values. Lowest level is
0.
chargingProfilePurpose ChargingProfilePurposeType 1..1 Required. Defines the purpose of the schedule transferred by this
message.
chargingProfileKind ChargingProfileKindType 1..1 Required. Indicates the kind of schedule.
recurrencyKind RecurrencyKindType 0..1 Optional. Indicates the start point of a recurrence.
validFrom dateTime 0..1 Optional. Point in time at which the profile starts to be valid. If
absent, the profile is valid as soon as it is received by the Charge
Point.
validTo dateTime 0..1 Optional. Point in time at which the profile stops to be valid. If
absent, the profile is valid until it is replaced by another profile.
chargingSchedule ChargingSchedule 1..1 Required. Contains limits for the available power or current over
time.
7.9. ChargingProfileKindType
Enumeration
Kind of charging profile, as used in: ChargingProfile.
VALUE DESCRIPTION
Absolute Schedule periods are relative to a fixed point in time defined in the schedule.
Recurring The schedule restarts periodically at the first schedule period.
Relative Schedule periods are relative to a situation-specific start point (such as the start of a Transaction) that is determined by the
charge point.
7.10. ChargingProfilePurposeType
Enumeration
Purpose of the charging profile, as used in: ChargingProfile.
VALUE DESCRIPTION
ChargePointMaxProfile Configuration for the maximum power or current available for an entire Charge Point.
TxDefaultProfile Default profile *that can be configured in the Charge Point. When a new transaction is started, this profile
SHALL be used, unless it was a transaction that was started by a RemoteStartTransaction.req with a
ChargeProfile that is accepted by the Charge Point.
79
VALUE DESCRIPTION
TxProfile Profile with constraints to be imposed by the Charge Point on the current transaction, or on a new transaction
when this is started via a RemoteStartTransaction.req with a ChargeProfile. A profile with this purpose SHALL
cease to be valid when the transaction terminates.
7.11. ChargingProfileStatus
Enumeration
Status returned in response to SetChargingProfile.req.
VALUE DESCRIPTION
Accepted Request has been accepted and will be executed.
Rejected Request has not been accepted and will not be executed.
NotSupported Charge Point indicates that the request is not supported.
7.12. ChargingRateUnitType
Enumeration
Unit in which a charging schedule is defined, as used in: GetCompositeSchedule.req and ChargingSchedule
VALUE DESCRIPTION
W Watts (power).
This is the TOTAL allowed charging power.
If used for AC Charging, the phase current should be calculated via: Current per phase = Power / (Line Voltage * Number of
Phases). The "Line Voltage" used in the calculation is not the measured voltage, but the set voltage for the area (hence, 230 of
110 volt). The "Number of Phases" is the numberPhases from the ChargingSchedulePeriod.
It is usually more convenient to use this for DC charging.
Note that if numberPhases in a ChargingSchedulePeriod is absent, 3 SHALL be assumed.
A Amperes (current).
The amount of Ampere per phase, not the sum of all phases.
It is usually more convenient to use this for AC charging.
7.13. ChargingSchedule
Class
Charging schedule structure defines a list of charging periods, as used in: GetCompositeSchedule.conf and
ChargingProfile.
FIELD NAME FIELD TYPE CARD. DESCRIPTION
duration integer 0..1 Optional. Duration of the charging schedule in seconds. If the
duration is left empty, the last period will continue indefinitely or
until end of the transaction in case startSchedule is absent.
startSchedule dateTime 0..1 Optional. Starting point of an absolute schedule. If absent the
schedule will be relative to start of charging.
chargingRateUnit ChargingRateUnitType 1..1 Required. The unit of measure Limit is expressed in.
chargingSchedulePeriod ChargingSchedulePeriod 1..* Required. List of ChargingSchedulePeriod elements defining
maximum power or current usage over time. The startSchedule of
the first ChargingSchedulePeriod SHALL always be 0.
minChargingRate decimal 0..1 Optional. Minimum charging rate supported by the electric
vehicle. The unit of measure is defined by the chargingRateUnit.
This parameter is intended to be used by a local smart charging
algorithm to optimize the power allocation for in the case a
charging process is inefficient at lower charging rates. Accepts at
most one digit fraction (e.g. 8.1)
7.14. ChargingSchedulePeriod
Class
Charging schedule period structure defines a time period in a charging schedule, as used in: ChargingSchedule.
FIELD NAME FIELD TYPE CARD. DESCRIPTION
startPeriod integer 1..1 Required. Start of the period, in seconds from the start of schedule. The value of
StartPeriod also defines the stop time of the previous period.
limit decimal 1..1 Required. Charging rate limit during the schedule period, in the applicable
chargingRateUnit, for example in Amperes or Watts. Accepts at most one digit
fraction (e.g. 8.1).
numberPhases integer 0..1 Optional. The number of phases that can be used for charging. If a number of
phases is needed, numberPhases=3 will be assumed unless another number is
given.
7.15. CiString20Type
Type
Generic used case insensitive string of 20 characters.
FIELD TYPE DESCRIPTION
CiString[20] String is case insensitive.
7.16. CiString25Type
Type
Generic used case insensitive string of 25 characters.
FIELD TYPE DESCRIPTION
CiString[25] String is case insensitive.
7.17. CiString50Type
Type
Generic used case insensitive string of 50 characters.
FIELD TYPE DESCRIPTION
CiString[50] String is case insensitive.
7.18. CiString255Type
Type
Generic used case insensitive string of 255 characters.
FIELD TYPE DESCRIPTION
CiString[255] String is case insensitive.
7.19. CiString500Type
Type
Generic used case insensitive string of 500 characters.
FIELD TYPE DESCRIPTION
CiString[500] String is case insensitive.
7.20. ClearCacheStatus
Enumeration
Status returned in response to ClearCache.req.
VALUE DESCRIPTION
Accepted Command has been executed.
82
VALUE DESCRIPTION
Rejected Command has not been executed.
7.21. ClearChargingProfileStatus
Enumeration
Status returned in response to ClearChargingProfile.req.
VALUE DESCRIPTION
Accepted Request has been accepted and will be executed.
Unknown No Charging Profile(s) were found matching the request.
7.22. ConfigurationStatus
Enumeration
Status in ChangeConfiguration.conf.
VALUE DESCRIPTION
Accepted Configuration key is supported and setting has been changed.
Rejected Configuration key is supported, but setting could not be changed.
RebootRequired Configuration key is supported and setting has been changed, but change will be available after reboot (Charge Point will not reboot itself)
NotSupported Configuration key is not supported.
7.23. DataTransferStatus
Enumeration
Status in DataTransfer.conf.
VALUE DESCRIPTION
Accepted Message has been accepted and the contained request is accepted.
Rejected Message has been accepted but the contained request is rejected.
UnknownMessageId Message could not be interpreted due to unknown messageId string.
83
VALUE DESCRIPTION
UnknownVendorId Message could not be interpreted due to unknown vendorId string.
7.24. DiagnosticsStatus
Enumeration
Status in DiagnosticsStatusNotification.req.
VALUE DESCRIPTION
Idle Charge Point is not performing diagnostics related tasks. Status Idle SHALL only be used as in a
DiagnosticsStatusNotification.req that was triggered by a TriggerMessage.req
Uploaded Diagnostics information has been uploaded.
UploadFailed Uploading of diagnostics failed.
Uploading File is being uploaded.
7.25. FirmwareStatus
Enumeration
Status of a firmware download as reported in FirmwareStatusNotification.req.
VALUE DESCRIPTION
Downloaded New firmware has been downloaded by Charge Point.
DownloadFailed Charge point failed to download firmware.
Downloading Firmware is being downloaded.
Idle Charge Point is not performing firmware update related tasks. Status Idle SHALL only be used as in a
FirmwareStatusNotification.req that was triggered by a TriggerMessage.req
InstallationFailed Installation of new firmware has failed.
Installing Firmware is being installed.
Installed New firmware has successfully been installed in charge point.
7.26. GetCompositeScheduleStatus
Enumeration
Status returned in response to GetCompositeSchedule.req.
VALUE DESCRIPTION
Accepted Request has been accepted and will be executed.
Rejected Request has not been accepted and will not be executed.
7.27. IdTagInfo
Class
Contains status information about an identifier. It is returned in Authorize, Start Transaction and Stop
Transaction responses.
If expiryDate is not given, the status has no end date.
FIELD NAME FIELD TYPE CARD. DESCRIPTION
expiryDate dateTime 0..1 Optional. This contains the date at which idTag should be removed from the
Authorization Cache.
parentIdTag IdToken 0..1 Optional. This contains the parent-identifier.
status AuthorizationStatus 1..1 Required. This contains whether the idTag has been accepted or not by the
Central System.
7.28. IdToken
Type
Contains the identifier to use for authorization. It is a case insensitive string. In future releases this may become
a complex type to support multiple forms of identifiers.
FIELD TYPE DESCRIPTION
CiString20Type IdToken is case insensitive.
7.29. KeyValue
Class
Contains information about a specific configuration key. It is returned in GetConfiguration.conf.
NAME FIELD TYPE CARD. DESCRIPTION
key CiString50Type 1..1 Required.
85
NAME FIELD TYPE CARD. DESCRIPTION
readonly boolean 1..1 Required. False if the value can be set with the ChangeConfiguration message.
value CiString500Type 0..1 Optional. If key is known but not set, this field may be absent.
7.30. Location
Enumeration
Allowable values of the optional "location" field of a value element in SampledValue.
VALUE DESCRIPTION
Body Measurement inside body of Charge Point (e.g. Temperature)
Cable Measurement taken from cable between EV and Charge Point
EV Measurement taken by EV
Inlet Measurement at network (“grid”) inlet connection
Outlet Measurement at a Connector. Default value
7.31. Measurand
Enumeration
Allowable values of the optional "measurand" field of a Value element, as used in MeterValues.req and
StopTransaction.req messages. Default value of "measurand" is always "Energy.Active.Import.Register"
 Import is energy flow from the Grid to the Charge Point, EV or other load. Export is energy flow
from the EV to the Charge Point and/or from the Charge Point to the Grid.
VALUE DESCRIPTION
Current.Export Instantaneous current flow from EV
Current.Import Instantaneous current flow to EV
Current.Offered Maximum current offered to EV
Energy.Active.Export.Register Numerical value read from the "active electrical energy" (Wh or kWh) register of the (most authoritative)
electrical meter measuring energy exported (to the grid).
Energy.Active.Import.Register Numerical value read from the "active electrical energy" (Wh or kWh) register of the (most authoritative)
electrical meter measuring energy imported (from the grid supply).
86
VALUE DESCRIPTION
Energy.Reactive.Export.Register Numerical value read from the "reactive electrical energy" (VARh or kVARh) register of the (most
authoritative) electrical meter measuring energy exported (to the grid).
Energy.Reactive.Import.Register Numerical value read from the "reactive electrical energy" (VARh or kVARh) register of the (most
authoritative) electrical meter measuring energy imported (from the grid supply).
Energy.Active.Export.Interval Absolute amount of "active electrical energy" (Wh or kWh) exported (to the grid) during an associated time
"interval", specified by a Metervalues ReadingContext, and applicable interval duration configuration values
(in seconds) for "ClockAlignedDataInterval" and "MeterValueSampleInterval".
Energy.Active.Import.Interval Absolute amount of "active electrical energy" (Wh or kWh) imported (from the grid supply) during an
associated time "interval", specified by a Metervalues ReadingContext, and applicable interval duration
configuration values (in seconds) for "ClockAlignedDataInterval" and "MeterValueSampleInterval".
Energy.Reactive.Export.Interval Absolute amount of "reactive electrical energy" (VARh or kVARh) exported (to the grid) during an associated
time "interval", specified by a Metervalues ReadingContext, and applicable interval duration configuration
values (in seconds) for "ClockAlignedDataInterval" and "MeterValueSampleInterval".
Energy.Reactive.Import.Interval Absolute amount of "reactive electrical energy" (VARh or kVARh) imported (from the grid supply) during an associated time "interval", specified by a Metervalues ReadingContext, and applicable interval duration configuration values (in seconds) for "ClockAlignedDataInterval" and "MeterValueSampleInterval".
Frequency Instantaneous reading of powerline frequency. NOTE: OCPP 1.6 does not have a UnitOfMeasure for
frequency, the UnitOfMeasure for any SampledValue with measurand: Frequency is Hertz.
Power.Active.Export Instantaneous active power exported by EV. (W or kW)
Power.Active.Import Instantaneous active power imported by EV. (W or kW)
Power.Factor Instantaneous power factor of total energy flow
Power.Offered Maximum power offered to EV
Power.Reactive.Export Instantaneous reactive power exported by EV. (var or kvar)
Power.Reactive.Import Instantaneous reactive power imported by EV. (var or kvar)
RPM Fan speed in RPM
SoC State of charge of charging vehicle in percentage
Temperature Temperature reading inside Charge Point.
Voltage Instantaneous AC RMS supply voltage
87

All "Register" values relating to a single charging transaction, or a non-transactional consumer
(e.g. charge point internal power supply, overall supply) MUST be monotonically increasing in
time.
The actual quantity of energy corresponding to a reported ".Register" value is computed as
the register value in question minus the register value recorded/reported at the start of the
transaction or other relevant starting reference point in time. For improved auditability,
".Register" values SHOULD reported exactly as they are directly read from a non-volatile
register in the electrical metering hardware, and SHOULD NOT be re-based to zero at the start
of transactions. This allows any "missing energy" between sequential transactions, due to
hardware fault, mis-wiring, fraud, etc. to be identified, by allowing the Central System to
confirm that the starting register value of any transaction is identical to the finishing register
value of the preceding transaction on the same connector.
7.32. MessageTrigger
Enumeration
Type of request to be triggered in a TriggerMessage.req.
VALUE DESCRIPTION
BootNotification To trigger a BootNotification request
DiagnosticsStatusNotification To trigger a DiagnosticsStatusNotification request
FirmwareStatusNotification To trigger a FirmwareStatusNotification request
Heartbeat To trigger a Heartbeat request
MeterValues To trigger a MeterValues request
StatusNotification To trigger a StatusNotification request
7.33. MeterValue
Class
Collection of one or more sampled values in MeterValues.req and StopTransaction.req. All sampled values in a
MeterValue are sampled at the same point in time.
FIELD NAME FIELD TYPE CARD. DESCRIPTION
timestamp dateTime 1..1 Required. Timestamp for measured value(s).
sampledValue SampledValue 1..* Required. One or more measured values
88
7.34. Phase
Enumeration
Phase as used in SampledValue. Phase specifies how a measured value is to be interpreted. Please note that not
all values of Phase are applicable to all Measurands.
VALUE DESCRIPTION
L1 Measured on L1
L2 Measured on L2
L3 Measured on L3
N Measured on Neutral
L1-N Measured on L1 with respect to Neutral conductor
L2-N Measured on L2 with respect to Neutral conductor
L3-N Measured on L3 with respect to Neutral conductor
L1-L2 Measured between L1 and L2
L2-L3 Measured between L2 and L3
L3-L1 Measured between L3 and L1
7.35. ReadingContext
Enumeration
Values of the context field of a value in SampledValue.
VALUE DESCRIPTION
Interruption.Begin Value taken at start of interruption.
Interruption.End Value taken when resuming after interruption.
Other Value for any other situations.
Sample.Clock Value taken at clock aligned interval.
Sample.Periodic Value taken as periodic sample relative to start time of transaction.
Transaction.Begin Value taken at start of transaction.
Transaction.End Value taken at end of transaction.
Trigger Value taken in response to a TriggerMessage.req
7.36. Reason
Enumeration
Reason for stopping a transaction in StopTransaction.req.
VALUE DESCRIPTION
DeAuthorized The transaction was stopped because of the authorization status in a StartTransaction.conf
EmergencyStop Emergency stop button was used.
EVDisconnected disconnecting of cable, vehicle moved away from inductive charge unit.
HardReset A hard reset command was received.
Local Stopped locally on request of the user at the Charge Point. This is a regular termination of a transaction. Examples: presenting
an RFID tag, pressing a button to stop.
Other Any other reason.
PowerLoss Complete loss of power.
Reboot A locally initiated reset/reboot occurred. (for instance watchdog kicked in)
Remote Stopped remotely on request of the user. This is a regular termination of a transaction. Examples: termination using a
smartphone app, exceeding a (non local) prepaid credit.
SoftReset A soft reset command was received.
UnlockCommand Central System sent an Unlock Connector command.
7.37. RecurrencyKindType
Enumeration
Type of recurrence of a charging profile, as used in ChargingProfile.
VALUE DESCRIPTION
Daily The schedule restarts every 24 hours, at the same time as in the startSchedule.
90
VALUE DESCRIPTION
Weekly The schedule restarts every 7 days, at the same time and day-of-the-week as in the startSchedule.
7.38. RegistrationStatus
Enumeration
Result of registration in response to BootNotification.req.
VALUE DESCRIPTION
Accepted Charge point is accepted by Central System.
Pending Central System is not yet ready to accept the Charge Point. Central System may send messages to retrieve information or
prepare the Charge Point.
Rejected Charge point is not accepted by Central System. This may happen when the Charge Point id is not known by Central System.
7.39. RemoteStartStopStatus
Enumeration
The result of a RemoteStartTransaction.req or RemoteStopTransaction.req request.
VALUE DESCRIPTION
Accepted Command will be executed.
Rejected Command will not be executed.
7.40. ReservationStatus
Enumeration
Status in ReserveNow.conf.
VALUE DESCRIPTION
Accepted Reservation has been made.
Faulted Reservation has not been made, because connectors or specified connector are in a faulted state.
Occupied Reservation has not been made. All connectors or the specified connector are occupied.
Rejected Reservation has not been made. Charge Point is not configured to accept reservations.
91
VALUE DESCRIPTION
Unavailable Reservation has not been made, because connectors or specified connector are in an unavailable state.
7.41. ResetStatus
Enumeration
Result of Reset.req.
VALUE DESCRIPTION
Accepted Command will be executed.
Rejected Command will not be executed.
7.42. ResetType
Enumeration
Type of reset requested by Reset.req.
VALUE DESCRIPTION
Hard Restart (all) the hardware, the Charge Point is not required to gracefully stop ongoing transaction. If possible the Charge Point
sends a StopTransaction.req for previously ongoing transactions after having restarted and having been accepted by the
Central System via a BootNotification.conf. This is a last resort solution for a not correctly functioning Charge Point, by sending
a "hard" reset, (queued) information might get lost.
Soft Stop ongoing transactions gracefully and sending StopTransaction.req for every ongoing transaction. It should then restart the
application software (if possible, otherwise restart the processor/controller).
7.43. SampledValue
Class
Single sampled value in MeterValues. Each value can be accompanied by optional fields.
FIELD NAME FIELD TYPE CARD. DESCRIPTION
value String 1..1 Required. Value as a “Raw” (decimal) number or “SignedData”. Field Type is
“string” to allow for digitally signed data readings. Decimal numeric values are
also acceptable to allow fractional values for measurands such as Temperature
and Current.
context ReadingContext 0..1 Optional. Type of detail value: start, end or sample. Default = “Sample.Periodic”
format ValueFormat 0..1 Optional. Raw or signed data. Default = “Raw”
measurand Measurand 0..1 Optional. Type of measurement. Default = “Energy.Active.Import.Register”
phase Phase 0..1 Optional. indicates how the measured value is to be interpreted. For instance
between L1 and neutral (L1-N) Please note that not all values of phase are
applicable to all Measurands. When phase is absent, the measured value is
interpreted as an overall value.
location Location 0..1 Optional. Location of measurement. Default=”Outlet”
unit UnitOfMeasure 0..1 Optional. Unit of the value. Default = “Wh” if the (default) measurand is an
“Energy” type.
7.44. TriggerMessageStatus
Enumeration
Status in TriggerMessage.conf.
VALUE DESCRIPTION
Accepted Requested notification will be sent.
Rejected Requested notification will not be sent.
NotImplemented Requested notification cannot be sent because it is either not implemented or unknown.
7.45. UnitOfMeasure
Enumeration
Allowable values of the optional "unit" field of a Value element, as used in SampledValue. Default value of "unit"
is always "Wh".
VALUE DESCRIPTION
Wh Watt-hours (energy). Default.
kWh kiloWatt-hours (energy).
varh Var-hours (reactive energy).
kvarh kilovar-hours (reactive energy).
W Watts (power).
kW kilowatts (power).
VA VoltAmpere (apparent power).
93
VALUE DESCRIPTION
kVA kiloVolt Ampere (apparent power).
var Vars (reactive power).
kvar kilovars (reactive power).
A Amperes (current).
V Voltage (r.m.s. AC).
Celsius Degrees (temperature).
Fahrenheit Degrees (temperature).
K Degrees Kelvin (temperature).
Percent Percentage.
7.46. UnlockStatus
Enumeration
Status in response to UnlockConnector.req.
VALUE DESCRIPTION
Unlocked Connector has successfully been unlocked.
UnlockFailed Failed to unlock the connector: The Charge Point has tried to unlock the connector and has detected that the connector is still
locked or the unlock mechanism failed.
NotSupported Charge Point has no connector lock, or ConnectorId is unknown.
7.47. UpdateStatus
Enumeration
Type of update for a SendLocalList.req.
VALUE DESCRIPTION
Accepted Local Authorization List successfully updated.
Failed Failed to update the Local Authorization List.
94
VALUE DESCRIPTION
NotSupported Update of Local Authorization List is not supported by Charge Point.
VersionMismatch Version number in the request for a differential update is less or equal then version number of current list.
7.48. UpdateType
Enumeration
Type of update for a SendLocalList.req.
VALUE DESCRIPTION
Differential Indicates that the current Local Authorization List must be updated with the values in this message.
Full Indicates that the current Local Authorization List must be replaced by the values in this message.
7.49. ValueFormat
Enumeration
Format that specifies how the value element in SampledValue is to be interpreted.
VALUE DESCRIPTION
Raw Data is to be interpreted as integer/decimal numeric data.
SignedData Data is represented as a signed binary data block, encoded as hex data.
75
8. Firmware and Diagnostics File Transfer
This section is normative.
The supported transfer protocols are controlled by the configuration key SupportedFileTransferProtocols. FTP,
FTPS, HTTP, HTTPS (CSL)
8.1. Download Firmware
When a Charge Point is notified about new firmware, it needs to be able to download this firmware. The Central
System supplies in the request an URL where the firmware can be downloaded. The URL also contains the
protocol which must be used to download the firmware.
It is recommended that the firmware is downloaded via FTP or FTPS. FTP(S) is better optimized for large binary
data than HTTP. Also FTP(S) has the ability to resume downloads. In case a download is interrupted, the Charge
Point can resume downloading after the part it already has downloaded. The FTP URL is of format: ftp://user
:password@host:port/path in which the parts user:password@, :password or :port may be excluded.
To ensure that the correct firmware is downloaded, it is RECOMMENDED that the firmware is also digitally
signed.
8.2. Upload Diagnostics
When a Charge Point is requested to upload a diagnostics file, the Central System supplies in the request an URL
where the Charge Point should upload the file. The URL also contains the protocol which must be used to upload
the file.
It is recommended that the diagnostics file is downloaded via FTP or FTPS. FTP(S) is better optimized for large
binary data than HTTP. Also FTP(S) has the ability to resume uploads. In case an upload is interrupted, the
Charge Point can resume uploading after the part it already has uploaded. The FTP URL is of format: ftp://user
:password@host:port/path in which the parts user:password@, :password or :port may be excluded.
96
9. Standard Configuration Key Names & Values
Below follows a list of all configuration keys with a role standardized in this specification. The list is separated by
Feature Profiles. A required configuration key mentioned under a particular profile only has to be supported by
the Charge Point if it supports that profile.
For optional Configuration Keys with a boolean type, the following rules apply for the configuration key in the
response to a GetConfiguration.req without a list of keys:
• If the key is present, the Charge Point provides the functionality that is configured by the key, and it can be
enabled or disabled by setting the value for the key.
• If the key is not present, the Charge Point does not provide the functionality that can be configured by the
key.
The "Accessibility" property shows if the value for a certain configuration key is read-only ("R") or read-write
("RW"). In case the key is read-only, the Central System can read the value for the key using GetConfiguration, but
not write it. In case the accessibility is read-write, the Central System can also write the value for the key using
ChangeConfiguration.
9.1. Core Profile
9.1.1. AllowOfflineTxForUnknownId
Required/optional optional
Accessibility RW
Type boolean
Description If this key exists, the Charge Point supports Unknown Offline Authorization. If this key reports a value of true, Unknown Offline
Authorization is enabled.
9.1.2. AuthorizationCacheEnabled
Required/optional optional
Accessibility RW
Type boolean
Description If this key exists, the Charge Point supports an Authorization Cache. If this key reports a value of true, the Authorization Cache
is enabled.
9.1.3. AuthorizeRemoteTxRequests
Required/optional required
Accessibility R or RW. Choice is up to Charge Point implementation.
Type boolean
Description Whether a remote request to start a transaction in the form of a RemoteStartTransaction.req message should be authorized
beforehand like a local action to start a transaction.
9.1.4. BlinkRepeat
Required/optional optional
Accessibility RW
Type integer
Unit times
Description Number of times to blink Charge Point lighting when signalling
9.1.5. ClockAlignedDataInterval
Required/optional required
Accessibility RW
Type integer
Unit seconds
Description Size (in seconds) of the clock-aligned data interval. This is the size (in seconds) of the set of evenly spaced aggregation intervals
per day, starting at 00:00:00 (midnight). For example, a value of 900 (15 minutes) indicates that every day should be broken into
96 15-minute intervals.
When clock aligned data is being transmitted, the interval in question is identified by the start time and (optional) duration
interval value, represented according to the ISO8601 standard. All "per-period" data (e.g. energy readings) should be
accumulated (for "flow" type measurands such as energy), or averaged (for other values) across the entire interval (or partial
interval, at the beginning or end of a Transaction), and transmitted (if so enabled) at the end of each interval, bearing the
interval start time timestamp.
A value of "0" (numeric zero), by convention, is to be interpreted to mean that no clock-aligned data should be transmitted.
9.1.6. ConnectionTimeOut
Required/optional required
Accessibility RW
Type integer
Unit seconds
Description Interval *from beginning of status: 'Preparing' until incipient Transaction is automatically canceled, due to failure of EV driver to
(correctly) insert the charging cable connector(s) into the appropriate socket(s). The Charge Point SHALL go back to the original
state, probably: 'Available'.
9.1.7. ConnectorPhaseRotation
Required/optional required
Accessibility RW
Type CSL
Description The phase rotation per connector in respect to the connector’s electrical meter (or if absent, the grid connection). Possible
values per connector are:
NotApplicable (for Single phase or DC Charge Points)
Unknown (not (yet) known)
RST (Standard Reference Phasing)
RTS (Reversed Reference Phasing)
SRT (Reversed 240 degree rotation)
STR (Standard 120 degree rotation)
TRS (Standard 240 degree rotation)
TSR (Reversed 120 degree rotation)
R can be identified as phase 1 (L1), S as phase 2 (L2), T as phase 3 (L3).
If known, the Charge Point MAY also report the phase rotation between the grid connection and the main energymeter by
using index number Zero (0).
Values are reported in CSL, formatted: 0.RST, 1.RST, 2.RTS
9.1.8. ConnectorPhaseRotationMaxLength
Required/optional optional
Accessibility R
Type integer
Description Maximum number of items in a ConnectorPhaseRotation Configuration Key.
9.1.9. GetConfigurationMaxKeys
Required/optional required
Accessibility R
Type integer
Description Maximum number of requested configuration keys in a GetConfiguration.req PDU.
9.1.10. HeartbeatInterval
Required/optional required
Accessibility RW
Type integer
Unit seconds
Description Interval of inactivity (no OCPP exchanges) with central system after which the Charge Point should send a Heartbeat.req PDU
9.1.11. LightIntensity
Required/optional optional
Accessibility RW
Type integer
Unit %
Description Percentage of maximum intensity at which to illuminate Charge Point lighting
9.1.12. LocalAuthorizeOffline
Required/optional required
Accessibility RW
Type boolean
Description whether the Charge Point, when offline, will start a transaction for locally-authorized identifiers.
9.1.13. LocalPreAuthorize
Required/optional required
Accessibility RW
Type boolean
Description whether the Charge Point, when online, will start a transaction for locally-authorized identifiers without waiting for or
requesting an Authorize.conf from the Central System
9.1.14. MaxEnergyOnInvalidId
Required/optional optional
Accessibility RW
Type integer
Unit Wh
Description Maximum energy in Wh delivered when an identifier is invalidated by the Central System after start of a transaction.
9.1.15. MeterValuesAlignedData
Required/optional required
Accessibility RW
Type CSL
Description Clock-aligned measurand(s) to be included in a MeterValues.req PDU, every ClockAlignedDataInterval seconds
9.1.16. MeterValuesAlignedDataMaxLength
Required/optional optional
Accessibility R
Type integer
Description Maximum number of items in a MeterValuesAlignedData Configuration Key.
9.1.17. MeterValuesSampledData
Required/optional required
Accessibility RW
Type CSL
Description Sampled measurands to be included in a MeterValues.req PDU, every MeterValueSampleInterval seconds. Where
applicable, the Measurand is combined with the optional phase; for instance: Voltage.L1
Default: "Energy.Active.Import.Register"
9.1.18. MeterValuesSampledDataMaxLength
Required/optional optional
Accessibility R
Type integer
Description Maximum number of items in a MeterValuesSampledData Configuration Key.
9.1.19. MeterValueSampleInterval
Required/optional required
Accessibility RW
Type integer
Unit seconds
Description Interval between sampling of metering (or other) data, intended to be transmitted by "MeterValues" PDUs. For charging
session data (ConnectorId>0), samples are acquired and transmitted periodically at this interval from the start of the charging
transaction.
A value of "0" (numeric zero), by convention, is to be interpreted to mean that no sampled data should be transmitted.
9.1.20. MinimumStatusDuration
Required/optional optional
Accessibility RW
Type integer
Unit seconds
Description The minimum duration that a Charge Point or Connector status is stable before a StatusNotification.req PDU is sent to the
Central System.
9.1.21. NumberOfConnectors
Required/optional required
Accessibility R
Type integer
Description The number of physical charging connectors of this Charge Point.
9.1.22. ResetRetries
Required/optional required
Accessibility RW
Type integer
Unit times
Description Number of times to retry an unsuccessful reset of the Charge Point.
9.1.23. StopTransactionOnEVSideDisconnect
Required/optional required
Accessibility RW
Type boolean
Description When set to true, the Charge Point SHALL administratively stop the transaction when the cable is unplugged from the EV.
9.1.24. StopTransactionOnInvalidId
Required/optional required
Accessibility RW
Type boolean
Description whether the Charge Point will stop an ongoing transaction when it receives a non- Accepted authorization status in a
StartTransaction.conf for this transaction
9.1.25. StopTxnAlignedData
Required/optional required
Accessibility RW
Type CSL
Description Clock-aligned periodic measurand(s) to be included in the TransactionData element of StopTransaction.req MeterValues.req
PDU for every ClockAlignedDataInterval of the Transaction
9.1.26. StopTxnAlignedDataMaxLength
Required/optional optional
Accessibility R
Type integer
Description Maximum number of items in a StopTxnAlignedData Configuration Key.
9.1.27. StopTxnSampledData
Required/optional required
Accessibility RW
Type CSL
Description Sampled measurands to be included in the TransactionData element of StopTransaction.req PDU, every
MeterValueSampleInterval seconds from the start of the charging session
9.1.28. StopTxnSampledDataMaxLength
Required/optional optional
Accessibility R
Type integer
Description Maximum number of items in a StopTxnSampledData Configuration Key.
9.1.29. SupportedFeatureProfiles
Required/optional required
Accessibility R
Type CSL
Description A list of supported Feature Profiles. Possible profile identifiers: Core, FirmwareManagement, LocalAuthListManagement,
Reservation, SmartCharging and RemoteTrigger.
9.1.30. SupportedFeatureProfilesMaxLength
Required/optional optional
Accessibility R
Type integer
Description Maximum number of items in a SupportedFeatureProfiles Configuration Key.
9.1.31. TransactionMessageAttempts
Required/optional required
Accessibility RW
Type integer
Unit times
Description How often the Charge Point should try to submit a transaction-related message when the Central System fails to process it.
9.1.32. TransactionMessageRetryInterval
Required/optional required
Accessibility RW
Type integer
Unit seconds
Description How long the Charge Point should wait before resubmitting a transaction-related message that the Central System failed to
process.
9.1.33. UnlockConnectorOnEVSideDisconnect
Required/optional required
Accessibility RW
Type boolean
Description When set to true, the Charge Point SHALL unlock the cable on Charge Point side when the cable is unplugged at the EV.
9.1.34. WebSocketPingInterval
Required/optional optional
Accessibility RW
Type integer
Unit seconds
Description Only relevant for websocket implementations. 0 disables client side websocket Ping/Pong. In this case there is either no
ping/pong or the server initiates the ping and client responds with Pong. Positive values are interpreted as number of seconds
between pings. Negative values are not allowed. ChangeConfiguration is expected to return a REJECTED result.
9.2. Local Auth List Management Profile
9.2.1. LocalAuthListEnabled
Required/optional required
Accessibility RW
Type boolean
Description whether the Local Authorization List is enabled
9.2.2. LocalAuthListMaxLength
Required/optional required
Accessibility R
Type integer
Description Maximum number of identifications that can be stored in the Local Authorization List
9.2.3. SendLocalListMaxLength
Required/optional required
Accessibility R
Type integer
Description Maximum number of identifications that can be send in a single SendLocalList.req
9.3. Reservation Profile
9.3.1. ReserveConnectorZeroSupported
Required/optional optional
Accessibility R
Type boolean
Description If this configuration key is present and set to true: Charge Point support reservations on connector 0.
9.4. Smart Charging Profile
9.4.1. ChargeProfileMaxStackLevel
Required/optional required
Accessibility R
Type integer
Description Max StackLevel of a ChargingProfile. The number defined also indicates the max allowed number of installed charging
schedules per Charging Profile Purposes.
9.4.2. ChargingScheduleAllowedChargingRateUnit
Required/optional required
Accessibility R
Type CSL
Description A list of supported quantities for use in a ChargingSchedule. Allowed values: 'Current' and 'Power'
9.4.3. ChargingScheduleMaxPeriods
Required/optional required
Accessibility R
Type integer
Description Maximum number of periods that may be defined per ChargingSchedule.
9.4.4. ConnectorSwitch3to1PhaseSupported
Required/optional optional
Accessibility R
Type boolean
Description If defined and true, this Charge Point support switching from 3 to 1 phase during a Transaction.
9.4.5. MaxChargingProfilesInstalled
Required/optional required
Accessibility R
Type integer
Description Maximum number of Charging profiles installed at a time
109
Appendix A: New in OCPP 1.6
The following changes are made in OCPP 1.6 compared to OCPP 1.5 [OCPP1.5]:
• Smart Charging is added
• A binding to JSON over WebSocket as a transport protocol is added, reducing data usage and enabling
OCPP communication through NAT routers, see: OCPP JSON Specification
• Extra statuses are added to the ChargePointStatus enumeration, giving the CPO and ultimately end-users
more information about the current status of a Charge Point
• Structure of MeterValues.req is changed to eliminate use of XML Attributes, this is needed for support of
JSON (no attribute support in JSON).
• Extra values are added to the Measurand enumeration, giving Charge Point manufacturers the possibility
to send new information to a Central System, such as the State of Charge of an EV
• The TriggerMessage message is added, giving the Central System the possibility to request information
from the Charge Point
• A new Pending member is added to the RegistrationStatus enumeration used in BootNotification.conf
• More and clearer configuration keys are added, making it clearer to the CPO how to configure the
different business cases in a Charge Point
• The messages and configuration keys are split into profiles, making it easier to implement OCPP gradually
or only in part
• Known ambiguities are removed (e.g. when to use UnlockConnector.req, how to respond to RemoteStart
/Stop, Connector numbering)
A.1. Updated/New Messages:
• BootNotification.req
• Change IccId and Imsi to CiString[] to enforce maximum lengths.
• BootNotification.conf
• heartbeatInterval to interval, interval now also used for other purposes than heartbeat, need to fix
in spec
• Added status Pending
• ChargePointErrorCode
• Added enumvalues: InternalError, LocalListConfict and UnderVoltage
• Renamed enum value Mode3Error to EVCommunicationError
• ChargePointStatus
• Replaced enum value Occupied with the more detailed values: Preparing, Charging,
SuspendedEVSE, SuspendedEV and Finishing
• ChargingRateUnitType
• New
110
• ConfigurationStatus
• Added enum RebootRequired
• ClearChargingProfile.req
• New
• ClearChargingProfile.conf
• New
• DiagnosticsStatus
• Added enum Uploading and Idle
• FirmwareStatus
• Added enum Downloading, Installing and Idle
• GetCompositeSchedule.req
• New
• GetCompositeSchedule.conf
• New
• Location
• Added enum Cable and EV
• Measurand
• Added enum Current.Offered, Frequency, Power.Factor, Power.Offered, RPM and SoC
• MeterValues.req
• overhaul of complex data structures
• Added 'phase' field
• ReadingContext
• Added enum Trigger and Other
• RemoteStartTransaction.req
• Added ChargingProfile optional
• SendLocalList.req
• removed hash
• SendLocalList.conf
• removed hash
• SetChargingProfile.req
• New
• SetChargingProfile.conf
• New
• StatusNotification.req
• Overhaul of states
• New error codes
• Connector id 0 can only have status: Available, Unavailable and Faulted.
• StopTransaction.req
• added explicit and required stop reason
• TriggerMessage.req
• New
• TriggerMessage.conf
• New
• UnlockConnector.conf
• overhaul of UnlockStatus enum
• UnitOfMeasure
• Added Fahrenheit, K, Percent, VA, kVA
• Rename Volt to V, Amp to A