找回密碼
 立即註冊
惟家LINE群QRCODE
    查看: 0|回覆: 0

    HomeKit Bridge 的實體數上限,以及怎麼拆成多個橋接器

    [複製鏈接]

    !lvup!   100%

    363

    主題

    27

    回帖

    2200萬

    積分

    管理員

    積分
    22005752
    發表於 3 天前 | 顯示全部樓層 |閱讀模式
    把 HA 的裝置橋接到 iPhone 的「家庭」App,是很多人的必做項目。

    但裝置一多就會撞到一個問題:橋接器有上限。



    上限是多少

    HomeKit 協定(HAP)規定一個橋接器最多帶 150 個配件。

    實際上 HA 官方建議不要接近這個數字
    因為:


    • 配件太多會讓「家庭」App 反應變慢
    • HA 重啟時要重新宣告所有配件,數量多會很慢
    • 某些 iOS 版本在接近上限時會有奇怪的行為


    我的經驗:超過 80 個就該考慮拆了。

    重要:一個「裝置」可能是好幾個「配件」

    這是最多人誤判的地方。

    一個 Zigbee 溫濕度感測器 = 3 個配件


    • 溫度
    • 濕度
    • 電池


    一個智能插座 = 2–4 個配件


    • 開關
    • 功率
    • 電壓
    • 電流


    所以「我只有 30 個裝置」可能實際上是 90 個配件

    怎麼看目前有幾個

    在 iPhone 的「家庭」App 裡,
    點那個 Home Assistant Bridge 配件 → 設定 → 會顯示配件數量。

    或者在 HA 的日誌裡搜 homekit
    啟動時會記錄橋接了幾個。



    第一步:先減少數量(比拆橋更重要)

    大部分人根本不需要把所有東西都送進 HomeKit。

    問自己:我會在「家庭」App 裡看這個嗎?

    該排除的


    • 電池電量 —— 你不會在家庭 App 看電池
    • 訊號品質(linkquality、rssi)
    • 韌體版本、更新實體
    • 診斷類的感測器
    • 功率、電壓、電流 —— 除非你真的會看
    • 自動化和腳本 —— 除非你想在家庭 App 裡執行


    用 filter 精確控制
    1. homekit:
    2.   - name: HA Bridge
    3.     port: 21063
    4.     filter:
    5.       include_domains:
    6.         - light
    7.         - switch
    8.         - cover
    9.         - lock
    10.         - climate
    11.         - fan
    12.       include_entities:
    13.         - binary_sensor.front_door
    14.         - binary_sensor.back_door
    15.         - sensor.living_room_temperature
    16.         - sensor.bedroom_temperature
    17.       exclude_entities:
    18.         - light.test_bulb
    19.       exclude_entity_globs:
    20.         - sensor.*_battery
    21.         - sensor.*_linkquality
    22.         - sensor.*_rssi
    23.         - sensor.*_power
    24.         - sensor.*_voltage
    25.         - sensor.*_current
    26.         - switch.*_child_lock
    27.         - switch.*_led
    複製代碼

    規則


    • 只寫 include_domains → 那些網域全部進來
    • 同時有 include_entities → 額外加入這些指定的
    • exclude_* 永遠優先於 include


    exclude_entity_globs 那幾行很有效
    我光是排掉電池和訊號品質就少了 40 幾個配件。

    第二步:真的太多就拆成多個橋接器

    怎麼拆
    1. homekit:
    2.   # 橋接器 1:燈光
    3.   - name: HA 燈光
    4.     port: 21063
    5.     filter:
    6.       include_domains:
    7.         - light
    8.       exclude_entity_globs:
    9.         - light.test_*
    10.   # 橋接器 2:開關與插座
    11.   - name: HA 開關
    12.     port: 21064
    13.     filter:
    14.       include_domains:
    15.         - switch
    16.         - fan
    17.       exclude_entity_globs:
    18.         - switch.*_child_lock
    19.         - switch.*_led
    20.   # 橋接器 3:感測器
    21.   - name: HA 感測器
    22.     port: 21065
    23.     filter:
    24.       include_domains:
    25.         - binary_sensor
    26.       include_entities:
    27.         - sensor.living_room_temperature
    28.         - sensor.bedroom_temperature
    29.         - sensor.bathroom_humidity
    30.       exclude_entity_globs:
    31.         - binary_sensor.*_update
    32.         - sensor.*_battery
    33.   # 橋接器 4:安全(門鎖、窗簾)
    34.   - name: HA 安全
    35.     port: 21066
    36.     filter:
    37.       include_domains:
    38.         - lock
    39.         - cover
    40.         - alarm_control_panel
    複製代碼

    每個橋接器要不同的 port,這是硬性要求。

    拆完要重新配對

    這是最麻煩的部分。

    拆成多個橋接器之後,你要:


    • 在「家庭」App 移除原本的橋接器
    • HA 重啟
    • 在「家庭」App 逐一加入新的橋接器(會有多個配對碼)
    • 重新設定所有房間歸屬
    • 重新設定所有 HomeKit 自動化(它們會失效)


    所以:最好一開始就規劃好,不要等到 120 個才拆。



    幾個實用技巧

    技巧一:用 advertise_ip 解決發現不到的問題

    如果 HA 跑在 Docker 或有多張網卡,
    HomeKit 可能宣告了錯的 IP:
    1. homekit:
    2.   - name: HA Bridge
    3.     port: 21063
    4.     advertise_ip: 192.168.1.50
    複製代碼

    技巧二:Docker 一定要用 host 網路

    HomeKit 依賴 mDNS 多播,bridge 網路模式不能用
    1. network_mode: host
    複製代碼

    技巧三:指定實體的 HomeKit 類型

    HA 猜錯類型的時候(例如把一個開關當成燈),可以手動指定:
    1. homekit:
    2.   - name: HA Bridge
    3.     port: 21063
    4.     entity_config:
    5.       switch.bathroom_fan:
    6.         type: fan
    7.       switch.water_heater:
    8.         type: switch
    9.       light.living_room:
    10.         name: 客廳          # 在家庭 App 裡顯示的名稱
    11.       camera.front_door:
    12.         video_codec: copy
    13.         support_audio: true
    複製代碼

    技巧四:攝影機另外開一個橋接器

    攝影機的串流很吃資源,而且常常是問題來源
    放獨立的橋接器,壞掉的時候不會影響其他東西。

    技巧五:重新配對前先清掉舊的狀態

    配對出問題的時候,刪掉 HA 裡的 HomeKit 狀態檔:
    1. # 停掉 HA
    2. rm /config/.storage/homekit.*
    3. # 重啟 HA
    複製代碼

    這會產生新的配對碼,之前的配對全部失效。

    什麼東西橋接過去會不好用


    • media_player —— HomeKit 對媒體播放器的支援很弱
    • vacuum —— 只會變成一個開關,看不到狀態
    • 水電瓦斯的數值感測器 —— 家庭 App 只支援特定幾種感測器類型
    • input_select / input_number —— 完全不支援


    HomeKit 支援的感測器類型很有限
    溫度、濕度、光照、空氣品質、CO2、CO、煙霧、漏水、移動、門窗接觸、佔用。

    其他的數值感測器(例如功率、流量)送過去會變成奇怪的東西或直接失敗。

    ---

    我自己現在是四個橋接器,總共大概 60 個配件。

    拆之前是一個橋接器 130 個,家庭 App 開起來要轉三秒。
    拆完之後幾乎是瞬間。


    值得。
    您需要登入後纔可以回帖 登入 | 立即註冊

    本版積分規則

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

    GMT+8, 2026-9-24 10:29 , Processed in 0.087710 second(s), 26 queries .

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