Home Assistant 接入——智能家居中枢
Hermes 消息平台接入第11篇:Home Assistant。让 AI 接管你的智能家居。
这篇教程讲的是如何把 Hermes Agent 接入你的 Home Assistant(简称 HA),让 AI 助手能帮你控制家里的灯、空调、门锁,还能在你出门时帮你“看家”。
准备工作:拿一把“钥匙”
想象一下,Hermes Agent 要进你家门,得先有一把专用的钥匙。这把钥匙在 HA 里叫 Long-Lived Access Token(长期访问令牌)。
第 1 步:创建令牌
- 打开你的 Home Assistant 网页界面
- 点击左下角你的用户名(进入个人资料页)
- 往下滑,找到 长期访问令牌 一栏
- 点击 创建令牌,名字随便起,比如
Hermes Agent - 复制生成的那串字符——关掉页面就再也看不到了,先存到记事本里
第 2 步:把钥匙交给 Hermes
打开(或新建)~/.hermes/.env 文件,把刚才的令牌贴进去:
# 必填:你的长期访问令牌
HASS_TOKEN=粘贴你的令牌
# 选填:HA 的地址(默认是 http://homeassistant.local:8123)
HASS_URL=http://192.168.1.100:8123
只要填了
HASS_TOKEN,Hermes 就会自动开启智能家居控制功能,不需要额外配置。
第 3 步:启动网关
hermes gateway
看到 Home Assistant 出现在已连接平台列表里,就说明成功了。
能干什么?四个“遥控器”
Hermes 会注册四个工具,相当于四个遥控器:
| 工具名 | 作用 | 举例 |
|---|---|---|
ha_list_entities |
列出设备 | “客厅有哪些灯?” |
ha_get_state |
查看单个设备详情 | “空调现在多少度?” |
ha_list_services |
查看设备支持的操作 | “空调能调什么模式?” |
ha_call_service |
执行操作 | “把客厅灯调成蓝色,亮度 50%” |
比如你说:
“把客厅灯打开”
Hermes 内部就会执行:
ha_call_service(domain="light", service="turn_on", entity_id="light.living_room")
再比如:
“把空调设成 22 度制热”
ha_call_service(domain="climate", service="set_temperature",
entity_id="climate.thermostat", data={"temperature": 22, "hvac_mode": "heat"})
进阶:让 Hermes 主动“看家”
默认情况下,HA 发生任何变化(比如门开了、温度变了),Hermes 都不会主动告诉你。你需要告诉它“帮我盯着哪些事”。
编辑 ~/.hermes/config.yaml:
platforms:
homeassistant:
enabled: true
extra:
watch_domains:
- climate
- binary_sensor
- alarm_control_panel
watch_entities:
- sensor.front_door_battery
ignore_entities:
- sensor.uptime
cooldown_seconds: 30
watch_domains:盯哪些类型的设备(climate=空调、binary_sensor=门窗传感器、alarm_control_panel=报警面板)watch_entities:盯某个具体设备ignore_entities:忽略哪些设备(比如 CPU 温度这种老刷新的传感器)cooldown_seconds:同一个设备 30 秒内最多通知一次,防止刷屏
这样当门被打开时,Hermes 就会主动告诉你,甚至自动帮你开灯。
安全提醒
Hermes 默认禁止调用 HA 里的危险操作,比如 shell_command(执行系统命令)、python_script(运行脚本)、hassio(控制 HA 主机开关机)。这些是为了防止 AI 被“带偏”后搞破坏,不用动它,保持默认就行。
小总结
到这里,你已经能让 Hermes 控制家里的智能设备了。核心就三步:创建令牌 → 填进 .env → 启动网关。然后就能用自然语言指挥它开关灯、调空调、查门锁。
下篇预告:智能家居玩熟了,想不想让 Hermes 主动“找你聊天”?下一篇我们讲讲 Telegram 接入,让你的 AI 助手住进手机里。
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/home-assistant