class

Matter::CommissioningWindow

Inherits Reference < Object

CommissioningWindow manages the state of the commissioning window

The commissioning window is a time-limited period during which a device accepts incoming PASE (Password-Authenticated Session Establishment) sessions for onboarding new administrators or updating credentials.

There are two types of commissioning windows:

  • Basic: Uses the device's default setup PIN
  • Enhanced: Uses a dynamically-generated PAKE verifier

Matter Core Spec §5.5 - Commissioning Flows Matter Core Spec §11.19 - Administrator Commissioning Cluster

Constants

Log = ::Log.for("matter.commissioning_window")

Constructors

Instance methods

admin_fabric_index

Fabric index of the administrator who opened the window

Source
admin_fabric_index=(admin_fabric_index : UInt8 | Nil)

Fabric index of the administrator who opened the window

Source
admin_vendor_id

Vendor ID of the administrator who opened the window

Source
admin_vendor_id=(admin_vendor_id : UInt16 | Nil)

Vendor ID of the administrator who opened the window

Source
check_timeout

Handle window timeout

This should be called periodically by a timer or when checking window status. If the window has expired, it closes the window and invokes the timeout callback.

Source
close

Close the commissioning window

This method is called:

  • When commissioning completes successfully
  • When RevokeCommissioning command is received
  • During failsafe rollback
  • When the window times out
Source
closed?

Check if window is closed

Source
discriminator

Discriminator used for discovery (12-bit value)

Source
discriminator=(discriminator : UInt16 | Nil)

Discriminator used for discovery (12-bit value)

Source
expired?

Check if window has expired

Source
expires_at

Timeout expiry time

Source
expires_at=(expires_at : Time | Nil)

Timeout expiry time

Source
open(status : Status, admin_fabric_index : UInt8 | Nil, admin_vendor_id : UInt16 | Nil, discriminator : UInt16, timeout_seconds : UInt16, timeout_callback : Proc(Nil) | Nil = nil) : Nil

Open a commissioning window

@param status Window status (Basic or Enhanced) @param admin_fabric_index Fabric index of administrator opening window @param admin_vendor_id Vendor ID of administrator @param discriminator Discriminator for DNS-SD advertising @param timeout_seconds Window timeout in seconds @param timeout_callback Callback invoked when window times out

Source
open?

Check if window is open

Source
statistics

Get window statistics

Source
status

Current window status

Source
status=(status : Status)

Current window status

Source
time_remaining

Get time remaining on window

Source

Nested types