Networking and diagnostics51 — General Diagnostics

Matter Cluster 51 — General Diagnostics

Matter Cluster 51 (0x0033) General Diagnostics: attributes, commands, events, data types, shadow paths and bridge payload examples.

Matter Cluster 51 — General Diagnostics Cluster

Matter Cluster 51, also written as 0x0033, is the General Diagnostics Cluster. The General Diagnostics Cluster, along with other diagnostics clusters, provide a means to acquire standardized diagnostics metrics that may be used by a Node to assist a user or Administrator in diagnosing potential problems. The General Diagnostics Cluster attempts to centralize all metrics that are broadly relevant to the majority of Nodes.

Cluster Identity

FieldValue
Cluster ID decimal51
Cluster ID hex0x0033
Cluster nameGeneral Diagnostics
Cluster revision (Matter 1.6.1)3
Roleutility
ScopeNode
PICS codeDGGEN
Typical endpoint0

Revision history

RevisionChange
1Initial revision
2UpTime attribute now mandatory, and added TimeSnapshot command, added DMTEST feature
3Added DeviceLoadStatus attribute

Shadow Path Format

Cluster 51 values in the device shadow use this format:

endpoint_id / 51 / attribute_id

Example:

{
  "0/51/1": 1
}
PartMeaning
0Endpoint ID
51General Diagnostics cluster
1RebootCount attribute

Cluster 51 Features

The FeatureMap attribute (0/51/65532) is a bitmap. Each bit set means the device implements that feature and the attributes and commands that depend on it.

BitCodeFeatureConformanceMeaning
0DMTESTDataModelTestdescSupport specific testing needs for extended Data Model features

Example: FeatureMap = 0 means no optional feature is enabled; 1 means every feature listed above is enabled.


Data Types

BootReasonEnum

ValueNameConformanceMeaning
0UnspecifiedMThe Node is unable to identify the Power-On reason as one of the other provided enumeration values.
1PowerOnRebootMThe Node has booted as the result of physical interaction with the device resulting in a reboot.
2BrownOutResetMThe Node has rebooted as the result of a brown-out of the Node's power supply.
3SoftwareWatchdogResetMThe Node has rebooted as the result of a software watchdog timer.
4HardwareWatchdogResetMThe Node has rebooted as the result of a hardware watchdog timer.
5SoftwareUpdateCompletedMThe Node has rebooted as the result of a completed software update.
6SoftwareResetMThe Node has rebooted as the result of a software initiated reboot.

HardwareFaultEnum

ValueNameConformanceMeaning
0UnspecifiedMThe Node has encountered an unspecified fault.
1RadioOThe Node has encountered a fault with at least one of its radios.
2SensorOThe Node has encountered a fault with at least one of its sensors.
3ResettableOverTempOThe Node has encountered an over-temperature fault that is resettable.
4NonResettableOverTempOThe Node has encountered an over-temperature fault that is not resettable.
5PowerSourceOThe Node has encountered a fault with at least one of its power sources.
6VisualDisplayFaultOThe Node has encountered a fault with at least one of its visual displays.
7AudioOutputFaultOThe Node has encountered a fault with at least one of its audio outputs.
8UserInterfaceFaultOThe Node has encountered a fault with at least one of its user interfaces.
9NonVolatileMemoryErrorOThe Node has encountered a fault with its non-volatile memory.
10TamperDetectedOThe Node has encountered disallowed physical tampering.

InterfaceTypeEnum

ValueNameConformanceMeaning
0UnspecifiedMIndicates an interface of an unspecified type.
1WiFiOIndicates a Wi-Fi interface.
2EthernetOIndicates a Ethernet interface.
3CellularOIndicates a Cellular interface.
4ThreadOIndicates a Thread interface.

NetworkFaultEnum

ValueNameConformanceMeaning
0UnspecifiedMThe Node has encountered an unspecified fault.
1HardwareFailureOThe Node has encountered a network fault as a result of a hardware failure.
2NetworkJammedOThe Node has encountered a network fault as a result of a jammed network.
3ConnectionFailedOThe Node has encountered a network fault as a result of a failure to establish a connection.

RadioFaultEnum

ValueNameConformanceMeaning
0UnspecifiedMThe Node has encountered an unspecified radio fault.
1WiFiFaultOThe Node has encountered a fault with its Wi-Fi radio.
2CellularFaultOThe Node has encountered a fault with its cellular radio.
3ThreadFaultOThe Node has encountered a fault with its 802.15.4 radio.
4NFCFaultOThe Node has encountered a fault with its NFC radio.
5BLEFaultOThe Node has encountered a fault with its BLE radio.
6EthernetFaultOThe Node has encountered a fault with its Ethernet controller.

