3.2.12. Battery Command Class, version 2¶
This Command Class is used to request and report the battery types, status and levels of a given device.
3.2.12.1. Compatibility Considerations¶
The following commands has been extended to query status and levels of a battery:
The following commands are added for requesting the current health of the battery.
3.2.12.2. Battery Get Command¶
This command is used to request both the level of a battery and its status.
The Battery Report Command MUST be returned in response to this command.
This command MUST NOT be issued via multicast addressing.
A receiving node MUST NOT return a response if this command is received via multicast addressing. The Z-Wave Multicast frame, the broadcast NodeID and the Multi Channel multi-End Point destination are all considered multicast addressing methods.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_BATTERY (0x80) |
|||||||
Command = BATTERY_GET (0x02) |
|||||||
3.2.12.3. Battery Report Command¶
This command is used to report the level and status of a battery-operated device.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_BATTERY (0x80) |
|||||||
Command = BATTERY_REPORT (0x03) |
|||||||
Battery Level |
|||||||
Battery Charging Status |
Rechargeable |
Back-up battery |
Over- heating |
Low fluid |
Replace/recharge status bitmask |
||
Disconnected |
|||||||
Battery Level (8 bits)
This field is used to report the percentage indicating the battery level. This field MUST be in the range 0x00..0x64 or set to 0xFF. Values in the range 0x00..0x64 MUST indicate the battery percentage level from 0 to 100%.
The value 0xFF MUST indicate a low-battery warning and this notification MUST only be sent as an unsolicited Report to the Lifeline destinations. When a controller requests the battery level, the actual battery level (0-100) MUST be returned. The percentage level of 0% represents the lowest operational voltage of the device. For example; if the device can no longer operate properly below a battery voltage of 2.2V, the device should report 0% level when the battery voltage reaches 2.2V.
Recommendation is to send the low-battery value (0xFF) when the device battery level indicates the battery should be replaced or recharged within a few days or weeks. The low-battery warning SHOULD be sent no more than once per day. The device manufacturer knows the chemistry and discharge characteristics of the battery but the controller does not. Thus the device chooses when the user should be informed of the low battery condition. The device manufacturer may choose a battery level of 20% for the low-battery warning point for a lithium battery which has a steep discharge curve at end-of-life or 5% for alkaline cells which has a more linear discharge curve. The point where the low-battery warning is sent is at the discretion of the device manufacturer. Controllers SHOULD inform the user that the battery needs replacement each time the low-battery warning (0xFF) is received.
The Replace/Recharge field MUST have at least bit 0 set when the low-battery warning is sent.
Battery Charging Status (2 bits)
\requirement{CC:0080.02.03.11.001}{0}
The field describes the charging status of a battery if the Rechargeable flag field is 1. The field MUST be encoded according to Table 3.42.
\requirement{CC:0080.02.03.11.002}{0}
If the Rechargeable flag field is set to 0, the battery charging status value MUST be 0x00.
Value |
Description |
|---|---|
0x00 |
Discharging |
0x01 |
Charging |
0x02 |
Maintaining |
Rechargeable (1 bit)
This field indicates if the battery is rechargeable or not.
\requirement{CC:0080.02.03.11.003}{0}
If the battery is rechargeable this field MUST be set to 1.
\requirement{CC:0080.02.03.11.004}{0}
If the battery is not rechargeable, the field value MUST set to 0.
Back-up battery (1 bit)
This field is used to illustrate if the battery is utilized for back-up purposes of a mains powered connected device.
\requirement{CC:0080.02.03.11.005}{0}
If the battery is used for back-up purposes the field MUST be set to 1.
\requirement{CC:0080.02.03.11.006}{0}
If battery is the primary means of power and is not for back-up, this field MUST set to 0.
Overheating (1 bit)
This field is used to indicate if overheating is detected at the battery.
\requirement{CC:0080.02.03.11.007}{0}
The value 1 MUST indicate that the battery is overheating
\requirement{CC:0080.02.03.11.008}{0}
The value 0 MUST indicate that the battery is operating within the normal temperature range.
Low fluid (1 bit)
This field is used to indicate if the battery fluid is low and should be refilled.
\requirement{CC:0080.02.03.11.009}{0}
The value 1 MUST indicate that the battery fluid is low.
\requirement{CC:0080.02.03.11.00A}{0}
The value 0 MUST indicate that the battery fluid is within the normal range and no maintenance is required.
Replace/recharge status bitmask (2 bits)
This field is used to indicate if the battery needs to be recharged or replaced.
\requirement{CC:0080.02.03.11.00B}{0}
Bit 0 set to 1 MUST indicate that the battery MUST be replaced/recharged soon.
\requirement{CC:0080.02.03.11.00C}{0}
Bit 1 set to 1 MUST indicate that the battery MUST be replaced/recharged now.
\requirement{CC:0080.02.03.11.00D}{0}
If bit 1 is set to 1, bit 0 MUST also be set to 1.
Disconnected (1 bit)
This field is used to indicate if the battery is currently disconnected or removed from the node.
\requirement{CC:0080.02.03.11.00E}{0}
The value 1 MUST indicate that the battery is disconnected and the node is running on an alternative power source.
\requirement{CC:0080.02.03.11.00F}{0}
The value 0 MUST indicate that the battery correctly connected to the node.
\requirement{CC:0080.02.03.11.010}{0}
If this field is set to 1, the Battery Level field MUST be set to 0x00.
3.2.12.4. Battery Health Get Command¶
This command is used to query the health of the battery, particularly the battery temperature and maximum capacity.
\requirement{CC:0080.02.04.11.001}{0}
The Battery Health Report Command MUST be returned in response to this command.
\requirement{CC:0080.02.04.11.002}{0}
This command MUST NOT be issued via multicast addressing.
A receiving node MUST NOT return a response if this command is received via multicast addressing. The Z-Wave Multicast frame, the broadcast NodeID and the Multi Channel multi-End Point destination are all considered multicast addressing methods.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_BATTERY (0x80) |
|||||||
Command = BATTERY_HEALTH_GET (0x04) |
|||||||
3.2.12.5. Battery Health Report Command¶
This command is used to report the maximum capacity of the battery as well as the temperature of the battery.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|---|---|---|---|---|---|---|---|
Command Class = COMMAND_CLASS_BATTERY (0x80) |
|||||||
Command = BATTERY_HEALTH_REPORT (0x05) |
|||||||
Maximum Capacity |
|||||||
Precision |
Scale |
Size |
|||||
Battery Temperature 1 |
|||||||
… |
|||||||
Battery Temperature N |
|||||||
Maximum Capacity (8 bits)
This field is used to report the percentage indicating the maximum capacity of the battery.
\requirement{CC:0080.02.05.11.001}{0}
This field MUST be in the range 0x00..0x64 or set to 0xFF. If the maximum capacity of the battery is unknown the value MUST set to 0xFF.
\requirement{CC:0080.02.05.11.002}{0}
Values in the range 0x00..0x64 MUST indicate the maximum capacity of the battery in the percentage level from 0 to 100%.
For example, if the initial battery total capacity is 1500mAh, 100% represents this value. If subsequently the node detects that the total battery capacity when fully loaded is down to 1350, it must report 90%.
Precision (3 bits)
This field is used to indicate how many decimal places are included in the Battery Temperature field. For example, the Battery Temperature field set to 1025 with the Precision field set to 2 MUST be interpreted as 10.25.
Scale (2 bits)
\requirement{CC:0080.02.05.11.003}{0}
The scale field indicates the scale used for the battery temperature value. This field MUST be encoded according to Table 3.45.
Value |
Description |
|---|---|
0x00 |
Celsius |
0x01..0x03 |
Reserved |
Size (3 bits)
\requirement{CC:0080.02.05.11.004}{0}
The size field indicates the number of bytes used for the battery temperature value. This field MUST be set to 0, 1, 2 or 4.
\requirement{CC:0080.02.05.11.005}{0} \requirement{CC:0080.02.05.11.006}{4}
The value 0 MUST indicate that the battery temperature is unknown. In this case, the Scale and Precision fields MUST be set to 0 and the Battery Temperature field MUST be omitted.
\requirement{CC:0080.02.05.11.007}{0}
Values 1, 2 and 4 MUST indicate the length in bytes of the Battery Temperature field.
Battery Temperature (N bytes)
This field advertises the temperature of the battery.
\requirement{CC:0080.02.05.11.008}{0}
The length of this field in bytes MUST be according to the Size field.
\requirement{CC:0080.02.05.11.009}{0}
The first byte MUST be the most significant byte.
\requirement{CC:0080.02.05.11.010}{0}
This field MUST be encoded using signed representation and comply with Signed field encoding representation (Table 2.12).