From e814dedcffd5d04226197d8a92f4a9e33470d980 Mon Sep 17 00:00:00 2001 From: Carl Quirion Date: Sun, 1 Feb 2026 11:43:56 -0500 Subject: [PATCH] Stop using deprecated apt-key, replaced by gpg. Fix error when receiving a EventCHDetailsUpdatedValuesReceived without report. Check if a list was received in handle_challenge_details_update and process only the first instance of challenge in it, instead of erroring out on type errors --- Dockerfile.dev | 3 ++- custom_components/hilo/__init__.py | 8 +++++--- custom_components/hilo/sensor.py | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Dockerfile.dev b/Dockerfile.dev index 4ac21d5b..87b4a772 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -15,7 +15,8 @@ RUN \ && pipx uninstall pylint RUN \ - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ + curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --batch --yes --dearmor -o /usr/share/keyrings/yarn-archive-keyring.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/yarn-archive-keyring.gpg] https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \ && apt-get update \ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ # Additional library needed by Home Assistant to simulate a real environment diff --git a/custom_components/hilo/__init__.py b/custom_components/hilo/__init__.py index 39c48796..141fbea2 100644 --- a/custom_components/hilo/__init__.py +++ b/custom_components/hilo/__init__.py @@ -425,9 +425,11 @@ async def _handle_challenge_events(self, event: WebsocketEvent) -> None: elif event.target == "EventCHDetailsUpdatedValuesReceived": LOG.debug("EventCHDetailsUpdatedValuesReceived") - report = event.arguments[0]["report"] - event_id = event.arguments[0]["id"] - LOG.debug("Report for event %s: %s", event_id, report) + data = event.arguments[0] + if "report" in data: + report = data["report"] + event_id = data.get("id") + LOG.debug("Report for event %s: %s", event_id, report) async def _handle_device_events(self, event: WebsocketEvent) -> None: """Handle all device-related websocket events.""" diff --git a/custom_components/hilo/sensor.py b/custom_components/hilo/sensor.py index e94a6e77..ce9bbc3d 100755 --- a/custom_components/hilo/sensor.py +++ b/custom_components/hilo/sensor.py @@ -709,6 +709,7 @@ async def async_added_to_hass(self): async def handle_challenge_details_update(self, challenge): """Handle challenge details update from websocket.""" + challenge = challenge[0] if isinstance(challenge, list) else challenge LOG.debug("UPDATING challenge in reward: %s", challenge) # We're getting events but didn't request any, do not process them