|
|
這一篇講的 AI 不在你家裡跑,也不花 API 的錢 —— 就是你平常開網頁在用的那個。把它當成一個「幫你寫 YAML 的助手」,是所有 AI 用法裡門檻最低、回收最快的一種。

但它有一個很具體的失敗模式:它給你的東西語法完全正確、設定檢查照樣通過、自動化在清單上顯示啟用中,然後永遠不執行,一個字的錯誤訊息都沒有。
這篇分成兩半:前半是怎麼問(四個可以直接複製的範本),後半是怎麼驗(四步驗證流程,加上十二種一看就該丟掉的回答,每一種都附驗證方法與正確寫法)。
---
步驟 1:開始問之前,先把三樣東西備好
大部分人問出爛答案的原因不是提示詞技巧不夠,是沒給它必要的資料。這三樣東西花五分鐘準備,之後每次問都能用。
1-1 你的 Home Assistant 版本
到設定 → 關於。
你會看到類似這樣的一行:
- Home Assistant 2026.9.3
- 作業系統 18.3
- 前端 20260826.6
複製代碼
第一行就是你要的。每次問的時候都把版本號寫進去 —— 這是讓它避開已移除功能最有效的一句話。
1-2 相關實體的完整 ID 清單
這是差別最大的一項。AI 沒辦法知道你家的實體叫什麼,你不給它就一定會編。
到設定 → 工具 → 範本(2026.2 起「開發者工具」搬進「設定」底下,2026.8 起改名叫工具;找不到直接按 Ctrl+K 搜尋「範本」)。
把左邊的內容全部清掉,貼這一段:
- 燈:
- {{ states.light | map(attribute='entity_id') | list | join(', ') }}
- 開關:
- {{ states.switch | map(attribute='entity_id') | list | join(', ') }}
- 二元感測器:
- {{ states.binary_sensor | map(attribute='entity_id') | list | join(', ') }}
- 感測器(只列有數值的):
- {{ states.sensor | selectattr('attributes.unit_of_measurement', 'defined')
- | map(attribute='entity_id') | list | join(', ') }}
複製代碼
你會看到右邊即時列出你家所有實體的 ID。
只想要某個區域的(清單太長的話):
- {{ area_entities('living_room') | join(', ') }}
複製代碼
區域 ID 不知道怎麼寫的話用這一行先查:
- {{ areas() | join(', ') }}
複製代碼
把要用到的那幾行複製起來。
1-3 決定你要它給你什麼形式
三種,差別很大:
- 整條自動化的 YAML —— 你打算貼進「以 YAML 編輯」。這是最好用的一種
- 一段模板 —— 你只是卡在某個 Jinja 算式
- 操作步驟 —— 你想用 UI 點出來。這種要明講,不然它一定給你 YAML
---
步驟 2:問法範本(直接複製改數值)
把這一整段貼過去,中括號的地方換成你的:
- 我在用 Home Assistant 2026.9.3。
- 我家有這些相關的實體:
- - binary_sensor.hallway_motion(走廊的人體感應器)
- - light.hallway(走廊的燈,支援亮度與色溫)
- - sensor.hallway_illuminance(走廊照度,單位 lx)
- 我想做到:
- 1. 偵測到人就開走廊燈
- 2. 五分鐘沒人就關掉
- 3. 照度高於 50 lx 的時候不要開(白天不用)
- 4. 晚上十一點之後只開 20% 亮度,色溫調到最暖
- 請給我一整條自動化的 YAML,我會貼進「以 YAML 編輯」。
- 幾個限制:
- - 只能用我上面列出來的實體,不要假設我還有別的
- - 如果需要額外的輔助元件(input_boolean 之類),請明確告訴我
- 要去哪裡建、名稱填什麼、實體 ID 會變成什麼
- - 用目前官方文件上的寫法
- - 每一個區塊請用註解說明它在做什麼
- 最後請列出:這份設定裡我需要自己去確認存不存在的東西有哪些。
複製代碼
這段範本裡每一句都有作用,不要刪:
- 版本號 —— 讓它避開已經移除的東西
- 實體清單附中文說明 —— 它才知道哪個是哪個,不會拿照度去判斷有沒有人
- 「只能用我列出來的實體」 —— 這一句擋掉最常見的錯誤來源
- 「需要額外輔助元件要明確告訴我」 —— 擋掉「它引用了一個自己沒定義的東西」,那是最難發現的一種錯
- 「請用註解說明」 —— 你看得懂才維護得下去。半年後回來改,看不懂等於重寫
- 最後那一句 —— 直接叫它幫你產生驗證清單,省掉你自己找
---
|
|