class
Matter::Cluster::AdministratorCommissioningCluster
Overview
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
Defined in:
matter/cluster/administrator_commissioning_cluster.crConstant Summary
-
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
Class Method Summary
-
.cluster_id
Administrator Commissioning Cluster (0x003C)
Instance Method Summary
- #addresses : Array(String)
- #addresses=(addresses : Array(String))
-
#admin_fabric_index : UInt8 | Nil
AdminFabricIndex attribute (0x0001) - fabric that opened the window
-
#admin_fabric_index=(admin_fabric_index : UInt8 | Nil)
AdminFabricIndex attribute (0x0001) - fabric that opened the window
-
#admin_vendor_id : UInt16 | Nil
AdminVendorId attribute (0x0002) - vendor ID of opening administrator
-
#admin_vendor_id=(admin_vendor_id : UInt16 | Nil)
AdminVendorId attribute (0x0002) - vendor ID of opening administrator
-
#attributes : Array(AttributeMetadata)
Get all attribute metadata
-
#basic_window_open? : Bool
Check if basic window is open
-
#close : Nil
Close and cleanup (for testing/shutdown)
-
#close_window : Nil
Close commissioning window (backward compatibility)
-
#commands : Array(CommandMetadata)
Get all command metadata
-
#configure_timeout_bounds(minimum : UInt16, maximum : UInt16) : Nil
Configure timeout bounds (for testing)
- #device_name : String
- #device_name=(device_name : String)
- #device_type : UInt32
- #device_type=(device_type : UInt32)
- #discriminator : UInt16 | Nil
- #discriminator=(discriminator : UInt16 | Nil)
-
#enhanced_window_open? : Bool
Check if enhanced window is open
-
#is_window_expired? : Bool
Check if window is expired
-
#is_window_open? : Bool
Check if any commissioning window is open (backward compatibility)
- #iterations : UInt32 | Nil
- #iterations=(iterations : UInt32 | Nil)
-
#name : String
Get cluster name
- #on_close_failsafe : Proc(Nil) | Nil
- #on_close_failsafe=(on_close_failsafe : Proc(Nil) | Nil)
- #on_configure_pase_pin : Proc(UInt32, UInt32, Bytes, Nil) | Nil
- #on_configure_pase_pin=(on_configure_pase_pin : Proc(UInt32, UInt32, Bytes, Nil) | Nil)
-
#on_configure_pase_server : Proc(Bytes, UInt32, Bytes, Nil) | Nil
Callbacks for external component integration
-
#on_configure_pase_server=(on_configure_pase_server : Proc(Bytes, UInt32, Bytes, Nil) | Nil)
Callbacks for external component integration
- #on_open_basic_commissioning_window : Proc(UInt16, UInt8, UInt16, StatusCode) | Nil
- #on_open_basic_commissioning_window=(on_open_basic_commissioning_window : Proc(UInt16, UInt8, UInt16, StatusCode) | Nil)
-
#on_open_commissioning_window : Proc(UInt16, Bytes, UInt16, Bytes, UInt32, UInt8, UInt16, StatusCode) | Nil
Backward compatibility callbacks from cluster/ version
-
#on_open_commissioning_window=(on_open_commissioning_window : Proc(UInt16, Bytes, UInt16, Bytes, UInt32, UInt8, UInt16, StatusCode) | Nil)
Backward compatibility callbacks from cluster/ version
- #on_revoke_commissioning : Proc(StatusCode) | Nil
- #on_revoke_commissioning=(on_revoke_commissioning : Proc(StatusCode) | Nil)
- #on_stop_pase_server : Proc(Nil) | Nil
- #on_stop_pase_server=(on_stop_pase_server : Proc(Nil) | Nil)
-
#open_basic_commissioning_window(request : OpenBasicCommissioningWindowRequest, session_fabric_index : UInt8 | Nil, session_vendor_id : UInt16 | Nil) : Nil
Handle OpenBasicCommissioningWindow command (Basic)
-
#open_basic_window(timeout_seconds : UInt16, fabric_index : UInt8, vendor_id : UInt16) : Nil
Open basic commissioning window
-
#open_commissioning_window(request : OpenCommissioningWindowRequest, session_fabric_index : UInt8 | Nil, session_vendor_id : UInt16 | Nil) : Nil
Handle OpenCommissioningWindow command (Enhanced)
-
#open_enhanced_window(timeout_seconds : UInt16, fabric_index : UInt8, vendor_id : UInt16) : Nil
Open enhanced commissioning window (with PAKE)
-
#pake_verifier : Bytes | Nil
PAKE parameters (for enhanced commissioning)
-
#pake_verifier=(pake_verifier : Bytes | Nil)
PAKE parameters (for enhanced commissioning)
- #product_id : UInt16
- #product_id=(product_id : UInt16)
-
#read_attribute(attribute_id : UInt32) : InteractionModel::Status | Bytes
Read an attribute value
-
#revoke_commissioning : Nil
Handle RevokeCommissioning command
- #salt : Bytes | Nil
- #salt=(salt : Bytes | Nil)
-
#session_fabric_index : UInt8 | Nil
Session context (set by the session before invoking commands)
-
#session_fabric_index=(session_fabric_index : UInt8 | Nil)
Session context (set by the session before invoking commands)
- #session_vendor_id : UInt16 | Nil
- #session_vendor_id=(session_vendor_id : UInt16 | Nil)
-
#time_remaining : Time::Span | Nil
Get time remaining on commissioning window (for testing)
- #vendor_id : UInt16
- #vendor_id=(vendor_id : UInt16)
-
#window_open? : Bool
Check if commissioning window is open
-
#window_status : CommissioningWindowStatus
WindowStatus attribute (0x0000) - current commissioning window state
-
#window_status=(window_status : CommissioningWindowStatus)
WindowStatus attribute (0x0000) - current commissioning window state
- #window_timeout : Time | Nil
- #window_timeout=(window_timeout : Time | Nil)
-
#write_attribute(attribute_id : UInt32, value : Bytes) : InteractionModel::Status
Write an attribute value
Instance methods inherited from class Matter::Cluster::Base
attributes : Array(AttributeMetadata)
attributes,
cluster_id : DataType::ClusterId
cluster_id,
cluster_id=(cluster_id : DataType::ClusterId)
cluster_id=,
commands : Array(CommandMetadata)
commands,
data_version : UInt32
data_version,
data_version=(data_version : UInt32)
data_version=,
endpoint_id : DataType::EndpointNumber
endpoint_id,
endpoint_id=(endpoint_id : DataType::EndpointNumber)
endpoint_id=,
events : Array(EventMetadata)
events,
get_attribute_metadata(attribute_id : UInt32) : AttributeMetadata | Nil
get_attribute_metadata,
get_command_metadata(command_id : UInt32) : CommandMetadata | Nil
get_command_metadata,
invoke_command(command_id : UInt32, fields : Bytes = Bytes.new(0)) : InteractionModel::Status | Bytes
invoke_command,
name : String
name,
read_attribute(attribute_id : UInt32) : InteractionModel::Status | Bytes
read_attribute,
write_attribute(attribute_id : UInt32, value : Bytes) : InteractionModel::Status
write_attribute
Constructor methods inherited from class Matter::Cluster::Base
new(endpoint_id : DataType::EndpointNumber, cluster_id : DataType::ClusterId)
new
Constructor Detail
Class Method Detail
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
Instance Method Detail
AdminFabricIndex attribute (0x0001) - fabric that opened the window
AdminFabricIndex attribute (0x0001) - fabric that opened the window
AdminVendorId attribute (0x0002) - vendor ID of opening administrator
AdminVendorId attribute (0x0002) - vendor ID of opening administrator
Get all attribute metadata
Get all command metadata
Configure timeout bounds (for testing)
Callbacks for external component integration
Callbacks for external component integration
Backward compatibility callbacks from cluster/ version
Backward compatibility callbacks from cluster/ version
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
Open basic commissioning window
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
Open enhanced commissioning window (with PAKE)
Read an attribute value
Handle RevokeCommissioning command
Closes any open commissioning window and stops accepting new PASE sessions.
@return nil on success, raises exception if no window open
Session context (set by the session before invoking commands)
Session context (set by the session before invoking commands)
WindowStatus attribute (0x0000) - current commissioning window state
WindowStatus attribute (0x0000) - current commissioning window state
Write an attribute value