Functional Block: I
Types Reference: Shared types referenced below are defined in OCPP-2.0.1-DataTypes.md.
Types used only within this block are documented inline below.
#Messages
- UpdateFirmware (CSMS → CS)
- FirmwareStatusNotification (CS → CSMS)
- PublishFirmware (CSMS → CS)
- PublishFirmwareStatusNotification (CS → CSMS)
- UnpublishFirmware (CSMS → CS)
#UpdateFirmware
Direction: CSMS → CS
#UpdateFirmwareRequest
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
firmware |
FirmwareType | Yes | ||
requestId |
integer | Yes | The Id of this request | |
retries |
integer | No | This specifies how many times Charging Station must try to download the firmware before giving up. If this field is not present, it is left to Charging Station to decide how many times it wants to retry. | |
retryInterval |
integer | No | The interval in seconds after which a retry may be attempted. If this field is not present, it is left to Charging Station to decide how long to wait between attempts. | |
customData |
CustomDataType | No |
Example UpdateFirmwareRequest
{
"firmware": {
"location": "string",
"retrieveDateTime": "2024-01-15T10:30:00Z"
},
"requestId": 0
}
#UpdateFirmwareResponse
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
status |
UpdateFirmwareStatusEnumType | Yes | ||
statusInfo |
StatusInfoType | No | ||
customData |
CustomDataType | No |
#FirmwareStatusNotification
Direction: CS → CSMS
#FirmwareStatusNotificationRequest
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
status |
FirmwareStatusEnumType | Yes | ||
requestId |
integer | No | The request id that was provided in the UpdateFirmwareRequest that started this firmware update. This field is mandatory, unless the message was triggered by a TriggerMessageRequest AND there is no firmware update ongoing. | |
customData |
CustomDataType | No |
Example FirmwareStatusNotificationRequest
{
"status": "Downloaded"
}
#FirmwareStatusNotificationResponse
No required fields. An empty {} is a valid response.
#PublishFirmware
Direction: CSMS → CS
#PublishFirmwareRequest
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
checksum |
string | Yes | maxLength: 32 | The MD5 checksum over the entire firmware file as a hexadecimal string of length 32. |
location |
string | Yes | maxLength: 512 | This contains a string containing a URI pointing to a location from which to retrieve the firmware. |
requestId |
integer | Yes | The Id of the request. | |
retries |
integer | No | This specifies how many times Charging Station must try to download the firmware before giving up. If this field is not present, it is left to Charging Station to decide how many times it wants to retry. | |
retryInterval |
integer | No | The interval in seconds after which a retry may be attempted. If this field is not present, it is left to Charging Station to decide how long to wait between attempts. | |
customData |
CustomDataType | No |
Example PublishFirmwareRequest
{
"checksum": "string",
"location": "string",
"requestId": 0
}
#PublishFirmwareResponse
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
status |
GenericStatusEnumType | Yes | ||
statusInfo |
StatusInfoType | No | ||
customData |
CustomDataType | No |
#PublishFirmwareStatusNotification
Direction: CS → CSMS
#PublishFirmwareStatusNotificationRequest
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
status |
PublishFirmwareStatusEnumType | Yes | ||
location |
string[] | No | minItems: 1 | Required if status is Published. Can be multiple URI’s, if the Local Controller supports e.g. HTTP, HTTPS, and FTP. |
requestId |
integer | No | The request id that was provided in the PublishFirmwareRequest which triggered this action. | |
customData |
CustomDataType | No |
Example PublishFirmwareStatusNotificationRequest
{
"status": "Idle"
}
#PublishFirmwareStatusNotificationResponse
No required fields. An empty {} is a valid response.
#UnpublishFirmware
Direction: CSMS → CS
#UnpublishFirmwareRequest
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
checksum |
string | Yes | maxLength: 32 | The MD5 checksum over the entire firmware file as a hexadecimal string of length 32. |
customData |
CustomDataType | No |
Example UnpublishFirmwareRequest
{
"checksum": "string"
}
#UnpublishFirmwareResponse
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
status |
UnpublishFirmwareStatusEnumType | Yes | ||
customData |
CustomDataType | No |
#Local Types
Types used only within this block's messages.
#FirmwareStatusEnumType
This contains the progress status of the firmware installation.
| Value |
|---|
Downloaded |
DownloadFailed |
Downloading |
DownloadScheduled |
DownloadPaused |
Idle |
InstallationFailed |
Installing |
Installed |
InstallRebooting |
InstallScheduled |
InstallVerificationFailed |
InvalidSignature |
SignatureVerified |
Used in: FirmwareStatusNotification
#PublishFirmwareStatusEnumType
This contains the progress status of the publishfirmware installation.
| Value |
|---|
Idle |
DownloadScheduled |
Downloading |
Downloaded |
Published |
DownloadFailed |
DownloadPaused |
InvalidChecksum |
ChecksumVerified |
PublishFailed |
Used in: PublishFirmwareStatusNotification
#UnpublishFirmwareStatusEnumType
Indicates whether the Local Controller succeeded in unpublishing the firmware.
| Value |
|---|
DownloadOngoing |
NoFirmware |
Unpublished |
Used in: UnpublishFirmware
#UpdateFirmwareStatusEnumType
This field indicates whether the Charging Station was able to accept the request.
| Value |
|---|
Accepted |
Rejected |
AcceptedCanceled |
InvalidCertificate |
RevokedCertificate |
Used in: UpdateFirmware
#FirmwareType
Represents a copy of the firmware that can be loaded/updated on the Charging Station.
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
location |
string | Yes | maxLength: 512 | URI defining the origin of the firmware. |
retrieveDateTime |
string (date-time) | Yes | Date and time at which the firmware shall be retrieved. | |
installDateTime |
string (date-time) | No | Date and time at which the firmware shall be installed. | |
signature |
string | No | maxLength: 800 | Base64 encoded firmware signature. |
signingCertificate |
string | No | maxLength: 5500 | Certificate with which the firmware was signed. PEM encoded X.509 certificate. |
customData |
CustomDataType | No |
Used in: UpdateFirmware