From ff0ba5361fad7e174c72ef23af0a56503d7313e0 Mon Sep 17 00:00:00 2001 From: Brett Adams Date: Thu, 22 Feb 2024 05:58:38 +1000 Subject: [PATCH] Add translation to Tessie exceptions (#106525) * Fix HomeAssistantError * Add error translations * Add cable error * remove underscore from fallback * Add more exceptions * Try again for name * Improve messages * Address review feedback --- homeassistant/components/tessie/entity.py | 9 +++++++-- homeassistant/components/tessie/strings.json | 18 ++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) 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" }