SetDisplayMessage

Puts a message on the station's screen — pricing, a notice, or text for one driver.

Version
OCPP 2.0.1
Direction
CSMS → Charge Point
Functional block
Display Message

New in 2.0.1. In 1.6 the only way to control a station's display was a vendor-specific DataTransfer, which meant a different implementation per manufacturer.

A message can be scheduled, tied to a transaction, and given a priority that decides whether it interrupts what is on screen.

Request

FieldTypeRequiredDescription
messageMessageInfoTypeRequiredid, priority, message content, and optionally state, startDateTime, endDateTime, transactionId and display.
json
[2, "19223201", "SetDisplayMessage", {
  "message": {
    "id": 42,
    "priority": "NormalCycle",
    "state": "Idle",
    "message": { "format": "UTF8", "language": "en", "content": "Charging from 0.32/kWh" }
  }
}]

Response

FieldTypeRequiredDescription
statusDisplayMessageStatusEnumTypeRequiredResult.
statusInfoStatusInfoTypeOptionalReason code.
json
[3, "19223201", {
  "status": "Accepted"
}]

Values

MessagePriorityEnumType

ValueMeaning
AlwaysFrontAlways shown, ahead of everything else.
InFrontShown in front of normal messages.
NormalCycleIncluded in the normal rotation of messages.

DisplayMessageStatusEnumType

ValueMeaning
AcceptedThe message will be displayed.
NotSupportedMessageFormatThe station cannot render that format.
RejectedRefused.
NotSupportedPriorityThat priority is not supported.
NotSupportedStateThat state is not supported.
UnknownTransactionThe referenced transaction does not exist.

Implementation notes

Check the supported formats before sending. format may be ASCII, HTML, URI or UTF8, and a station that cannot render your choice answers NotSupportedMessageFormat. The DisplayMessageCtrlr component lists what it supports.

`AlwaysFront` on a permanent message monopolises the screen. Use startDateTime and endDateTime so notices expire on their own.

A message tied to a transactionId disappears when that transaction ends.