General and node management48 — General Commissioning

Matter Cluster 48 — General Commissioning

Matter Cluster 48 (0x0030) General Commissioning: attributes, commands, events, data types, shadow paths and bridge payload examples.

Matter Cluster 48 — General Commissioning Cluster

Matter Cluster 48, also written as 0x0030, is the General Commissioning Cluster. This cluster is used to manage basic commissioning lifecycle. It also hosts functionalities those other clusters may depend on.

Cluster Identity

FieldValue
Cluster ID decimal48
Cluster ID hex0x0030
Cluster nameGeneral Commissioning
Cluster revision (Matter 1.6.1)2
Roleutility
ScopeNode
PICS codeCGEN
Typical endpoint0

Revision history

RevisionChange
1Initial revision
2Add Enhanced Setup Flow

Shadow Path Format

Cluster 48 values in the device shadow use this format:

endpoint_id / 48 / attribute_id

Example:

{
  "0/48/0": 1
}
PartMeaning
0Endpoint ID
48General Commissioning cluster
0Breadcrumb attribute

Cluster 48 Features

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

BitCodeFeatureConformanceMeaning
0TCTermsAndConditionsOSupports Terms & Conditions acknowledgement
1NRNetworkRecoveryP, OSupports Network Recovery

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


Data Types

CommissioningErrorEnum

This enumeration is used by several response commands in this cluster to indicate particular errors.

ValueNameConformanceMeaning
0OKMNo error
1ValueOutsideRangeMAttempting to set regulatory configuration to a region or indoor/outdoor mode for which the server does not have proper configuration.
2InvalidAuthenticationMExecuted CommissioningComplete outside CASE session.
3NoFailSafeMExecuted CommissioningComplete when there was no active Fail-Safe context.
4BusyWithOtherAdminMAttempting to arm fail-safe or execute CommissioningComplete from a fabric different than the one associated with the current fail-safe context.
5RequiredTCNotAcceptedTCOne or more required TC features from the Enhanced Setup Flow were not accepted.
6TCAcknowledgementsNotReceivedTCTCAcknowledgementsNotReceived No or insufficient acknowledgements from the user for the TC features were received.
7TCMinVersionNotMetTCTCMinVersionNotMet The version of the TC features acknowledged by the user did not meet the minimum required version.

NetworkRecoveryReasonEnum

This data type is derived from enum8, however, the maximum value of the enumeration is less than 15. This enumeration is used by the NetworkRecoveryReason attribute and may be embedded in the beacons advertising the need for Network Recovery.

ValueNameConformanceMeaning
0UnspecifiedP, MUnspecified / unknown reason of network failure
1AuthP, MCredentials for the configured operational network are not valid
2VisibilityP, MConfigured network cannot be found (e.g. the device cannot see the configured Wi-Fi SSID, Thread end-node is unable to find a parent router on the PAN)

RegulatoryLocationTypeEnum

This enumeration is used by the RegulatoryConfig and LocationCapability attributes to indicate possible radio usage.

ValueNameConformanceMeaning
0IndoorMIndoor only
1OutdoorMOutdoor only
2IndoorOutdoorMIndoor/Outdoor

BasicCommissioningInfo (struct)

This structure provides some constant values that may be of use to all commissioners.

FieldNameTypeConformanceConstraintMeaning
0FailSafeExpiryLengthSecondsuint16M—This field contains a conservative initial duration (in seconds) to set in the FailSafe for the commissioning flow to complete successfully.
1MaxCumulativeFailsafeSecondsuint16MdescThe value of this field is greater than or equal to the FailSafeExpiryLengthSeconds.

Cluster 48 Attributes

Cluster 48 defines 13 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
00x0000Breadcrumbuint64MR/W (read: view, write: admin)—0
10x0001BasicCommissioningInfoBasicCommissioningInfoMR (read: view)——
20x0002RegulatoryConfigRegulatoryLocationTypeEnumMR (read: view)——
30x0003LocationCapabilityRegulatoryLocationTypeEnumMR (read: view)——
40x0004SupportsConcurrentConnectionboolMR (read: view)—true
50x0005TCAcceptedVersionuint16TCR (read: admin)persisted—
60x0006TCMinRequiredVersionuint16TCR (read: admin)persisted—
70x0007TCAcknowledgementsmap16TCR (read: admin)persisted—
80x0008TCAcknowledgementsRequiredboolTCR (read: admin)persistedtrue
90x0009TCUpdateDeadlineuint32TCR (read: admin)nullable, persisted—
100x000ARecoveryIdentifieroctstrP, NRR (read: manage)persisted0
110x000BNetworkRecoveryReasonNetworkRecoveryReasonEnumP, NRR (read: manage)nullablenull
120x000CIsCommissioningWithoutPowerboolOR (read: view)—false

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; 2 for a Matter 1.6.1 device.

Attribute Details

Attribute 0 / 0x0000 — Breadcrumb

Path example:

0/48/0

This attribute allows for the storage of a client-provided small payload which Administrators and Commissioners may write and then subsequently read, to keep track of their own progress. This may be used by the Commissioner to avoid repeating already-executed actions upon re-establishing a commissioning link after an error. On start/restart of the server, such as when a device is power-cycled, this attribute is reset to zero. Some commands related to commissioning also have a side-effect of updating or resetting this attribute and this is specified in their respective functional descriptions.

PropertyValue
Typeuint64
ConformanceM
AccessR/W (read: view, write: admin)
Default0

Example:

{
  "0/48/0": 1
}

Attribute 1 / 0x0001 — BasicCommissioningInfo

Path example:

0/48/1

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

PropertyValue
TypeBasicCommissioningInfo
ConformanceM
AccessR (read: view)
Constraintdesc

Value is a BasicCommissioningInfo struct (see Data Types).

Example:

{
  "0/48/1": {
    "failSafeExpiryLengthSeconds": 1,
    "maxCumulativeFailsafeSeconds": 1
  }
}

Attribute 2 / 0x0002 — RegulatoryConfig

Path example:

0/48/2

Indicates the regulatory configuration for the product.

PropertyValue
TypeRegulatoryLocationTypeEnum
ConformanceM
AccessR (read: view)

Values (RegulatoryLocationTypeEnum):

ValueNameMeaning
0IndoorIndoor only
1OutdoorOutdoor only
2IndoorOutdoorIndoor/Outdoor

Example:

{
  "0/48/2": 0
}

Attribute 3 / 0x0003 — LocationCapability

Path example:

0/48/3

