mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Correctly report unavailable battery for value 255 of percentage (#104566)
* Ignore unavailable battery level for zha * Adjust unavailable test
This commit is contained in:
parent
837ce99e30
commit
bb0d082b25
@ -231,7 +231,7 @@ class Battery(Sensor):
|
||||
def formatter(value: int) -> int | None:
|
||||
"""Return the state of the entity."""
|
||||
# per zcl specs battery percent is reported at 200% ¯\_(ツ)_/¯
|
||||
if not isinstance(value, numbers.Number) or value == -1:
|
||||
if not isinstance(value, numbers.Number) or value == -1 or value == 255:
|
||||
return None
|
||||
value = round(value / 2)
|
||||
return value
|
||||
|
@ -260,11 +260,12 @@ async def async_test_powerconfiguration2(hass, cluster, entity_id):
|
||||
"""Test powerconfiguration/battery sensor."""
|
||||
await send_attributes_report(hass, cluster, {33: -1})
|
||||
assert_state(hass, entity_id, STATE_UNKNOWN, "%")
|
||||
assert hass.states.get(entity_id).attributes["battery_voltage"] == 2.9
|
||||
assert hass.states.get(entity_id).attributes["battery_quantity"] == 3
|
||||
assert hass.states.get(entity_id).attributes["battery_size"] == "AAA"
|
||||
await send_attributes_report(hass, cluster, {32: 20})
|
||||
assert hass.states.get(entity_id).attributes["battery_voltage"] == 2.0
|
||||
|
||||
await send_attributes_report(hass, cluster, {33: 255})
|
||||
assert_state(hass, entity_id, STATE_UNKNOWN, "%")
|
||||
|
||||
await send_attributes_report(hass, cluster, {33: 98})
|
||||
assert_state(hass, entity_id, "49", "%")
|
||||
|
||||
|
||||
async def async_test_device_temperature(hass, cluster, entity_id):
|
||||
|
Loading…
x
Reference in New Issue
Block a user