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



















