OCPP 1.6 Edition 2

Standard Configuration Key Names & Values

Based on OCPP 1.6 Edition 2 FINAL, Section 9 (normative). This guide covers all standardized configuration keys organized by Feature Profile, accessed via GetConfiguration and ChangeConfiguration operations.

8 Sections
4 Feature Profiles
43 Configuration Keys

1. Overview

Introduction

This section defines all standardized configuration keys for OCPP 1.6 Charge Points. Configuration keys are organized by Feature Profile and are accessed via the GetConfiguration and ChangeConfiguration operations.

How Configuration Keys Work

Configuration keys are read and written using two CSMS-initiated operations:

Operation Direction Purpose
GetConfiguration Central System → Charge Point Read configuration values
ChangeConfiguration Central System → Charge Point Write configuration values

GetConfiguration (Section 5.8)

The Central System sends a GetConfiguration.req PDU to retrieve configuration values.

  • If the key list is empty or omitted, the Charge Point returns all configuration settings.
  • Otherwise, it returns only the recognized keys requested. Unrecognized keys are placed in the unknownKey list.
  • The maximum number of keys per request may be limited by the GetConfigurationMaxKeys configuration key.
GetConfiguration.req
{
  "key": ["string"]  // optional, array of key names (maxLength: 50 each)
}
GetConfiguration.conf
{
  "configurationKey": [     // optional, array of known keys
    {
      "key": "string",     // required, maxLength: 50
      "readonly": true,    // required, boolean
      "value": "string"    // optional, maxLength: 500
    }
  ],
  "unknownKey": ["string"] // optional, array of unrecognized key names
}

ChangeConfiguration (Section 5.3)

The Central System sends a ChangeConfiguration.req PDU to change a configuration parameter.

ChangeConfiguration.req
{
  "key": "string",   // required, maxLength: 50
  "value": "string"  // required, maxLength: 500
}
ChangeConfiguration.conf
{
  "status": "string"  // required, enum: Accepted | Rejected | RebootRequired | NotSupported
}

Response Status Rules

Status Condition
Accepted Change applied successfully and effective immediately
RebootRequired Change applied successfully but requires reboot to take effect
NotSupported Key does not correspond to a supported configuration setting
Rejected Charge Point did not set the configuration (e.g., out-of-range value, wrong format)

Key Properties

Each configuration key has these properties:

Property Description
Required/optional Whether a Charge Point supporting this profile MUST implement the key
Accessibility R = read-only, RW = read-write. Read-only keys can be read via GetConfiguration but not written. Read-write keys can also be written via ChangeConfiguration.
Type boolean, integer, or CSL (Comma Separated List)
Unit The unit of measurement (seconds, times, Wh, %, etc.) — only for integer keys

Rules for Optional Boolean Configuration Keys

For optional boolean configuration keys returned in a GetConfiguration.conf (without a key list):

Key is present

The Charge Point provides the functionality configured by the key. It can be enabled/disabled by setting the value.

Key is not present

The Charge Point does NOT provide the functionality that can be configured by the key.

CSL Keys and MaxLength

If a key value is defined as a CSL, it MAY be accompanied by a [KeyName]MaxLength key indicating the max length of the CSL in items. If [KeyName]MaxLength is not set, a safe value of 1 item SHOULD be assumed.

2. Core Profile

Section 9.1

These keys belong to the Core feature profile. Required keys MUST be supported by any Charge Point that supports the Core profile.

Authorization & Transaction Control

Key Req/Opt Access Type Description
AllowOfflineTxForUnknownId optional RW boolean If true, Unknown Offline Authorization is enabled. If this key exists, the CP supports Unknown Offline Authorization.
AuthorizationCacheEnabled optional RW boolean If true, the Authorization Cache is enabled. If this key exists, the CP supports an Authorization Cache.
AuthorizeRemoteTxRequests required R or RW boolean Whether a remote request to start a transaction should be authorized like a local action before starting. Choice of R or RW is up to CP implementation.
LocalAuthorizeOffline required RW boolean Whether the CP, when offline, will start a transaction for locally-authorized identifiers.
LocalPreAuthorize required RW boolean Whether the CP, when online, will start a transaction for locally-authorized identifiers without waiting for or requesting an Authorize.conf.
MaxEnergyOnInvalidId optional RW integer (Wh) Maximum energy in Wh delivered when an identifier is invalidated by the Central System after start of a transaction.
StopTransactionOnInvalidId required RW boolean Whether the CP will stop an ongoing transaction when it receives a non-Accepted authorization status in a StartTransaction.conf.
StopTransactionOnEVSideDisconnect required RW boolean When true, the CP SHALL administratively stop the transaction when the cable is unplugged from the EV.

