
让 Home Assistant 真正听懂中文:我把 GLM 接进了 Assist
家里的设备接入 Home Assistant 之后,我一直想试试直接用中文下命令。
理想状态很简单:输入“客厅灯现在开着吗”,它告诉我答案;输入“把餐厅空调调到 26 度”,它知道该操作哪台设备。
但 HA 自带的本地 Assist 更擅长固定句式。遇到一些比较自然的问法,它偶尔只会回我一句:“抱歉,我无法理解您的意思。”
这次我把一个 OpenAI 兼容接口的 GLM-5.3-Flash 接进了 Assist。中间踩了版本兼容和 Token 上限两个坑,好在最后都解决了。现在把完整过程记录下来,给也想折腾的朋友做个参考。
我的环境:Home Assistant Container 2026.2.2 + HACS + Extended OpenAI Conversation 2.0.1。
接口地址、模型名和密钥请换成你自己的。文章截图不会展示真实 API Key。
一、开始前,先确认这三件事
1. 你的模型必须支持工具调用
接口“兼容 OpenAI 格式”还不够。
如果它只能聊天、不支持 tool calling / function calling,Assist 就没办法通过 execute_services 控制 HA 里的设备。
我这次用的模型是:
auto/glm-5.3-flash
在正式配置前,我先调用了一次测试工具,接口能正常返回 tool_calls,确认没问题后才继续。
2. HA 必须能访问你的接口
我的 Base URL 是:
http://127.0.0.1:3425/v1
这个地址在我的环境里可以正常访问,但不代表所有 Container 部署都能直接照抄。
**尤其注意 Docker 网络:**如果 HA 使用桥接网络,容器里的 127.0.0.1 通常指容器自己,而不是宿主机。遇到这种情况,可以改用宿主机局域网 IP,或配置 host.docker.internal,然后从 HA 容器里实际测试连通性。
3. 先看清 HA 版本,别直接装最新版
打开:
设置 → 关于 Home Assistant

图 1:红框处就是本次使用的 Core 版本 2026.2.2。
这一步很重要,因为 Extended OpenAI Conversation 的不同版本,对 HA 有明确的最低版本要求。
二、在 HACS 里找到 Extended OpenAI Conversation
打开 HACS,搜索:
Extended OpenAI Conversation
点进搜索结果后,正常情况下可以直接点击 Download 安装。

图 2:点击红框中的集成名称,进入下载页面。
不过,不要看都不看就装最新版。我这次查到的版本要求如下:
| Extended OpenAI Conversation | 最低 Home Assistant 版本 |
|---|---|
| 2.0.3 | 2026.10.0b0 |
| 2.0.2 | 2026.3.0b0 |
| 2.0.1 | 2026.2.0b0 |
我的 HA 是 2026.2.2,所以应该选择 2.0.1。
三、HACS 安装失败时,手动安装同一个发布版
我在 HACS 里选择 2.0.1 后,又遇到了“这个版本不能与当前 HACS 使用”的提示。
最后没有升级 HA,也没有强行安装新版,而是从项目的 GitHub 发布页取得 2.0.1,手动放进 custom_components。
如果你也遇到同样的问题,可以参考下面的命令。先把 CONFIG_DIR 改成自己的 HA 配置目录:
CONFIG_DIR=/你的HA配置目录
mkdir -p /tmp/extended-openai
cd /tmp/extended-openai
curl -fsSL \
-H "Accept: application/vnd.github+json" \
"https://api.github.com/repos/jekalmin/extended_openai_conversation/zipball/2.0.1" \
-o source.zip
unzip -q source.zip
mkdir -p "$CONFIG_DIR/custom_components"
cp -a \
jekalmin-extended_openai_conversation-*/custom_components/extended_openai_conversation \
"$CONFIG_DIR/custom_components/"
复制前请先确认目标位置没有同名文件夹,避免覆盖已有安装。
完成后,目录应该类似这样:
config/
└── custom_components/
└── extended_openai_conversation/
├── manifest.json
└── ...
接着重启 Home Assistant。我的容器名称是 homeassistant,所以使用:
docker restart homeassistant
如果你的容器名称不同,记得替换。等 HA 页面恢复访问后,再继续下一步。
四、添加集成,填写 OpenAI 兼容接口
重启完成后,进入:
设置 → 设备与服务 → 添加集成
搜索并点击 Extended OpenAI Conversation。

