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

    全家都用 iPhone:把 Home Assistant 的裝置送進「家庭」App 的完整設定

    [複製鏈接]

    !lvup!   100%

    384

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005889
    發表於 2026-9-21 03:01:58 | 顯示全部樓層 |閱讀模式
    先更正一個很多人還在講的說法:「要進『家庭』App,裝置一定要有 HomeKit 認證」—— 這句話在 Matter 出現之後已經不對了。現在有兩條合法路徑,而這改變了「還需不需要 Home Assistant」的答案。這篇把正確的前提講清楚,然後把 HomeKit Bridge 從零設定到家人無感為止。

    先更正一個很多人還在講的說法:「要進『家庭』App,裝置一定要有 HomeKit 認證」—— 這句話在 Matter 出現之後已經不對了。現

    先把前提更正

    一台裝置要出現在 iPhone 的「家庭」App 裡,今天有兩條路:


    • 傳統的 HomeKit 路線:廠商加入 Apple 的 MFi 計畫、送測、通過之後才能掛「Works with Apple Home」徽章。2017 年之後那顆認證晶片可以用軟體認證取代,但要上市販售仍然要走 MFi
    • Matter 路線:廠商把產品送 CSA(Connectivity Standards Alliance)做 Matter 認證,完全不必加入 MFi。通過之後一樣進得了家庭 App,也一樣有對應的徽章規範


    所以「HomeKit 裝置貴一倍是因為認證成本」這個論點,在 2026 年已經不是主要因素了。Matter 打開了第二條門,價格差距也跟著收斂。

    那為什麼還會需要 Home Assistant? 理由換成三個,而且這三個都不會因為 Matter 普及而消失:


    • 理由一:家庭 App 支援的 Matter 型別清單很窄。 Apple 官方支援文件列出來的是:空調、橋接器、燈、門鎖、插座、開關、恆溫器、窗簾遮陽、以及感測器(移動、環境光、門窗、溫度、濕度)。清單以外的東西,就算它是通過認證的 Matter 裝置,家庭 App 也不會顯示它 —— 攝影機、電視、掃地機器人、洗衣機、空氣品質感測器、功率量測、水位偵測,全都不在
    • 理由二:你家一定有不是 Matter 的東西。 Zigbee 感應器、Z-Wave 門鎖、只有雲端 API 的除濕機、你自己用 ESP32 做的那個東西 —— 它們永遠不會變成 Matter 裝置
    • 理由三(最不會過期的一個):Home Assistant 可以把「算出來的東西」變成家庭 App 裡的配件。 「全家都不在家」不是一台裝置,「洗衣機跑完了」不是一台裝置,「濕度超過 70% 而且窗戶是關的」也不是。這些是 Home Assistant 算出來的狀態,而 HomeKit Bridge 可以把它們包裝成一個開關或感應器送進家庭 App。任何實體裝置都做不到這件事


    任何實體裝置都做不到這件事

    理由三就是整篇的重點。下面第八步會做一個實際的例子。

    這篇會做完什麼


    • 把 HomeKit Bridge 開起來並配對成功
    • 用 YAML 精確控制要送哪些實體過去(不是全部丟進去)
    • 把一個 Home Assistant 算出來的狀態,變成家庭 App 裡可以按的配件
    • 處理 150 個配件上限
    • 決定哪些自動化寫在 HomeKit、哪些寫在 Home Assistant


    第零步:先確認網路條件

    HomeKit 靠 mDNS(Bonjour)在區域網路上發現配件。這一步沒過,後面全部會卡在「找不到配件」。

    三個條件:


    • iPhone 和 Home Assistant 主機要在同一個區域網路、同一個 VLAN。跨 VLAN 的話 mDNS 預設不會通過,要在路由器上開 mDNS repeater(reflector)
    • 無線 AP 不能開「用戶端隔離」(AP isolation / client isolation)。開著的話同一個 Wi-Fi 底下的裝置彼此看不見
    • 防火牆要放行 UDP 5353(mDNS)與 TCP 21063(HomeKit Bridge 的預設埠)


    Docker 安裝的特別注意:Home Assistant 跑在 Docker 的 bridge 網路模式下時,mDNS 出不去。兩個選項:


    • 在 docker-compose.yml 裡設 network_mode: host(最簡單,多數人選這個)
    • 或者保留隔離網路,在設定裡指定 advertise_ip,並且在主機上跑一個 mDNS 轉發器(例如 avahi-daemon)


    你會看到什麼:要確認 mDNS 通不通,在和 iPhone 同一個 Wi-Fi 的電腦上執行:
    1. # macOS / Linux
    2. dns-sd -B _hap._tcp
    3. # 或者
    4. avahi-browse -rt _hap._tcp
    複製代碼

    正常會列出你家所有的 HomeKit 配件(包含 Apple TV、HomePod)。完全沒有輸出代表 mDNS 在這個網段上不通,先解決這個再往下走。

    第一步:把 Home Assistant 裝起來

    如果你已經有 Home Assistant 在跑,跳到第二步。

    買什麼:


    • 最省事:Home Assistant Green(官方現成機,插電接網路線就好)。2026 年價格因為記憶體漲價上調過,實際售價請以官方商店為準
    • 最划算:二手或新的 N100 迷你主機。2026 年樹莓派 5 因為 DRAM 漲價,「樹莓派最划算」這個舊結論已經反過來,N100 通常比較便宜而且快很多
    • 已經有 NAS 或一台常開的電腦:直接跑 Docker 版


    安裝方式只剩兩種是官方支援的:Home Assistant OS 與 Container。Supervised 與 Core 這兩種安裝方式官方已在 2025-05-22 公告棄用、2025.12 結束支援,官方安裝頁已經把它們移除了。舊教學裡的 Supervised 安裝腳本不要再用。

    Home Assistant OS 的裝法(推薦,因為只有它能裝「應用程式」):


    • 到 home-assistant.io/installation 下載對應硬體的映像檔
    • 用 Balena Etcher 寫進 SSD 或 USB 隨身碟
    • 插上機器、接網路線、開機
    • 等五到十分鐘,在瀏覽器開 http://homeassistant.local:8123


    你會看到什麼:一個「準備中」的畫面,然後是建立帳號的表單。

    ⚠ 2026.8 起 HA OS 的預設埠改成 80(Container 安裝仍是 8123)。所以如果 homeassistant.local:8123 連不上,試 http://homeassistant.local(不帶埠號)。這個改動害很多人以為安裝失敗。


    • homeassistant.local 解析不到 → 一樣是 mDNS 問題。去路由器的 DHCP 清單找它的 IP,直接用 IP 連
    • 等了二十分鐘還是「準備中」 → 第一次開機要下載一堆東西,網路慢的話真的會這麼久。超過三十分鐘才算異常


    第二步:把要橋接的裝置先接進 Home Assistant

    HomeKit Bridge 只能送出 Home Assistant 裡已經存在的實體。所以順序是:先讓裝置出現在 Home Assistant,才輪到橋接。

    常見的幾種:


    • Zigbee 裝置:插一支協調器(Home Assistant Connect ZBT-2 或 SONOFF ZBDongle-P),到 設定 → 裝置與服務 → 新增整合 → 選 Zigbee Home Automation 或裝 Zigbee2MQTT 應用程式
    • Wi-Fi 裝置:多數會被自動發現,看 設定 → 裝置與服務 的「已發現」區塊
    • Matter 裝置:設定 → 連線 → Matter(Home Assistant 2026.1 起 Matter 被提到「設定」的第一層)
    • ESPHome 自製裝置:裝 ESPHome 應用程式,燒錄後會自動被發現


    你會看到什麼:到 開發者工具 → 狀態,搜尋你的裝置名稱,應該會看到形如 light.ke_ting_deng、switch.chu_shi_cha_zuo 的實體。把這些實體 ID 抄下來,第五步要用。

    第三步:開啟 HomeKit Bridge

    兩種方式,選一種就好,不要混用。官方明講 UI 建立的實例要用 UI 改、YAML 建立的要用 YAML 改,混用會產生兩個重複的橋接器。

    方式 A:用 UI(適合先試試看)


    • 設定 → 裝置與服務 → 右下角 新增整合
    • 搜尋 HomeKit Bridge
    • 選擇要包含哪些網域(light、switch、sensor、cover、lock 之類)
    • 下一步可以再排除個別實體
    • 完成


    方式 B:用 YAML(適合精確控制,本篇後面都用這個)

    把下面這段加到 configuration.yaml 的最外層(頂格,和 homeassistant:、automation: 同一層):
    1. homekit:
    2.   - name: "我家橋接器"
    3.     port: 21063
    4.     mode: bridge
    5.     filter:
    6.       include_domains:
    7.         - light
    8.         - switch
    9.         - cover
    10.         - lock
    11.         - climate
    12.       include_entities:
    13.         - binary_sensor.quan_bu_bu_zai_jia
    14.         - sensor.ke_ting_wen_du
    15.       exclude_entities:
    16.         - light.ce_shi_deng
    17.         - switch.lu_you_qi_zhong_kai
    18.       exclude_entity_globs:
    19.         - switch.*_chong_qi
    20.         - light.*_ce_shi
    複製代碼

    每個鍵的意思:


    • name —— 顯示在家庭 App 裡的橋接器名稱。限制是 3 到 25 個英數字,預設值是 "Home Assistant Bridge"
    • port —— 預設 21063。開第二座橋時必須換一個(第七步)
    • mode —— bridge 是一座橋底下掛很多配件;accessory 是把單一實體當成一個獨立配件。電視、攝影機建議用 accessory(有些配件類型在橋接模式下功能會受限)
    • include_domains —— 整個網域全部包含
    • include_entities —— 額外指定的單一實體(不在上面網域裡的也能加)
    • exclude_entities —— 從上面的結果裡扣掉這幾個
    • exclude_entity_globs —— 用萬用字元批次扣掉


    ⚠ 不要一開始就 include 所有網域。 Home Assistant 裡有大量你不會想在家庭 App 看到的東西(每個裝置的重啟按鈕、韌體更新實體、訊號強度感測器)。丟進去的結果是家庭 App 裡塞滿幾百個沒用的配件,家人打開就關掉,然後你這整件事就白做了。

    存檔後先驗語法:開發者工具 → YAML → 檢查設定。

    你會看到什麼:綠色的「設定有效!」。有錯的話會直接印出是哪一行、錯在哪。

    然後 設定 → 系統 → 重新啟動 → 重新啟動 Home Assistant。

    第四步:配對

    重啟完成後,Home Assistant 會產生一張配對卡片。


    • 到 Home Assistant 的總覽頁面,通常會直接看到一張卡片,上面有 QR code 和一組 8 位數的 pin code
    • 沒看到的話,點左下角的通知(鈴鐺圖示),卡片在那裡


    你會看到什麼:一個 QR code,下面一行像 123-45-678 的數字。

    然後在 iPhone 上:

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

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

    本版積分規則

    延伸閱讀

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

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

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

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