Connection & Heartbeat

Key Req/Opt Access Type Unit Description
ConnectionTimeOut required RW integer seconds Interval from beginning of status 'Preparing' until incipient Transaction is automatically canceled, due to failure of EV driver to insert the charging cable connector(s). The CP SHALL go back to 'Available'.
HeartbeatInterval required RW integer seconds Interval of inactivity (no OCPP exchanges) with Central System after which the CP should send a Heartbeat.req PDU.
WebSocketPingInterval optional RW integer seconds Only relevant for websocket implementations. 0 disables client side websocket Ping/Pong. Positive values are seconds between pings. Negative values are not allowed.
ResetRetries required RW integer times Number of times to retry an unsuccessful reset of the Charge Point.

Metering Configuration

Key Req/Opt Access Type Description
ClockAlignedDataInterval required RW integer (s) Size (in seconds) of the clock-aligned data interval, starting at 00:00:00 (midnight). For example, 900 (15 minutes) means 96 intervals per day. A value of 0 means no clock-aligned data is transmitted.
MeterValuesAlignedData required RW CSL Clock-aligned measurand(s) to be included in a MeterValues.req PDU, every ClockAlignedDataInterval seconds.
MeterValuesAlignedDataMaxLength optional R integer Maximum number of items in MeterValuesAlignedData.
MeterValuesSampledData required RW CSL Sampled measurands to be included in a MeterValues.req PDU. Default: "Energy.Active.Import.Register".
MeterValuesSampledDataMaxLength optional R integer Maximum number of items in MeterValuesSampledData.
MeterValueSampleInterval required RW integer (s) Interval between sampling of metering data, transmitted by MeterValues PDUs. A value of 0 means no sampled data is transmitted.

Transaction Stop Metering

Key Req/Opt Access Type Description
StopTxnAlignedData required RW CSL Clock-aligned periodic measurand(s) to be included in the TransactionData element of StopTransaction.req / MeterValues.req.
StopTxnAlignedDataMaxLength optional R integer Maximum number of items in StopTxnAlignedData.
StopTxnSampledData required RW CSL Sampled measurands to be included in the TransactionData element of StopTransaction.req PDU.
StopTxnSampledDataMaxLength optional R integer Maximum number of items in StopTxnSampledData.

Charge Point Information

Key Req/Opt Access Type Description
NumberOfConnectors required R integer The number of physical charging connectors of this Charge Point.
ConnectorPhaseRotation required RW CSL The phase rotation per connector. Format: 0.RST, 1.RST, 2.RTS.
ConnectorPhaseRotationMaxLength optional R integer Maximum number of items in ConnectorPhaseRotation.
SupportedFeatureProfiles required R CSL A list of supported Feature Profiles: Core, FirmwareManagement, LocalAuthListManagement, Reservation, SmartCharging, RemoteTrigger.
SupportedFeatureProfilesMaxLength optional R integer Maximum number of items in SupportedFeatureProfiles.
GetConfigurationMaxKeys required R integer Maximum number of requested configuration keys in a GetConfiguration.req PDU.

Visual & Status

Key Req/Opt Access Type Unit Description
BlinkRepeat optional RW integer times Number of times to blink Charge Point lighting when signalling.
LightIntensity optional RW integer % Percentage of maximum intensity at which to illuminate Charge Point lighting.
MinimumStatusDuration optional RW integer seconds The minimum duration that a Charge Point or Connector status is stable before a StatusNotification.req PDU is sent.

Transaction Message Retry

