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/homeassistant