LocationCapability is statically set by the manufacturer and indicates if this Node needs to be told an exact RegulatoryLocation. For example a Node which is "Indoor Only" would not be certified for outdoor use at all, and thus there is no need for a commissioner to set or ask the user about whether the device will be used inside or outside. However a device which states its capability is "Indoor/Outdoor" means it would like clarification if possible. For Nodes without radio network interfaces (e.g.

PropertyValue
TypeRegulatoryLocationTypeEnum
ConformanceM
AccessR (read: view)

Values (RegulatoryLocationTypeEnum):

ValueNameMeaning
0IndoorIndoor only
1OutdoorOutdoor only
2IndoorOutdoorIndoor/Outdoor

Example:

{
  "0/48/3": 0
}

Attribute 4 / 0x0004 — SupportsConcurrentConnection

Path example:

0/48/4

Indicates whether this device supports "concurrent connection flow" commissioning mode. If false, the device only supports "non-concurrent connection flow" mode.

PropertyValue
Typebool
ConformanceM
AccessR (read: view)
Defaulttrue

Example:

{
  "0/48/4": true
}

Attribute 5 / 0x0005 — TCAcceptedVersion

Path example:

0/48/5

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

PropertyValue
Typeuint16
ConformanceTC
AccessR (read: admin)
Qualitiespersisted

Example:

{
  "0/48/5": 1
}

Attribute 6 / 0x0006 — TCMinRequiredVersion

Path example:

0/48/6

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

PropertyValue
Typeuint16
ConformanceTC
AccessR (read: admin)
Qualitiespersisted

Example:

{
  "0/48/6": 1
}

Attribute 7 / 0x0007 — TCAcknowledgements

Path example:

0/48/7

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

PropertyValue
Typemap16
ConformanceTC
AccessR (read: admin)
Qualitiespersisted

Example:

{
  "0/48/7": 0
}

Attribute 8 / 0x0008 — TCAcknowledgementsRequired

Path example:

0/48/8

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

PropertyValue
Typebool
ConformanceTC
AccessR (read: admin)
Qualitiespersisted
Defaulttrue

Example:

{
  "0/48/8": true
}

Attribute 9 / 0x0009 — TCUpdateDeadline

Path example:

0/48/9

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

PropertyValue
Typeuint32
ConformanceTC
AccessR (read: admin)
Qualitiesnullable, persisted

Example:

{
  "0/48/9": 1
}

Attribute 10 / 0x000A — RecoveryIdentifier

Path example:

0/48/10

This attribute contains the identifier to be included in the advertisements used during the Network Recovery Flow. This identifier is intended to be advertised over the air and used by an Administrator to establish a Node's identity without revealing its Node ID. The attribute contains a random 64-bit value, that value is reset on factory reset and must remain unchanged until a next factory reset. It is important that this value be selected at random from a 64-bit number space to ensure a high likelihood of uniqueness from values selected by other Nodes.

PropertyValue
Typeoctstr
ConformanceP, NR
AccessR (read: manage)
Qualitiespersisted
Constraintallowed: 8
Default0

Example:

{
  "0/48/10": "AQID"
}

Attribute 11 / 0x000B — NetworkRecoveryReason

Path example:

0/48/11

This attribute contains the primary reason that triggered the Network Recovery flow and its associated advertisements. Null when the Node is not undergoing a Network Recovery flow.

PropertyValue
TypeNetworkRecoveryReasonEnum
ConformanceP, NR
AccessR (read: manage)
Qualitiesnullable
Defaultnull

Values (NetworkRecoveryReasonEnum):

ValueNameMeaning
0UnspecifiedUnspecified / unknown reason of network failure
1AuthCredentials for the configured operational network are not valid
2VisibilityConfigured network cannot be found (e.g. the device cannot see the configured Wi-Fi SSID, Thread end-node is unable to find a parent router on the PAN)

Example:

{
  "0/48/11": 1
}

Attribute 12 / 0x000C — IsCommissioningWithoutPower

Path example:

0/48/12

The server must set this attribute to true if and only if is currently operating on the commissioning channel but cannot operate on the operational channel because it is not powered. This may happen during NFC-based commissioning, when the commissioning channel is NFC Transport Layer (NTL), because it can harvest energy from NFC to operate. However, such a Commissionee must be powered on to switch to the operational channel. This attribute is linked to the Commissionee behavior after reception of the ConnectNetwork Command.

PropertyValue
Typebool
ConformanceO
AccessR (read: view)
Defaultfalse

Example:

{
  "0/48/12": true
}

Cluster 48 Commands

Cluster 48 has 4 client-to-server commands and 4 responses.

IDHexCommandDirectionConformanceResponseDescription
00x00ArmFailSafeclient → serverMArmFailSafeResponseThis command is used to arm or disarm the fail-safe timer.
10x01ArmFailSafeResponseserver → clientM—This command is used to report the result of the ArmFailSafe command.
20x02SetRegulatoryConfigclient → serverMSetRegulatoryConfigResponseThis command is used to set the regulatory configuration for the device.
30x03SetRegulatoryConfigResponseserver → clientM—This command is used to report the result of the SetRegulatoryConfig command.
40x04CommissioningCompleteclient → serverMCommissioningCompleteResponseThis command is used to indicate that the commissioning process is complete.
50x05CommissioningCompleteResponseserver → clientM—This command is used to report the result of the CommissioningComplete command.
60x06SetTCAcknowledgementsclient → serverTCSetTCAcknowledgementsResponse—
70x07SetTCAcknowledgementsResponseserver → clientTC——

AcceptedCommandList

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

endpoint_id / 48 / 65529
{
  "0/48/65529": [
    0,
    2,
    4,
    6
  ]
}

Before sending a Cluster 48 command, check that the command ID exists in endpoint/48/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": 48,
    "command_name": "ArmFailSafe",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

For Cluster 48, always use "cluster_id": 48. 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: ArmFailSafe

Purpose

This command is used to arm or disarm the fail-safe timer. Success or failure of this command is communicated by the ArmFailSafeResponse command, unless some data model validations caused a failure status code to be issued during the processing of the command. If the fail-safe timer is not currently armed, the commissioning window is open, and the command was received over a CASE session, the command must leave the current fail-safe state unchanged and immediately respond with an ArmFailSafeResponse containing an ErrorCode value of BusyWithOtherAdmin.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command nameArmFailSafe
Directionclient → server
ConformanceM
ResponseArmFailSafeResponse
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ExpiryLengthSecondsexpiryLengthSecondsuint16M——
1Breadcrumbbreadcrumbuint64M——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 48,
    "command_name": "ArmFailSafe",
    "payload": {
      "expiryLengthSeconds": 1,
      "breadcrumb": 1
    }
  }
}