Key Req/Opt Access Type Unit Description
TransactionMessageAttempts required RW integer times How often the Charge Point should try to submit a transaction-related message when the Central System fails to process it.
TransactionMessageRetryInterval required RW integer seconds How long the Charge Point should wait before resubmitting a transaction-related message that the Central System failed to process.

Connector Behavior

Key Req/Opt Access Type Description
UnlockConnectorOnEVSideDisconnect required RW boolean When true, the Charge Point SHALL unlock the cable on Charge Point side when the cable is unplugged at the EV.

Measurand Reference

Core Profile

The CSL metering keys (MeterValuesSampledData, MeterValuesAlignedData, StopTxnSampledData, StopTxnAlignedData) accept values from the Measurand enum:

Measurand Description Default Unit
Energy.Active.Export.Register Active energy exported (to grid), register value Wh
Energy.Active.Import.Register Active energy imported (from grid), register value — default measurand Wh
Energy.Reactive.Export.Register Reactive energy exported, register value varh
Energy.Reactive.Import.Register Reactive energy imported, register value varh
Energy.Active.Export.Interval Active energy exported per interval Wh
Energy.Active.Import.Interval Active energy imported per interval Wh
Energy.Reactive.Export.Interval Reactive energy exported per interval varh
Energy.Reactive.Import.Interval Reactive energy imported per interval varh
Power.Active.Export Active power exported (instantaneous) W
Power.Active.Import Active power imported (instantaneous) W
Power.Offered Maximum power offered to EV W
Power.Reactive.Export Reactive power exported var
Power.Reactive.Import Reactive power imported var
Power.Factor Power factor (dimensionless, instantaneous)
Current.Import Current flowing to EV (instantaneous) A
Current.Export Current flowing from EV (instantaneous) A
Current.Offered Maximum current offered to EV A
Voltage AC RMS supply voltage (instantaneous) V
Frequency Grid frequency (instantaneous)
Temperature Temperature reading inside the Charge Point K or Celsius
SoC State of Charge of the EV battery %
RPM Fan speed (rotations per minute)

Phase Suffixes

Measurands can be combined with a phase to specify per-phase readings:

Phase Description
L1 Phase 1 (line-to-neutral default reference)
L2 Phase 2
L3 Phase 3
N Neutral
L1-N Phase 1 to Neutral
L2-N Phase 2 to Neutral
L3-N Phase 3 to Neutral
L1-L2 Phase 1 to Phase 2 (line-to-line)
L2-L3 Phase 2 to Phase 3
L3-L1 Phase 3 to Phase 1

SampledValue Context

Each meter value sample carries a context indicating how it was captured:

Context Description Triggered By
Sample.Periodic Periodically sampled value MeterValueSampleInterval
Sample.Clock Clock-aligned sampled value ClockAlignedDataInterval
Transaction.Begin Value at the start of a transaction StartTransaction
Transaction.End Value at the end of a transaction StopTransaction
Trigger Value taken in response to a TriggerMessage.req RemoteTrigger profile
Interruption.Begin Value at the beginning of a charging interruption EVSE/EV suspension
Interruption.End Value at the end of a charging interruption Resumption of charging
Other Other context

SampledValue Location

Where the measurement point is located:

Location Description
Cable Measurement at the cable between CP and EV
EV Measurement inside the EV
Inlet Measurement at the network inlet to the CP
Outlet Measurement at the connector outlet (CP→EV)
Body Measurement at the Charge Point body (e.g., temperature sensor)

SampledValue Format

Format Description
Raw Data is a raw decimal numeric string (default)
SignedData Data contains a digitally signed representation

SampledValue Unit of Measure

Unit Measurand Types
Wh, kWh Active energy
varh, kvarh Reactive energy
W, kW Active power
VA, kVA Apparent power
var, kvar Reactive power
A Current
V Voltage
K, Celsius, Fahrenheit Temperature
Percent SoC, Power.Factor

Note: If a Measurand is included in a CSL key but the CP does not support that specific measurement, the CP silently ignores it (no error). Always check MeterValuesSampledDataMaxLength / MeterValuesAlignedDataMaxLength to know how many measurands the CP supports simultaneously.

