class

Matter::Cluster::AdministratorCommissioningCluster

Inherits Matter::Cluster::Base < Reference < Object

Administrator Commissioning Cluster (0x003C)

Provides commands to open and close commissioning windows for device onboarding. Administrators can open enhanced windows (with custom PAKE verifier) or basic windows (with default passcode) to allow new commissioners to join the fabric.

This cluster provides functionality for opening commissioning windows to allow new administrators to commission the device. Supports both enhanced commissioning (with custom PAKE verifier) and basic commissioning (with default passcode).

Matter Core Spec §11.19 - Administrator Commissioning Cluster

Constants

ATTR_ADMIN_FABRIC_INDEX = 1_u32
ATTR_ADMIN_VENDOR_ID = 2_u32
ATTR_WINDOW_STATUS = 0_u32
CLUSTER_ID = 60_u32
CMD_OPEN_BASIC_COMMISSIONING_WINDOW = 1_u32
CMD_OPEN_COMMISSIONING_WINDOW = 0_u32
CMD_REVOKE_COMMISSIONING = 2_u32
CRYPTO_GROUP_SIZE_BYTES = 32
CRYPTO_PUBLIC_KEY_SIZE_BYTES = 65
Log = ::Log.for("matter.cluster.administrator_commissioning")
MAXIMUM_COMMISSIONING_TIMEOUT = 65535_u16
MINIMUM_COMMISSIONING_TIMEOUT = 180_u16
PAKE_PASSCODE_VERIFIER_LENGTH = 97
PAKE_SALT_MAX_LENGTH = 32
PAKE_SALT_MIN_LENGTH = 16
PBKDF2_MAX_ITERATIONS = 100000
PBKDF2_MIN_ITERATIONS = 1000
STANDARD_COMMISSIONING_TIMEOUT = 900_u16

Constructors

new(endpoint_id : DataType::EndpointNumber = DataType::EndpointNumber.new(0_u16), minimum_timeout : UInt16 = MINIMUM_COMMISSIONING_TIMEOUT, maximum_timeout : UInt16 = STANDARD_COMMISSIONING_TIMEOUT)
Source

Class methods

cluster_id

Administrator Commissioning Cluster (0x003C)

Provides commands to open and close commissioning windows for device onboarding. Administrators can open enhanced windows (with custom PAKE verifier) or basic windows (with default passcode) to allow new commissioners to join the fabric.

This cluster provides functionality for opening commissioning windows to allow new administrators to commission the device. Supports both enhanced commissioning (with custom PAKE verifier) and basic commissioning (with default passcode).

Matter Core Spec §11.19 - Administrator Commissioning Cluster

Source

Instance methods

addresses
Source
addresses=(addresses : Array(String))
Source
admin_fabric_index

AdminFabricIndex attribute (0x0001) - fabric that opened the window

Source
admin_fabric_index=(admin_fabric_index : UInt8 | Nil)

AdminFabricIndex attribute (0x0001) - fabric that opened the window

Source
admin_vendor_id

AdminVendorId attribute (0x0002) - vendor ID of opening administrator

Source
admin_vendor_id=(admin_vendor_id : UInt16 | Nil)

AdminVendorId attribute (0x0002) - vendor ID of opening administrator

Source
attributes

Get all attribute metadata

Source
basic_window_open?

Check if basic window is open

Source
close

Close and cleanup (for testing/shutdown)

Source
close_window

Close commissioning window (backward compatibility)

Source
commands

Get all command metadata

Source
configure_timeout_bounds(minimum : UInt16, maximum : UInt16) : Nil

Configure timeout bounds (for testing)

Source
device_name
Source
device_name=(device_name : String)
Source
device_type
Source
device_type=(device_type : UInt32)
Source
discriminator
Source
discriminator=(discriminator : UInt16 | Nil)
Source
enhanced_window_open?

Check if enhanced window is open

Source
iterations
Source
iterations=(iterations : UInt32 | Nil)
Source
name

Get cluster name