图 3:点击红框中的搜索结果。
在配置页面里,我填写了这些内容:
| 配置项 | 填写内容 |
|---|---|
| Name | GLM-5.3 Flash |
| API Key | 你自己的接口密钥 |
| Base Url | http://127.0.0.1:3425/v1 |
| Api Provider | OpenAI |
| Api Version | 留空 |
| Organization | 留空 |

图 4:在红框位置填写 API Key 和 Base Url。截图未填入真实密钥。
Api Provider 保持 OpenAI,因为这里使用的是 OpenAI 兼容协议,并不代表必须连接 OpenAI 官方服务。
填写完成后点击 提交,再按提示完成设备创建即可。
五、修改模型名,并把 Token 上限调大
集成添加成功后,进入它的详情页,找到对话代理,点击:
Reconfigure conversation agent
重点检查下面几项:
chat_model: auto/glm-5.3-flash
Maximum tokens to return in response: 1024
Use Tools: 开启
Functions: 保留 execute_services

图 5:红框处分别是模型名、最大输出 Token 和 Use Tools。
这里有一个我实际踩到的坑:默认的 150 Token 太小。
第一次测试时,Assist 返回了这样的错误:
Something went wrong: token length(150) exceeded.
Increase maximum token to avoid the issue.
把它提高到 1024 后,问题消失。
execute_services 是控制设备的关键函数,不要删掉。否则模型只能根据设备信息聊天,不能真正执行开关、调温等操作。
六、新建一个 GLM 中文助手
接下来进入:
设置 → 语音助手 → 添加助手
我这样设置:
- 名称:
GLM 中文助手 - 语言:
中文 - 对话代理:
Extended OpenAI Conversation - 首选本地处理命令:保持开启

图 6:选择 Extended OpenAI Conversation,并保留“首选本地处理命令”。
我比较建议保留“首选本地处理命令”。
这样,简单、固定的指令会先尝试本地处理;本地代理理解不了,再交给 GLM。原来的 Home Assistant 本地助手也可以继续保留,不必删除。
如果只是打字控制,语音转文字和文字转语音暂时都可以不配置。
七、把 GLM 设为首选助手
助手创建好后,打开它右侧的菜单,点击 设置为首选。

图 7:在红框位置将 GLM 中文助手设为首选。
设置成功后,这个选项会变成不可点击状态,说明它已经是当前首选助手。
八、最后做一次真实查询
打开 GLM 中文助手的对话窗口,先不要急着开关设备,建议用一条只读命令测试:
客厅灯现在开着吗
这次它返回:
客厅灯现在是关着的。

图 8:之前本地 Assist 无法理解的问法,现在可以正常回答了。
确认状态查询没问题后,再尝试实际控制,例如:
打开客厅灯
把餐厅空调调到 26 度
关闭卧室窗帘
目前我保留了默认提示词里的安全限制:**执行设备操作前需要用户确认。**如果助手先问你是否确认,回复“确认”即可。
九、最容易踩坑的地方,我都替你试过了
1. 不要直接安装最新版
先看 HA 版本,再选集成版本。当前这套 HA 2026.2.2 环境对应的是 Extended OpenAI Conversation 2.0.1。
在 HA 没有升级前,也不要随手通过 HACS 把它更新到 2.0.2 或 2.0.3。
2. 能聊天,不等于能控制设备
必须确认模型支持工具调用,并保留 execute_services。如果 Assist 能回答普通问题,却从不执行设备操作,优先检查这两项。
3. 出现 token length(150) exceeded
把 Maximum tokens to return in response 从 150 提高到 1024,再重新测试。
4. Docker 里的 127.0.0.1 不一定指向宿主机
如果 HA 日志里出现连接拒绝、连接超时,先检查容器网络,不要急着换模型或改提示词。
5. 设备必须向 Assist 公开
模型只能操作已经公开的实体。我的 HA 里已经公开了 293 个实体,所以可以直接根据名称查询和控制。
门锁、车库门、报警器等敏感设备,建议谨慎公开,不要图省事全部放开。
6. 保留操作确认和本地助手
刚开始使用时,保留“执行前确认”会更稳妥。等模型名称识别、区域别名和设备控制都验证稳定后,再考虑是否简化确认流程。
整个过程看起来步骤不少,其实核心就四件事:
选对集成版本 → 填对兼容接口 → 开对模型与工具参数 → 新建并首选 GLM 助手。
配置完成后,HA 的 Assist 不再只是识别固定句式,而是可以用更自然的中文理解设备状态和用户意图。对已经攒了一堆智能设备的人来说,这比单独做一个聊天机器人实用得多。
Q.E.D.


