class Matter::Cluster::NetworkCommissioningCluster

Overview

Network Commissioning Cluster (0x0031)

Functionality to configure a network interface on a Matter device. Supports WiFi, Thread, and Ethernet network types.

Matter Spec: Core 11.8

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

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)) : 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

def self.new(endpoint_id : DataType::EndpointNumber, network_type : NetworkType, feature_map : Feature = Feature::None) #

[View source]

Instance Method Detail

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

Get all attribute metadata


[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 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 #

Attribute storage


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

Attribute storage


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

Get cluster name


[View source]
def network_type : NetworkType #

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

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

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

[View source]
def on_add_network : Proc(Bytes, Bytes, NetworkCommissioningStatus) | Nil #

[View source]
def on_add_network=(on_add_network : Proc(Bytes, Bytes, NetworkCommissioningStatus) | Nil) #

[View source]
def on_connect_network : Proc(Bytes, Tuple(NetworkCommissioningStatus, Int32 | Nil)) | Nil #

[View source]
def on_connect_network=(on_connect_network : Proc(Bytes, Tuple(NetworkCommissioningStatus, Int32 | Nil)) | Nil) #

[View source]
def on_remove_network : Proc(Bytes, NetworkCommissioningStatus) | Nil #

[View source]
def on_remove_network=(on_remove_network : Proc(Bytes, NetworkCommissioningStatus) | Nil) #

[View source]
def on_scan_networks : Proc(NetworkType, Bytes | Nil, Array(WiFiInterfaceScanResult | ThreadInterfaceScanResult)) | Nil #

Callbacks


[View source]
def on_scan_networks=(on_scan_networks : Proc(NetworkType, Bytes | Nil, Array(WiFiInterfaceScanResult | ThreadInterfaceScanResult)) | Nil) #

Callbacks


[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 scan_max_time_seconds : UInt8 #

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

[View source]
def supported_thread_features : UInt16 #

[View source]
def supported_thread_features=(supported_thread_features : UInt16) #

[View source]
def supported_wifi_bands : Array(UInt8) #

[View source]
def supported_wifi_bands=(supported_wifi_bands : Array(UInt8)) #

[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 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]