From ebd1efa53b300b20c9656c4ad75123ad9e64cc84 Mon Sep 17 00:00:00 2001 From: G Johansson Date: Mon, 6 May 2024 20:51:37 +0200 Subject: [PATCH] Handle exceptions in panic button for Yale Smart Alarm (#116515) * Handle exceptions in panic button for Yale Smart Alarm * Change key --- .../components/yale_smart_alarm/button.py | 18 +++++++++++++++--- .../components/yale_smart_alarm/strings.json | 3 +++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/yale_smart_alarm/button.py b/homeassistant/components/yale_smart_alarm/button.py index 3ce63cb3fbb..0e53c814fd4 100644 --- a/homeassistant/components/yale_smart_alarm/button.py +++ b/homeassistant/components/yale_smart_alarm/button.py @@ -6,9 +6,11 @@ from typing import TYPE_CHECKING from homeassistant.components.button import ButtonEntity, ButtonEntityDescription from homeassistant.core import HomeAssistant +from homeassistant.exceptions import HomeAssistantError from homeassistant.helpers.entity_platform import AddEntitiesCallback from . import YaleConfigEntry +from .const import DOMAIN, YALE_ALL_ERRORS from .coordinator import YaleDataUpdateCoordinator from .entity import YaleAlarmEntity @@ -54,6 +56,16 @@ class YalePanicButton(YaleAlarmEntity, ButtonEntity): if TYPE_CHECKING: assert self.coordinator.yale, "Connection to API is missing" - await self.hass.async_add_executor_job( - self.coordinator.yale.trigger_panic_button - ) + try: + await self.hass.async_add_executor_job( + self.coordinator.yale.trigger_panic_button + ) + except YALE_ALL_ERRORS as error: + raise HomeAssistantError( + translation_domain=DOMAIN, + translation_key="could_not_trigger_panic", + translation_placeholders={ + "entity_id": self.entity_id, + "error": str(error), + }, + ) from error diff --git a/homeassistant/components/yale_smart_alarm/strings.json b/homeassistant/components/yale_smart_alarm/strings.json index a698da20d8d..ce89c9e69ea 100644 --- a/homeassistant/components/yale_smart_alarm/strings.json +++ b/homeassistant/components/yale_smart_alarm/strings.json @@ -69,6 +69,9 @@ }, "could_not_change_lock": { "message": "Could not set lock, check system ready for lock" + }, + "could_not_trigger_panic": { + "message": "Could not trigger panic button for entity id {entity_id}: {error}" } } }