class Matter::Cluster::NetworkCommissioningCluster

Overview

Network Commissioning Cluster (0x0031)

This cluster is used to configure network interfaces on Matter devices. It supports WiFi, Thread, and Ethernet network management.

Matter Specification: Core 1.4 ยง 11.8 - Network Commissioning Cluster

Commands:

Attributes:

Defined in:

matter/cluster/network_commissioning_cluster.cr

Constant Summary

ATTR_CONNECT_MAX_TIME_SECONDS = 3_u32
ATTR_INTERFACE_ENABLED = 4_u32
ATTR_LAST_CONNECT_ERROR_VALUE = 7_u32
ATTR_LAST_NETWORK_ID = 6_u32
ATTR_LAST_NETWORKING_STATUS = 5_u32
ATTR_MAX_NETWORKS = 0_u32

Attributes

ATTR_NETWORKS = 1_u32
ATTR_SCAN_MAX_TIME_SECONDS = 2_u32
ATTR_SUPPORTED_THREAD_FEATURES = 9_u32
ATTR_SUPPORTED_WIFI_BANDS = 8_u32
CLUSTER_ID = 49_u32
CMD_ADD_OR_UPDATE_THREAD_NETWORK = 3_u32
CMD_ADD_OR_UPDATE_WIFI_NETWORK = 2_u32
CMD_CONNECT_NETWORK = 6_u32
CMD_CONNECT_NETWORK_RESPONSE = 7_u32
CMD_NETWORK_CONFIG_RESPONSE = 5_u32
CMD_REMOVE_NETWORK = 4_u32
CMD_REORDER_NETWORK = 8_u32
CMD_SCAN_NETWORKS = 0_u32

Commands

CMD_SCAN_NETWORKS_RESPONSE = 1_u32

Constructors

Class Method Summary

Instance Method Summary

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), session_id : UInt64 | Nil = nil) : InteractionModel::Status | CommandResponse 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

def self.new(endpoint_id : DataType::EndpointNumber = DataType::EndpointNumber.new(0_u16), network_type : NetworkType = NetworkType::WiFi, max_networks : UInt8 = 1_u8, feature_map : Feature = Feature::None, features : Feature | Nil = nil, scan_max_time_seconds : UInt8 = 30_u8, connect_max_time_seconds : UInt8 = 60_u8, backend : Network::Backend | Nil = nil) #

[View source]
def self.new(endpoint_id : DataType::EndpointNumber, network_type : NetworkType, feature : Feature) #

Overload for tests that pass (endpoint_id, network_type, feature)


[View source]

Class Method Detail

def self.cluster_id #

Network Commissioning Cluster (0x0031)

This cluster is used to configure network interfaces on Matter devices. It supports WiFi, Thread, and Ethernet network management.

Matter Specification: Core 1.4 ยง 11.8 - Network Commissioning Cluster

Commands:

  • ScanNetworks (0x00): Scan for available networks
  • AddOrUpdateWiFiNetwork (0x02): Add or update WiFi network configuration
  • AddOrUpdateThreadNetwork (0x03): Add or update Thread network configuration
  • RemoveNetwork (0x04): Remove a network from the Networks list
  • ConnectNetwork (0x06): Connect to a configured network
  • ReorderNetwork (0x08): Reorder network priority

Attributes:

  • MaxNetworks (0x00): Maximum number of networks
  • Networks (0x01): List of configured networks
  • ScanMaxTimeSeconds (0x02): Maximum scan time
  • ConnectMaxTimeSeconds (0x03): Maximum connect time
  • InterfaceEnabled (0x04): Network interface enabled status
  • LastNetworkingStatus (0x05): Status of last operation
  • LastNetworkID (0x06): Network ID of last operation
  • LastConnectErrorValue (0x07): Error value from last connect

[View source]

Instance Method Detail

def attributes : Array(AttributeMetadata) #
Description copied from class Matter::Cluster::Base

Get all attribute metadata


[View source]
def backend : Network::Backend | Nil #

Platform backend for network operations (required)


[View source]
def backend=(backend : Network::Backend | Nil) #

Platform backend for network operations (required)


[View source]
def breadcrumb_callback : Proc(UInt64, Nil) | Nil #

Callback for breadcrumb updates


[View source]
def breadcrumb_callback=(breadcrumb_callback : Proc(UInt64, Nil) | Nil) #

Callback for breadcrumb updates


[View source]
def commands : Array(CommandMetadata) #
Description copied from class Matter::Cluster::Base

Get all command metadata


[View source]
def connect_max_time_seconds : UInt8 #

[View source]
def connect_max_time_seconds=(connect_max_time_seconds : UInt8) #

[View source]
def connected_network : NetworkInfo | Nil #

Helper: Get current connected network


[View source]
def feature_map : Feature #

[View source]
def feature_map=(feature_map : Feature) #

[View source]
def handle_add_or_update_thread_network(cmd : AddOrUpdateThreadNetworkRequest, failsafe_armed : Bool) : NetworkConfigResponse #

AddOrUpdateThreadNetwork command (0x03)


[View source]
def handle_add_or_update_wifi_network(cmd : AddOrUpdateWiFiNetworkRequest, failsafe_armed : Bool) : NetworkConfigResponse #

AddOrUpdateWiFiNetwork command (0x02)


[View source]
def handle_connect_network(cmd : ConnectNetworkRequest, failsafe_armed : Bool) : ConnectNetworkResponse #

ConnectNetwork command (0x06)


[View source]
def handle_remove_network(cmd : RemoveNetworkRequest, failsafe_armed : Bool) : NetworkConfigResponse #

RemoveNetwork command (0x04)


[View source]
def handle_reorder_network(cmd : ReorderNetworkRequest, failsafe_armed : Bool) : NetworkConfigResponse #

ReorderNetwork command (0x08)


[View source]
def handle_scan_networks(cmd : ScanNetworksRequest, failsafe_armed : Bool) : ScanNetworksResponse #

ScanNetworks command (0x00)


[View source]
def has_network?(network_id : Bytes) : Bool #

Helper: Check if network exists


[View source]
def interface_enabled : Bool #

[View source]
def interface_enabled=(interface_enabled : Bool) #

[View source]
def last_connect_error_value : Int32 | Nil #

[View source]
def last_connect_error_value=(last_connect_error_value : Int32 | Nil) #

[View source]
def last_network_id : Bytes | Nil #

[View source]
def last_network_id=(last_network_id : Bytes | Nil) #

[View source]
def last_networking_status : NetworkCommissioningStatus | Nil #

[View source]
def last_networking_status=(last_networking_status : NetworkCommissioningStatus | Nil) #

[View source]
def max_networks : UInt8 #

[View source]
def max_networks=(max_networks : UInt8) #

[View source]
def name : String #
Description copied from class Matter::Cluster::Base

Get cluster name


[View source]
def network_type : NetworkType #

Instance variables


[View source]
def network_type=(network_type : NetworkType) #

Instance variables


[View source]
def networks : Array(NetworkInfo) #

[View source]
def networks=(networks : Array(NetworkInfo)) #

[View source]
def read_attribute(attribute_id : UInt32) : InteractionModel::Status | Bytes #
Description copied from class Matter::Cluster::Base

Read an attribute value


[View source]
def restore_network_state(state : Hash(String, String)) : Nil #

Restore network state from snapshot (used during failsafe rollback)

This method restores the network configuration to a previously captured state. It's called during failsafe rollback to undo any network configuration changes made during a failed commissioning session.

@param state Snapshot of network state (key-value pairs)


[View source]
def scan_max_time_seconds : UInt8 #

[View source]
def scan_max_time_seconds=(scan_max_time_seconds : UInt8) #

[View source]
def supported_thread_features : ThreadCapabilitiesBitmap | Nil #

[View source]
def supported_thread_features=(supported_thread_features : ThreadCapabilitiesBitmap | Nil) #

[View source]
def supported_wifi_bands : Array(WiFiBandEnum) | Nil #

[View source]
def supported_wifi_bands=(supported_wifi_bands : Array(WiFiBandEnum) | Nil) #

[View source]
def thread_credentials : Hash(Bytes, Bytes) #

Thread-specific


[View source]
def thread_credentials=(thread_credentials : Hash(Bytes, Bytes)) #

Thread-specific


[View source]
def thread_version : UInt16 | Nil #

[View source]
def thread_version=(thread_version : UInt16 | Nil) #

[View source]
def wifi_credentials : Hash(Bytes, Bytes) #

WiFi-specific


[View source]
def wifi_credentials=(wifi_credentials : Hash(Bytes, Bytes)) #

WiFi-specific


[View source]
def write_attribute(attribute_id : UInt32, value : Bytes) : InteractionModel::Status #
Description copied from class Matter::Cluster::Base

Write an attribute value


[View source]