找回密碼
 立即註冊
    查看: 151|回覆: 0

    把五條幾乎一樣的自動化合併成一條:從盤點到驗證的完整做法

    [複製鏈接]

    !lvup!   100%

    386

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22006063
    發表於 2026-9-21 08:37:41 | 顯示全部樓層 |閱讀模式
    如果你的自動化清單裡有「前門開了通知」「後門開了通知」「陽台門開了通知」「書房窗開了通知」「廚房窗開了通知」,這一篇是寫給你的。五條內容幾乎一模一樣,改一次邏輯要改五個地方,而且一定會漏掉一個。

    如果你的自動化清單裡有「前門開了通知」「後門開了通知」「陽台門開了通知」「書房窗開了通知」「廚房窗開了通知」,這一篇是寫給你的。五條內容幾乎

    這篇會從盤點與備份開始,一步一步合併,每一步都有驗證方法,最後告訴你什麼情況該拆回去。全程在介面上操作,不需要任何硬體。

    步驟 1:盤點哪些真的可以合併

    先開 設定 → 自動化與場景,把清單從頭看到尾,回答一個問題:

    這幾條的「動作」是不是幾乎一樣,只有對象不同?


    • 是 → 可以合併,而且多半連 trigger id 都不需要(步驟 4)
    • 動作不一樣,但觸發之後要走的判斷是同一套 → 用 trigger id 加 choose 合併(步驟 6)
    • 完全無關的兩件事(「洗衣機好了通知」和「該倒垃圾了」)→ 不要合併


    判斷不出來的時候用這一題:以後要改其中一條的邏輯,另外幾條需要跟著改嗎? 需要 → 合併。不需要 → 它們只是長得像,合併之後會綁死。

    步驟 2:先備份(這一步不能省)

    合併是「刪掉五條、新增一條」,中間任何一步寫錯都可能讓門窗提醒整段消失,而你不會收到任何錯誤訊息 —— 它只是安靜地不再通知。

    最省事的備份方式:


    • 設定 → 系統 → 備份 → 建立備份,選僅設定(不含媒體),一兩分鐘就好


    你會看到備份清單多出一筆,標註今天的日期與大小。

    要手動一點的話,把每一條自動化的 YAML 各自複製出來存成文字檔:點進自動化 → 右上角三個點 → 以 YAML 編輯,全選複製。五條做五次。

    看不到「以 YAML 編輯」這個選項 → 那一條是用舊版介面建的損壞設定,或者你的帳號不是管理員。先到 設定 → 人員 確認權限。

    步驟 3:先記下「現在的正確行為」

    合併後要驗收,得先知道原本對的樣子是什麼。打開其中一條,記下三件事:


    • 觸發條件是什麼(哪個實體、變成什麼狀態、要持續多久)
    • 通知的標題與內容長什麼樣
    • 有沒有額外條件(只在晚上?只在沒人在家?)


    找不到通知內容 → 到 設定 → 自動化與場景,點進去 → 右上三點 → 追蹤,如果它最近跑過,左邊會有歷史紀錄,點下去就看得到當時實際送出的文字。

    步驟 4:最簡單的合併 —— 根本不需要 trigger id

    五個觸發器條件完全一樣、動作也一樣時,直接把 entity_id 寫成清單就好:
    1. alias: "門窗開啟提醒"
    2. id: door_window_open_alert
    3. description: "任一門窗開著超過五分鐘就提醒"
    4. mode: parallel
    5. max: 10
    6. triggers:
    7.   - trigger: state
    8.     entity_id:
    9.       - binary_sensor.前門
    10.       - binary_sensor.後門
    11.       - binary_sensor.陽台門
    12.       - binary_sensor.書房窗
    13.       - binary_sensor.廚房窗
    14.     to: "on"
    15.     for:
    16.       minutes: 5
    17. conditions: []
    18. actions:
    19.   - action: notify.persistent_notification
    20.     data:
    21.       title: "門窗提醒"
    22.       message: >
    23.         {{ trigger.to_state.name }} 已經開著五分鐘了
    複製代碼

    兩個關鍵:


    • trigger.to_state.name —— 自動取到「是哪一個」的友善名稱,所以動作不用寫五份
    • mode 必須是 parallel —— 原本是五條各自獨立的自動化,合併後變成同一條。前門和後門同時開著時,single 會把第二個吞掉,而且完全不會有畫面上的跡象,只會在 設定 → 系統 → 記錄檔 裡留一行 Already running。max 至少要大於你的門窗數量


    以下還有約 80% 的內容
    登入後即可閱讀完整教學

    登入繼續閱讀使用 Google 登入
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

    延伸閱讀

    加入惟家 LINE 群 QR Code加入惟家 LINE 群

    Archiver|手機版|惟家的智能論壇

    GMT+8, 2026-11-10 00:44 , Processed in 0.135307 second(s), 25 queries .

    快速回覆 返回頂部 返回列表