diff --git a/Dockerfile.dev b/Dockerfile.dev index 4ac21d5..87b4a77 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 39c4879..141fbea 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 e94a6e7..ce9bbc3 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