Source
on_close_failsafe
Source
on_close_failsafe=(on_close_failsafe : Proc(Nil) | Nil)
Source
on_configure_pase_pin
Source
on_configure_pase_pin=(on_configure_pase_pin : Proc(UInt32, UInt32, Bytes, Nil) | Nil)
Source
on_configure_pase_server

Callbacks for external component integration

Source
on_configure_pase_server=(on_configure_pase_server : Proc(Bytes, UInt32, Bytes, Nil) | Nil)

Callbacks for external component integration

Source
on_start_commissioning_advertising

mDNS advertising integration. If set, the cluster will not use the legacy MDNS::Advertiser implementation.

Source
on_start_commissioning_advertising=(on_start_commissioning_advertising : Proc(UInt16, MDNS::CommissioningMode, Nil) | Nil)

mDNS advertising integration. If set, the cluster will not use the legacy MDNS::Advertiser implementation.

Source
on_stop_commissioning_advertising
Source
on_stop_commissioning_advertising=(on_stop_commissioning_advertising : Proc(Nil) | Nil)
Source
on_stop_pase_server
Source
on_stop_pase_server=(on_stop_pase_server : Proc(Nil) | Nil)
Source
open_basic_commissioning_window(request : OpenBasicCommissioningWindowRequest, session_fabric_index : UInt8 | Nil, session_vendor_id : UInt16 | Nil) : Nil

Handle OpenBasicCommissioningWindow command (Basic)

Opens a basic commissioning window with device's default passcode. PBKDF2 parameters are auto-generated (iterations=1000, salt=random).

@param request OpenBasicCommissioningWindow request @param session_fabric_index Fabric index of requesting session @return nil on success, raises exception on error

Source
open_basic_window(timeout_seconds : UInt16, fabric_index : UInt8, vendor_id : UInt16) : Nil

Open basic commissioning window

Source
open_commissioning_window(request : OpenCommissioningWindowRequest, session_fabric_index : UInt8 | Nil, session_vendor_id : UInt16 | Nil) : Nil

Handle OpenCommissioningWindow command (Enhanced)

Opens an enhanced commissioning window with custom PAKE verifier. The verifier is pre-computed by the administrator from an ephemeral passcode.

@param request OpenCommissioningWindow request @param session_fabric_index Fabric index of requesting session @return nil on success, raises exception on error

Source
open_enhanced_window(timeout_seconds : UInt16, fabric_index : UInt8, vendor_id : UInt16) : Nil

Open enhanced commissioning window (with PAKE)

Source
pake_verifier

PAKE parameters (for enhanced commissioning)

Source
pake_verifier=(pake_verifier : Bytes | Nil)

PAKE parameters (for enhanced commissioning)

Source
product_id
Source
product_id=(product_id : UInt16)
Source
read_attribute(attribute_id : UInt32, fabric_index : UInt8 | Nil = nil) : InteractionModel::Status | Bytes

Read an attribute value The fabric_index parameter is optional and used for fabric-scoped attributes like CurrentFabricIndex in OperationalCredentialsCluster

Source
revoke_commissioning

Handle RevokeCommissioning command

Closes any open commissioning window and stops accepting new PASE sessions.

@return nil on success, raises exception if no window open

Source
salt
Source
salt=(salt : Bytes | Nil)
Source
session_fabric_index

Session context (set by the session before invoking commands)

Source
session_fabric_index=(session_fabric_index : UInt8 | Nil)

Session context (set by the session before invoking commands)

Source
session_vendor_id
Source
session_vendor_id=(session_vendor_id : UInt16 | Nil)
Source
time_remaining

Get time remaining on commissioning window (for testing)

Source
vendor_id
Source
vendor_id=(vendor_id : UInt16)
Source
window_expired?

Check if window is expired

Source
window_open?

Check if commissioning window is open

Source
window_status

WindowStatus attribute (0x0000) - current commissioning window state

Source
window_status=(window_status : CommissioningWindowStatus)

WindowStatus attribute (0x0000) - current commissioning window state

Source
window_timeout
Source
window_timeout=(window_timeout : Time | Nil)
Source
write_attribute(attribute_id : UInt32, value : Bytes) : InteractionModel::Status

Write an attribute value

Source

Nested types