Fix HA websocket state change handling
This commit is contained in:
14
app/main.py
14
app/main.py
@@ -100,7 +100,7 @@ async def lifespan(app: FastAPI) -> AsyncIterator[None]:
|
||||
app = FastAPI(
|
||||
title="SillyHome Next API",
|
||||
description="Lokales Smart-Home-Intelligenzsystem für Home Assistant.",
|
||||
version="0.7.6",
|
||||
version="0.7.7",
|
||||
lifespan=lifespan,
|
||||
)
|
||||
app.state.settings = load_settings()
|
||||
@@ -213,12 +213,20 @@ async def _ha_event_listener(app: FastAPI, client: HaClient) -> None:
|
||||
event = data.get("event", {})
|
||||
if event.get("event_type") != "state_changed":
|
||||
continue
|
||||
entity_id = event.get("entity_id")
|
||||
event_data = event.get("data", {})
|
||||
if not isinstance(event_data, dict):
|
||||
logger.warning("State-Changed-Event ohne gültige Daten empfangen")
|
||||
continue
|
||||
entity_id = event_data.get("entity_id")
|
||||
if not entity_id:
|
||||
continue
|
||||
# Prüfe, ob Entity ein Aktor oder relevanter Kontext ist
|
||||
# Sofortige Vorhersage für betroffene Aktoren auslösen
|
||||
await asyncio.to_thread(engine.handle_state_change, entity_id, event.get("new_state"))
|
||||
await asyncio.to_thread(
|
||||
engine.handle_state_change,
|
||||
entity_id,
|
||||
event_data.get("new_state"),
|
||||
)
|
||||
except json.JSONDecodeError:
|
||||
logger.warning("Ungültige JSON-Nachricht von HA-WebSocket")
|
||||
except Exception as exc:
|
||||
|
||||
Reference in New Issue
Block a user