PowerSource Cluster
Cluster ID: 0x002F |
Endpoint: Typically on Endpoint 1 (functional endpoint)
PowerSource describes the device's power information, including power status, wired power parameters, battery level, and charging information. This Cluster is read-only — no Commands, only Attributes.
The BatPercentRemaining value must be divided by 2 to get the actual percentage.
For example, if the device returns 200, the actual level is 100%; 150 means 75%.
If the raw value is displayed directly as a percentage, users will see "200%" battery level.
Attribute Overview
PowerSource attributes are organized into five groups. Click an attribute ID to jump to its detailed description.
| ID | Name | Type | Group | Description |
|---|---|---|---|---|
0x00 |
Status | enum8 | Status Information | Power status |
0x01 |
Order | uint8 | Status Information | Power priority order |
0x02 |
Description | string | Status Information | Power description text |
0x03 |
WiredAssessedInputVoltage | uint32 | Wired Power | Assessed input voltage (mV) |
0x04 |
WiredAssessedInputFrequency | uint16 | Wired Power | Assessed input frequency (Hz) |
0x05 |
WiredCurrentType | enum8 | Wired Power | Current type (AC/DC) |
0x06 |
WiredAssessedCurrent | uint32 | Wired Power | Assessed current (mA) |
0x07 |
WiredNominalVoltage | uint32 | Wired Power | Nominal voltage (mV) |
0x08 |
WiredMaximumCurrent | uint32 | Wired Power | Maximum current (mA) |
0x09 |
WiredPresent | bool | Wired Power | Whether wired power is connected |
0x0A |
ActiveWiredFaults | list | Wired Power | Current wired power fault list |
0x0B |
BatVoltage | uint32 | Battery Basics | Battery voltage (mV) |
0x0C |
BatPercentRemaining | uint8 | Battery Basics | Battery remaining percentage (divide by 2) |
0x0D |
BatTimeRemaining | uint32 | Battery Basics | Estimated remaining time (seconds) |
0x0E |
BatChargeLevel | enum8 | Battery Basics | Battery charge level |
0x0F |
BatReplacementNeeded | bool | Battery Basics | Whether battery replacement is needed |
0x10 |
BatReplaceability | enum8 | Battery Basics | Battery replaceability |
0x11 |
BatPresent | bool | Battery Basics | Whether battery is present |
0x12 |
ActiveBatFaults | list | Battery Basics | Current battery fault list |
0x13 |
BatReplacementDescription | string | Battery Basics | Battery replacement description |
0x14 |
BatCommonDesignation | enum16 | Battery Specifications | Battery common designation code |
0x15 |
BatANSIDesignation | string | Battery Specifications | ANSI designation |
0x16 |
BatIECDesignation | string | Battery Specifications | IEC designation |
0x17 |
BatApprovedChemistry | enum16 | Battery Specifications | Battery chemistry type |
0x18 |
BatCapacity | uint32 | Battery Specifications | Battery capacity (mAh) |
0x19 |
BatQuantity | uint8 | Charging Information | Battery quantity |
0x1A |
BatChargeState | enum8 | Charging Information | Charge state |
0x1B |
BatTimeToFullCharge | uint32 | Charging Information | Estimated time to full charge (seconds) |
0x1C |
BatFunctionalWhileCharging | bool | Charging Information | Whether device is functional while charging |
0x1D |
BatChargingCurrent | uint32 | Charging Information | Charging current (mA) |
0x1E |
ActiveBatChargeFaults | list | Charging Information | Current charging fault list |
0x1F |
EndpointList | list | Charging Information | List of Endpoints powered by this source |
Status Information (0x00 – 0x02)
Required base attributes for every PowerSource instance, describing the power source's current state and identity.
| ID | Name | Type | Description |
|---|---|---|---|
0x00 |
Status | enum8 | Current power source operating state (see enum below) |
0x01 |
Order | uint8 | Power source priority. When a device has multiple sources, lower value = higher priority |
0x02 |
Description | string | Power source description text, e.g. "Battery", "USB-C", "DC Power" |
Status Enum Values
Wired Power (0x03 – 0x0A)
Describes wired power source electrical parameters and status. These attributes are only meaningful when the power source type is wired.
Most battery-powered devices (e.g. door locks, sensors) do not report wired power attributes. These attributes mainly appear on devices powered by AC/DC adapters, USB, or PoE.
| ID | Name | Type | Description |
|---|---|---|---|
0x03 |
WiredAssessedInputVoltage | uint32 | Actual assessed voltage of wired input, in mV |
0x04 |
WiredAssessedInputFrequency | uint16 | Actual assessed frequency of wired input, in Hz. Only meaningful for AC power |
0x05 |
WiredCurrentType | enum8 | Current type: 0 = AC, 1 = DC |
0x06 |
WiredAssessedCurrent | uint32 | Actual assessed current of wired input, in mA |
0x07 |
WiredNominalVoltage | uint32 | Nominal voltage of wired power source, in mV |
0x08 |
WiredMaximumCurrent | uint32 | Maximum current supported by wired power source, in mA |
0x09 |
WiredPresent | bool | Whether wired power is connected. true = plugged in, false = not connected |
0x0A |
ActiveWiredFaults | list | Active fault list for the wired power source, such as overvoltage, overcurrent, etc. |
Battery Basics (0x0B – 0x13)
The most commonly used attribute group for battery-powered devices — Apps rely on these for displaying battery level and low-battery alerts.
| ID | Name | Type | Description |
|---|---|---|---|
0x0B |
BatVoltage | uint32 | Current battery voltage, in mV |
0x0C |
BatPercentRemaining | uint8 | Battery remaining percentage. Actual percentage = value / 2, range 0~200 maps to 0%~100%. Nullable; returns null when device doesn't support precise level |
0x0D |
BatTimeRemaining | uint32 | Estimated battery remaining time, in seconds. Nullable |
0x0E |
BatChargeLevel | enum8 | Battery charge level (see enum below) |
0x0F |
BatReplacementNeeded | bool | Whether battery needs replacement. true = should be replaced soon |
0x10 |
BatReplaceability | enum8 | Battery replaceability method (see enum below) |
0x11 |
BatPresent | bool | Whether battery is installed. true = installed |
0x12 |
ActiveBatFaults | list | Active fault list for the battery, such as overheating, voltage anomaly, etc. |
0x13 |
BatReplacementDescription | string | Battery replacement instructions, including model and specifications, e.g. "4x AA", "CR2032" |
BatChargeLevel Enum Values
BatReplaceability Enum Values
Battery Specifications (0x14 – 0x18)
Describes specific battery model and technical specifications to guide users in selecting the correct replacement battery.
| ID | Name | Type | Description |
|---|---|---|---|
0x14 |
BatCommonDesignation | enum16 | Battery common designation numeric code, e.g. AA=15, AAA=10, CR2032=40, etc. |
0x15 |
BatANSIDesignation | string | Battery's ANSI standard designation |
0x16 |
BatIECDesignation | string | Battery's IEC standard designation |
0x17 |
BatApprovedChemistry | enum16 | Battery chemistry type, e.g. Alkaline=1, LithiumIon=6, etc. |
0x18 |
BatCapacity | uint32 | Battery capacity, in mAh |
BatCommonDesignation Enum Values
BatApprovedChemistry Enum Values
Charging Information (0x19 – 0x1F)
Describes battery charging status, charging parameters, and the mapping between power sources and Endpoints.
| ID | Name | Type | Description |
|---|---|---|---|
0x19 |
BatQuantity | uint8 | Number of batteries used by the device |
0x1A |
BatChargeState | enum8 | Current charge state (see enum below) |
0x1B |
BatTimeToFullCharge | uint32 | Estimated time to full charge, in seconds. Nullable |
0x1C |
BatFunctionalWhileCharging | bool | Whether the device remains functional while charging. true = functional |
0x1D |
BatChargingCurrent | uint32 | Current charging current, in mA |
0x1E |
ActiveBatChargeFaults | list | Active fault list during charging |
0x1F |
EndpointList | list | List of Endpoint numbers powered by this source. Used to identify which functional endpoints a power source supplies |
BatChargeState Enum Values
Example Data
A typical battery-powered device's PowerSource Cluster read result:
{
// --- Status Information ---
"0x0": 1, // Status = Active (currently powering)
"0x1": 0, // Order = 0 (highest priority)
"0x2": "Battery", // Description = "Battery"
// --- Battery Basics ---
"0xB": 3200, // BatVoltage = 3200 mV
"0xC": 180, // BatPercentRemaining = 180 → actual 90%
"0xD": 7776000, // BatTimeRemaining = 7776000 seconds (approx. 90 days)
"0xE": 0, // BatChargeLevel = OK
"0xF": false, // BatReplacementNeeded = false
"0x10": 2, // BatReplaceability = UserReplaceable
"0x11": true, // BatPresent = true (battery installed)
"0x13": "4x AA", // BatReplacementDescription
// --- Battery Specifications ---
"0x14": 15, // BatCommonDesignation = 15(AA)
"0x18": 2800, // BatCapacity = 2800 mAh
// --- Charging Information ---
"0x1A": 3 // BatChargeState = IsNotCharging (non-rechargeable battery)
}
Typical processing flow when displaying battery information:
- Read
BatPercentRemaining (0x0C), divide by 2 to get percentage - Determine icon color based on
BatChargeLevel (0x0E): OK = green, Warning = yellow, Critical = red - If
BatReplacementNeeded (0x0F)istrue, show an additional replacement prompt - Note that
BatPercentRemainingis Nullable and may benull(when device doesn't support precise levels); in that case, useBatChargeLevelfor a rough display