class Matter::Cluster::ScenesManagementCluster

Defined in:

matter/cluster/scenes_management_cluster.cr

Constant Summary

ATTR_FABRIC_SCENE_INFO = 2_u32
ATTR_SCENE_TABLE_SIZE = 1_u32

Attribute IDs

CLUSTER_ID = 98_u32
CLUSTER_REVISION = 65533_u32

Global attributes

CMD_ADD_SCENE = 0_u32

Command IDs

CMD_ADD_SCENE_RESPONSE = 0_u32

Response IDs

CMD_COPY_SCENE = 64_u32
CMD_COPY_SCENE_RESPONSE = 64_u32
CMD_GET_SCENE_MEMBERSHIP = 6_u32
CMD_GET_SCENE_MEMBERSHIP_RESPONSE = 6_u32
CMD_RECALL_SCENE = 5_u32
CMD_REMOVE_ALL_SCENES = 3_u32
CMD_REMOVE_ALL_SCENES_RESPONSE = 3_u32
CMD_REMOVE_SCENE = 2_u32
CMD_REMOVE_SCENE_RESPONSE = 2_u32
CMD_STORE_SCENE = 4_u32
CMD_STORE_SCENE_RESPONSE = 4_u32
CMD_VIEW_SCENE = 1_u32
CMD_VIEW_SCENE_RESPONSE = 1_u32
FEATURE_MAP_ATTR = 65532_u32
Log = ::Log.for("matter.cluster.scenes")

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from class Matter::Cluster::Base

apply_scene_extension_field_set(field_set : ScenesManagementCluster::ExtensionFieldSet) : Bool apply_scene_extension_field_set, 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, is_case_session : Bool = false, fabric_index : UInt8 | Nil = nil) : InteractionModel::Status | CommandResponse invoke_command, name : String name, on_attribute_changed : Proc(UInt16, UInt32, UInt32, Nil) | Nil on_attribute_changed, on_attribute_changed=(on_attribute_changed : Proc(UInt16, UInt32, UInt32, Nil) | Nil) on_attribute_changed=, persistence_key : String persistence_key, read_attribute(attribute_id : UInt32, fabric_index : UInt8 | Nil = nil) : InteractionModel::Status | Bytes read_attribute, request_fabric_index : UInt8 | Nil request_fabric_index, request_fabric_index=(request_fabric_index : UInt8 | Nil) request_fabric_index=, request_is_case_session=(request_is_case_session : Bool) request_is_case_session=, request_is_case_session? : Bool request_is_case_session?, request_peer_node_id : UInt64 | Nil request_peer_node_id, request_peer_node_id=(request_peer_node_id : UInt64 | Nil) request_peer_node_id=, request_session_id : UInt64 | Nil request_session_id, request_session_id=(request_session_id : UInt64 | Nil) request_session_id=, restore_state(json : String) : Nil restore_state, save_state : String | Nil save_state, store_scene_extension_field_set : ScenesManagementCluster::ExtensionFieldSet | Nil store_scene_extension_field_set, 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, feature_map : Feature = Feature::SceneNames, scene_table_size : UInt16 = 16_u16) #

[View source]

Class Method Detail

def self.cluster_id #

[View source]

Instance Method Detail

def apply_extension_field_sets : Proc(Array(ExtensionFieldSet), Nil) | Nil #

Callback to apply extension field sets to other clusters during RecallScene Receives the stored extension field sets to apply to sceneable clusters


[View source]
def apply_extension_field_sets=(apply_extension_field_sets : Proc(Array(ExtensionFieldSet), Nil) | Nil) #

Callback to apply extension field sets to other clusters during RecallScene Receives the stored extension field sets to apply to sceneable clusters


[View source]
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 fabric_scene_info : Hash(UInt8, SceneInfo) #

Per-fabric scene info


[View source]
def fabric_scene_info=(fabric_scene_info : Hash(UInt8, SceneInfo)) #

Per-fabric scene info


[View source]
def feature_map : Feature #

Feature map


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

Feature map


[View source]
def get_extension_field_sets : Proc(Array(ExtensionFieldSet)) | Nil #

Callback to get current extension field sets from other clusters during StoreScene Returns array of extension field sets representing current state of sceneable clusters


[View source]
def get_extension_field_sets=(get_extension_field_sets : Proc(Array(ExtensionFieldSet)) | Nil) #

Callback to get current extension field sets from other clusters during StoreScene Returns array of extension field sets representing current state of sceneable clusters


[View source]
def has_scene?(group_id : UInt16, scene_id : UInt8, fabric_index : UInt8 = 1_u8) : Bool #

[View source]
def invalidate_current_scene(fabric_index : UInt8 = 1_u8) #

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

Get cluster name


[View source]
def on_recall_scene : Proc(UInt16, UInt8, Nil) | Nil #

Callback for when scene is recalled (legacy - use apply_extension_field_sets instead)


[View source]
def on_recall_scene=(on_recall_scene : Proc(UInt16, UInt8, Nil) | Nil) #

Callback for when scene is recalled (legacy - use apply_extension_field_sets instead)


[View source]
def read_attribute(attribute_id : UInt32, fabric_index : UInt8 | Nil = nil) : InteractionModel::Status | Bytes #
Description copied from class Matter::Cluster::Base

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


[View source]
def restore_state(json : String) : Nil #

Restore scene state from JSON


[View source]
def save_state : String | Nil #

Save all scene state to JSON


[View source]
def scene_count(fabric_index : UInt8 = 1_u8) : Int32 #

[View source]
def scene_table_size : UInt16 #

Scene table size (total across all fabrics)


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

Scene table size (total across all fabrics)


[View source]
def scenes : Hash(Tuple(UInt8, UInt16, UInt8), SceneData) #

Scene storage: {fabric_index, group_id, scene_id} => SceneData


[View source]
def scenes=(scenes : Hash(Tuple(UInt8, UInt16, UInt8), SceneData)) #

Scene storage: {fabric_index, group_id, scene_id} => SceneData


[View source]