Fix battery_level error - HomeKit (#21120)
This commit is contained in:
parent
8c5763624c
commit
9125e49628
2 changed files with 10 additions and 1 deletions
|
@ -122,6 +122,8 @@ class HomeAccessory(Accessory):
|
|||
"""
|
||||
battery_level = convert_to_float(
|
||||
new_state.attributes.get(ATTR_BATTERY_LEVEL))
|
||||
if battery_level is None:
|
||||
return
|
||||
self._char_battery.set_value(battery_level)
|
||||
self._char_low_battery.set_value(battery_level < 20)
|
||||
_LOGGER.debug('%s: Updated battery level to %d', self.entity_id,
|
||||
|
|
|
@ -100,7 +100,7 @@ async def test_home_accessory(hass, hk_driver):
|
|||
assert serv.get_characteristic(CHAR_MODEL).value == 'Test Model'
|
||||
|
||||
|
||||
async def test_battery_service(hass, hk_driver):
|
||||
async def test_battery_service(hass, hk_driver, caplog):
|
||||
"""Test battery service."""
|
||||
entity_id = 'homekit.accessory'
|
||||
hass.states.async_set(entity_id, None, {ATTR_BATTERY_LEVEL: 50})
|
||||
|
@ -124,6 +124,13 @@ async def test_battery_service(hass, hk_driver):
|
|||
assert acc._char_low_battery.value == 1
|
||||
assert acc._char_charging.value == 2
|
||||
|
||||
hass.states.async_set(entity_id, None, {ATTR_BATTERY_LEVEL: 'error'})
|
||||
await hass.async_block_till_done()
|
||||
assert acc._char_battery.value == 15
|
||||
assert acc._char_low_battery.value == 1
|
||||
assert acc._char_charging.value == 2
|
||||
assert 'ERROR' not in caplog.text
|
||||
|
||||
# Test charging
|
||||
hass.states.async_set(entity_id, None, {
|
||||
ATTR_BATTERY_LEVEL: 10, ATTR_BATTERY_CHARGING: True})
|
||||
|
|
Loading…
Add table
Reference in a new issue