Feature Profile Summary

Profile Description Config Keys
Core Basic charging operations, authorization, metering, status reporting Section 9.1
FirmwareManagement Firmware update and diagnostics file transfer
LocalAuthListManagement Local Authorization List management Section 9.2
Reservation Connector reservation Section 9.3
SmartCharging Charging profile and schedule management Section 9.4
RemoteTrigger CSMS can trigger the CP to send specific messages on demand None

RemoteTrigger - TriggerMessage requestedMessage Values

The TriggerMessage.req allows the CSMS to request the CP to send one of these messages immediately:

requestedMessage Description
BootNotification Trigger a BootNotification (useful to refresh CP registration info)
DiagnosticsStatusNotification Trigger a diagnostics status update
FirmwareStatusNotification Trigger a firmware status update
Heartbeat Trigger an immediate Heartbeat (useful for time sync)
MeterValues Trigger an immediate meter value reading (context: Trigger)
StatusNotification Trigger a status notification for a connector

ConnectorPhaseRotation Values

Possible values per connector (phase mapping: R = L1, S = L2, T = L3):

Value Description
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

3. Behavior Details

Core Profile

Detailed behavior specifications for key configuration interactions in the Core profile.

AuthorizeRemoteTxRequests Behavior

The AuthorizeRemoteTxRequests key controls whether the Charge Point sends an Authorize.req to the Central System before starting a remotely-requested transaction (via RemoteStartTransaction.req).

When true

The CP MUST authorize the idTag from the RemoteStartTransaction.req before starting — either by sending an Authorize.req to the Central System, or by checking the Local Authorization List / Authorization Cache (if LocalPreAuthorize is enabled).

When false

The CP starts the transaction without additional authorization, relying on the fact that the Central System itself initiated the request.

R vs RW accessibility: If the CP exposes this key as R (read-only), the CP has a fixed built-in policy for authorizing remote start requests that the CSMS cannot change. If the CP exposes this key as RW, the CSMS can configure whether remote starts require authorization.

Local Authorization Behavior

LocalAuthorizeOffline and LocalPreAuthorize control how the Charge Point uses locally-stored authorization data (from the Authorization Cache and/or Local Authorization List):

Scenario Key Behavior
CP is offline LocalAuthorizeOffline = true CP checks the Local Authorization List and/or Authorization Cache. If the idTag is found and valid, the transaction starts without contacting the Central System.
CP is offline LocalAuthorizeOffline = false CP does NOT start transactions when offline (no local authorization fallback).
CP is online LocalPreAuthorize = true CP checks the Local Authorization List and/or Authorization Cache first. If the idTag is found and valid, the transaction starts immediately without waiting for an Authorize.conf. The CP still sends the Authorize.req in the background.
CP is online LocalPreAuthorize = false CP always waits for the Central System's Authorize.conf before starting a transaction.

Data Sources for Local Authorization

Authorization Cache

Enabled/disabled by AuthorizationCacheEnabled. Automatically populated from previous Authorize.conf, StartTransaction.conf, and StopTransaction.conf responses.

Local Authorization List

Enabled/disabled by LocalAuthListEnabled (Section 9.2). Managed by the CSMS via SendLocalList.req.

Note: If both LocalAuthorizeOffline and AuthorizationCacheEnabled / LocalAuthListEnabled are present, the CP uses whichever local data source is available. If AllowOfflineTxForUnknownId is also true, the CP may additionally start transactions for idTags that are not found in any local store while offline.

Invalid ID Behavior

StopTransactionOnInvalidId and MaxEnergyOnInvalidId work together to control what happens when the Central System invalidates a transaction's idTag (by returning a non-Accepted status in StartTransaction.conf).

Authorization Status Values

Status Meaning
Accepted Identifier is valid — transaction proceeds normally
Blocked Identifier has been blocked (e.g., reported lost/stolen)
Expired Identifier has expired
Invalid Identifier is unknown or invalid
ConcurrentTx Identifier is already in use in another transaction

Combined Behavior

