iOS開發基礎之 Home Kit 框架簡介
重要:本文是針對開發過程中使用的API或者技術的初步文檔。蘋果提供該文檔旨在為開發 者使用該技術和蘋果產品上的編程接口提供幫助。這些信息可能會發生變化,依據該文檔開發的軟件應該使用***的操作系統軟件和最終文檔進行測試。文檔的新 版本可能會提供新的API和技術。
Home Kit在那些支持蘋果Home Automation Protocol和iOS設備的附屬配件之間實現了無縫集成和融合,從而推進家庭自動化的發展和革新。通過一個通用的家庭自動化設備協議,以及一個可以配 置這些設備并與之通信的公開API,Home Kit使得app用戶控制自己的home成為可能,而不需要由生產家庭自動化配件的廠商創建。Home Kit也使得來自多個廠商的家庭自動化配件集成為一體,而無需廠商之間彼此直接協調。
Home Kit允許第三方應用執行以下三大主要功能:
1.發現附屬設備,并把它們添加到一個持久的、跨設備的home配置數據庫中。
2. 在home配置數據庫中展示、編輯以及操作數據。
3.與配置的附屬設備和服務進行通信,從而使之執行相關操作,比如關掉起居室的燈。
Home配置數據庫并不僅僅適用于第三方應用,也適用于Siri。用戶可用Siri發出指令,比如“Siri,關掉起居室的燈。”如果用戶通過合邏輯的分組配件、服務以及命令創建了家居配置,那么Siri可通過聲音控制來完成一系列復雜精細的操作。
Home Kit把home看作一個家庭自動化配件的集合。家居配置的目的是允許終端用戶為他們購買和安裝的家庭自動化配件提供有意義的標簽和分組。應用程序可以提供建議來幫助用戶創建有意義的標簽和分組,但不能把它們自己的偏好設定強加給用戶--用戶的意愿最重要。
基本數據包含層級類似下邊這樣:
Homes (HMHome)
Homes(HMHome)是最頂層的容器,展示了用戶一般都會認為是單個家庭單位的結構。用戶可能有多個離得較遠的住所,比如一個經常使用的住所和一個度假別墅?;蛘咚麄兛赡苡袃蓚€離得比較近的住所,比如一個主要住宅和一個別墅。
Rooms (HMRoom)
Rooms (HMRoom)是home的可選部分,并且代表home中單獨的room。room并沒有任何物理特性--大小、位置等等。對用戶來說,它們是簡單的有 意義的命名,比如“起居室”或者“廚房”。有意義的room名稱可以啟用類似“Siri,打開起廚房的燈”的指令。
Accessories (HMAccessory)
附屬設備被安裝在home中,并且被分配給每個room。它們是實際的物理家庭自動化設備,比如一個車庫門遙控開關。如果用戶沒有配置任何room,那么Home Kit將會把附屬設備分配給home中特殊的默認room。
Services (HMService)
Services (HMService)是由附屬配件提供的實際服務。附屬配件有用戶可控制的服務,比如燈光;也有它們自用的服務,比如框架更新服務。Home Kit更多關注用戶可以控制的服務。單個附屬配件可能有多個用戶可控制的服務。比如大部分車庫遙控開關有打開或者關閉車庫門的服務,并且在車庫門上還有控 制燈光的服務。
Zones (HMZone)
Zones (HMZone)是home中可選擇的room分組。“Upstairs”和“downstairs”可以由zones代表。Zones是完全可選擇 的,room不需要處于zone中。通過把room添加到zone中,用戶可以給Siri發命令,比如“Siri,打開樓下所有的燈。”
類
NSObject:NSObject是大部分Objective-C類層次的基類。
HMAccessory:一個HMAccessory對象代表一個家庭自動化配件,比如車庫門遙控開關或者一個恒溫器。
HMAccessoryBrowser:一個HMAccessoryBrowser對象是一個用來發現新附屬配件的網絡瀏覽器。
HMAction:HMAction是Home Kit中行為操作的抽象基類。
(HMCharacteristicWriteAction:HMCharacteristicMetadata對象用來代表操作集中的一個操作。)
HMActionSet:HMActionSet對象代表應用于單個設置的一組操作(HMAction的實例)
HMCharacteristic:HMCharacteristic對象代表某個服務的特性,比如,燈是打開還是關閉,或者溫度調節器設定了什么溫度。
HMCharacteristicMetadata:HMCharacteristicMetadata對象代表某個特性的元數據。
HMHome:HMHome對象允許你在home中與不同附屬設備進行通信并安裝配件。
HMHomeManager:HMHomeManager對象管理一個或者多個home集合。
HMRoom:一個HMRoom對象被用來代表home中的一個room。
HMService:HMService對象代表附屬配件提供的服務。
HMServiceGroup:HMServiceGroup對象代表配件提供的服務的集合,簡化了把服務當作單一實體處理的過程。
HMTrigger:HMTrigger對象代表觸發事件,在滿足觸發條件時,它用來觸發一個或者多個操作集(HMActionSet的實例)。
(HMTimerTrigger:HMTimerTrigger對象代表基于計時器的觸發器。)
HMZone:HMZone對象代表一個room的集合--用戶認為是單個區域或者zone,比如“起居室”和“廚房”可能會被分在一個叫做“Downstairs”的zone中。
Protocols
HMAccessoryBrowserDelegate:該協議定義了HMAccessoryBrowser對象的接口,以通知委托發現了新的附屬配件。
HMAccessoryDelegate:該協議定義了從附屬配件到委托狀態更新的通信方法。
HMHomeDelegate:該協議定義了home中配置改變和在home中執行操作集的狀態的通信方法。
HMHomeManagerDelegate:該協議定義了home manager對象如何把改變傳達給它們的委托。
Other Reference