DeviceLoadStruct (struct)

This structure describes some important resource utilization metrics for the Node, as provided in the DeviceLoadStatus attribute. For all the fields, the value must remain at the maximum representable (clamp to max) if the maximum value is reached.

FieldNameTypeConformanceConstraintMeaning
0CurrentSubscriptionsuint16M—Indicates the number of currently-active Interaction Model subscriptions across all fabrics on the node.
1CurrentSubscriptionsForFabricuint16M—Indicates the number of currently-active Interaction Model subscriptions for the accessing fabric only.
2TotalSubscriptionsEstablisheduint32M—Indicates the total number of Interaction Model subscriptions successfully established across all fabrics on the node since start-up.
3TotalInteractionModelMessagesSentuint32M—Indicates the number of outgoing Interaction Model protocol messages sent since start-up.
4TotalInteractionModelMessagesReceiveduint32M—Indicates the number of incoming Interaction Model protocol messages received since start-up.

NetworkInterface (struct)

This structure describes a network interface supported by the Node, as provided in the NetworkInterfaces attribute.

FieldNameTypeConformanceConstraintMeaning
0NamestringMmax length 32Indicates a human-readable (displayable) name for the network interface, that is different from all other interfaces.
1IsOperationalboolM—Indicates if the Node is currently advertising itself operationally on this network interface and is capable of successfully receiving incoming traffic from other Nodes.
2OffPremiseServicesReachableIPv4bool (nullable)M—Indicates whether the Node is currently able to reach off-premise services it uses by utilizing IPv4.
3OffPremiseServicesReachableIPv6bool (nullable)M—Indicates whether the Node is currently able to reach off-premise services it uses by utilizing IPv6.
4HardwareAddresshwadrMallowed: 6, 8The byte order of the octstr is in wire byte order.
5IPv4Addresseslist of ipv4adrMmax 4 entriesThis field provides a list of the IPv4 addresses that are currently assigned to the network interface.
6IPv6Addresseslist of ipv6adrMmax 8 entriesThis field provides a list of the unicast IPv6 addresses that are currently assigned to the network interface.
7TypeInterfaceTypeEnumM—Indicates the type of the interface using the InterfaceTypeEnum.

Cluster 51 Attributes

Cluster 51 defines 11 attributes plus the global attributes. Conformance: M mandatory, O optional, a feature code means "mandatory when that feature is present", square brackets mean "optional when …".

IDHexAttributeTypeConformanceAccessQualitiesDefault
00x0000NetworkInterfaceslist of NetworkInterfaceMR (read: view)——
10x0001RebootCountuint16MR (read: view)persisted—
20x0002UpTimeuint64MR (read: view)change omitted—
30x0003TotalOperationalHoursuint32OR (read: view)persisted, change omitted—
40x0004BootReasonBootReasonEnumOR (read: view)——
50x0005ActiveHardwareFaultslist of HardwareFaultEnumOR (read: view)——
60x0006ActiveRadioFaultslist of RadioFaultEnumOR (read: view)——
70x0007ActiveNetworkFaultslist of NetworkFaultEnumOR (read: view)——
80x0008TestEventTriggersEnabledboolMR (read: view)——
90x0009DoNotUseX———
100x000ADeviceLoadStatusDeviceLoadStructClusterRevision >= 3R (read: view)change omitted—

Global attributes

IDHexAttributeMeaning
655280xFFF8GeneratedCommandListResponse command IDs this server generates.
655290xFFF9AcceptedCommandListCommand IDs this server accepts.
655310xFFFBAttributeListAttribute IDs implemented.
655320xFFFCFeatureMapImplemented optional features (see above).
655330xFFFDClusterRevisionCluster revision implemented; 3 for a Matter 1.6.1 device.

Attribute Details

Attribute 0 / 0x0000 — NetworkInterfaces

Path example:

0/51/0

The NetworkInterfaces attribute is a list of NetworkInterface structs. Each logical network interface on the Node is represented by a single entry within the NetworkInterfaces attribute.

PropertyValue
Typelist of NetworkInterface
ConformanceM
AccessR (read: view)
Constraintmax 8 entries

Each entry is a NetworkInterface (see Data Types).

Example:

{
  "0/51/0": []
}

Attribute 1 / 0x0001 — RebootCount

Path example:

0/51/1

