場景 / 輔助元件 / 群組
這三個是 HA 的「內建原料」,不用裝任何整合就能用。學會後你可以少寫一半的自動化—很多邏輯用 helper 就搞定,不用寫程式。
場景 Scenes — 一鍵回到某個狀態
場景 = 一組實體的「狀態快照」。呼叫時,所有實體瞬間回到你設定的狀態。
service: 跟著改成 action:、service_data: 改成 data:;2024.10 起自動化三段改成複數的 triggers: / conditions: / actions:,每個觸發器裡的 platform: 改寫成 trigger:。另外「開發者工具」2026.2 起搬進設定、2026.8 起簡化為「工具」,路徑是設定 → 工具(Settings → Tools)。本頁範例一律用新寫法,舊鍵名在目前版本還讀得懂,不用急著把家裡所有自動化一次改完。建立方式一:從當下狀態錄
-
先手動把家裡調到你想要的樣子
例:主燈 40%、氣氛燈紫色、冷氣 26°C、窗簾 30%、音響開藍芽。
-
設定 → 自動化與場景 → 場景頁籤 → + 新增場景
選「從當下狀態建立」→ 選要包含哪些實體 → 儲存。HA 會把當下值當成場景快照。
圖 B-1從當下狀態建立場景 — 最快也最直覺。 -
命名,例:「電影模式」→ 儲存
Entity ID 會是
scene.movie_mode。
建立方式二:手動填每個實體的目標值
適合你想要「假日場景」但現在不方便真的調(半夜不能吵鄰居)。從空白場景開始,逐一加實體 + 填目標狀態。
呼叫場景
- UI:儀表板放個 Button card → 動作
scene.turn_on→ 目標選scene.movie_mode - 自動化:動作段
scene.turn_on - 語音助理:暴露場景後說「電影模式」
進階:呼叫時漸變(transition)
場景本身是「瞬間切換」,但呼叫時可以加 transition: 5 讓燈類實體 5 秒漸變過去:
action: scene.turn_on
target:
entity_id: scene.movie_mode
data:
transition: 5
場景 vs 腳本再次強調
腳本:可以有順序、延遲、條件、迴圈,但要一步一步寫每個動作(Action,舊版叫服務 Service)。
常見組合:腳本裡呼叫場景 —「電影模式腳本」= 呼叫「電影燈場景」+ 等 2 秒 + 拉窗簾 + 開電視。
輔助元件 Helpers — 給邏輯一個記憶體
Helper 是 HA 內建的「假實體」— 沒有實體硬體,但表現得像實體,有 state、可以被儀表板顯示、可以當觸發/條件。
為什麼需要?自動化本身是「無記憶」的:每次觸發都獨立。想要跨自動化共享狀態(例如「訪客模式是開的嗎?」),就需要 helper 當共用變數。
路徑:設定 → 裝置與服務 → 輔助工具頁籤 → 「+ 建立輔助工具」。
Helper 類型速查
1. input_boolean — 開/關
最常用。經典場景:「訪客模式」、「渡假模式」、「睡覺模式」。
- 建立:類型「Toggle」→ 名稱「訪客模式」→ Entity ID:
input_boolean.guest_mode - 當條件:自動化「日落開燈」加條件
input_boolean.vacation_mode == off(渡假時不開燈) - 當觸發:
input_boolean.guest_mode變 on → 通知主人「訪客報到」 - 儀表板:直接放 Entity card 或 Tile card,家人自己切
2. input_number — 可調數字(滑桿或方框)
把「魔法數字」從自動化裡拉出來,讓家人可以微調而不用打開 YAML。
- 例:
input_number.motion_light_brightness= 動作觸發時燈的亮度。晚上想暗一點就滑滑桿改。 - 自動化裡引用:
brightness_pct: "{{ states('input_number.motion_light_brightness') | int }}"
3. input_select — 下拉選單(多選一)
經典用法:家庭狀態機。建 input_select.home_mode 選項 = [在家, 離家, 睡覺, 訪客, 渡假],所有自動化以這個當條件。
好處:狀態集中管理,一個模式一次切乾淨;不像用 5 個 boolean 那樣互相打架。
4. input_text — 純字串
常用場景:記事、標籤、動態字串引用。例:input_text.tv_url 記某個直播 URL,媒體按鈕拿它 play_media。
5. input_datetime — 日期 / 時間 / 兩者
讓家人自己設「起床時間」、「熱水器開機時間」。自動化用 time 觸發器選這個實體,時間到就跑。
triggers:
- trigger: time
at: input_datetime.wake_up_time
6. timer — 倒數計時器
比「delay」更彈性:可以被查詢剩餘時間、可以被取消、結束時觸發事件。
- 建立:類型「Timer」,可設預設長度
duration: "00:05:00" - 啟動:
timer.start(可傳duration覆寫) - 取消:
timer.cancel - 結束觸發:自動化用
event_type: timer.finished事件觸發器 - 經典:動作感應器亮燈 5 分鐘 — 「動作 → 開燈 + 啟動 timer;timer 到 → 關燈」,中途再動就
timer.start(會 restart)。
7. counter — 整數計數器
可加、可減、可重設。追蹤「今日開門幾次」「本週澆水幾次」,配合儀表板看趨勢。
8. input_button — 一次性按鈕
類似 input_boolean,但按了不會留開狀態,只發一個「按下」事件。適合「執行一次」的儀表板按鈕,例如「重整資料」「傳測試通知」。
9. schedule — 週排程
畫格子式的週時程表。例:「工作時段」= 週一到週五 09:00-18:00。實體狀態自動根據當下時間變 on / off。
當條件比手寫時間條件優雅得多,家人也能自己在儀表板拖時段。
10. Template / Threshold / Derivative / Statistics 等
「模板 sensor」、「門檻 binary_sensor」、「導數 sensor」、「統計 sensor」等進階 helper 也在這一頁,用 UI 建。例如:
- Threshold:把
sensor.pm25(數字)轉成binary_sensor.air_bad(超過 35 = on),寫自動化更直覺 - Statistics:算「過去 24 小時平均溫度」「電表當日累計」
- Derivative:算「用電變化率」「溫度上升速度」
群組 Groups — 把多個實體綁成一個
Group 是把同 domain 的多個實體綁成一個新的實體。這個新實體的狀態是「所有成員的聚合」。
常見用途
- 燈群:
light.livingroom_all= 主燈 + 氣氛燈 + 落地燈,一鍵開全部 - 開關群:
switch.holiday_lights= 5 顆聖誕燈插座 - 感應器群:
binary_sensor.any_window_open= 5 個窗磁,任一開就 on(適合「離家時檢查」) - 人員群:
group.family= 4 個 person,「有任何人在家」= home
建立方式
設定 → 裝置與服務 → 輔助工具 → 「+ 建立輔助工具」→ 選「Group」→ 選類型(Light / Switch / Cover / Binary sensor / Media player / Fan / Lock / Sensor)→ 選成員。
聚合行為
| 類型 | 預設 state 邏輯 | 可調整 |
|---|---|---|
| Light / Switch | 任一 on → group on | 可改「全部 on 才 on」 |
| Binary sensor | 預設 all(全部 on 才 on) | 可改 any(任一 on) |
| Sensor | 數字聚合(min / max / mean / median / sum / last / range) | 建立時選 |
Group 對群組操作
light.turn_on target: light.livingroom_all 會展開成對所有成員的 turn_on。這比自己寫「target 選 5 個實體」乾淨,且新加燈只要進成員名單即可。
- Group:明確的成員清單,聚合成一個新實體,可有邏輯狀態
- Area:地理歸屬,動態;適合「客廳全部關」這種空間概念
- Label:跨區域、跨 domain 的標籤,適合「所有主燈」「戶外設備」這種概念群
三者搭配範例:智能夜燈系統
把場景 + helper + group 三個湊起來,做一個「浴室動作觸發夜燈」的完整系統。需求:
- 深夜有人進浴室 → 只開柔和小燈(不開主燈刺眼)
- 停留超過 5 分鐘沒動作 → 淡出關燈
- 白天不動作(用日照或時段判斷)
- 亮度可讓家人自己調
拆解
- 建群組
light.bathroom_all= 主燈 + 鏡前燈 + 夜燈 - 建場景
scene.bathroom_night_soft= 只有夜燈開、亮度input_number.bathroom_night_brightness - 建 helpers:
input_number.bathroom_night_brightness(1-100,預設 20)timer.bathroom_light(預設 5 分鐘)schedule.night_time(22:00-06:00)
- 寫自動化:
alias: 浴室夜間動作燈 triggers: - trigger: state entity_id: binary_sensor.bathroom_motion to: "on" conditions: - condition: state entity_id: schedule.night_time state: "on" actions: - action: scene.turn_on target: { entity_id: scene.bathroom_night_soft } - action: timer.start target: { entity_id: timer.bathroom_light } - 再寫一條「timer 完成 → 關燈」:
alias: 浴室動作燈熄滅 triggers: - trigger: event event_type: timer.finished event_data: { entity_id: timer.bathroom_light } actions: - action: light.turn_off target: { entity_id: light.bathroom_all } data: { transition: 3 } - 儀表板放個「亮度」滑桿(Entity card of
input_number.bathroom_night_brightness),家人自己調。
常見問題
場景可以動態變化嗎(例如根據時段改亮度)?
Helper 資料會被備份嗎?
Group 內某個成員 unavailable 會影響群組狀態嗎?
unavailable。可在 group 建立時勾「忽略不可用成員」。刪 helper 會影響用到它的自動化嗎?
Timer 的準確性夠高嗎?可以做 30 秒烹飪計時?
timer 加 restore: true,跨重啟保留剩餘時間。