The device answers with ArmFailSafeResponse (see below).


Command: ArmFailSafeResponse

Purpose

This command is used to report the result of the ArmFailSafe command.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameArmFailSafeResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ErrorCodeerrorCodeCommissioningErrorEnumM—This field contains the result of the operation, based on the behavior specified in the functional description of the ArmFailSafe command.
1DebugTextdebugTextstringMmax length 128—

ErrorCode values (CommissioningErrorEnum): 0 = OK, 1 = ValueOutsideRange, 2 = InvalidAuthentication, 3 = NoFailSafe, 4 = BusyWithOtherAdmin, 5 = RequiredTCNotAccepted, 6 = TCAcknowledgementsNotReceived, 7 = TCMinVersionNotMet


Command: SetRegulatoryConfig

Purpose

This command is used to set the regulatory configuration for the device. This must add or update the regulatory configuration in the RegulatoryConfig Attribute to the value provided in the NewRegulatoryConfig field. Success or failure of this command is communicated by the SetRegulatoryConfigResponse command, unless some data model validations caused a failure status code to be issued during the processing of the command. The CountryCode field must conforms to ISO 3166-1 alpha-2 and is used to set the Location attribute reflected by the Basic Information Cluster.

Command Identity

FieldValue
Command ID2
Command hex0x02
Command nameSetRegulatoryConfig
Directionclient → server
ConformanceM
ResponseSetRegulatoryConfigResponse
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0NewRegulatoryConfignewRegulatoryConfigRegulatoryLocationTypeEnumM——
1CountryCodecountryCodestringMallowed: 2—
2Breadcrumbbreadcrumbuint64M——

NewRegulatoryConfig values (RegulatoryLocationTypeEnum): 0 = Indoor, 1 = Outdoor, 2 = IndoorOutdoor

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 48,
    "command_name": "SetRegulatoryConfig",
    "payload": {
      "newRegulatoryConfig": 0,
      "countryCode": "example",
      "breadcrumb": 1
    }
  }
}

The device answers with SetRegulatoryConfigResponse (see below).


Command: SetRegulatoryConfigResponse

Purpose

This command is used to report the result of the SetRegulatoryConfig command.

Command Identity

