需启用Home Assistant REST API并配置Hermes Agent的HTTP网关、设备映射与Webhook桥接,实现Telegram等平台远程控制设备及反向通知。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望将 Hermes Agent 与 Home Assistant 集成,实现通过 Telegram、飞书等消息平台远程控制灯光、空调、窗帘等设备,并触发预设场景(如“回家模式”“睡眠模式”),则需建立双向通信通道并配置设备映射规则。以下是完成该集成的步骤:
一、启用 Home Assistant REST API 与访问令牌
Home Assistant 必须对外暴露安全的 REST 接口,供 Hermes Agent 发起 HTTP 请求调用设备服务。此步骤为所有后续通信的基础,需确保本地网络可达且认证机制可靠。
1、登录 Home Assistant 前端,进入「设置」→「系统」→「核心」→「高级模式开启」。
2、进入「设置」→「用户」→ 点击当前用户 → 滚动到底部点击「创建长期访问令牌」。
3、为 Hermes Agent 单独生成一个令牌,命名如 hermes_gateway_token,勾选「不设过期时间」,点击「提交」并立即复制保存该令牌值。
4、确认 Home Assistant 配置文件 configuration.yaml 中已启用 REST API:
5、在 http: 区块下确保包含 cors_allowed_origins: ["*"](仅限可信内网)或明确列出 Hermes 所在服务器 IP。
二、配置 Hermes Agent 的 HTTP 网关插件
Hermes Agent 支持自定义 HTTP 网关,可将自然语言指令解析为对 Home Assistant 的标准 service call 请求。该方式无需额外中间服务,直接复用 Hermes 内置的工具调度能力。
1、编辑 Hermes 配置文件 ~/.hermes/config.yaml,在 tools: 下新增 homeassistant: 模块。
2、填入 Home Assistant 实例地址、端口、访问令牌及基础路径:
3、确保 base_url: "http://192.168.1.10:8123" 中的 IP 和端口与实际部署一致。
4、保存后执行 hermes restart 使配置生效。
三、注册设备别名与语义映射规则
为支持自然语言理解(如“打开客厅灯”“调低卧室空调温度”),需在 Hermes 中定义设备别名与 Home Assistant 实体 ID 的映射关系,并设定动作模板。该映射存储于 ~/.hermes/skills/homeassistant_mapping.yaml。
1、创建目录:mkdir -p ~/.hermes/skills。
2、新建映射文件:nano ~/.hermes/skills/homeassistant_mapping.yaml。
3、写入如下结构化映射(示例):
4、关键字段中,entity_id: light.living_room_ceiling 必须与 Home Assistant 实体页中显示的 ID 完全一致。
5、保存退出,Hermes 将在下次加载技能时自动识别该映射文件。
四、部署 Webhook 双向事件桥接(可选但推荐)
若需实现反向联动——例如当 Home Assistant 中某传感器触发(如门窗打开、人体感应)时,主动向 Telegram 或飞书推送通知——需在 Hermes 中启用 Webhook 监听器,并在 Home Assistant 中配置自动化调用该 endpoint。
1、在 config.yaml 的 gateways: 区块下启用 webhook:
2、配置监听路径为 /webhook/homeassistant,确保反向请求能被 Hermes 正确路由。
3、在 Home Assistant 自动化中新建「脚本自动化」,选择触发条件后,添加「HTTP 请求」动作,URL 填写 http://hermes-server-ip:8080/webhook/homeassistant,方法为 POST,Body 类型为 JSON,内容包含事件类型与载荷。
4、Hermes 收到请求后,将根据预设规则生成消息并推送到用户绑定的聊天平台。
五、测试指令与调试日志定位
集成完成后,需验证端到端链路是否通畅。Hermes Agent 默认记录详细工具调用日志,便于快速定位设备 ID 错误、认证失败或网络超时等问题。
1、在 Telegram 中向 Bot 发送指令:打开主卧台灯。
2、观察 Hermes 终端输出,确认是否出现 [homeassistant] calling service light.turn_on on entity light.bedroom_desk。
3、若返回 401 Unauthorized,检查配置中 token 是否粘贴完整、无空格;若返回 404 Not Found,确认 entity_id 在 Home Assistant 实体列表中存在且状态为可用。
4、启用 debug 日志:在启动命令后添加 --log-level debug,如 hermes --log-level debug。


















