NotifyReport
Sent by the Charging Station to deliver the results of a GetBaseReport or GetReport request. May be split across multiple messages for large reports.
Quick Reference
Required Fields
requestId integer The requestId from the original GetBaseReport or GetReport request
generatedAt string (date-time) Timestamp when the report was generated
seqNo integer Sequence number (0-based) for ordering multi-message reports
Optional Fields
tbc boolean To Be Continued - true if more NotifyReport messages will follow (default: false)
reportData array[ReportDataType] The actual variable data being reported
Example Payload
{
"requestId": 1,
"generatedAt": "2024-01-15T10:00:00Z",
"seqNo": 0,
"tbc": false,
"reportData": [
{
"component": {
"name": "HeartbeatCtrlr"
},
"variable": {
"name": "HeartbeatInterval"
},
"variableAttribute": [
{
"type": "Actual",
"value": "60",
"mutability": "ReadWrite"
}
]
}
]
} Example Full Frame
[
2,
"msg-001",
"NotifyReport",
{
"requestId": 1,
"generatedAt": "2024-01-15T10:00:00Z",
"seqNo": 0,
"tbc": false,
"reportData": [
{
"component": {
"name": "HeartbeatCtrlr"
},
"variable": {
"name": "HeartbeatInterval"
},
"variableAttribute": [
{
"type": "Actual",
"value": "60",
"mutability": "ReadWrite"
}
]
}
]
}
]
Format: [MessageType, MessageId, Action, Payload]
Overview
NotifyReport delivers variable data in response to GetBaseReport or GetReport. For large stations with many variables, the report is paginated across multiple NotifyReport messages using seqNo and tbc.
When to Send
- In response to
GetBaseReport - In response to
GetReport - Always as an unsolicited response (no separate CALL, it’s a response to the CSMS’s request ID)
Expected Response
Empty response {} — the CSMS acknowledges each NotifyReport message.
Usage Notes
tbc: truemeans more messages are coming for the samerequestIdtbc: false(or absent) signals the last message in the sequence- The CSMS should collect all messages with the same
requestIdand reassemble the full report reportDatacan be absent in the final message if there are no more items
Testing Tips
- Verify the CSMS correctly reconstructs a multi-message report
- Verify
seqNoincrements correctly across messages - Test with an empty final
reportData(last chunk may be empty)
Common Errors
TypeConstraintViolation
Cause: seqNo does not start at 0
Solution: seqNo must start at 0 and increment by 1 for each subsequent message in the same report