mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-22 23:23:55 +08:00
111 lines
3.4 KiB
Markdown
111 lines
3.4 KiB
Markdown
# 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灯” |