The RebootCount attribute indicates a best-effort count of the number of times the Node has rebooted. The RebootCount attribute should be incremented each time the Node reboots. The RebootCount attribute must NOT be incremented when a Node wakes from a low-power or sleep state. The RebootCount attribute only be reset to 0 upon a factory reset of the Node.

PropertyValue
Typeuint16
ConformanceM
AccessR (read: view)
Qualitiespersisted

Example:

{
  "0/51/1": 1
}

Attribute 2 / 0x0002 — UpTime

Path example:

0/51/2

The UpTime attribute indicates a best-effort assessment of the length of time, in seconds, since the Node's last reboot. This attribute should be incremented to account for the periods of time that a Node is in a low-power or sleep state. This attribute only be reset upon a device reboot. This attribute is based on the same System Time source as those used to fulfill any usage of the systime-us and systime-ms data types within the server.

PropertyValue
Typeuint64
ConformanceM
AccessR (read: view)
Qualitieschange omitted

Example:

{
  "0/51/2": 0
}

Attribute 3 / 0x0003 — TotalOperationalHours

Path example:

0/51/3

The TotalOperationalHours attribute indicates a best-effort attempt at tracking the length of time, in hours, that the Node has been operational. The TotalOperationalHours attribute should be incremented to account for the periods of time that a Node is in a low-power or sleep state. The TotalOperationalHours attribute only be reset upon a factory reset of the Node.

PropertyValue
Typeuint32
ConformanceO
AccessR (read: view)
Qualitiespersisted, change omitted

Example:

{
  "0/51/3": 1
}

Attribute 4 / 0x0004 — BootReason

Path example:

0/51/4

The BootReason attribute indicates the reason for the Node's most recent boot.

PropertyValue
TypeBootReasonEnum
ConformanceO
AccessR (read: view)

Values (BootReasonEnum):

ValueNameMeaning
0UnspecifiedThe Node is unable to identify the Power-On reason as one of the other provided enumeration values.
1PowerOnRebootThe Node has booted as the result of physical interaction with the device resulting in a reboot.
2BrownOutResetThe Node has rebooted as the result of a brown-out of the Node's power supply.
3SoftwareWatchdogResetThe Node has rebooted as the result of a software watchdog timer.
4HardwareWatchdogResetThe Node has rebooted as the result of a hardware watchdog timer.
5SoftwareUpdateCompletedThe Node has rebooted as the result of a completed software update.
6SoftwareResetThe Node has rebooted as the result of a software initiated reboot.

Example:

{
  "0/51/4": 1
}

Attribute 5 / 0x0005 — ActiveHardwareFaults

Path example:

0/51/5

The ActiveHardwareFaults attribute indicates the set of faults currently detected by the Node. When the Node detects a fault has been raised, the appropriate HardwareFaultEnum value is added to this list. This list must NOT contain more than one instance of a specific HardwareFaultEnum value. When the Node detects that all conditions contributing to a fault has been cleared, the corresponding HardwareFaultEnum value is removed from this list.

PropertyValue
Typelist of HardwareFaultEnum
ConformanceO
AccessR (read: view)
Constraintmax 11 entries

Example:

{
  "0/51/5": []
}

Attribute 6 / 0x0006 — ActiveRadioFaults

Path example:

0/51/6

The ActiveRadioFaults attribute indicates the set of faults currently detected by the Node. When the Node detects a fault has been raised, the appropriate RadioFaultEnum value is added to this list. This list must NOT contain more than one instance of a specific RadioFaultEnum value. When the Node detects that all conditions contributing to a fault has been cleared, the corresponding RadioFaultEnum value is removed from this list.

PropertyValue
Typelist of RadioFaultEnum
ConformanceO
AccessR (read: view)
Constraintmax 7 entries

Example:

{
  "0/51/6": []
}

Attribute 7 / 0x0007 — ActiveNetworkFaults

Path example:

0/51/7

The ActiveNetworkFaults attribute indicates the set of faults currently detected by the Node. When the Node detects a fault has been raised, the appropriate NetworkFaultEnum value is added to this list. This list must NOT contain more than one instance of a specific NetworkFaultEnum value. When the Node detects that all conditions contributing to a fault has been cleared, the corresponding NetworkFaultEnum value is removed from this list.

PropertyValue
Typelist of NetworkFaultEnum
ConformanceO
AccessR (read: view)
Constraintmax 4 entries

Example:

{
  "0/51/7": []
}

Attribute 8 / 0x0008 — TestEventTriggersEnabled

Path example:

0/51/8