StopTransactionOnInvalidId MaxEnergyOnInvalidId Behavior
true not set CP stops the transaction immediately. StopTransaction.req is sent with reason DeAuthorized.
true set (e.g., 500 Wh) CP allows up to the specified energy to be delivered, then stops the transaction with reason DeAuthorized. This provides a grace period for the EV driver.
false not set CP does NOT stop the transaction (it continues charging).
false set (e.g., 500 Wh) CP allows up to the specified energy to be delivered, then stops the transaction with reason DeAuthorized.

Note: When StopTransactionOnInvalidId = false and MaxEnergyOnInvalidId is not set, the CP will continue charging indefinitely even with an invalidated identifier. The CSMS can still stop the transaction by sending a RemoteStopTransaction.req.

EV-Side Disconnect Behavior Matrix

StopTransactionOnEVSideDisconnect and UnlockConnectorOnEVSideDisconnect interact to define the Charge Point's behavior when the EV driver unplugs the cable at the EV side:

StopTxnOnEVSideDisconnect UnlockOnEVSideDisconnect Behavior
true true CP stops the transaction (reason: EVDisconnected) AND unlocks the connector on the CP side.
true false CP stops the transaction (reason: EVDisconnected) but does NOT unlock the connector. The cable remains locked on the CP side.
false true CP suspends energy transfer (status: SuspendedEV) and unlocks the connector, but does NOT stop the transaction.
false false CP suspends energy transfer (status: SuspendedEV) but does NOT unlock the connector and does NOT stop the transaction.

StopTransaction Reason Values

Reason Description
EmergencyStop Emergency stop button was used
EVDisconnected Disconnection of cable/vehicle detected on EV side
HardReset A hard reset command was received
Local Stopped locally on request of the EV driver (e.g., badge swipe)
Other Other reason
PowerLoss Electric power is no longer available
Reboot A locally initiated reset/reboot occurred
Remote Stopped remotely via RemoteStopTransaction.req
SoftReset A soft reset command was received
UnlockCommand Stopped due to an UnlockConnector.req command
DeAuthorized The identifier was de-authorized (see Invalid ID Behavior)

ChargePointStatus Values

The following status values are referenced by ConnectionTimeOut (the "Preparing" state) and MinimumStatusDuration:

Status Description
Available Connector is available for a new user
Preparing A user has been detected (e.g., idTag presented) but charging has not yet started. ConnectionTimeOut defines how long the CP waits in this state.
Charging Charging is in progress
SuspendedEVSE Charging is suspended by the EVSE (e.g., smart charging limit reached)
SuspendedEV Charging is suspended by the EV (e.g., EV battery full, cable unplugged but transaction open)
Finishing Transaction has stopped, but connector is not yet available (e.g., cable still plugged in)
Reserved Connector is reserved for a specific idTag
Unavailable Connector is not available for charging (e.g., out of service, firmware update)
Faulted An error has occurred on the connector

4. Local Auth List Management Profile

Section 9.2

These keys belong to the LocalAuthListManagement feature profile. Required keys MUST be supported by any Charge Point that supports this profile.

Configuration Keys

Key Req/Opt Access Type Description
LocalAuthListEnabled required RW boolean Whether the Local Authorization List is enabled.
LocalAuthListMaxLength required R integer Maximum number of identifications that can be stored in the Local Authorization List.
SendLocalListMaxLength required R integer Maximum number of identifications that can be sent in a single SendLocalList.req.

SendLocalList.req Schema Fields

Field Type Required Description
listVersion integer yes Version number of the list being sent. The CP tracks this version for GetLocalListVersion responses.
updateType string yes Full (replace entire list) or Differential (add/update/remove individual entries).
localAuthorizationList array no List of authorization entries (see below).
idTag string (max 20) yes The identifier (e.g., RFID tag UID).
idTagInfo object no Authorization info. If omitted in a Differential update, the entry is removed from the list.
status string yes Accepted, Blocked, Expired, Invalid, or ConcurrentTx.
expiryDate dateTime no When this authorization expires.
parentIdTag string (max 20) no Parent/group identifier for group authorization.

