上篇,我们搭好了 Home Assistant,把米家、海尔、美的、特斯拉。。。统统收编。

HomeAssistant 保姆级教程:1 块树莓派,打通米家/海尔/美的/格力/海信

问题来了:想开个灯,还是得掏出手机点 HA 的界面。

半夜躺床上不想动胳膊、家里老人压根不会用 App……

这些场景,HA 那个控制台一个都救不了。

能不能动嘴就行?

话接上篇,把 HA 接入小智——一个实时语音交互助手,开口一句话,指挥全屋智能。


1. 让 HA 听懂"人话"

本质是把 HA 的 REST API 封装成 AI 能调度的工具。

1.1 基本架构

你 ──(说话)──> 小智设备 ──> 小智Pro服务端 ──(REST API)──> Home Assistant
                                                              │
你 <──(播报)── 小智设备 <── 小智Pro服务端 <──(设备状态)─────────┘

  • 小智:跑在硬件上的语音助手,负责听你说、读给你听
  • 小智Pro:云端服务端,作为 HA 的"客户端",替小智去调 HA 的 API
  • HA:你上篇搭好的那个,管着家里所有设备

三者串起来,举个例子:

你说"把客厅灯关了",

小智听懂 → 小智Pro 去调 HA 的 light.turn_off → 灯关了 → 小智告诉你"关好了"。

1.2 为什么不直接让小智连 HA?

HA 有上千个实体、上百种服务,让语音模型直接对着原始 API 瞎猜不现实。

小智Pro:连接时把 HA 的全部实体拉一遍,分成两类——

分类 什么样 能干嘛
可控制设备 turn_on/turn_off/toggle 等服务 能开能关能调
传感器 只读,温度湿度电量门窗状态 只能查,不能控

这样,小智拿到的不是一堆冷冰冰的 entity_id,而是客厅灯(可开可关)、卧室空调(可调温度)这种结构化清单,命中率更高。

说白了:小智Pro把 HA 的家底摸清楚了,小智才知道家里有啥、能干啥。


2. 准备工作

在动手之前,确认这几点都就位:

2.1 上篇的成果

  • ✅ HA 已经搭好,能公网访问,上篇讲过内网穿透的几种方案,这里不再赘述。
  • ✅ 米家/海尔/美的等设备已接入 HA,界面上能看到、能点

2.2 创建一个长期访问令牌

小智Pro 连 HA 靠的是令牌(Token):

  1. 登录 HA
  2. 左下角点你的头像
  3. 安全
  4. 拉到最底部,找 长期访问令牌
  5. 创建令牌,起个名,复制保存

令牌只显示这一次,关掉就再也看不到了,先存好。令牌 = HA 的控制权,别泄露给别人。


3. 三步接入 HA

3.1 进对页面

控制台:https://mkwyqeoebedx.sealosbja.site

登录小智Pro 控制台,左侧菜单:设备端MCP → 智能家居HA

3.2 填配置

首次进来是空的,点 配置并连接,弹窗里填两样东西:

字段 填什么 例子
HA 地址 HA 的访问地址,带 http://https:// https://ha.yourdomain.com
长期访问令牌 上一步创建的那串 eyJhbGciOi...(一长串)

3.3 连接 + 自动探测

保存后系统会自动试着连:

  • 🟢 连接成功:提示"HA 连接成功",页面立刻变成设备列表
  • 🟡 已连接但探测失败:连上了但拉设备列表时断了,多半是令牌权限或网络抖动
  • 🔴 连接失败:地址不通 / 令牌失效 / 小智Pro 够不着你的 HA

连上之后,页面顶部会亮出一排信息:

4. 控制台验证

语音控制之前,先在控制台手动点几下,确认设备能正常响应——

这一步能帮你把"配置问题"和"语音识别问题"分开排查。

4.1 可控制设备 Tab

页面分左右两栏。

左边是设备清单。