FieldValue
Command ID3
Command hex0x03
Command nameSetRegulatoryConfigResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ErrorCodeerrorCodeCommissioningErrorEnumM—This field contains the result of the operation, based on the behavior specified in the functional description of the SetRegulatoryConfig command.
1DebugTextdebugTextstringM——

ErrorCode values (CommissioningErrorEnum): 0 = OK, 1 = ValueOutsideRange, 2 = InvalidAuthentication, 3 = NoFailSafe, 4 = BusyWithOtherAdmin, 5 = RequiredTCNotAccepted, 6 = TCAcknowledgementsNotReceived, 7 = TCMinVersionNotMet


Command: CommissioningComplete

Purpose

This command is used to indicate that the commissioning process is complete. Success or failure of this command is communicated by the CommissioningCompleteResponse command, unless some data model validations caused a failure status code to be issued during the processing of the command. This command signals the Server that the Commissioner or Administrator has successfully completed all steps needed during the Fail-Safe period, such as commissioning or other Administrator operations requiring usage of the Fail Safe timer.

Command Identity

FieldValue
Command ID4
Command hex0x04
Command nameCommissioningComplete
Directionclient → server
ConformanceM
ResponseCommissioningCompleteResponse
Access(invoke: admin, fabric-scoped)

Payload Fields

This command has no payload fields.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 48,
    "command_name": "CommissioningComplete",
    "payload": {}
  }
}

The device answers with CommissioningCompleteResponse (see below).


Command: CommissioningCompleteResponse

Purpose

This command is used to report the result of the CommissioningComplete command.

Command Identity

FieldValue
Command ID5
Command hex0x05
Command nameCommissioningCompleteResponse
Directionserver → client (response)
ConformanceM

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ErrorCodeerrorCodeCommissioningErrorEnumM—This field contains the result of the operation, based on the behavior specified in the functional description of the CommissioningComplete command.
1DebugTextdebugTextstringM——

ErrorCode values (CommissioningErrorEnum): 0 = OK, 1 = ValueOutsideRange, 2 = InvalidAuthentication, 3 = NoFailSafe, 4 = BusyWithOtherAdmin, 5 = RequiredTCNotAccepted, 6 = TCAcknowledgementsNotReceived, 7 = TCMinVersionNotMet


Command: SetTCAcknowledgements

Purpose

SetTCAcknowledgements is a client-to-server command of the General Commissioning cluster.

Command Identity

FieldValue
Command ID6
Command hex0x06
Command nameSetTCAcknowledgements
Directionclient → server
ConformanceTC
ResponseSetTCAcknowledgementsResponse
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0TCVersiontcVersionuint16M——
1TCUserResponsetcUserResponsemap16M——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 48,
    "command_name": "SetTCAcknowledgements",
    "payload": {
      "tcVersion": 1,
      "tcUserResponse": 0
    }
  }
}

The device answers with SetTCAcknowledgementsResponse (see below).


Command: SetTCAcknowledgementsResponse

Purpose

SetTCAcknowledgementsResponse is a server response of the General Commissioning cluster.

Command Identity

FieldValue
Command ID7
Command hex0x07
Command nameSetTCAcknowledgementsResponse
Directionserver → client (response)
ConformanceTC

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ErrorCodeerrorCodeCommissioningErrorEnumM——

ErrorCode values (CommissioningErrorEnum): 0 = OK, 1 = ValueOutsideRange, 2 = InvalidAuthentication, 3 = NoFailSafe, 4 = BusyWithOtherAdmin, 5 = RequiredTCNotAccepted, 6 = TCAcknowledgementsNotReceived, 7 = TCMinVersionNotMet


Cluster 48 Events

Cluster 48 defines no events.


SmartphoneKey Notes

  • Cluster 48 is present on SmartphoneKey devices or hubs today. See Matter Bridge Clusters — Detailed Reference and Matter Device Attributes & Commands for the values the bridge actually reports.
  • Shadow paths follow endpoint/48/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.