class Matter::Cluster::PowerSourceCluster

Overview

Power Source Cluster (0x002F)

Provides attributes and events for determining detailed information about power sources present on a node, such as batteries or wired power.

This implementation focuses on Battery and Replaceable features for battery-powered devices.

Specification: Matter 1.4 § 11.7

Defined in:

matter/cluster/power_source_cluster.cr

Constant Summary

ATTR_BAT_CHARGE_LEVEL = 14_u32

Battery Feature Attributes

ATTR_BAT_QUANTITY = 25_u32
ATTR_BAT_REPLACEABILITY = 16_u32
ATTR_BAT_REPLACEMENT_DESCRIPTION = 19_u32

Replaceable Feature Attributes

ATTR_BAT_REPLACEMENT_NEEDED = 15_u32
ATTR_DESCRIPTION = 2_u32
ATTR_ORDER = 1_u32
ATTR_STATUS = 0_u32

Base Attributes

CLUSTER_ID = 47_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, status : PowerSourceStatus = PowerSourceStatus::Active, order : UInt8 = 0_u8, description : String = "Battery", bat_charge_level : BatChargeLevel | Nil = nil, bat_replacement_needed : Bool | Nil = nil, bat_replaceability : BatReplaceability | Nil = nil, bat_replacement_description : String | Nil = nil, bat_quantity : UInt8 | Nil = nil) #

[View source]

Class Method Detail

def self.cluster_id #

Power Source Cluster (0x002F)

Provides attributes and events for determining detailed information about power sources present on a node, such as batteries or wired power.

This implementation focuses on Battery and Replaceable features for battery-powered devices.

Specification: Matter 1.4 § 11.7


[View source]

Instance Method Detail

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

Get all attribute metadata


[View source]
def bat_charge_level : BatChargeLevel | Nil #

Battery charge level (Battery feature)


[View source]
def bat_charge_level=(bat_charge_level : BatChargeLevel | Nil) #

Battery charge level (Battery feature)


[View source]
def bat_quantity : UInt8 | Nil #

Number of battery cells/packs (Replaceable feature)


[View source]
def bat_quantity=(bat_quantity : UInt8 | Nil) #

Number of battery cells/packs (Replaceable feature)


[View source]
def bat_replaceability : BatReplaceability | Nil #

Battery replaceability (Battery feature)


[View source]
def bat_replaceability=(bat_replaceability : BatReplaceability | Nil) #

Battery replaceability (Battery feature)


[View source]
def bat_replacement_description : String | Nil #

Battery replacement description (Replaceable feature)


[View source]
def bat_replacement_description=(bat_replacement_description : String | Nil) #

Battery replacement description (Replaceable feature)


[View source]
def bat_replacement_needed : Bool | Nil #

Whether battery needs replacement (Battery feature)


[View source]
def bat_replacement_needed=(bat_replacement_needed : Bool | Nil) #

Whether battery needs replacement (Battery feature)


[View source]
def battery_feature_enabled? : Bool #

Check if Battery feature is enabled


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

Get all command metadata


[View source]
def description : String #

User-facing description of this source


[View source]
def description=(description : String) #

User-facing description of this source


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

Get cluster name


[View source]
def on_charge_level_changed(&block : BatChargeLevel | Nil, BatChargeLevel -> Nil) #

[View source]
def on_replacement_needed_changed(&block : Bool | Nil, Bool -> Nil) #

[View source]
def order : UInt8 #

Relative preference for power selection (lower is preferred)


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

Relative preference for power selection (lower is preferred)


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

Read an attribute value


[View source]
def replaceable_feature_enabled? : Bool #

Check if Replaceable feature is enabled


[View source]
def status : PowerSourceStatus #

Current power source status


[View source]
def status=(status : PowerSourceStatus) #

Current power source status


[View source]
def update_bat_charge_level(level : BatChargeLevel) #

Update battery charge level


[View source]
def update_bat_replacement_needed(needed : Bool) #

Update battery replacement needed status


[View source]