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

    通知寫法完整實作:從「後門開了」到「點一下就幫我關」

    [複製鏈接]

    !lvup!   100%

    386

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22006063
    發表於 2026-9-21 02:48:54 | 顯示全部樓層 |閱讀模式
    同樣一件事,通知的寫法不同,結果是「你會處理」或「你會滑掉」。這篇不只講該怎麼寫,而是把整條路做完:送出第一則通知、換成人話、加上脈絡、在通知上放按鈕讓你點一下就執行動作、分成三個等級、最後處理洗版。每一步都有可以複製的完整 YAML 和你該看到的畫面。

    同樣一件事,通知的寫法不同,結果是「你會處理」或「你會滑掉」。這篇不只講該怎麼寫,而是把整條路做完:送出第一則通知、換成人話、加上脈絡、在通

    這篇做完你會得到什麼


    • 一則會顯示「後門已經開著 12 分鐘,外面 18 度」的通知,而不是 `binary_sensor.back_door 狀態變更為 on`
    • 通知下方有一顆幫我關的按鈕,點了直接執行,不用開 App
    • 瓦斯/漏水會蓋過靜音模式,洗衣機好了只是安靜地出現,純資訊的完全不推播
    • 同一件事重複發生時覆蓋前一則,不會在通知中心堆成十幾則


    先看壞通知壞在哪(這段是配菜,兩分鐘看完就往下)


    • 講機器的語言 —— `binary_sensor.back_door 狀態變更為 on`。你半夜看到要先在腦中翻譯一次
    • 只報告不要求行動 —— 「sensor.living_room_temperature 已更新為 26.4」。所以呢?如果一則通知不需要你做任何事,它就不該是推播
    • 沒有脈絡 —— 「門開了」比不上「後門已經開著 12 分鐘了」。後者讓你知道這不是正常的進出


    一則好通知包含三件事:發生了什麼(用人話)、為什麼你該在意(脈絡)、可以怎麼處理(按鈕)。下面把這三件事一項一項做出來。

    步驟 1:找出你的通知目標

    手機上要先裝 Home Assistant App 並登入過。

    到 開發者工具 → 動作,在動作欄位打 `notify.mobile_app`。

    你會看到下拉選單列出你所有登入過的裝置,例如:
    1. notify.mobile_app_iphone_de_iphone
    2. notify.mobile_app_pixel_8
    複製代碼

    一個都沒有 → App 沒登入,或登入的是不同的 HA 伺服器。到 App 的 設定 → 同伴應用程式 → 伺服器,確認連的是這一台。

    名稱跟你的手機名稱不一樣是正常的 —— 它取的是手機在系統設定裡的裝置名稱,中文會被轉成拼音。下面所有 YAML 的 `notify.mobile_app_wo_de_shou_ji` 都要換成你在這裡看到的那一個。

    步驟 2:手動送出第一則

    在同一個頁面,把動作切到 YAML 模式(右上角那個切換),貼上:
    1. action: notify.mobile_app_wo_de_shou_ji
    2. data:
    3.   title: "測試"
    4.   message: "如果你看到這則,通知管道是通的。"
    複製代碼

    按執行動作。

    你會看到:手機在一兩秒內跳出一則通知,標題「測試」。

    完全沒收到,依序查這三項:


    • 手機的系統設定裡,Home Assistant 的通知權限有沒有開(最常見)
    • App 的 設定 → 同伴應用程式 → 通知 → 通知速率限制。一天的額度用完的話這裡會顯示還剩多少
    • 手機處於省電模式或「低耗電模式」時,Android 可能延遲送達。先關掉再測


    執行動作時就跳紅字說找不到該動作 → `notify.mobile_app_xxx` 那個名字打錯了,回步驟 1 複製貼上。

    步驟 3:把機器語言換成人話

    先把最基本的一條寫出來。加到 automations.yaml(或 設定 → 自動化與場景 → 右上角三個點 → 以 YAML 編輯):
    1. - alias: "後門開了就通知"
    2.   mode: single
    3.   triggers:
    4.     - trigger: state
    5.       entity_id: binary_sensor.hou_men
    6.       to: "on"
    7.   actions:
    8.     - action: notify.mobile_app_wo_de_shou_ji
    9.       data:
    10.         title: "後門開了"
    11.         message: "剛剛有人開了後門。"
    複製代碼

    `binary_sensor.hou_men` 要換成你自己的門磁實體。到 開發者工具 → 狀態 打 `binary_sensor.` 找出來。

    怎麼驗證:設定 → 自動化與場景 → 找到它 → 右上角三個點 → 執行。

    你會看到:手機立刻收到通知。這會跳過觸發條件直接跑動作 —— 這是確認「動作寫對了」最快的方法,後面每一條都用這招驗。

    接著實際去開一次門。

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

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

    本版積分規則

    延伸閱讀

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

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

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

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