Handle StorageError in the Broadlink integration (#35986)

pull/36025/head
Felipe Martins Diel 2020-05-23 06:10:06 -03:00 committed by GitHub
parent 88ebdf3a53
commit 3d253fa52a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 5 deletions

View File

@ -6,7 +6,7 @@ from datetime import timedelta
import logging
import re
from broadlink.exceptions import BroadlinkException, ReadError
from broadlink.exceptions import BroadlinkException, ReadError, StorageError
import voluptuous as vol
from homeassistant.const import CONF_HOST
@ -85,10 +85,11 @@ async def async_setup_service(hass, host, device):
_LOGGER.info("Press the key you want Home Assistant to learn")
start_time = utcnow()
while (utcnow() - start_time) < timedelta(seconds=20):
await asyncio.sleep(1)
try:
packet = await device.async_request(device.api.check_data)
except ReadError:
await asyncio.sleep(1)
except (ReadError, StorageError):
continue
except BroadlinkException as err_msg:
_LOGGER.error("Failed to learn: %s", err_msg)
return

View File

@ -14,6 +14,7 @@ from broadlink.exceptions import (
BroadlinkException,
DeviceOfflineError,
ReadError,
StorageError,
)
import voluptuous as vol
@ -321,10 +322,11 @@ class BroadlinkRemote(RemoteEntity):
code = None
start_time = utcnow()
while (utcnow() - start_time) < timedelta(seconds=timeout):
await asyncio.sleep(1)
try:
code = await self.device.async_request(self.device.api.check_data)
except ReadError:
await asyncio.sleep(1)
except (ReadError, StorageError):
continue
else:
break