Bridges and fabric administration1873 — Commissioner Control

Matter Cluster 1873 — Commissioner Control

Matter Cluster 1873 (0x0751) Commissioner Control: attributes, commands, events, data types, shadow paths and bridge payload examples.

Matter Cluster 1873 — Commissioner Control Cluster

Matter Cluster 1873, also written as 0x0751, is the Commissioner Control Cluster. The Commissioner Control Cluster supports the ability for clients to request the commissioning of themselves or other nodes onto a fabric which the cluster server can commission onto. An example use case is ecosystem to ecosystem Fabric Synchronization setup. The generalized flow supported by the Commissioner Control Cluster can be seen in the following diagram.

Cluster Identity

FieldValue
Cluster ID decimal1873
Cluster ID hex0x0751
Cluster nameCommissioner Control
Cluster revision (Matter 1.6.1)1
Roleutility
ScopeNode
PICS codeCCTRL
Typical endpoint0

Revision history

RevisionChange
1Initial revision

Shadow Path Format

Cluster 1873 values in the device shadow use this format:

endpoint_id / 1873 / attribute_id

Example:

{
  "0/1873/0": 0
}
PartMeaning
0Endpoint ID
1873Commissioner Control cluster
0SupportedDeviceCategories attribute

Data Types

SupportedDeviceCategoryBitmap (bitmap)

BitNameConformanceMeaning
0FabricSynchronizationOAggregators which support Fabric Synchronization may be commissioned.

Cluster 1873 Attributes

Cluster 1873 defines 1 attribute 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
00x0000SupportedDeviceCategoriesSupportedDeviceCategoryBitmapMR (read: manage)—0

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

Attribute Details

Attribute 0 / 0x0000 — SupportedDeviceCategories

Path example:

0/1873/0

Indicates the device categories specified in SupportedDeviceCategoryBitmap that are supported by this Commissioner Control Cluster server. A client must NOT send the RequestCommissioningApproval command if the intended node to be commissioned does not conform to any of the values specified in SupportedDeviceCategories.

PropertyValue
TypeSupportedDeviceCategoryBitmap
ConformanceM
AccessR (read: manage)
Default0

Bits (SupportedDeviceCategoryBitmap):

BitNameMeaning
0FabricSynchronizationAggregators which support Fabric Synchronization may be commissioned.

Example:

{
  "0/1873/0": 0
}

Cluster 1873 Commands

Cluster 1873 has 2 client-to-server commands and 1 response.

IDHexCommandDirectionConformanceResponseDescription
00x00RequestCommissioningApprovalclient → serverMstatusThis command is sent by a client to request approval for a future CommissionNode call.
10x01CommissionNodeclient → serverMReverseOpenCommissioningWindowThis command is sent by a client to request that the server begins commissioning a previously approved request.
20x02ReverseOpenCommissioningWindowserver → clientM—When received within the timeout specified by ResponseTimeoutSeconds in the CommissionNode command, the client must open a commissioning window on a node which matches the …

AcceptedCommandList

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

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

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

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

Purpose

This command is sent by a client to request approval for a future CommissionNode call. This is required to be a separate step in order to provide the server time for interacting with a user before informing the client that the CommissionNode operation may be successful. If the command is not executed via a CASE session, the command must fail with a status code of UNSUPPORTED_ACCESS. The server may request approval from the user, but it is not required.

Command Identity

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

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0RequestIDrequestIDuint64M——
1VendorIDvendorIDvendor-idM——
2ProductIDproductIDuint16M——
3LabellabelstringOmax length 64—

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1873,
    "command_name": "RequestCommissioningApproval",
    "payload": {
      "requestID": 1,
      "vendorID": 1,
      "productID": 1
    }
  }
}

Command: CommissionNode

Purpose

This command is sent by a client to request that the server begins commissioning a previously approved request. The server returns FAILURE if the CommissionNode command is not sent from the same NodeID and on the same fabric as the RequestCommissioningApproval or if the provided RequestID to CommissionNode does not match the value provided to RequestCommissioningApproval. If the command is not executed via a CASE session, the command must fail with a status code of UNSUPPORTED_ACCESS. Upon receipt, the server must respond with ReverseOpenCommissioningWindow if CommissioningRequestResult was generated with StatusCode of SUCCESS for the matching RequestID field and NodeID of the client.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameCommissionNode
Directionclient → server
ConformanceM
ResponseReverseOpenCommissioningWindow
Access(invoke: manage)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0RequestIDrequestIDuint64M——
1ResponseTimeoutSecondsresponseTimeoutSecondsuint16M30 to 120—

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1873,
    "command_name": "CommissionNode",
    "payload": {
      "requestID": 1,
      "responseTimeoutSeconds": 30
    }
  }
}

The device answers with ReverseOpenCommissioningWindow (see below).


Command: ReverseOpenCommissioningWindow

Purpose

When received within the timeout specified by ResponseTimeoutSeconds in the CommissionNode command, the client must open a commissioning window on a node which matches the VendorID and ProductID provided in the associated RequestCommissioningApproval command. When commissioning this node, the server must check that the VendorID and ProductID fields provided in the RequestCommissioningApproval command match the VendorID and ProductID attributes of the Basic Information Cluster which have already been verified during the Device Attestation Procedure. If they do not match, the server must NOT complete commissioning and should indicate an error to the user.

Command Identity

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

Response Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0CommissioningTimeoutcommissioningTimeoutuint16Mdesc—
1PAKEPasscodeVerifierpakePasscodeVerifieroctstrMallowed: 97—
2Discriminatordiscriminatoruint16Mmax 4095—
3Iterationsiterationsuint32M1000 to 100000—
4SaltsaltoctstrMlength 16 to 32—

Cluster 1873 Events

IDHexEventPriorityConformanceDescription
00x00CommissioningRequestResultinfoMThis event is generated by the server following a RequestCommissioningApproval command which the server responded to with SUCCESS.

Event 0 — CommissioningRequestResult

This event is generated by the server following a RequestCommissioningApproval command which the server responded to with SUCCESS. The approval is valid for a period determined by the manufacturer and characteristics of the node presenting the Commissioner Control Cluster. Clients should send the CommissionNode command immediately upon receiving a CommissioningRequestResult event.

IDFieldTypeConformanceMeaning
0RequestIDuint64M—
1ClientNodeIDnode-idM—
2StatusCodestatusM—

SmartphoneKey Notes

  • Cluster 1873 is not currently exposed by SmartphoneKey devices. This page documents the Matter 1.6.1 specification so that future devices can be interpreted without changes to the backend.
  • Shadow paths follow endpoint/1873/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.