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.
Features:
- Wired (WIRED): Wired power source
- Battery (BAT): Battery power source
- Rechargeable (RECHG): Rechargeable battery
- Replaceable (REPLC): Replaceable battery
Note: Wired and Battery features are mutually exclusive.
Specification: Matter 1.4 § 11.7
Constants
ATTR_ACTIVE_BAT_CHARGE_FAULTS = 30_u32
ATTR_ACTIVE_BAT_FAULTS = 18_u32
ATTR_ACTIVE_WIRED_FAULTS = 10_u32
ATTR_BAT_ANSI_DESIGNATION = 21_u32
ATTR_BAT_APPROVED_CHEMISTRY = 23_u32
ATTR_BAT_CAPACITY = 24_u32
ATTR_BAT_CHARGE_LEVEL = 14_u32
ATTR_BAT_CHARGE_STATE = 26_u32
Rechargeable Feature Attributes
ATTR_BAT_CHARGING_CURRENT = 29_u32
ATTR_BAT_COMMON_DESIGNATION = 20_u32
ATTR_BAT_FUNCTIONAL_WHILE_CHARGING = 28_u32
ATTR_BAT_IEC_DESIGNATION = 22_u32
ATTR_BAT_PERCENT_REMAINING = 12_u32
ATTR_BAT_PRESENT = 17_u32
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_BAT_TIME_REMAINING = 13_u32
ATTR_BAT_TIME_TO_FULL_CHARGE = 27_u32
ATTR_BAT_VOLTAGE = 11_u32
Battery Feature Attributes
ATTR_WIRED_ASSESSED_CURRENT = 6_u32
ATTR_WIRED_ASSESSED_INPUT_FREQUENCY = 4_u32
ATTR_WIRED_ASSESSED_INPUT_VOLTAGE = 3_u32
ATTR_WIRED_CURRENT_TYPE = 5_u32
ATTR_WIRED_MAXIMUM_CURRENT = 8_u32
ATTR_WIRED_NOMINAL_VOLTAGE = 7_u32
ATTR_WIRED_PRESENT = 9_u32
Constructors
new(endpoint_id : DataType::EndpointNumber, feature_map : Feature = Feature::Battery, status : PowerSourceStatus = PowerSourceStatus::Active, order : UInt8 = 0_u8, description : String = "Battery", wired_assessed_input_voltage : UInt32 | Nil = nil, wired_assessed_input_frequency : UInt16 | Nil = nil, wired_current_type : WiredCurrentType | Nil = nil, wired_assessed_current : UInt32 | Nil = nil, wired_nominal_voltage : UInt32 | Nil = nil, wired_maximum_current : UInt32 | Nil = nil, wired_present : Bool | Nil = nil, bat_voltage : UInt32 | Nil = nil, bat_percent_remaining : UInt8 | Nil = nil, bat_time_remaining : UInt32 | Nil = nil, bat_charge_level : BatChargeLevel | Nil = nil, bat_replacement_needed : Bool | Nil = nil, bat_replaceability : BatReplaceability | Nil = nil, bat_present : Bool | Nil = nil, bat_replacement_description : String | Nil = nil, bat_quantity : UInt8 | Nil = nil, bat_charge_state : BatChargeState | Nil = nil, bat_time_to_full_charge : UInt32 | Nil = nil, bat_functional_while_charging : Bool | Nil = nil, bat_charging_current : UInt32 | Nil = nil)
SourceInstance methods
bat_charge_level=(bat_charge_level : BatChargeLevel | Nil)
Sourcebat_charge_state
Rechargeable feature attributes
Sourcebat_charge_state=(bat_charge_state : BatChargeState | Nil)
Rechargeable feature attributes
Sourcebat_charging_current=(bat_charging_current : UInt32 | Nil)
Sourcebat_functional_while_charging
Sourcebat_functional_while_charging=(bat_functional_while_charging : Bool | Nil)
Sourcebat_percent_remaining
Sourcebat_percent_remaining=(bat_percent_remaining : UInt8 | Nil)
Sourcebat_present=(bat_present : Bool | Nil)
Sourcebat_quantity=(bat_quantity : UInt8 | Nil)
Sourcebat_replaceability=(bat_replaceability : BatReplaceability | Nil)
Sourcebat_replacement_description
Replaceable feature attributes
Sourcebat_replacement_description=(bat_replacement_description : String | Nil)
Replaceable feature attributes
Sourcebat_replacement_needed=(bat_replacement_needed : Bool | Nil)
Sourcebat_time_remaining=(bat_time_remaining : UInt32 | Nil)
Sourcebat_time_to_full_charge=(bat_time_to_full_charge : UInt32 | Nil)
Sourcebat_voltage
Battery feature attributes
Sourcebat_voltage=(bat_voltage : UInt32 | Nil)
Battery feature attributes
Sourcebattery_feature_enabled?
Check if Battery feature is enabled (for backward compatibility)
Sourcedescription=(description : String)
Sourcefeature_map=(feature_map : Feature)
Sourceon_replacement_needed_changed
Sourceread_attribute(attribute_id : UInt32, fabric_index : UInt8 | Nil = nil) : Bytes | InteractionModel::Status
Read an attribute value
The fabric_index parameter is optional and used for fabric-scoped attributes
like CurrentFabricIndex in OperationalCredentialsCluster
Sourcereplaceable_feature_enabled?
Check if Replaceable feature is enabled (for backward compatibility)
Sourcestatus=(status : PowerSourceStatus)
Sourceupdate_bat_charge_level(level : BatChargeLevel)
Update battery charge level
Sourceupdate_bat_percent_remaining(value : UInt8 | Nil)
Update the remaining battery percentage (0-200 half-percent units,
nil = unknown) and report the change to subscribed controllers.
Sourceupdate_bat_replacement_needed(needed : Bool)
Update battery replacement needed status
Sourcewired_assessed_current=(wired_assessed_current : UInt32 | Nil)
Sourcewired_current_type=(wired_current_type : WiredCurrentType | Nil)
Sourcewired_maximum_current=(wired_maximum_current : UInt32 | Nil)
Sourcewired_nominal_voltage=(wired_nominal_voltage : UInt32 | Nil)
Sourcewired_present=(wired_present : Bool | Nil)
Source