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

    Apple 捷徑呼叫 Home Assistant:完整設定與 2026 年的動作名稱變更

    [複製鏈接]

    !lvup!   100%

    384

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005889
    發表於 2026-9-21 02:06:35 | 顯示全部樓層 |閱讀模式
    先說清楚什麼時候才需要捷徑,免得你多繞一大圈:Home Assistant 的 HomeKit Bridge 其實橋得了腳本、場景、自動化與按鈕。捷徑真正不可取代的是另外三類事。這一篇把那三類做完,從建腳本到 Siri 唸得出來,每一步都有可以自己確認的結果。

    先說清楚什麼時候才需要捷徑,免得你多繞一大圈:Home Assistant 的 HomeKit Bridge 其實橋得了腳本、場景、自動化與

    步驟 -1:先確認你真的需要捷徑

    網路上很流行一個說法:「HomeKit Bridge 只能橋標準裝置,要跑腳本就得用捷徑。」這是錯的。

    Home Assistant 官方文件的支援清單裡,script、scene、automation、button、input_button、input_boolean 全部支援,統一以開關呈現。也就是說「按一下跑一段腳本」這件事,把 script 網域加進橋就好,家人連 App 都不用裝。

    先花三十秒確認:設定 → 裝置與服務 → HomeKit Bridge → 右邊三個點 → 設定,看網域清單裡有沒有 script 和 scene。

    你會看到:勾起來送出之後,「家庭」App 裡每個腳本各變成一顆開關,按下去執行、跑完自己關掉。

    那什麼時候才真的需要捷徑?三類:


    • 要帶參數 —— 同一個動作每次傳不同的值(把燈調到 X%、把冷氣設到 Y 度),不想為每個值各建一個腳本
    • 要把資料取回手機上 —— 讓 Siri 唸出室溫、把攝影機快照叫出來、把一串狀態整理成一句話
    • 要由 iPhone 自己的事件觸發 —— 打開某個 App、接上充電器、連上某個 Wi-Fi。這些事件只有手機知道,Home Assistant 看不到


    三類都不需要的話,這一篇你可以只看步驟 -1 就收工。

    再講一個會讓你照著舊教學做不出來的變化

    Home Assistant 在 2024.8 把「服務(service)」正名為「動作(action)」,iOS 的 Home Assistant App 也跟著換成了 Apple 的 App Intents。

    結果是:捷徑 App 裡那個叫「呼叫服務 / Call Service」的動作,現在名稱前面會掛著「(已棄用)」。 網路上兩年前的教學幾乎都還在教那一個。

    現行的對應關係:


    • 呼叫服務(Call Service) → 改用 執行動作(Perform Action)
    • 觸發事件(Fire Event) → 沒有直接的替代品。官方建議改用「執行動作」呼叫一個腳本,或是在 Home Assistant 那邊寫自動化


    已棄用的動作目前還能跑,但不要拿它來新建。

    iOS 版本需求,先對一下自己的手機

    這一篇會用到的動作分成三個門檻:


    • iOS 16.4 起:Assist 提示、算繪範本(Render Template)
    • iOS 17 起:執行動作(Perform Action)、取得攝影機快照、開啟實體
    • iOS 18 起:控制燈光、控制開關、控制風扇、控制窗簾、按下按鈕、在 App 內使用 Assist、開啟頁面、開啟攝影機清單


    執行腳本(Run Script)、啟動場景(Activate Scene)、觸發自動化(Trigger Automation)、更新位置、更新感測器這幾個沒有特別的版本門檻。

    iPhone 還在 iOS 16 → 只能用「執行腳本」那條路(步驟 2 到 4),步驟 5 的「執行動作」要 iOS 17。這一篇兩條路都會寫完整。

    步驟 0:前置條件


    • iPhone 上裝好 Home Assistant App,而且已經登入過至少一次
    • Home Assistant App → 右下角設定 → 伺服器,確認連線狀態是正常的
    • 人在家、連家裡 Wi-Fi 時能開得了 Home Assistant


    ⚠ 在外面也要能用的話,Home Assistant 必須有一個從外部連得到的位址(Home Assistant Cloud、Tailscale 這類)。沒有的話捷徑只有在家才跑得動 —— 這不是捷徑的問題,是連線的問題。

    步驟 1:先在 Home Assistant 建一個腳本

    捷徑要有東西可以呼叫。先建一個做得出明顯反應的腳本,這樣後面每一步都驗證得了。

    到 設定 → 自動化與場景 → 上方腳本分頁 → 右下角新增腳本 → 右上角三個點 → 以 YAML 編輯,整個換成:
    1. alias: 我回來了
    2. icon: mdi:home-import-outline
    3. mode: single
    4. sequence:
    5.   - action: light.turn_on
    6.     target:
    7.       entity_id: light.xuan_guan
    8.     data:
    9.       brightness_pct: 80
    10.   - action: climate.set_temperature
    11.     target:
    12.       entity_id: climate.ke_ting_leng_qi
    13.     data:
    14.       temperature: 26
    15.       hvac_mode: cool
    16.   - action: persistent_notification.create
    17.     data:
    18.       title: 回家腳本
    19.       message: "腳本在 {{ now().strftime('%H:%M:%S') }} 被執行了"
    複製代碼

    那三個實體名稱一定要換成你自己的。 查法:開發者工具 → 狀態分頁 → 上方「實體」欄位打關鍵字 → 用滑鼠把實體 ID 複製起來,不要用手打。

    沒有玄關燈或冷氣的話,把前兩個動作整段刪掉只留 persistent_notification 那一段也可以 —— 這一篇的目的是先把管道打通。

    右上角儲存,名稱填我回來了。

    你會看到:腳本清單裡多一筆「我回來了」。到 開發者工具 → 狀態,搜尋 script.,你會看到 script.wo_hui_lai_le,狀態是 off。

    不想用介面的人:同樣的東西寫在 scripts.yaml 裡,完整檔案長這樣(這個檔案的最外層就是腳本 ID,沒有 `script:` 這一層):
    1. # scripts.yaml —— 整個檔案的最外層就是腳本 ID
    2. wo_hui_lai_le:
    3.   alias: 我回來了
    4.   icon: mdi:home-import-outline
    5.   mode: single
    6.   sequence:
    7.     - action: light.turn_on
    8.       target:
    9.         entity_id: light.xuan_guan
    10.       data:
    11.         brightness_pct: 80
    12.     - action: climate.set_temperature
    13.       target:
    14.         entity_id: climate.ke_ting_leng_qi
    15.       data:
    16.         temperature: 26
    17.         hvac_mode: cool
    18.     - action: persistent_notification.create
    19.       data:
    20.         title: 回家腳本
    21.         message: "腳本在 {{ now().strftime('%H:%M:%S') }} 被執行了"
    22. wo_yao_shui_le:
    23.   alias: 我要睡了
    24.   icon: mdi:bed
    25.   mode: single
    26.   sequence:
    27.     - action: light.turn_off
    28.       target:
    29.         entity_id: all
    30.     - action: climate.set_temperature
    31.       target:
    32.         entity_id: climate.wo_shi_leng_qi
    33.       data:
    34.         temperature: 28
    35.         hvac_mode: cool
    36.     - action: persistent_notification.create
    37.       data:
    38.         title: 睡前腳本
    39.         message: 已關燈並把臥室冷氣調到 28 度
    複製代碼

    configuration.yaml 裡要有這一行才會讀到這個檔(預設就有,被刪掉的話補回去):
    1. script: !include scripts.yaml
    複製代碼

    存檔後 設定 → 系統 → 右上角三個點 → 重新載入 YAML 設定 → 腳本(腳本不用整個重開機)。

    你會看到:腳本清單裡變成兩筆(「我回來了」與「我要睡了」)。只有一筆或一筆都沒有 → 縮排錯了,`sequence:` 下面每個動作要以 `- action:` 開頭,而且比 `sequence` 多縮兩格。


    狀態欄裡找不到 script. 開頭的東西 → 腳本沒存成功,回去看 YAML 有沒有紅字。

    先在 Home Assistant 裡測一次:腳本清單那一列右邊的三個點 → 執行。

    你會看到:右上角冒出一則通知,內容是「腳本在 14:32:07 被執行了」,燈亮起來,冷氣開始運轉。

    這一步不過就不要往下走 —— 捷徑那邊失敗的話,你會分不清楚是捷徑的問題還是腳本的問題。

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

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

    本版積分規則

    延伸閱讀

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

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

    GMT+8, 2026-9-30 15:26 , Processed in 0.133936 second(s), 25 queries .

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