13.3.15. ocpp

OCPP types (OCPP1.6 and OCPP2.0.1). The types are based more on the type definitions of OCPP201, as these offer more flexibility and are easier to transfer to OCPP1.6 than vice versa.

CustomData:object
Custom data extension
properties:
vendor_id:string <required>
Vendor Id to identify the customization, this is also included in the data field and only reproduced for convenience
data:string <required>
Custom json data object encoded as string
ChargingSchedulePeriod:object
Element providing information on a charging schedule period.
properties:
start_period:integer <required>

limit:number <required>

number_phases:integer <optional>

stack_level:integer <required>

ChargingSchedule:object
Element providing information on an OCPP charging schedule.
properties:
evse:integer <optional>
The OCPP 2.0.1 EVSE ID (not used in OCPP 1.6).
connector:integer <required>

charging_rate_unit:string <required>

charging_schedule_period:array <required>

array_item:object (ocpp-ChargingSchedulePeriod)
schedule periods
There is an extended definition for this object here.

duration:integer <optional>

start_schedule:string <optional>

min_charging_rate:number <optional>

ChargingSchedules:object
schedules for connectors
properties:
schedules:array <required>
array of schedules
array_item:object (ocpp-ChargingSchedule)
schedule for a connector
There is an extended definition for this object here.

OcppTransactionEvent:object
Element providing information on OCPP transactions.
properties:
transaction_event:string <required> (ocpp-TransactionEvent)
The transaction related event.
There is an extended definition for this object here.
evse_id:integer <required>
The OCPP 2.0.1 EVSE ID associated with the transaction.
connector:integer <required>
The connector associated with the transaction.
session_id:string <required>
The EVSE manager assigned session ID.
transaction_id:string <optional>
The CSMS assigned transaction ID. A string is used to support OCPP 2.0.1. For OCPP 1.6 the integer is converted to a string
TransactionEvent:string
The transaction event enumeration
enum:
- Started
- Updated
- Ended
MessageContent:object
Contains message details
properties:
format:string <required> (ocpp-MessageFormat)

There is an extended definition for this object here.
language:string <optional>

content:string <required>

MessageFormat:string
Format of the message to be displayed
enum:
- ASCII
- HTML
- URI
- UTF8
OcppTransactionEventResponse:object
Information that can be returned with a OCPP TransactionEventResponse
properties:
original_transaction_event:object <required> (ocpp-OcppTransactionEvent)
The original transaction event that promted this response
There is an extended definition for this object here.
total_cost:number <optional>
Running or total cost
charging_priority:integer <optional>
Priority from -9 to 9 for smart charging, higher values mean higher priority
personal_message:object <optional> (ocpp-MessageContent)
Personal message
There is an extended definition for this object here.
DataTransferStatus:string
Data Transfer Status enum
enum:
- Accepted
- Rejected
- UnknownMessageId
- UnknownVendorId
DataTransferRequest:object
Type for data transfer request provided by OCPP
properties:
vendor_id:string <required>
Identifies the vendor
message_id:string <optional>
Identifies the message
data:string <optional>
Data provided by this data transfer
custom_data:object <optional> (ocpp-CustomData)
Custom data extension
There is an extended definition for this object here.
DataTransferResponse:object
Type for data transfer response provided by OCPP
properties:
status:string <required> (ocpp-DataTransferStatus)
Status of the data transfer
There is an extended definition for this object here.
data:string <optional>
Data provided by this data transfer
custom_data:object <optional> (ocpp-CustomData)
Custom data extension
There is an extended definition for this object here.
KeyValue:object
Type for a key value pair
properties:
key:string <required>
Key / Identifier
read_only:boolean <required>
Indicates if the configuration key is configured to be read-only
value:string <optional>
Value of the configuration key
GetConfigurationResponse:object
Response to a GetConfiguration request
properties:
configuration_keys:array <required>
List of known configuration keys of key value pairs
array_item:object (ocpp-KeyValue)
Key value pair
There is an extended definition for this object here.

unknown_keys:array <required>
List of unknown configuration keys
array_item:string
Unknown key

