mcpField
H
home-automation

home-automation

github.com/alphaonedev其他87 次安装
代码仓库

关于 home-automation

home-automation 是用于通过 Home Assistant、HomeKit、Google Home 和 Matter 程序化控制智能家居设备的技能。它支持查询设备状态,并在这些系统中执行操作。

主要功能

  1. 01连接 Home Assistant REST API
  2. 02通过 HAP 集成 HomeKit
  3. 03通过 Google Home API 控制设备
  4. 04通过桥接 API 处理 Matter 设备

适用场景

  1. 01定时关闭灯具
  2. 02调节 Google Home 恒温器
  3. 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)
    
    skill.execute('turnOn', { device: 'light.kitchen', service: 'homekit' })
    
    使用环境变量存储密钥:Home Assistant 使用 $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
}

记录详细响应,并使用特定于技能的错误代码进行调试。

具体使用示例

  1. 根据时间自动控制灯光:使用 skill.connect('home-assistant', { key: process.env.HOME_ASSISTANT_API_KEY }),然后在定时脚本中调用 skill.execute('turnOff', { entity: 'light.all' }),于晚上 11 点关闭所有灯。
  2. 集成 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。

评论

支持 Markdown