SetDisplayMessage

DisplayManagement CSMS->CS OCPP 2.0.1

Sent by the CSMS to display a message on the Charging Station's screen, either immediately or at a scheduled time.

Quick Reference

Required Fields

message MessageInfoType

Message to display, including ID, priority, and content

message.id integer

Unique ID for this message

message.priority MessagePriorityEnumType

AlwaysFront, InFront, or NormalCycle

message.message MessageContentType

Message content with format and text

message.message.format MessageFormatEnumType

ASCII, HTML, URI, or UTF8

message.message.content string(512)

The message text to display

Optional Fields

message.state MessageStateEnumType

When to show: Charging, Faulted, Idle, or Unavailable

message.startDateTime string (date-time)

Start time for message display

message.endDateTime string (date-time)

End time for message display

message.transactionId string(36)

Show message only during this transaction

message.message.language string(8)

Language code (e.g., en, de, fr)

Example Payload

{
  "message": {
    "id": 1,
    "priority": "NormalCycle",
    "state": "Idle",
    "message": {
      "format": "UTF8",
      "language": "en",
      "content": "Welcome! Charge for free on weekends."
    }
  }
}

Example Full Frame

[
  2,
  "msg-001",
  "SetDisplayMessage",
  {
    "message": {
      "id": 1,
      "priority": "NormalCycle",
      "state": "Idle",
      "message": {
        "format": "UTF8",
        "language": "en",
        "content": "Welcome! Charge for free on weekends."
      }
    }
  }
]

Format: [MessageType, MessageId, Action, Payload]

Overview

SetDisplayMessage lets the CSMS push custom messages to the Charging Station’s display screen. Messages can be scheduled, state-dependent (show only when charging), or transaction-specific.

When to Send

  • To display promotional messages during idle time
  • To show maintenance notifications
  • To display transaction-specific information during charging

Expected Response

  • status: Accepted, NotSupportedMessageFormat, Rejected, or NotSupportedPriority

Usage Notes

  • AlwaysFront overrides all other messages — use sparingly
  • state can limit display to specific Charging Station states (only show during charging, etc.)
  • Multiple messages can coexist with different priorities and states

Testing Tips

  • Set an Idle state message and verify it shows when no session is active
  • Test Charging state message during an active transaction
  • Test message with startDateTime in the future and verify it appears at the right time

Common Errors

TypeConstraintViolation

Cause: priority uses an unsupported value

Solution: Use AlwaysFront, InFront, or NormalCycle

PropertyConstraintViolation

Cause: message content exceeds 512 characters

Solution: Keep the display message under 512 characters