From 2620443a888ab683fd8dd4c89e13e885b8b718c2 Mon Sep 17 00:00:00 2001 From: mkmer Date: Sun, 21 Apr 2024 15:19:48 -0400 Subject: [PATCH] Add error translations to Blink (#115924) * Add translations Catch timeout in snap * Grammer cleanup --- homeassistant/components/blink/camera.py | 19 +++++++++++++++---- homeassistant/components/blink/strings.json | 21 ++++++++++++++++++--- homeassistant/components/blink/switch.py | 6 ++++-- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/blink/camera.py b/homeassistant/components/blink/camera.py index 318bb18772a..7461d7b2a2b 100644 --- a/homeassistant/components/blink/camera.py +++ b/homeassistant/components/blink/camera.py @@ -3,7 +3,6 @@ from __future__ import annotations from collections.abc import Mapping -import contextlib import logging from typing import Any @@ -97,7 +96,10 @@ class BlinkCamera(CoordinatorEntity[BlinkUpdateCoordinator], Camera): await self._camera.async_arm(True) except TimeoutError as er: - raise HomeAssistantError("Blink failed to arm camera") from er + raise HomeAssistantError( + translation_domain=DOMAIN, + translation_key="failed_arm", + ) from er self._camera.motion_enabled = True await self.coordinator.async_refresh() @@ -107,7 +109,10 @@ class BlinkCamera(CoordinatorEntity[BlinkUpdateCoordinator], Camera): try: await self._camera.async_arm(False) except TimeoutError as er: - raise HomeAssistantError("Blink failed to disarm camera") from er + raise HomeAssistantError( + translation_domain=DOMAIN, + translation_key="failed_disarm", + ) from er self._camera.motion_enabled = False await self.coordinator.async_refresh() @@ -124,8 +129,14 @@ class BlinkCamera(CoordinatorEntity[BlinkUpdateCoordinator], Camera): async def trigger_camera(self) -> None: """Trigger camera to take a snapshot.""" - with contextlib.suppress(TimeoutError): + try: await self._camera.snap_picture() + except TimeoutError as er: + raise HomeAssistantError( + translation_domain=DOMAIN, + translation_key="failed_snap", + ) from er + self.async_write_ha_state() def camera_image( diff --git a/homeassistant/components/blink/strings.json b/homeassistant/components/blink/strings.json index 2260acede1c..2c0be3d972c 100644 --- a/homeassistant/components/blink/strings.json +++ b/homeassistant/components/blink/strings.json @@ -106,16 +106,31 @@ }, "exceptions": { "integration_not_found": { - "message": "Integration \"{target}\" not found in registry" + "message": "Integration \"{target}\" not found in registry." }, "no_path": { "message": "Can't write to directory {target}, no access to path!" }, "cant_write": { - "message": "Can't write to file" + "message": "Can't write to file." }, "not_loaded": { - "message": "{target} is not loaded" + "message": "{target} is not loaded." + }, + "failed_arm": { + "message": "Blink failed to arm camera." + }, + "failed_disarm": { + "message": "Blink failed to disarm camera." + }, + "failed_snap": { + "message": "Blink failed to snap a picture." + }, + "failed_arm_motion": { + "message": "Blink failed to arm camera motion detection." + }, + "failed_disarm_motion": { + "message": "Blink failed to disarm camera motion detection." } }, "issues": { diff --git a/homeassistant/components/blink/switch.py b/homeassistant/components/blink/switch.py index 1bfd257ecbe..ab9b825ded1 100644 --- a/homeassistant/components/blink/switch.py +++ b/homeassistant/components/blink/switch.py @@ -75,7 +75,8 @@ class BlinkSwitch(CoordinatorEntity[BlinkUpdateCoordinator], SwitchEntity): except TimeoutError as er: raise HomeAssistantError( - "Blink failed to arm camera motion detection" + translation_domain=DOMAIN, + translation_key="failed_arm_motion", ) from er await self.coordinator.async_refresh() @@ -87,7 +88,8 @@ class BlinkSwitch(CoordinatorEntity[BlinkUpdateCoordinator], SwitchEntity): except TimeoutError as er: raise HomeAssistantError( - "Blink failed to dis-arm camera motion detection" + translation_domain=DOMAIN, + translation_key="failed_disarm_motion", ) from er await self.coordinator.async_refresh()