Note: When sending a Full update, SendLocalListMaxLength limits the number of entries per request. If the total list exceeds this limit, the CSMS must send multiple requests or use Differential updates. The total capacity of the list is limited by LocalAuthListMaxLength.

5. Reservation Profile

Section 9.3

These keys belong to the Reservation feature profile.

Configuration Keys

Key Req/Opt Access Type Description
ReserveConnectorZeroSupported optional R boolean If this configuration key is present and set to true: Charge Point supports reservations on connector 0.

Connector 0 Reservation Semantics

In OCPP 1.6, connector 0 represents the Charge Point as a whole (not a specific physical connector). A reservation on connector 0 means the reservation applies to the entire Charge Point — the reserved idTag can use any available connector. If this key is absent or false, the CSMS must always specify a specific connector ID (>= 1) in ReserveNow.req.

6. Smart Charging Profile

Section 9.4

These keys belong to the SmartCharging feature profile. Required keys MUST be supported by any Charge Point that supports this profile.

Configuration Keys

Key Req/Opt Access Type Description
ChargeProfileMaxStackLevel required R integer Max StackLevel of a ChargingProfile. The number also indicates the max allowed number of installed charging schedules per Charging Profile Purpose.
ChargingScheduleAllowedChargingRateUnit required R CSL A list of supported quantities for use in a ChargingSchedule. Allowed values: Current and Power.
ChargingScheduleMaxPeriods required R integer Maximum number of periods that may be defined per ChargingSchedule.
ConnectorSwitch3to1PhaseSupported optional R boolean If defined and true, this Charge Point supports switching from 3 to 1 phase during a Transaction.
MaxChargingProfilesInstalled required R integer Maximum number of Charging profiles installed at a time.

7. Quick Reference: All Configuration Keys

Summary

Complete listing of all 43 standardized configuration keys across all feature profiles.

Core Profile (34 keys)

# Key Req RW Type
1 AllowOfflineTxForUnknownId opt RW boolean
2 AuthorizationCacheEnabled opt RW boolean
3 AuthorizeRemoteTxRequests req R/RW boolean
4 BlinkRepeat opt RW integer
5 ClockAlignedDataInterval req RW integer
6 ConnectionTimeOut req RW integer
7 ConnectorPhaseRotation req RW CSL
8 ConnectorPhaseRotationMaxLength opt R integer
9 GetConfigurationMaxKeys req R integer
10 HeartbeatInterval req RW integer
11 LightIntensity opt RW integer
12 LocalAuthorizeOffline req RW boolean
13 LocalPreAuthorize req RW boolean
14 MaxEnergyOnInvalidId opt RW integer
15 MeterValuesAlignedData req RW CSL
16 MeterValuesAlignedDataMaxLength opt R integer
17 MeterValuesSampledData req RW CSL
18 MeterValuesSampledDataMaxLength opt R integer
19 MeterValueSampleInterval req RW integer
20 MinimumStatusDuration opt RW integer
21 NumberOfConnectors req R integer
22 ResetRetries req RW integer
23 StopTransactionOnEVSideDisconnect req RW boolean
24 StopTransactionOnInvalidId req RW boolean
25 StopTxnAlignedData req RW CSL
26 StopTxnAlignedDataMaxLength opt R integer
27 StopTxnSampledData req RW CSL
28 StopTxnSampledDataMaxLength opt R integer
29 SupportedFeatureProfiles req R CSL
30 SupportedFeatureProfilesMaxLength opt R integer
31 TransactionMessageAttempts req RW integer
32 TransactionMessageRetryInterval req RW integer
33 UnlockConnectorOnEVSideDisconnect req RW boolean
34 WebSocketPingInterval opt RW integer

Local Auth List Management Profile (3 keys)

# Key Req RW Type
1 LocalAuthListEnabled req RW boolean
2 LocalAuthListMaxLength req R integer
3 SendLocalListMaxLength req R integer

Reservation Profile (1 key)

# Key Req RW Type
1 ReserveConnectorZeroSupported opt R boolean

Smart Charging Profile (5 keys)

