Add xiaomi vacuum -9999 fix back (#57473)

pull/57478/head
Kevin Hellemun 2021-10-11 13:11:45 +02:00 committed by GitHub
parent cadbf7f6a9
commit 30154763f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 1 deletions

View File

@ -235,12 +235,23 @@ def _async_update_data_vacuum(hass, device: Vacuum):
async def update_async():
"""Fetch data from the device using async_add_executor_job."""
try:
async def execute_update():
async with async_timeout.timeout(10):
state = await hass.async_add_executor_job(update)
_LOGGER.debug("Got new vacuum state: %s", state)
return state
try:
return await execute_update()
except DeviceException as ex:
if getattr(ex, "code", None) != -9999:
raise UpdateFailed(ex) from ex
_LOGGER.info("Got exception while fetching the state, trying again: %s", ex)
# Try to fetch the data a second time after error code -9999
try:
return await execute_update()
except DeviceException as ex:
raise UpdateFailed(ex) from ex