乐于分享
好东西不私藏

[AI智能体] openclaw接入 HA

[AI智能体] openclaw接入 HA

点击蓝字,关注我们

本文为『瀚思彼岸』论坛技术文章,作者为科技宅男。在此表示感谢!文章版权归原作者所有,侵权必究。

写在前面

玩 HA 有一段时间了,语音控制一直比较难说。HA 自带的 Assist 虽然能用,但意图识别得靠手动配 YAML,换个说法就不认识你了。小爱同学、天猫精灵倒是好用,但各自生态封闭,只认自家的设备。

玩了一下 [b]OpenClaw,这条路挺有意思的——接上之后跟家里设备说话就像跟人聊天一样,不用死记口令,也不用提前写自动化脚本。发个帖记录一下过程,给同样在折腾这个方向的坛友一个参考。

OpenClaw 是什么

简单说,它是一个本地运行的 AI Agent 网关,开源的,MIT 协议。跟聊天机器人不一样的地方在于:它不只是跟你对话,它可以直接调用你接好的各种服务的 API 去干活。

跑在你自己的机器上,数据全在本地 SQLite 里(默认路径 ~/.openclaw/data.db),不上传任何东西到第三方服务器。这一点对搞智能家居的人来说比较关键。

它的架构是这样的:

  • 一个 Gateway 网关进程跑在你机器上

  • 前端通过各种聊天渠道(Telegram、微信、网页、Discord 等十几种)跟它对话

  • 后端接上你选的大模型(云端 API 或本地 Ollama 都行)

  • 通过 Skill(技能插件)去调外部服务的接口,HA 就是其中一个

目前官方技能市场 ClawHub 上有 1700 多个 Skill,覆盖面很广。

环境准备

需要的几样东西:

  1. 一台能 24 小时跑的机器。我用的旧笔记本装了 Ubuntu Server,其实树莓派也行,甚至 Windows 也能跑。不要求很高的配置,因为推理这块如果用云端模型的话本地压力不大。

  2. Home Assistant 实例。这个坛子里大家应该都有了,不展开了。

  3. 一个大模型。两种路线:

  • 云端:Claude、ChatGPT、通义千问、DeepSeek 都可以,需要一个 API Key。响应快,但数据要走一趟外部服务器。

  • 本地:Ollama 跑 Llama 3 或者 Qwen,完全离线。对硬件有点要求,建议至少 8G 显存。

我的建议是先用云端模型把流程跑通,体验满意了再考虑换本地方案。

安装 OpenClaw

前置条件:装好 Node.js(v18 以上)。然后一条命令搞定:

装完之后初始化

这个命令会引导你完成基本配置,包括选模型、设 API Key 之类的。走完之后打开控制面板看看:

默认地址http://127.0.0.1:18789/,能看到 WebChat 界面就说明跑起来了。

给 HA 创建专用账号和 Token

这一步很重要,[b]别偷懒用管理员 Token。在 HA 里新建一个普通用户,权限按需给:

  1. 进入 HA → 左下角头像 → 用户

  2. 创建新用户,比如叫 openclaw-bot

  3. 给这个用户分配设备控制权限,别给系统管理权限

  4. 用这个新用户登录 HA

  5. 左下角头像 → 滚到底部 → 长期访问令牌 → 创建令牌

  6. 把生成的 Token 复制下来,待会儿要用

安装 HA Skill

回到 OpenClaw 的 WebChat 界面,直接跟它说:

它会从 ClawHub 自动下载安装。装好之后需要配置三个参数:

  • HA URL:你 HA 的访问地址,比如 http://192.168.1.100:8123。注意别写 localhost,因为 OpenClaw 和 HA 不一定在同一台机器上。

  • Long-Lived Access Token:上一步生成的那个。

  • 是否启用 HTTPS:按你的实际情况选。

配完之后测试一下,在对话框里输入:

能返回设备列表就说明对接成功了。

实际用起来是什么感觉

跑通之后,最大的感受就是不用记指令了。以前 HA 语音控制你得按格式说,比如"打开客厅的主灯"。现在可以随便说:

  • "太热了" → 它会调空调温度

  • "我要看电影" → 关灯、拉窗帘、开投影、调音箱,一套动作下来

  • "我要出门了,帮我检查一下" → 它会查门窗状态,告诉你哪扇窗户没关

  • "调暗一点" → 基于上下文知道你在说客厅灯光,不是卧室空调

上下文记忆这个功能比较实用。比如你说"卧室灯太亮了",它把灯调到 30%。接着说"还是太亮",它会直接再调暗,不需要你重复说"卧室灯"。

搞点自动化:晨起模式

跟它说:

它会去读你的 HA 实体状态,理解设备关系,然后生成一套自动化规则。比手动写 YAML 省事很多,而且后续你想改,直接跟它说就行。

关于语音

OpenClaw 支持语音输入输出,需要额外装两个 Skill:

  • 语音识别:接 Whisper,把你说的话转成文字

  • 语音合成:接 TTS 服务(ElevenLabs 或者本地的 edge-tts),把 AI 回复读出来

配好麦克风和扬声器之后,就能实现纯语音交互了。不过这块调参比较折腾,建议先把文字聊天跑顺了再加语音。

安全方面说几句

几个个人建议:

  1. 给 OpenClaw 专用 HA 账号[b]别用管理员 Token,前面说了。

  2. 不要把 OpenClaw 暴露到公网。内网使用就很好,需要远程访问走 VPN 或 WireGuard。

  3. AI 生成的自动化规则要自己过一遍再启用,尤其是涉及门锁、安防设备的。

  4. 定期更新 OpenClaw,关注 GitHub 上的安全公告

踩坑记录

折腾过程中碰到几个问题,写出来免得大家重复踩:

  • 设备找不到:先检查 Token 对不对,再确认设备在 HA 里有没有可见性(别是隐藏状态的)。如果 HA 跑在 Docker 里,注意容器间的网络通信。

  • 响应很慢:检查模型 API 的延迟。用国内模型(比如通义千问)一般比 OpenAI 快不少。

  • Skill 安装失败:npm 源的问题,国内用户试试切淘宝源:npm config set registry https://registry.npmmirror.com

  • 对话没有上下文:确认 session 没有被重置,OpenClaw 默认为每个发送者创建独立会话。

写在最后

OpenClaw 接 HA 这条路目前走下来体验还是不错的,尤其是对家里设备比较多的场景,能省不少配置自动化的功夫。不过它毕竟还是个比较新的项目,碰到问题需要一些折腾能力。

论坛里这个方向的内容好像还不多,我打算后面继续写几篇,比如多智能体协同(不同房间跑不同 Agent)、结合 ESPHome 做语音唤醒之类的。有兴趣的朋友可以跟帖交流。

有问题欢迎拍砖。

相关链接:

OpenClaw 官方文档:https://docs.openclaw.ai/

OpenClaw GitHub:https://github.com/openclaw/openclaw

Home Assistant Skill 详情:https://docs.openclaw.ai/skills/home-assistant

▼▼▼

更多详情内容见原帖...

欲了解更多Home Assistant最新玩法和教程,请访问瀚思彼岸论坛(bbs.hassbian.com),同时欢迎关注本公众号。

▼ 请点击“阅读原文”到论坛与作者互动。