Replace SimpliSafe logged errors with HomeAssistantError in service handlers (#62352)

This commit is contained in:
Aaron Bach 2021-12-20 05:35:45 -07:00 committed by GitHub
parent d471e7e111
commit 3d75befe0a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 18 deletions

View File

@ -55,7 +55,11 @@ from homeassistant.const import (
Platform,
)
from homeassistant.core import CoreState, Event, HomeAssistant, ServiceCall, callback
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
from homeassistant.exceptions import (
ConfigEntryAuthFailed,
ConfigEntryNotReady,
HomeAssistantError,
)
from homeassistant.helpers import (
aiohttp_client,
config_validation as cv,
@ -368,7 +372,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
try:
await func(call, system)
except SimplipyError as err:
LOGGER.error("Error while executing %s: %s", func.__name__, err)
raise HomeAssistantError(
f'Error while executing "{call.service}": {err}'
) from err
return wrapper
@ -397,8 +403,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
) -> None:
"""Set one or more system parameters."""
if not isinstance(system, SystemV3):
LOGGER.error("Can only set system properties on V3 systems")
return
raise HomeAssistantError("Can only set system properties on V3 systems")
await system.async_set_properties(
{prop: value for prop, value in call.data.items() if prop != ATTR_DEVICE_ID}

View File

@ -41,6 +41,7 @@ from homeassistant.const import (
STATE_ALARM_TRIGGERED,
)
from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import SimpliSafe, SimpliSafeEntity
@ -173,8 +174,9 @@ class SimpliSafeAlarm(SimpliSafeEntity, AlarmControlPanelEntity):
try:
await self._system.async_set_off()
except SimplipyError as err:
LOGGER.error('Error while disarming "%s": %s', self._system.system_id, err)
return
raise HomeAssistantError(
f'Error while disarming "{self._system.system_id}": {err}'
) from err
self._attr_state = STATE_ALARM_DISARMED
self.async_write_ha_state()
@ -187,10 +189,9 @@ class SimpliSafeAlarm(SimpliSafeEntity, AlarmControlPanelEntity):
try:
await self._system.async_set_home()
except SimplipyError as err:
LOGGER.error(
'Error while arming "%s" (home): %s', self._system.system_id, err
)
return
raise HomeAssistantError(
f'Error while arming (home) "{self._system.system_id}": {err}'
) from err
self._attr_state = STATE_ALARM_ARMED_HOME
self.async_write_ha_state()
@ -203,10 +204,9 @@ class SimpliSafeAlarm(SimpliSafeEntity, AlarmControlPanelEntity):
try:
await self._system.async_set_away()
except SimplipyError as err:
LOGGER.error(
'Error while arming "%s" (away): %s', self._system.system_id, err
)
return
raise HomeAssistantError(
f'Error while arming (away) "{self._system.system_id}": {err}'
) from err
self._attr_state = STATE_ALARM_ARMING
self.async_write_ha_state()

View File

@ -11,6 +11,7 @@ from simplipy.websocket import EVENT_LOCK_LOCKED, EVENT_LOCK_UNLOCKED, Websocket
from homeassistant.components.lock import LockEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import SimpliSafe, SimpliSafeEntity
@ -64,8 +65,9 @@ class SimpliSafeLock(SimpliSafeEntity, LockEntity):
try:
await self._device.async_lock()
except SimplipyError as err:
LOGGER.error('Error while locking "%s": %s', self._device.name, err)
return
raise HomeAssistantError(
f'Error while locking "{self._device.name}": {err}'
) from err
self._attr_is_locked = True
self.async_write_ha_state()
@ -75,8 +77,9 @@ class SimpliSafeLock(SimpliSafeEntity, LockEntity):
try:
await self._device.async_unlock()
except SimplipyError as err:
LOGGER.error('Error while unlocking "%s": %s', self._device.name, err)
return
raise HomeAssistantError(
f'Error while unlocking "{self._device.name}": {err}'
) from err
self._attr_is_locked = False
self.async_write_ha_state()