diff --git a/homeassistant/components/tessie/entity.py b/homeassistant/components/tessie/entity.py index bfedd7eb43d..718a7050953 100644 --- a/homeassistant/components/tessie/entity.py +++ b/homeassistant/components/tessie/entity.py @@ -53,7 +53,7 @@ class TessieEntity(CoordinatorEntity[TessieStateUpdateCoordinator]): return self.coordinator.data.get(key or self.key, default) async def run( - self, func: Callable[..., Awaitable[dict[str, bool | str]]], **kargs: Any + self, func: Callable[..., Awaitable[dict[str, Any]]], **kargs: Any ) -> None: """Run a tessie_api function and handle exceptions.""" try: @@ -66,8 +66,13 @@ class TessieEntity(CoordinatorEntity[TessieStateUpdateCoordinator]): except ClientResponseError as e: raise HomeAssistantError from e if response["result"] is False: + name: str = getattr(self, "name", self.entity_id) + reason: str = response.get("reason", "unknown") raise HomeAssistantError( - response.get("reason", "An unknown issue occurred") + reason.replace("_", " "), + translation_domain=DOMAIN, + translation_key=reason.replace(" ", "_"), + translation_placeholders={"name": name}, ) def set(self, *args: Any) -> None: diff --git a/homeassistant/components/tessie/strings.json b/homeassistant/components/tessie/strings.json index 8e634644895..62de4f276f4 100644 --- a/homeassistant/components/tessie/strings.json +++ b/homeassistant/components/tessie/strings.json @@ -389,6 +389,24 @@ } }, "exceptions": { + "unknown": { + "message": "An unknown issue occured changing {name}." + }, + "not_supported": { + "message": "{name} is not supported." + }, + "cable_connected": { + "message": "Charge cable is connected." + }, + "already_active": { + "message": "{name} is already active." + }, + "already_inactive": { + "message": "{name} is already inactive." + }, + "incorrect_pin": { + "message": "Incorrect pin for {name}." + }, "no_cable": { "message": "Insert cable to lock" }