用途:帮助把 Home Assistant 集成进项目,用于控制智能家居设备(灯、开关、恒温器等)、读取传感器数据与实体状态、基于自定义逻辑做家庭自动化,或构建仪表盘与监控工具。
主要能力:提供连接设置流程、凭据校验,以及 Python 和 Node.js 的 API 参考文档。核心交互基于 WebSocket API 的自动化引擎命令:subscribe_trigger 订阅特定事件(状态变化、时间模式、webhook 等);test_condition 在服务端测试条件;execute_script 执行多步动作序列,支持 wait_for_trigger、延迟与服务调用,并可通过 response_variable 获取服务调用返回数据。还可使用 config/entity_registry/list、config/device_registry/list、config/area_registry/list、config/floor_registry/list 了解实体、设备、区域与楼层信息;用 subscribe_entities 获取全部实体状态的实时更新。
使用方式:先收集 Home Assistant URL 与长期访问令牌;URL 需归一化为仅含协议、主机和端口(如 http://homeassistant.local:8123)。令牌可在网页界面用户资料的安全标签页创建长期访问令牌,令牌仅显示一次。用 curl 校验连接:curl -X GET -H "Authorization: Bearer <TOKEN>" -H "Content-Type: application/json" <URL>/api/config。成功后返回版本、位置名称、时区、已加载组件等信息;401 表示认证失败,连接被拒表示地址或端口有误。Python 项目参考 references/python_api.md,Node.js 项目参考 references/node_api.md(使用 home-assistant-js-websocket 库)。
适用场景:数据仪表盘、自动化逻辑、外部触发调用服务、历史数据导出等。
限制与建议:需自行准备可访问的实例与有效令牌;始终处理网络与认证错误;监控场景优先用 WebSocket 而非轮询 REST。若需在不连接真实实例的情况下测试,可用 empty-hass:uvx --from git+https://github.com/balloob/empty-hass empty-hass,它会在 http://localhost:8123 启动预配置认证的空实例,加 --help 查看选项与登录凭据。