Files
xiaozhi-esp32-server/docs/homeassistant-integration.md
T
2025-04-23 18:17:56 +08:00

3.4 KiB

ESP32设备与HomeAssistant集成指南

简介

本文档将指导您如何将ESP32设备与HomeAssistant进行集成。

前提条件

  • 已安装并配置好HomeAssistant
  • 已经在HomeAssistant中集成Xiaomi Home,并将米家的设备导入进HomeAssistant
  • xiaozhi-esp32-server智控台能正常使用
  • 本次我选择的模型是:免费的ChatGLM,它支持functioncall函数调用

网络环境

1、我的HomeAssistant部署在下面,版本是2025.3.4

http://192.168.4.7:8123

2、我的xiaozhi-esp32-server智控台HomeAssistant部署在同一台机器的另一个端口,版本是0.3.10

http://192.168.4.7:8002

配置步骤

1. 登录HomeAssistant整理需要控制的设备清单

登录HomeAssistant,点击左下角的设置,然后进入设备与服务,再点击顶部的实体

然后在实体中搜索你相关控制的开关,结果出来后,在列表中,点击其中一个结果,这是会出现一个开关的界面。

在开关的界面,我们尝试点击开关,看看是开发会随着我们的点击开/关。如果能操作,说明是正常联网的。

接着在开关面板找到设置按钮,点击后,可以查看这个开关的实体标识符

我们打开一个记事本,按照这样格式整理一条数据:

位置+英文逗号+设备名称+英文逗号+实体标识符+英文分号

例如,我在公司,我有一个玩具灯,他的标识符是switch.cuco_cn_460494544_cp1_on_p_2_1,那么就这个写这一条数据

公司,玩具灯,switch.cuco_cn_460494544_cp1_on_p_2_1;

当然最后我可能要操作两个灯,我的最终的结果是:

公司,玩具灯,switch.cuco_cn_460494544_cp1_on_p_2_1;
公司,台灯,switch.iot_cn_831898993_socn1_on_p_2_1;

这段字符,我们成为“设备清单字符”需要保存好,等一下有用。

2. 登录HomeAssistant拿到开发密钥

登录HomeAssistant,点击左下角个人,切换安全导航栏,划到底部长期访问令牌生成api_key。

3. 登录智控台

使用管理员账号,登录智控台。点击顶部菜单参数管理,搜索plugins.home_assistant.,会有三条结果出来

编辑plugins.home_assistant.devices,把刚才整理的设备清单字符粘贴进去。

编辑plugins.home_assistant.base_url,把你部署的HomeAssistant接口地址粘贴进去,我粘贴进去的地址是这样的

http://192.168.4.7:8123

编辑plugins.home_assistant.api_key,把你从HomeAssistant复制过来的密钥,粘贴进去

4. 设置意图识别函数

在智控台,点击顶部菜单“模型配置”,在左侧栏,找到“意图识别”,找到id为Intent_function_call的意图,点击编辑

然后在弹框中,在原来的基础上追加两个函数:“hass_get_state”和“hass_set_state”

修改前

change_role;get_weather;get_news;play_music

修改后

change_role;get_weather;get_news;play_music;hass_get_state;hass_set_state

6. 手动重启xiaozhi-server

重启xiaozhi-server程序

5. 确认角色配置是否设置了函数意图识别

在智控台,点击顶部菜单“智能体管理”,找到设备所在的智能体,点击“配置角色”

确认意图识别(Intent),是否选择“函数调用意图识别”

6. 唤醒设别进行控制

尝试和esp32说,“打开XXX灯”