在HomeAssistant中接入HomeKit後可以使用iPad或iPhone的家庭App控制已接入HA的設備,如HA接入了很多小米智能家居設備,HA接入HomeKit後就可以使用蘋果自帶的家庭App控制已接入的小米設備;
HA對應的安裝方式有:OS、Container、Core、Supervised等,不同的安裝方式在接入HomeKit時也會有所影響,當在Windows下使用Container模式安裝HA時,並不能原生環境支持接入HomeKit;
HomeKit零配置與設備發現
HomeKit使用Bonjour作爲其零配置與設備發現的服務,Bonjour底層使用了 mDNS(Multicast DNS) 與DNS-SD協議實現了零配置、服務發現的機制;HomeKit設備會根據mDNS協議在局域網中廣播自身的 .local本地域名 與IP地址,局域網中其他設備收到廣播的後的設備.lcoal本地域名與IP地址後會將mDNS信息緩存起來,設備即可通過緩存的固定域名訪問到局域網中的其他HomeKit設備,無需關心設備IP地址是否變化;
由於mDNS協議自身的機制,HA接入到HomeKit中需要兩者在同一個網段中,已保證mDNS服務能夠正常通訊,否則需要mDNS中繼設備用於保證mDNS報文能夠跨網段轉發;
接入HomeKit
瞭解了HomeKit設備的通訊原理之後只要能保證HomeKit設備與HA之間mDNS協議報文能夠正常通訊,兩者運行在同一個網段,HA就能夠順利接入HomeKit;
HA與HomeKit不在同一個網段無法通過mDNS協議通訊,需使用mDNS中繼設備轉發報文,不同方式安裝HA導致無法接入HomeKit主要還是此問題;
1、當在Win的WSL下使用Core模式安裝HA時,就會存在此問題,在Win的WSL中WSL2與宿主Win系統並不在同一個網段,目前官方也不支持兩者在同一個網段下;
2、在Win下使用Container安裝也會出現此問題,由於不支持host模式,因此兩者也無法通過mDNS進行零配置設備發現,在橋接模式下兩者也不再同一個網段;
除非能夠手動打通Win與WSL或Docker同網段網絡限制,使之mDNS能夠通訊,或使用mDNS中繼設備進行跨網段mDNS報文轉發;
在HA頁面->配置->集成->添加集成 在設置集成頁面 輸入HomeKit 選擇HomeKit即可進行HomeKit的集成,完成後在HA通知下可看到接入HomeKit的二維碼,使用iPad或iPhone的家庭App掃描即可,接入後設備將自動同步到家庭App中;
設備接入後家庭App顯示: