关于 home-automation
home-automation 是用于通过 Home Assistant、HomeKit、Google Home 和 Matter 程序化控制智能家居设备的技能。它支持查询设备状态,并在这些系统中执行操作。
主要功能
- 01连接 Home Assistant REST API
- 02通过 HAP 集成 HomeKit
- 03通过 Google Home API 控制设备
- 04通过桥接 API 处理 Matter 设备
适用场景
- 01定时关闭灯具
- 02调节 Google Home 恒温器
- 03查询智能设备状态
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill home-automation安装后在 Claude Code 中输入/home-automation确认已加载。
详细介绍
家庭自动化
用途
此技能通过 Home Assistant、HomeKit、Google Home 和 Matter 协议集成智能家居系统,使 AI 能够以编程方式控制 IoT 设备以执行自动化任务。
使用时机
在自动化家庭环境时使用此技能,例如通过 IoT 平台控制灯、恒温器或安全系统。适用于智能家居应用、语音助手集成或日常例行任务的自定义脚本等场景(例如,睡前关灯)。
主要功能
- 通过 REST API 连接 Home Assistant,以管理设备状态。
- 使用 HAP 协议集成 HomeKit,支持 Apple 生态系统设备。
- 使用 Google Home API 控制兼容的智能设备。
- 通过桥接 API 处理 Matter 设备,以实现跨平台兼容性。
- 具体说明:Home Assistant 的状态 API 端点为
GET /api/states;HomeKit 需要 Bonjour 发现;Google Home 使用 OAuth 2.0,所需范围包括https://www.googleapis.com/auth/homeautomation;Matter 通过基于 IP 的配网进行连接。
使用模式
使用此技能时,请先通过身份验证进行初始化。通过 skill.use('home-automation') 导入,然后调用 skill.connect(service, key) 等方法。对于顺序任务,可串联调用:连接、查询状态、执行操作。务必使用 Promise 或回调处理异步操作。配置格式:JSON 对象,例如 {"service": "home-assistant", "api_url": "http://localhost:8123"}。
常用命令/API
- CLI:运行
openclaw home-automation connect --service home-assistant --api-url http://localhost:8123 --key $HOME_ASSISTANT_API_KEY建立连接。 - API:使用
POST /api/services执行 Home Assistant 操作;Google Home 的端点示例:GET https://homegraph.googleapis.com/v1/devices。 - 代码片段:
skill.use('home-automation') skill.connect('home-assistant', { apiUrl: 'http://localhost:8123', key: process.env.HOME_ASSISTANT_API_KEY })const state = await skill.call('getState', { entity: 'light.living_room' }) console.log(state)
使用环境变量存储密钥:Home Assistant 使用skill.execute('turnOn', { device: 'light.kitchen', service: 'homekit' })$HOME_ASSISTANT_API_KEY,Google Home 使用$GOOGLE_HOME_TOKEN。
集成说明
操作前,使用环境变量进行身份验证(例如 $HOME_ASSISTANT_API_KEY)。对于 HomeKit,请确保设备已通过“家庭”应用配对;自定义集成可使用 HAP-NodeJS 库。Google Home 需要 OAuth 流程——重定向到 https://accounts.google.com/o/oauth2/v2/auth。Matter 集成需要兼容的桥接设备;配置格式:YAML,例如 matter: { bridge_ip: '192.168.1.100', port: 5540 }。避免在一次调用中混用协议;使用封装器,以便在服务之间无错误地切换。
错误处理
通过使用 try-catch 块封装调用,检查 HTTP 错误(例如 401 Unauthorized)。身份验证失败时,使用刷新的令牌重试。常见错误:API 速率限制(例如 Home Assistant 返回 429);请使用指数退避处理。代码片段:
try {
await skill.call('getState', { entity: 'light.living_room' })
} catch (error) {
if (error.code === 401) console.error('Reauthenticate with $HOME_ASSISTANT_API_KEY')
else throw error
}
记录详细响应,并使用特定于技能的错误代码进行调试。
具体使用示例
- 根据时间自动控制灯光:使用
skill.connect('home-assistant', { key: process.env.HOME_ASSISTANT_API_KEY }),然后在定时脚本中调用skill.execute('turnOff', { entity: 'light.all' }),于晚上 11 点关闭所有灯。 - 集成 Google Home 以控制温度:调用
skill.use('home-automation').connect('google-home', { token: process.env.GOOGLE_HOME_TOKEN }),然后调用skill.call('setThermostat', { deviceId: 'thermostat.living_room', temperature: 72 })来调节恒温器。
图谱关系
- 集群:与“iot”集群相连,以支持更广泛的 IoT 集成。
- 标签:关联带有“iot”和“home”标签的技能,例如 device-control 或 smart-security 技能。
- 关系:此技能依赖身份验证服务;它集成了 Home Assistant REST 端点和 Google Home OAuth 流程等外部 API。