按设备自动分组。展开任一组,能看到这个设备下的所有可控制实体,每个实体一行:

选中一个实体,右边就弹出它的服务调用面板。

每个实体自带可用服务的参数定义,不用你去翻 HA 文档。

举个例子,点中一个空调:

  1. 选择服务下拉框会列出 turn_on / turn_off / set_temperature / set_hvac_mode
  2. set_temperature,下面自动冒出参数说明
    • temperature(必填),示例 26
  3. 额外参数 (JSON) 框里填 {"temperature": 26}
  4. 调用服务
HA 返回 意思
非空数组 真实拿到了设备新状态,稳了
空数组 [] 服务发下去了,但设备没回应,可能离线
啥都没返回 新版 HA 默认不回包,系统按服务名乐观推断

4.2 传感器 Tab

切到传感器 Tab,这里全是只读的:温湿度、电量、门窗开合……

卡片大字号显示数值 + 单位,时间戳自动格式化。

4.3 两个常用按钮

  • 刷新设备:你在 HA 里新加了设备,控制台不会自动知道,点这个重新拉一遍
  • 错误日志:调用失败、集成报错时,点这个拉 HA 服务端的原始日志,排查神器

5. 动嘴控制全屋

控制台验证 OK,接下来,直接用嘴

5.1 前提

  • 小智设备固件 v2.2.6.2 以上
  • 控制台显示 HA “在线”
  • 设备已绑定到你的小智Pro 账号

5.2 直接说

不需要"指令模板"那套,自然话说就行:

- "把客厅的灯打开"
- "关掉卧室的空调"
- "客厅空调调到 26 度"
- "打开客厅的窗帘"
- "把书房那个插座关了"

5.3 设备名以 HA 为准

语音里说的设备名,得跟 HA 里的"友好名称"对得上。

HA 里每个实体都有个 friendly_name

比如你的客厅灯在 HA 里叫"客厅吊灯",那你说"把吊灯关了"就管用;

如果它在 HA 里叫"Light 1",你说"客厅灯"小智就懵了。

建议:接完设备后,在 HA 里把每个实体的友好名称改成口语化的(设置 → 设备与服务 → 点进实体 → 改名称),语音识别率会高很多。


6. 常见问题

连接失败 / 一直转圈?

  • 确认小智Pro 服务端能访问到这个地址(内网穿透到位)
  • 令牌别复制多了空格或换行
  • 错误日志 看 HA 那边报了啥

连上了但设备列表是空的?

  • HA 里真有设备吗?去 HA 界面确认
  • 刷新设备 重新拉

调用服务返回空响应(警告)?

  • 设备本身掉线了(Wi-Fi 断、休眠)
  • 服务发出去了但设备没动,点 刷新设备 看真实状态

语音说"开灯"没反应?

  • 控制台是不是显示"在线"
  • 固件版本够不够 v2.2.6.2
  • 你说的设备名跟 HA 里的友好名称是不是一回事
  • 看一眼 错误日志,HA 那边有没有集成报错

换了 HA 地址 / 令牌失效了?

修改配置 填新的,保存后旧连接自动断开,再点 连接 HA 用新配置重连就行。

7. 效果展示

查设备:

查设备状态:

控制设备:

关指示灯:

写在最后

上篇,我们把七八个割裂的 App 收敛成一台 HA,让它变成能被调用的智能中枢。

这篇,不再是"人去点界面",而是"开口就能调度"。

至此,你家的智能设备,可以真正"听懂人话"了。

如果对你有帮助,欢迎点赞收藏备用。

欢迎体验 小智Pro 更多功能,请戳👇:

https://mkwyqeoebedx.sealosbja.site

注:控制 HA能力需设备端固件v2.2.6.2版以上。

固件已全面适配小智官方仓库收录的开发板型号,下载地址:

https://github.com/hougeai/xiaozhiPro/releases

有任何问题,欢迎进群交流。

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