# Home Assistant Outbound Integration 本文档说明当前 Python 项目中已经迁入的 Home Assistant outbound integration layer。 这里的 outbound 指: - 由当前 app 主动调用 Home Assistant 当前不包含: - `/homeassistant/publish` - Home Assistant inbound command gateway - Home Assistant 驱动当前 app 的入站消息路由 ## 当前已支持能力 当前 `app/integrations/homeassistant.py` 提供一个轻量的 `HomeAssistantClient`,已支持: - 发布 / 更新 sensor state - `POST /api/states/{entity_id}` - 触发 Home Assistant webhook - `POST /api/webhook/{webhook_id}` 这两项能力是按 legacy Go 中 `util/homeassistantutil/homeassistantutil.go` 的出站行为迁入的。 ## 当前配置 当前 outbound adapter 依赖以下配置: - `HOME_ASSISTANT_BASE_URL` - `HOME_ASSISTANT_AUTH_TOKEN` - `HOME_ASSISTANT_TIMEOUT_SECONDS` 如果缺少必要配置,client 会直接抛出配置错误,而不是静默跳过。 ## 错误处理策略 当前策略保持保守和简单: - 配置缺失:抛出 `HomeAssistantConfigError` - 参数明显非法:抛出 `ValueError` - Home Assistant 返回非 200/201:抛出 `HomeAssistantRequestError` - 网络请求失败:抛出 `HomeAssistantRequestError` 当前还没有做: - 自动重试 - 熔断 - 更复杂的 backoff 策略 这一轮重点是先把 app -> Home Assistant 的出站契约和可复用结构迁进来。