小智AI接智能家居:HomeAssistant MCP 控制全家设备教程
小智AI 控制智能家居最省事的一条路:用开源项目 ha-mcp-for-xiaozhi,让 HomeAssistant 自己充当 MCP server 直连小智。HACS 安装插件 → 填小智 MCP 接入点地址 → 勾选要暴露的设备/功能,就能对小智说"开客厅灯""空调调到26度"。
想让小智AI一句"开客厅灯""把空调调到26度"就控制家里的智能设备?答案是给它接上 HomeAssistant MCP。市面上最省事的一条路是用开源项目 ha-mcp-for-xiaozhi,让 HomeAssistant 自己充当 MCP server 直连小智,无需搭建中转服务。
小智AI 怎么控制智能家居?
小智(ESP32 设备)本身不会控制设备,它靠的是工具调用——你说话 → 小智识别意图 → 调用某个工具 → 工具执行并返回结果。
要控制灯、空调、电视这些智能设备,就得让这些设备的能力变成小智能调用的"工具"。HomeAssistant(HA) 就是智能家居的中央控制台,把 HA 的能力暴露给小智,小智就能控制你家里所有接入 HA 的设备。
一句话理解:HA 是把"设备"变成"能力"的地方,MCP 是把"能力"变成"小智可调用的工具"的桥。
为什么推荐 ha-mcp-for-xiaozhi?
社区里有好几个 HomeAssistant MCP 方案,针对小智最省事的是 c1pher-cn/ha-mcp-for-xiaozhi(GitHub ★260+):
- 直连小智官方服务器,不经过中转,延迟低
- HomeAssistant 里装一个 custom component 就行
- 一个实体能同时暴露多组 API:HA 自带的 Assist 控制 + 你额外配置的其他 MCP server
- 支持多个实体、能自定义 script(比如把"打开电视"封装成一个脚本)
如果你已经装了 HACS,这条是最快路径:HACS 里搜 "xiaozhi" 或 "ha-mcp-for-xiaozhi" 安装即可。
前提:小智服务端已接入 MCP
在装 HA 集成前,确认你的小智已经能连接 MCP。两种典型状态:
- 如果你用的是托管接入点(如贵云 MCP Gateway),先在控制台拿到你的接入点地址
- 如果你自部署 mcp-endpoint-server,那就用你自己的 ws 地址
ha-mcp-for-xiaozhi 需要填的这个"小智 MCP 接入点地址",就是小智服务端配置的 mcp_endpoint 指向的那个地址。
接入点地址带 token,相当于"钥匙",千万别泄露到公开仓库或群聊。
怎么用 HACS 安装?
- 确保你的 HomeAssistant 已装 HACS(Home Assistant Community Store)
- 打开 HACS → 搜索 xiaozhi 或 ha-mcp-for-xiaozhi
- 下载安装该插件
- 重启 HomeAssistant
装 HACS 需要 HA 能访问 GitHub 及 HACS 仓库;如果网络受限,可先配置科学上网或镜像。
怎么配置对小智暴露设备?
装好后,在 HA 里添加集成:
- 进入 设置 → 设备与服务 → 添加集成
- 搜索 Mcp,找到 MCP Server for Xiaozhi
- 点击下一步
- 填写小智 MCP 接入点地址
- 勾选需要的 MCP 组:
llm_hass_api里的 Assist 是 HA 自带的功能;其他选项是你自己在 HA 里接入的其他 MCP server,可以一并代理给小智 - 提交
配置完成后,等约一分钟,到小智的接入点页面点击刷新,检查连接状态。
用起来是什么体验?
配置成功后在接入点页面看到 HomeAssistant 已连接,就可以对小智说话:
- 打开客厅灯 → HA 调用灯实体
- 把空调调到 26 度 → HA 调用空调实体
- 播放电视 → 调用你自定义的 script
设备的状态变化会实时反映,小智语音就能控制你整个家。
常见坑
- 接入点连不上:确认填的是 ws 地址且带 token;HA 和小智要能互相访问
- 设备不出现:配置后小智接入点页面刷新;某些设备需要 HA 里先创建对应实体
- 只响应没动作:看 HA 日志确认工具调用是否到达;Assist 需要 HA 里配好语音助手(或直接靠小智自身的 ASR/LLM)
- 想控制自定义动作:在 HA 里写 script,然后把它作为 MCP 工具暴露给小智
这是控制家电的一条成熟路径;如果你不想在 HA 里折腾,也可以用小智接入点直接挂载各设备产商的官方 MCP(支持的话),或接贵云这类托管网关做统一调度。