mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Fix battery_level error - HomeKit (#21120)
This commit is contained in:
parent
8c5763624c
commit
9125e49628
@ -122,6 +122,8 @@ class HomeAccessory(Accessory):
|
|||||||
"""
|
"""
|
||||||
battery_level = convert_to_float(
|
battery_level = convert_to_float(
|
||||||
new_state.attributes.get(ATTR_BATTERY_LEVEL))
|
new_state.attributes.get(ATTR_BATTERY_LEVEL))
|
||||||
|
if battery_level is None:
|
||||||
|
return
|
||||||
self._char_battery.set_value(battery_level)
|
self._char_battery.set_value(battery_level)
|
||||||
self._char_low_battery.set_value(battery_level < 20)
|
self._char_low_battery.set_value(battery_level < 20)
|
||||||
_LOGGER.debug('%s: Updated battery level to %d', self.entity_id,
|
_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'
|
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."""
|
"""Test battery service."""
|
||||||
entity_id = 'homekit.accessory'
|
entity_id = 'homekit.accessory'
|
||||||
hass.states.async_set(entity_id, None, {ATTR_BATTERY_LEVEL: 50})
|
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_low_battery.value == 1
|
||||||
assert acc._char_charging.value == 2
|
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
|
# Test charging
|
||||||
hass.states.async_set(entity_id, None, {
|
hass.states.async_set(entity_id, None, {
|
||||||
ATTR_BATTERY_LEVEL: 10, ATTR_BATTERY_CHARGING: True})
|
ATTR_BATTERY_LEVEL: 10, ATTR_BATTERY_CHARGING: True})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user