# Key Req RW Type
1 ChargeProfileMaxStackLevel req R integer
2 ChargingScheduleAllowedChargingRateUnit req R CSL
3 ChargingScheduleMaxPeriods req R integer
4 ConnectorSwitch3to1PhaseSupported opt R boolean
5 MaxChargingProfilesInstalled req R integer

8. Implementation Notes

Guidelines

Practical guidance for CSMS developers implementing configuration key management.

CSMS-Side Considerations

1. Storing Configuration State

The CSMS should persist the last-known configuration key values per Charge Point. This enables tracking what a CP supports and its current settings without querying every time.

2. BootNotification Flow

After a Charge Point boots and is accepted, the CSMS should issue a GetConfiguration.req (with no keys) to retrieve all configuration, then cache the results.

3. Feature Profile Detection

Read SupportedFeatureProfiles to know what profiles the CP supports. Only attempt to use configuration keys from profiles the CP actually supports.

4. CSL Value Format

CSL (Comma Separated List) values are comma-delimited strings, e.g., "Energy.Active.Import.Register,Power.Active.Import". Always check the corresponding MaxLength key to know how many items are supported.

5. Handling ChangeConfiguration Responses

Accepted — Update your cached value immediately.

RebootRequired — Update your cached value but note it takes effect after reboot. Consider issuing a Reset.req if the change must take effect now.

NotSupported — The key is not recognized. Do not retry.

Rejected — The value was likely out of range or wrong format. Check your value and format.

6. Read-Only Keys

Never attempt to ChangeConfiguration on a read-only key — it will be rejected. All R accessibility keys are informational/capability reporting only.

7. Metering Configuration

The MeterValuesSampledData and MeterValuesAlignedData keys accept Measurand values from the OCPP 1.6 Measurand enum. In the CSL, measurands are listed by name (e.g., "Energy.Active.Import.Register,Power.Active.Import,Voltage"). The default measurand if none is configured is Energy.Active.Import.Register.

8. Transaction Message Retry

TransactionMessageAttempts and TransactionMessageRetryInterval control how the CP retries failed StartTransaction / StopTransaction messages. This is critical for offline scenarios — the CSMS should configure these to balance between data reliability and network load.

9. EV Disconnect Behavior

The CSMS should configure StopTransactionOnEVSideDisconnect and UnlockConnectorOnEVSideDisconnect as a pair. Most deployments should set both to true to ensure clean session teardown when the EV driver unplugs. If StopTransactionOnEVSideDisconnect is false, the CSMS must handle suspended transactions (status: SuspendedEV) that may require a RemoteStopTransaction.req to clean up.

10. Invalid ID Handling

When configuring StopTransactionOnInvalidId, consider also setting MaxEnergyOnInvalidId to provide a grace period. This is important for scenarios where the idTag was valid at session start but becomes invalid mid-session (e.g., pre-paid balance depleted). The CSMS should monitor StopTransaction.req messages with reason DeAuthorized to track these events.

11. Local Authorization Fallback Chain

The CP's authorization decision follows this priority: (a) online authorization via Authorize.req/Authorize.conf, (b) Local Authorization List (if LocalAuthListEnabled = true), (c) Authorization Cache (if AuthorizationCacheEnabled = true), (d) unknown ID offline authorization (if AllowOfflineTxForUnknownId = true). The CSMS should configure these in combination to define the desired offline behavior.

OCPP-J (WebSocket) Transport-Specific Notes

These notes apply specifically to OCPP-J implementations (JSON over WebSocket), as described in the OCPP-J 1.6 Implementation Guide:

WebSocketPingInterval vs HeartbeatInterval Interaction

Both WebSocketPingInterval and HeartbeatInterval serve connection keepalive purposes, but they are NOT interchangeable. WebSocket Ping/Pong does NOT provide time synchronization (the OCPP Heartbeat response includes server time). The CSMS should ensure HeartbeatInterval is configured to send at least one Heartbeat per day, even if WebSocketPingInterval is set to a short interval for connection liveness.

OCPP 1.6 Standard Configuration Key Names & Values - CSMS Developer Guide. Based on OCPP 1.6 Edition 2 FINAL, Section 9.