小編的世界 優質文選 家居
字體大小:
2021年8月01日 -
:
智能家居網
科技領域愛好者
如果你對智能家居有所了解,那應該或多或少聽人聊起過 HomeKit。由 Apple 開發並主推的的 HomeKit 既因為產品選擇少、價格高而難以成為主流,又因其獨特的優秀體驗和「出身名門」而成為智能家居領域的焦點。HomeKit 究竟是什麼?能做什麼?怎麼做到的?在《HomeKit 從零完全入門指南》的第一篇裏,就讓我們從核心原理的角度來解答一下這個核心的問題。
▍HomeKit 是什麼?
想要准確描述 HomeKit,定義是不可或缺的第一步。然而,HomeKit 和相關的術語其實長期被不少人所混淆。我們來看看 Apple 自己是怎麼定義 HomeKit的:
這是 Apple 推出的一組軟件開發工具。用 HomeKit 創建的 App 可讓您從 Apple 設備控制家中已連接的配件(如電燈、鎖或暖氣和冷氣)。——《Apple 詞典》
以上的定義說明,HomeKit 的本質其實是一個「開發套件」。它包含了很多常常被大家簡稱為 HomeKit 的部分,包括:
iOS 等系統上的 HomeKit 框架智能家居設備采用的 HomeKit 設備協議(HomeKit Accessory Protocol,以下簡稱 HAP 協議)HomeKit 設備開發工具包(HomeKit Accessory Development Kit)等等
有些人還可能將 iOS 等系統上預裝的「家庭」app 同 HomeKit 混淆,但兩者完全不同,我們將在之後對「家庭」app 作進一步的介紹,這裏就不做展開說明。
Apple 開發者網站中列出的多個 HomeKit 相關的板塊
有了這個定義,我們也就不難理解「Works with Apple HomeKit」這一 HomeKit 官方認證的真實含義了——它表明這一外設兼容於 HomeKit,可以和其它兼容 HomeKit 的軟硬件進行交互。那麼「Works with Apple HomeKit」認證(以下簡稱 HomeKit 認證)到底有何特殊之處呢?是否經過認證對於一般的 HomeKit 用戶來說有影響嗎?
▍Works with Apple HomeKit
「Works with Apple HomeKit」認證(以下簡稱 HomeKit 認證)是蘋果 MFi 計劃 的一部分,這意味著想要通過 HomeKit 認證的廠商需要先加入 MFi,然後為單項產品申請 HomeKit 認證。蘋果對 MFi 計劃有著充分的掌控,說 HomeKit 認證的「含金量」絕大多數來源於其優秀的產品口碑也不為過。
「Works with Apple HomeKit」標志|Apple 開發者
實際上,蘋果對 HomeKit 設備的要求並不算高,這一認證成為「品質保障」很大程度上可以說「全靠同行襯托」。與其他智能家居平台直接限制芯片模組的策略不同,目前的 HomeKit 認證並不幹涉產品的軟件設計和硬件實現,而是對工廠采取備案制。擁有自主生產線的大公司可以為自己的工廠申請資質,通過審查後就獲得了生產 HomeKit 認證設備的資格;智能家居領域中占多數的初創公司則可以直接聯系已經擁有資質的代工廠,委托其進行生產。這樣的模式可以為代工廠帶來新的訂單,同時也杜絕了「小作坊」生產的可能性。
部分 HomeKit 認證代工廠,絕大多數來自中國|MFi 官網
除了生產上的管控外,蘋果還要求 HomeKit 申請者擁有其它標准組織例如 Wi-Fi 聯盟或藍牙技術聯盟的認證。HomeKit 視覺元素的使用同樣受到嚴格的限制。HomeKit 的設備一般采用靜態設置碼進行配對,廠商需要根據規範印刷設置碼,並保證隨機生成、一機一碼。對許多 HomeKit 用戶來說,設置碼貼紙已經成為了 HomeKit 最具代表性的要素之一。
截至目前,「Works with Apple HomeKit」認證同商用版 HAP 協議是高度綁定的。如果沒有申請 HomeKit 認證,設備廠商就無法獲取商用版 HAP 協議文檔;HomeKit 認證也只面向實現了商用版 HAP 協議的設備開放。不過,在 WWDC21 大會上,蘋果已經宣布 HomeKit 將包括對 CHIP(Matter)協議的支持,因此未來這一認證很有可能將向符合要求的 Matter 設備開放。由於 Matter 設備尚未上市,且暫時無法認證,如果沒有特殊說明,在以後的文章中「HomeKit 設備」均指代 HAP 設備。
HomeKit 框架將包含 CHIP(Matter)子框架|WWDC 2021
HomeKit 認證的核心之一是「Works with Apple HomeKit」標志的使用許可。通過 HomeKit 認證的產品可以將「Works with Apple HomeKit」標志打印在產品的包裝和說明書上,或者在官網、電商等平台使用這一商標進行宣傳。與「Made for iPhone」等其它 MFi 標志類似,智能家居廠商可以利用蘋果的品牌宣傳自己的產品,這一定程度上可以提升產品的溢價。
MFi 計劃「全家福」|MFi 官網
與長期處於爭議焦點的 MFi 認證芯片類似,HomeKit 認證也需要使用定制的安全芯片。廠商需要在此基礎上進行設計,並且向蘋果申請少量安全模塊進行試產,試產品通過認證後方能量產。在 2019 年,HomeKit 認證開放了服務器驗證方案。選擇軟件(服務器)驗證的廠商可以直接進行預生產,並將產品提交認證;在獲得認證後,蘋果服務器將同步認證信息,產品也就可以通過 HomeKit 框架的檢驗了。
HomeKit 自適應照明
HomeKit 認證設備還可以使用更多的 HomeKit 功能。諸如自適應照明、HomeKit 安全視頻等 HomeKit 進階功能都必須通過 HomeKit 認證才能激活。如果說未經過 MFi 和 MFM(Made for MagSafe)認證的第三方充電線無法激活 iPhone 快充僅僅是讓充電變得更慢,那缺少設備 HomeKit 認證可就會帶來實打實的功能缺失了。
▍未認證的 HAP 設備
在發布之初,HomeKit 僅支持本地的硬件驗證。只要正確使用了 HomeKit 安全芯片,即使產品本身尚未取得認證也能通過 HomeKit 的檢驗。然而,用於試產的芯片數量少,管控嚴格,幾乎沒有流向市場,一般消費者很難接觸到。在購買時,消費者可能遇到的「未認證 HomeKit 設備」主要有兩種情況:采用軟件驗證方式並且未獲得認證的,采用非商用版 HAP 協議的。在通過 HomeKit 添加設備時,如果所添加的設備未能通過驗證,系統將通過彈窗進行提醒。
由於軟件驗證方案不需要特殊硬件,商用版 HAP 協議的絕大多數基礎功能如今均已經被破解且可以直接使用。大名鼎鼎的 HomeBridge 項目就是基於逆向破解的 HAP 協議。HomeKit 會通過「HomeKit 已認證」屬性來標記認證狀態。在「家庭」app 中,這一屬性默認隱藏,只在驗證不通過時展示;「家庭」app 還會在頂部橫幅提示「此配件尚未經過認證,可能無法配合 HomeKit 穩定運行」。
采用破解版 HAP 協議的 Homebridge 添加後有「尚未認證」橫幅|@Microhoo
非商用版 HAP 協議無法獲得認證,也不會有橫幅提示,它的使用體驗更接近一般的認證設備。任何注冊的 Apple 開發者都可以在網站上獲取該協議,但采用非商用版 HAP 協議的設備不得用於商業目的,也不能公開分發或者銷售。這實際上是不少人堅持使用破解版協議而不是公開的非商用版協議的原因。不過,由於兩種協議的原理和設計基本一致,下文的原理介紹均基於非商用版協議進行講解。
值得注意的一點是,無論是以上哪種情況,未認證的 HomeKit 設備均不能使用「Works with Apple HomeKit」商標進行宣傳;采用非商用版 HAP 協議的設備更是不允許公開銷售。如果大家在選購 HomeKit 設備前後發現了相關的違規情況,應該考慮向蘋果舉報並進行維權。
▍HAP 的通信機制和安全性
在之前的圖例中,我們已經展示了 iOS 設備上的 HomeKit 框架是如何工作的,而其中的 HAP 子框架和 HAP 設備之間通信的「語言」正是 HAP 協議。HAP 協議包含了為基於 IP 的設備和基於低功耗藍牙(Bluetooth LE,以下簡稱 BLE)的設備設計的兩套安全的通信協議。我們可以通過了解 HAP 通信協議一窺 HomeKit 設備與終端(指 iPhone 等控制端設備)設備日常通信的方式。
HAP 實際上由兩套協議所組成
對於基於 BLE 的設備,iCloud 將跨設備同步配對信息,因此可以直接用 BLE 建立設備間的點對點通信。為滿足 BLE 的數據包大小限制,HAP 協議還規定了數據包拆分發送的規則。對於基於 IP 的設備,HAP 則充分利用了自家的 Bonjour 協議進行廣播和發現,並利用 HTTP 進行通信。HomeKit 請求都是由終端設備向 HomeKit 設備發起,然後 HomeKit 設備將按要求更新狀態並向終端設備返回信息。HomeKit 還規定了包括加密流(stream)傳輸在內的其他連接形式,但應用較少,我們就不多介紹了。
終端設備每發現一台已配對的 HomeKit 設備,就會嘗試與之建立會話(session)。HomeKit 設備在初始配置時會生成一對永久密鑰。二者會根據交換的隨機數據和已記錄的永久密鑰生成一對臨時密鑰,其有效期僅維持到當前會話結束為止。所有通信均采用帶數據校驗的對稱加密,因此可以保證可靠性和安全性。任何解碼錯誤或連接斷開都會結束當前會話,從而最大程度地防範攻擊風險。
說到這裏,其實 HomeKit 最大的特點已經呼之欲出了:與其它智能家居協議通過服務器或者智能音箱作為「中介」進行操作不同,HAP 通信協議在設計上就有點對點、本地和安全這三大特點。這也意味著 HomeKit 完全可以在沒有互聯網(編注:與之相對的是家庭局域網)的惡劣環境中正常工作——我們將在介紹 HomeKit 安全路由器時詳細分析其應用。也正是因為這點,HomeKit 無法像其它平台那樣通過服務端控制來篩選認證設備,只能采用本地安全芯片。即使後來開放了軟件驗證選項,在無法聯網驗證的環境下也只會顯示警告,並不會影響使用。
▍HomeKit 本地運行機制詳解
HomeKit 設備列表、永久密鑰和房間分組等信息由 iCloud 負責管理與同步,而實際的設備控制等操作全部在本地完成。為了保障安全性,終端通過 HAP 控制 HomeKit 設備的過程相比其它智能家居平台要繁瑣不少——當然,這些差異對用戶幾乎是無感知的。
如果你有興趣對 HomeKit 的控制方式進行更深入的了解,我們可以一起來深入探究一下 HomeKit 工作的每一個環節,並且還可以從中發現 HomeKit 體驗不佳的症結,當然跳過這一節也對後續內容的理解不會產生任何影響。
為了成功建立會話,HomeKit 設備和終端設備需要進行雙向的配對。HomeKit 設備上記錄了所有可信任設備的列表,一旦發生變化,iCloud 就會通過終端向 HomeKit 設備發送指令來進行更新,以保證其他設備可以正常連接。不在列表中的設備會被直接拒絕訪問。對於 BLE 設備而言,這種機制十分接近 AirPods 的「通過 iCloud 自動連接」,可以實現一次配對、多設備無感連接。
對於基於 IP 的 HomeKit 設備,它們將根據 mDNS(多播 DNS,Multicast DNS)協議在局域網中廣播自己的 .local 本地域名(編注:說明自己是誰)和 IP 地址(編注:說明自己在哪裏)。mDNS 的原理就好比是在一個隨機入住的酒店裏,房客可以時不時向所有房間廣播自己的名字和房間號,認識他的其他房客會將他當前的房間號保存下來。根據本地緩存的 mDNS 信息,終端設備就可以用固定的域名訪問到局域網中的某個 HomeKit 設備,而無需擔心其 IP 地址發生變化。
Bonjour 允許局域網內的設備間互相識別並建立連接|Apple 開發者
Bonjour 是蘋果在十幾年前基於 mDNS 和 DNS-SD(DNS 服務發現,DNS Service Discovery)開發的一套軟件,它在二者的基礎上提供了更高級的接口。HomeKit 設備會使用 Bonjour 注冊一個專屬服務,HomeKit 則通過查詢服務信息來判斷該設備是否屬於當前「家庭」。終端設備同樣會與基於 IP 的 HomeKit 設備自動建立會話。如果終端設備有監視 HomeKit 設備狀態的需求(例如傳感器的狀態變化通知,或家庭中樞的自動化觸發等),它將通過 HTTP 維持一個 TCP 長連接來接收實時消息。
如果 HomeKit 設備數量增加呢?我們假設當前家庭中注冊了 30 個基於 IP 的 HomeKit 設備(其中 5 個狀態受到監視)和 10 個 基於 BLE 的 HomeKit 設備,那麼每台終端設備都需要:
和 10 台藍牙外設保持連接;和 5 個 IP 設備維持 HTTP 長連接。
不僅如此,在每台終端設備初次激活 HomeKit 時,會發送多達 60 條 HTTP 請求來進行配對;整個局域網中至少存在著 30 個 Bonjour 節點,它們在不停進行著 mDNS 廣播。當我們打開「家庭」app 時,它會通過 HomeKit 請求所有包含在「家庭狀態」和「常用配件」中的配件狀態,而這些 HTTP 和藍牙請求全部是「瞬發」的!
從以上的例子中,我想大家應該已經發現了 HomeKit 體驗的「殺手」所在。
▍HomeKit 體驗的兩大殺手
大量 mDNS 節點、瞬發 HTTP 請求、長連接,這些 HomeKit 的行為對路由器產生了巨大的壓力,使路由器成為 HomeKit 體驗的最大瓶頸和頭號殺手。傳統的智能家居平台只需要在每台 IP 設備和服務器間維持一個 TCP 長連接,終端設備的所有控制指令和狀態獲取都直接向服務器進行請求,再由服務器下發到設備上。而 HomeKit 的點對點特性則規定任何指令都需要獨立的本地 HTTP 請求,對路由器的瞬時交換能力提出了不小的挑戰。
傳統智能家居平台和 HomeKit 的長連接、最大瞬時請求數量隨 IP 設備數量變化
由於 HomeKit 設備發現完全依賴 Bonjour,這對路由器的 mDNS 兼容性也是不小的考驗。如果沒有進行針對性的優化,路由器很可能因為頻繁的 mDNS 廣播報文而導致性能下降;如果優化策略有問題,也可能導致 HomeKit 無法正常工作。
網件 Orbi 路由器曾因為 mDNS 優化算法不佳導致 HomeKit 問題,不得不推出緊急更新|Orbi 社區論壇
HomeKit 體驗的另一大殺手則是藍牙——相比基於 IP 的局域網通信,藍牙通信雖然功耗低、成本低,但速度也遠遠不及 Wi-Fi。為保障安全性和通用性,相比其它智能家居協議,HomeKit 指令體積更大、數量也更多,傳輸速度自然也就更慢。即使是經過優化後,藍牙設備發送狀態更新消息(也就是觸發自動化和推送通知)的延遲也只能達到亞秒級,是一般 TCP 請求的百倍,已經處於人可感知的範疇。此外,藍牙設備信號覆蓋範圍有限,單個藍牙設備很難做到全屋可連接;因此通過個人終端連接時很可能出現「未響應」的情況。在後文中我們將看到 HomeKit 是如何通過「家居中樞」來優化藍牙設備的使用體驗的。
▍HomeKit 對 Wi-Fi 系統的挑戰
相較於路由器,HomeKit 對於 Wi-Fi 的性能需求並不突出,但 Wi-Fi 系統的孱弱仍然有可能成為影響 HomeKit 體驗的隱患。這樣的挑戰是目前階段絕大多數智能家居平台中普遍存在的,下面我們來簡要介紹一下。
目前,大部分 Wi-Fi 智能家居設備只支持 2.4GHz 頻率的 Wi-Fi 4 協議,而且功率較低,穿牆性能和抗干擾能力都較弱。攝像頭、傳感器等智能家居設備還往往被放在家中的角落,靠單一路由器進行覆蓋很可能出現死角。此外,智能家居設備幾乎都不支持 MIMO;為了服務這些設備,其他無線設備(例如手機、電腦)的信號很可能受到影響。
考慮到 Wi-Fi 接入目前仍然是智能家居單品的主流入網方式,在布置 HomeKit(以及其他智能家居系統)前建議先升級自己的無線 AP 布局。對於已經入住的家庭來說,mesh 路由系統是擴展無線覆蓋最省心的選擇;還在裝修階段的也可以提前布局 AC+AP 方案。為智能家居布設 Wi-Fi 應當盡量確保所有可能安裝智能家居設備的位置都有較強的 2.4GHz 信號覆蓋,以免設備發生斷連掉線。
mesh 路由器間可以自動連接,合並為一張低延遲的「大網」|網件 Orbi 官網
▍HomeKit 家居中樞工作原理
HomeKit 家居中樞是 HomeKit 另一個十分特別的存在——在其他智能家居平台中,往往由服務器或網關來承擔自動化和遠程訪問等功能。雲端自動化功能靈活,但十分依賴互聯網訪問,並且可能存在安全和隱私風險;物聯網網關雖然位於本地,是離設備最近的「關卡」,但它性能有限,難以承擔複雜的邏輯,也往往不支持並行處理多個自動化,容易成為自動化性能的「瓶頸」。
智能家居自動化的基本流程
HomeKit 創新性地采用了「家居中樞」作為自動化設備。家居中樞位於同一局域網內,HTTP 請求僅有毫秒級延遲。即使是數年前的 A8 芯片,相比其他智能家居設備所使用的芯片依舊擁有碾壓級的性能,完全不用擔心並行和複雜邏輯問題。由於操作系統「師出同門」,HomeKit 家居中樞甚至支持「快捷指令」這樣高度自由的自動化方案。曾經有朋友吐槽過同樣的自動化邏輯使用 HomeKit 這樣的「外掛」執行速度竟然快於米家的網關自動化,這正暴露出網關設備的性能不足。HomeKit 自動化「紓解」了網關設備的「非網關功能」,反倒提升了整個智能家居系統的性能。
複雜自動化觸發延遲對比示意圖
除此之外,HomeKit 家居中樞還承擔著多重意義上的「網關」職能。家居中樞可以作為「代理」執行 HomeKit 指令,並且將非 IP 設備橋接到局域網中。由家居中樞代理的 HomeKit 請求和終端設備直接發出的請求 幾乎沒有差異。
對於藍牙設備來說,它是將藍牙設備橋接到局域網的網關。藍牙設備只需要和家居中樞保持連接,HomeKit 就可以通過 HTTP 訪問家居中樞進行代理操作,而無需每個終端設備都進行連接。這樣以來既減輕了藍牙設備的壓力,又通過「信號擇優」的方式提高了藍牙的設備的響應性能。
引入家居中樞前後的藍牙設備拓撲圖
以上方案充分擴展了藍牙設備的連接範圍,但還沒有徹底解決傳輸速率不足和延遲高的問題。HomePod mini 上首先引入的基於 Thread 的 HAP 協議作為對藍牙 BLE 的補充,不僅大大提高了響應性,還利用Thread 穩定、低延遲的 mesh 組網進一步擴大了 HomeKit 設備的「朋友圈」。在接入 HomeKit 後,支持 Thread 的藍牙 HomeKit 設備可以被家居中樞所識別,然後自動加入包含家居中樞的 Thread 網絡。如此一來,家居中樞就成為了設備的 Thread 網關,接收到相關請求後會通過 Thread 而不是藍牙來進行通信,由此解決了延遲問題。
引入 Thread 前後的藍牙設備拓撲圖
除了藍牙和 Thread 網關,家居中樞還是所有 HomeKit 設備的「互聯網網關」。如果 iPhone 等個人終端並不處於同一局域網中,它們將首先通過 iCloud 連接到家居中樞,並通過家居中樞「代理」進行遠程訪問。家居中樞和 HomeKit 設備間、家居中樞和個人終端間會分別建立點對點加密會話,iCloud 雖然可能進行二次加密,但並不能獲取真正傳遞的信息,可以說是一種將安全性做到極致的設計。
傳統智能家居平台和 HomeKit(已設置家具中樞)的長連接、最大瞬時請求數量隨 IP 設備數量變化
▍理解 HomeKit 抽象模型
在上文中,我們介紹了 HomeKit 的底層通信機制,它根據設備采用的通信協議分為兩種不同的類型。在這些協議的基礎上,HomeKit 建立了統一的抽象模型來描述它的智能邏輯。相比為了安全性而不惜將問題「複雜化」的通信協議,HomeKit 的抽象模型設計十分簡潔。它只包含三個不同層次的核心概念:
設備(accessory)服務(service)屬性(characteristic)
「服務」是對某一類設備功能的抽象。除了名為「設備信息」,用於展示制造商、序列號、固件版本等信息的一個必須的服務外,大部分設備只包含一個服務,和自己的功能相匹配。為了最大程度的抽象和複用,部分服務類型會可能「附加」其它服務。例如「空氣淨化器」就可以附加「風扇」服務;如果一個設備同時包含「空氣淨化器」和「風扇」服務,HomeKit 會推斷出這是一台空氣淨化器,「風扇」控制的是空氣淨化器的風速,並且二者的開關狀態應當同步。
每個服務都規定有可選和必選屬性,例如「設備信息」服務中制造商、型號等屬性都是必須提供的。屬性反映設備的某個特征或者狀態,例如開關狀態、傳感器數據等。屬性支持多種不同的權限組合:設備制造商信息是只讀(paired read)的,開關既可讀(paired read)又可寫(paired write),傳感器數據等可以用於觸發自動化的則必須具備通知(notify)權限。支持推送消息的關鍵屬性則需要在通知的基礎上實現事件(event)。除此之外,還有立即寫(timed write)、寫返回(write with response)、廣播(broadcast)、隱藏(hidden)等權限。設備還可以定義私有屬性,這些屬性在「家庭」app 中將向一般用戶隱藏,但可以被 HomeKit 用於控制以及自動化等操作。
VOCOlinc FlowerBud 香薰機的 HomeKit 邏輯層次(不含私有屬性)
通過以上介紹我們不難發現,HomeKit 規定了每個設備只能擁有一個主要服務,它反映了該設備的主體功能。然而,HomeKit 中的服務定義又十分克制,很多帶有額外傳感器的 HomeKit 設備並不能用單一設備來描述。HomeKit 中每個物理設備(即單個 IP 或 BLE 設備)可以對應一個或多個邏輯設備(以下簡稱子設備),HomeKit 可以通過接口獲取邏輯設備列表。在「家庭」app 中,我們可以通過「作為單一板塊整體顯示」和「作為單獨板塊分開顯示」按鈕將子設備聚合或分開顯示。
「家庭」app 中的子設備列表、聚合顯示和拆分顯示
橋接器(網關)是一類特殊的設備,它承擔著將非 BLE 或 IP 設備接入 HomeKit 的功能。通過橋接器接入 HomeKit 的設備可以以「產品組合」的形式通過 HomeKit 認證,宣傳和銷售時除了印刷「Works with Apple HomeKit」標志,還需注明支持 HomeKit 的橋接器型號。有些設備既有自己的功能,又可以用作橋接器(例如 Aqara 空調伴侶 P3);也有一些設備只有橋接功能,「家庭」app 將它們隱藏到了「家庭設置 > 中樞與橋接」中。我們可以在這一頁面查看或移除橋接器。
「家庭」app 中的橋接器列表、詳情和子設備視圖
▍HomeKit 設備入網與初始化
作為「HomeKit 原理」的最後一塊拼圖,我們需要談談 HomeKit 設備的入網和初始設置流程。為了在本地完成設備的配置和認證,HomeKit 不像米家等平台那樣提供「支持設備列表」和操作指南,而是完全依靠藍牙和 Bonjour 發現(discover)附近的設備。這樣反倒創造出了更一致的設備添加流程,成為了 HomeKit 的一大標志性體驗。
對於 BLE 設備來說,未經注冊的設備會不停「廣播」一個特殊的「HAP 配對」服務,HomeKit 將監聽這類廣播消息,從而識別附近正在等待配對的設備。Wi-Fi 設備的入網則實際上使用了 MFi 無線設備配置功能;這一功能只對 MFi 計劃的認證硬件開放,並且需要專用 BLE 藍牙芯進行服務廣播片以被 iOS 設備發現。還有一類 IP 設備並不通過 HomeKit 的配對流程接入局域網。它們可能使用有線連接,或者擁有更複雜的功能(例如電視機),因此這類設備將直接通過 Bonjour 被發現。
個人終端設備將結合設置碼來自動發現對應的 HomeKit 設備,確認它還未添加到 HomeKit,然後為設備配網。絕大多數 HomeKit 設備采用的靜態設置碼會以貼紙的形式出現在機身或者說明書等位置,目前主要有二維碼貼紙和 NFC 貼紙兩種。使用 iOS 或 iPadOS 設備的攝像頭或 iPhone 的 NFC 掃描對應貼紙都可以激活配對流程。使用動態設置碼的帶屏幕設備需要在屏幕上展示二維碼供掃描,例如電視機和機頂盒。
已經正確配對或接入後後,下一步需要進行初始設置。整個流程采用安全遠程密碼交換協議(Secure Remote Password protocol),需要進行三個來回的信息傳遞,期間將驗證設置碼的有效性,並為 HomeKit 設備生成一個長期密鑰。這一密鑰在還原出廠設置前都將保持不變。設置完成後,HomeKit 就會嘗試和該設備建立會話,以上流程全部無錯誤則設備添加成功。
SRP-6 加密原理|SRP-6 論文
HomeKit 設備添加流程
▍小結
在《HomeKit 從零完全入門指南》的第一篇裏,我們將 HomeKit 從添加、連接到控制的整個流程進行了完整的分析,並介紹了 HomeKit 為安全性所做的努力以及一些常見的可能影響 HomeKit 體驗的硬件設施。我們還介紹了遠程訪問、Thread 以及自動化等家庭中樞的專屬功能的實現原理。在接下來的章節中,我們將告別底層原理,從實際應用的角度來談談 HomeKit 的「使用姿勢」。