The TestEventTriggersEnabled attribute indicates whether the Node has any TestEventTrigger configured. When this attribute is true, the Node has been configured with one or more test event triggers by virtue of the internally programmed EnableKey value being set to a non-zero value. This attribute can be used by Administrators to detect if a device was inadvertently commissioned with test event trigger mode enabled, and take appropriate action (e.g. warn the user and/or offer to remove all fabrics on the Node).

PropertyValue
Typebool
ConformanceM
AccessR (read: view)

Example:

{
  "0/51/8": true
}

Attribute 9 / 0x0009 — DoNotUse

Path example:

0/51/9

No condensed specification text is available for DoNotUse; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Type
ConformanceX
Access—

Example:

{
  "0/51/9": 0
}

Attribute 10 / 0x000A — DeviceLoadStatus

Path example:

0/51/10

Indicates the status of various resources used.

PropertyValue
TypeDeviceLoadStruct
ConformanceClusterRevision >= 3
AccessR (read: view)
Qualitieschange omitted

Value is a DeviceLoadStruct struct (see Data Types).

Example:

{
  "0/51/10": {
    "currentSubscriptions": 1,
    "currentSubscriptionsForFabric": 1,
    "totalSubscriptionsEstablished": 1,
    "totalInteractionModelMessagesSent": 1
  }
}

Cluster 51 Commands

Cluster 51 has 3 client-to-server commands and 2 responses.

IDHexCommandDirectionConformanceResponseDescription
00x00TestEventTriggerclient → serverMstatusThis command is supported to provide a means for certification tests to trigger some test-plan-specific events, necessary to assist in automation of device interactions for some …
10x01TimeSnapshotclient → serverMTimeSnapshotResponseThis command may be used by a client to obtain a correlated view of both System Time, and, if currently synchronized and supported, "wall clock time" of the server.
20x02TimeSnapshotResponseserver → clientM—This command is generated in response to a TimeSnapshot command.
30x03PayloadTestRequestclient → serverDMTESTPayloadTestResponseThis command provides a means for certification tests or manufacturer's internal tests to validate particular command handling and encoding constraints by generating a response of …
40x04PayloadTestResponseserver → clientDMTEST—This command is sent by the server on receipt of the PayloadTestRequest command.

AcceptedCommandList

The AcceptedCommandList attribute lists the command IDs the endpoint actually implements:

endpoint_id / 51 / 65529
{
  "0/51/65529": [
    0,
    1,
    3
  ]
}

Before sending a Cluster 51 command, check that the command ID exists in endpoint/51/65529. Optional commands are only present when the matching feature is set in FeatureMap.


Bridge Command Payload Format

The bridge accepts Matter commands in this structure:

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 51,
    "command_name": "TestEventTrigger",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

For Cluster 51, always use "cluster_id": 51. Payload keys are the command field names in lowerCamelCase. Octet-string fields are base64-encoded. timed_request_timeout_ms is required for timed commands and ignored otherwise.


Command: TestEventTrigger

Purpose

This command is supported to provide a means for certification tests to trigger some test-plan-specific events, necessary to assist in automation of device interactions for some certification test cases. This command must NOT cause any changes to the state of the device that persist after the last fabric is removed. The fields for the TestEventTrigger command are as follows:

Command Identity

FieldValue
Command ID0
Command hex0x00
Command nameTestEventTrigger
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: manage)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0EnableKeyenableKeyoctstrMallowed: 16The EnableKey is a 128 bit value provided by the client in this command, which needs to match a value chosen by the manufacturer and configured on the server using manufacturer-specific means, such as pre-provisioning.
1EventTriggereventTriggeruint64M—Indicates the test or test mode which the client wants to trigger.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 51,
    "command_name": "TestEventTrigger",
    "payload": {
      "enableKey": "AQID",
      "eventTrigger": 1
    }
  }
}

Command: TimeSnapshot

Purpose

This command may be used by a client to obtain a correlated view of both System Time, and, if currently synchronized and supported, "wall clock time" of the server. This can help clients establish time correlation between their concept of time and the server's concept of time. This is especially useful when processing event histories where some events only contain System Time. Upon command invocation, the server must respond with a TimeSnapshotResponse.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameTimeSnapshot
Directionclient → server
ConformanceM
ResponseTimeSnapshotResponse
Access(invoke: operate)

Payload Fields

This command has no payload fields.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 51,
    "command_name": "TimeSnapshot",
    "payload": {}
  }
}

The device answers with TimeSnapshotResponse (see below).


Command: TimeSnapshotResponse

Purpose

This command is generated in response to a TimeSnapshot command. When generating this response, all fields is gathered as close together in time as possible, so that the time jitter between the values is minimized. If the Time Synchronization cluster is supported by the node, the PosixTimeMs field must NOT be null unless the UTCTime attribute in the Time Synchronization cluster is also null.