ConfigurationStatus:string
Response to a set_custom_configuration_key command
enum:
- Accepted
- Rejected
- RebootRequired
- NotSupported
SecurityEventEnum:string
Enum for known security events
enum:
- FirmwareUpdated
- FailedToAuthenticateAtCsms
- CsmsFailedToAuthenticate
- SettingSystemTime
- StartupOfTheDevice
- ResetOrReboot
- SecurityLogWasCleared
- ReconfigurationOfSecurityParameters
- MemoryExhaustion
- InvalidMessages
- AttemptedReplayAttacks
- TamperDetectionActivated
- InvalidFirmwareSignature
- InvalidFirmwareSigningCertificate
- InvalidCsmsCertificate
- InvalidChargingStationCertificate
- InvalidTLSVersion
- InvalidTLSCipherSuite
- MaintenanceLoginAccepted
- MaintenanceLoginFailed
SecurityEvent:object
Type for a security event
properties:
type:string <required>
Type of the security event
info:string <optional>
Additional information about the occurred security event
EVSE:object
Type of an EVSE. If only the id is present, this type identifies an EVSE. If also a connector_id is given, this type identifies a Connector of the EVSE
properties:
id:integer <required>
Id of the EVSE
connector_id:integer <optional>
An id to designate a specific connector (on an EVSE) by connector index number
Variable:object
Type for a variable with a name and an optional instance For OCPP1.6: A Variable should only contain a name. The name identifies
the configuration key.
For OCPP2.0.1: All properties of the Variable can be used
properties:
name:string <required>
Name of a variable
instance:string <optional>
Name of instance in case the variable exists as multiple instances
Component:object
Type for a component with name, optional instance and optional evse For OCPP1.6: A definition of a Component doesn’t exist in OCPP1.6; In the context of OCPP1.6
this type may not be relevant or used.
For OCPP2.0.1: All properties of the Component can be used
properties:
name:string <required>
Name of a component
instance:string <optional>
Name of instance in case the component exists as multiple instances
evse:object <optional> (ocpp-EVSE)
Specifies the EVSE when component is located at EVSE level, also specifies the connector when component is located at Connector level
There is an extended definition for this object here.
ComponentVariable:object
Type for a combination of component and variable. Note that for OCPP1.6 only the Variable.name (configuration key) is sufficient to identify a configuration key. For OCPP2.0.1 all properties of the type(s) can be used.
properties:
component:object <required> (ocpp-Component)
Component
There is an extended definition for this object here.
variable:object <required> (ocpp-Variable)
Variable
There is an extended definition for this object here.
AttributeEnum:string
Attribute enum Actual: The actual value of a variable Target: The target value of a variable MinSet: The minimal allowed value of a variable MaxSet: The maximum allowed value of a variable
enum:
- Actual
- Target
- MinSet
- MaxSet
GetVariableStatusEnumType:string
Indicates the status of the GetVariableRequest as part of the GetVariableResult operation Accepted: Variable successfully retrieved Rejected: Request is rejected UnknownComponent: Component is not known UnknownVariable: Variable is not known NotSupportedAttributeType: The AttributeType is not supported
enum:
- Accepted
- Rejected
- UnknownComponent
- UnknownVariable
- NotSupportedAttributeType
SetVariableStatusEnumType:string
Indicates the status of the SetVariableRequest operation as part of the SetVariableResult Accepted: Variable successfully set Rejected: Request is rejected UnknownComponent: Component is not known UnknownVariable: Variable is not known NotSupportedAttributeType: The AttributeType is not supported RebootRequired: A reboot is required
enum:
- Accepted
- Rejected
- UnknownComponent
- UnknownVariable
- NotSupportedAttributeType
- RebootRequired
EventTriggerEnum:string
Indicates the trigger reason of a generic event as part of the type EventData Alerting: Monitored variable has passed an Lower or Upper Threshold Delta: Delta Monitored Variable value has changed by more than specified amount Periodic: Periodic Monitored Variable has been sampled for reporting at the specified interval
enum:
- Alerting
- Delta
- Periodic
EventNotificationType:string
Indicates the event notification type as part of the type EventData HardWiredNotification: The software implemented by the manufacturer triggered a hardwired notification HardWiredMonitor: Triggered by a monitor, which is hardwired by the manufacturer PreconfiguredMonitor: Triggered by a monitor, which is preconfigured by the manufacturer. CustomMonitor: Triggered by a monitor which is set by a message by the Charging Station Operator.
enum:
- HardWiredNotification
- HardWiredMonitor
- PreconfiguredMonitor
- CustomMonitor
GetVariableRequest:object
Type to request a variable value (OCPP2.0.1) or configuration value (OCPP1.6)
properties:
component_variable:object <required> (ocpp-ComponentVariable)
Identifier for which the value should be requested
There is an extended definition for this object here.
attribute_type:string <optional> (ocpp-AttributeEnum)
AttributeEnum for which the value should be requested. When absent, actual is assumed
There is an extended definition for this object here.
GetVariableResult:object
Result of a GetVariableRequest
properties:
status:string <required> (ocpp-GetVariableStatusEnumType)
Status of the GetVariableResult
There is an extended definition for this object here.
attribute_type:string <optional> (ocpp-AttributeEnum)
AttributeEnum for which the value was requested. When absent, actual is assumed
There is an extended definition for this object here.
value:string <optional>
Value of the requested variable and AttributeEnum. This field can only be empty when the given status is NOT accepted
component_variable:object <required> (ocpp-ComponentVariable)
Identifier for which the value was requested
There is an extended definition for this object here.
SetVariableRequest:object
Type to request to set a variable or configuration key
properties:
component_variable:object <required> (ocpp-ComponentVariable)
Identifier for which the value should be set
There is an extended definition for this object here.
value:string <required>
Value of the variable that should be set
attribute_type:string <optional> (ocpp-AttributeEnum)
AttributeEnum for which the value should be set. When absent, actual is assumed
There is an extended definition for this object here.
SetVariableResult:object
Result of a SetVariableRequest
properties:
status:string <required> (ocpp-SetVariableStatusEnumType)
Status of the SetVariableResult
There is an extended definition for this object here.
component_variable:object <required> (ocpp-ComponentVariable)
Identifier for which the set of the value should be requested
There is an extended definition for this object here.
attribute_type:string <optional> (ocpp-AttributeEnum)
AttributeEnum for which the set of the value is requested. When absent, actual is assumed
There is an extended definition for this object here.
EventData:object
Type to report an event notification for a component-variable
properties:
component_variable:object <required> (ocpp-ComponentVariable)
Identifier for which the event occured
There is an extended definition for this object here.
event_id:integer <required>
Identifies the event
timestamp:string <required>
Timestamp of the moment the report was generated
format:date-time
trigger:string <required> (ocpp-EventTriggerEnum)
Type of the monitor that triggered this event
There is an extended definition for this object here.
actual_value:string <required>
Actual value of the variable
event_notification_type:string <required> (ocpp-EventNotificationType)
Type of the event notification
There is an extended definition for this object here.
cause:integer <optional>
Refers to the Id of an event that is considered to be the cause for this event
tech_code:string <optional>
Technical (error) code as reported by component
tech_info:string <optional>
Technical detail information as reported by component
cleared:boolean <optional>
Cleared is set to true to report the clearing of a monitored situation
transaction_id:string <optional>
If an event notification is linked to a specific transaction, this field can be used to specify its transactionId
variable_monitoring_id:integer <optional>
Identifies the VariableMonitoring which triggered the event
OperationalStatusEnumType:string
Operational status of Charging Station /EVSE / Connector
enum:
- Inoperative
- Operative
ChangeAvailabilityRequest:object
Request type to change the availability of the Charging Station/ an EVSE / a Connector.
properties:
operational_status:string <required> (ocpp-OperationalStatusEnumType)
Type of availability change that the Charging Station should perform.
There is an extended definition for this object here.
evse:object <optional> (ocpp-EVSE)
Specify EVSE/Connector whose status is changed. When omitted, the message refers to the Charging Station as a whole.
There is an extended definition for this object here.
ChangeAvailabilityStatusEnumType:string
Status returned in response to ChangeAvailabilityRequest.
enum:
- Accepted
- Rejected
- Scheduled
StatusInfoType:object
Element providing more information about the status.
properties:
reason_code:string <required>
A predefined code for the reason why the status is returned in this response. The string is case-insensitive.
additional_info:string <optional>
Additional text to provide detailed information
ChangeAvailabilityResponse:object
Response type to request to change the availability of the Charging Station/ an EVSE / a Connector.
properties:
status:string <required> (ocpp-ChangeAvailabilityStatusEnumType)
Indicates whether the Charging Station is able to perform the availability change.
There is an extended definition for this object here.
status_info:object <optional> (ocpp-StatusInfoType)
Detailed status information.
There is an extended definition for this object here.
RegistrationStatus:string
Indicates whether the Charging Station has been registered within the OCPP CSMS
enum:
- Accepted
- Pending
- Rejected
BootNotificationResponse:object
OCPP BootNotificationResponse
properties:
status:string <required> (ocpp-RegistrationStatus)
Indicates whether the Charging Station has been registered within the OCPP CSMS
There is an extended definition for this object here.
current_time:string <required>
Contains the CSMS current time in RFC3339 format
format:date-time
interval:integer <required>
When Status is Accepted, this contains the heartbeat interval in seconds. If the CSMS returns something other than Accepted, the value of the interval field indicates the minimum wait time before sending a next BootNotification request.
status_info:object <optional> (ocpp-StatusInfoType)
Detailed status information.
There is an extended definition for this object here.