add safe home assistant error handling

This commit is contained in:
2026-06-10 21:24:34 +02:00
parent 8841a68c8d
commit 29ec53cc5e
7 changed files with 186 additions and 8 deletions

27
app/ha/exceptions.py Normal file
View File

@@ -0,0 +1,27 @@
from __future__ import annotations
class HaClientError(Exception):
"""Base class for Home Assistant integration failures."""
public_detail = "Home Assistant is currently unavailable."
class HaTimeoutError(HaClientError):
public_detail = "Home Assistant request timed out."
class HaHttpError(HaClientError):
public_detail = "Home Assistant returned an error."
def __init__(self, status_code: int, message: str | None = None) -> None:
super().__init__(message or self.public_detail)
self.status_code = status_code
class HaAuthError(HaHttpError):
public_detail = "Home Assistant authentication failed."
class HaUnexpectedPayloadError(HaClientError):
public_detail = "Home Assistant returned an unexpected response."