Command Identity

FieldValue
Command ID2
Command hex0x02
Command nameTimeSnapshotResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0SystemTimeMssystemTimeMssystime-msM—This indicates the current System Time in milliseconds (type systime-ms), with the value taken at the time of processing of the TimeSnapshot command that generated this response.
1PosixTimeMsposixTimeMsposix-ms (nullable)M—This indicates the current time in POSIX Time in milliseconds, with the value taken from the same source that could populate the Timestamp field of events.

Command: PayloadTestRequest

Purpose

This command provides a means for certification tests or manufacturer's internal tests to validate particular command handling and encoding constraints by generating a response of a given size. This command must use the same EnableKey behavior as the TestEventTrigger command, whereby processing of the command is only enabled when the TestEventTriggersEnabled field is true, which must NOT be true outside of certification testing or manufacturer's internal tests. The fields for the PayloadTestRequest command are as follows:

Command Identity

FieldValue
Command ID3
Command hex0x03
Command namePayloadTestRequest
Directionclient → server
ConformanceDMTEST
ResponsePayloadTestResponse
Access(invoke: manage)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0EnableKeyenableKeyoctstrMallowed: 16This field has the same meaning and usage as the TestEventTrigger EnableKey field.
1Valuevalueuint8M—Indicates the value to use in every byte of the PayloadTestResponse's Payload field.
2Countcountuint16Mmax 2048Indicates the number of times to repeat the Value in the PayloadTestResponse's Payload field.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 51,
    "command_name": "PayloadTestRequest",
    "payload": {
      "enableKey": "AQID",
      "value": 1,
      "count": 1
    }
  }
}

The device answers with PayloadTestResponse (see below).


Command: PayloadTestResponse

Purpose

This command is sent by the server on receipt of the PayloadTestRequest command.

Command Identity

FieldValue
Command ID4
Command hex0x04
Command namePayloadTestResponse
Directionserver → client (response)
ConformanceDMTEST

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0PayloadpayloadoctstrMmax length 2048This field contains the computed response of the PayloadTestRequest command.

Cluster 51 Events

IDHexEventPriorityConformanceDescription
00x00HardwareFaultChangecriticalOThe HardwareFaultChange Event indicates a change in the set of hardware faults currently detected by the Node.
10x01RadioFaultChangecriticalOThe RadioFaultChange Event indicates a change in the set of radio faults currently detected by the Node.
20x02NetworkFaultChangecriticalOThe NetworkFaultChange Event indicates a change in the set of network faults currently detected by the Node.
30x03BootReasoncriticalMThe BootReason Event indicates the reason that caused the device to start-up.

Event 0 — HardwareFaultChange

The HardwareFaultChange Event indicates a change in the set of hardware faults currently detected by the Node.

IDFieldTypeConformanceMeaning
0Currentlist of HardwareFaultEnumMThis field represents the set of faults currently detected, as per HardwareFaultEnum.
1Previouslist of HardwareFaultEnumMThis field represents the set of faults detected prior to this change event, as per HardwareFaultEnum.

Event 1 — RadioFaultChange

The RadioFaultChange Event indicates a change in the set of radio faults currently detected by the Node.

IDFieldTypeConformanceMeaning
0Currentlist of RadioFaultEnumMThis field represents the set of faults currently detected, as per RadioFaultEnum.
1Previouslist of RadioFaultEnumMThis field represents the set of faults detected prior to this change event, as per RadioFaultEnum.

Event 2 — NetworkFaultChange

The NetworkFaultChange Event indicates a change in the set of network faults currently detected by the Node.

IDFieldTypeConformanceMeaning
0Currentlist of NetworkFaultEnumMThis field represents the set of faults currently detected, as per NetworkFaultEnum.
1Previouslist of NetworkFaultEnumMThis field represents the set of faults detected prior to this change event, as per NetworkFaultEnum.

Event 3 — BootReason

The BootReason Event indicates the reason that caused the device to start-up.

IDFieldTypeConformanceMeaning
0BootReasonBootReasonEnumMThis field contains the reason for this BootReason event.

SmartphoneKey Notes

  • NetworkInterfaces (attribute 0) is where a device's Thread or Wi-Fi interface and its IPv6 addresses are listed.
  • Shadow paths follow endpoint/51/attribute; attribute values that the device reports as unreadable are written as n/a.
  • Attribute IDs, command IDs and enum values on this page come from the CSA Matter 1.6.1 data model; descriptions are condensed from the specification text.