HomeKit 基本理解
概括
HomeKit 将用户的家庭自动化信息存储在数据库中,该数据库由苹果的内置iOS家庭应用程序、支持HomeKit的应用程序和其他开发人员的应用程序共享。所有这些应用程序都使用HomeKit框架作为对等程序访问数据库.
Home 只是相当于 HomeKit 的表现层,其他应用在实现 HomeKit 也能可以具备相应的能力。实际的数据存在 HomeKit 的数据库中。
我们的操作都会转化到数据库中,所以苹果需要家庭中枢控制,是不是将数据放在家庭中枢中。
结构图,下图可以看出家庭、放假、设备的层次关系。
控制路线,一层一层往下控制。
HMHomeManager
HomeKit的总管理,主要负责权限、家庭数组、主home、home 的操作(增删改)和相关的代理
HMHomeManagerDelegate
该代理主要响应 home 的增删改回调,以及权限更改。
HMHome
home 表示一个家庭,包含家庭各种信息,标识,房间,和对房间的操作。
HMRome
Home 中的最小颗粒,表示一个房间或者地方。包含基本信息、硬件设备。
HMAccessory
accessory表示智能设备,比如灯泡、开关等。
HMService
表示服务,或者一种能力。比如照明和开关的服务,如果你对服务的理解感到模糊,可以参考苹果内置的一些服务HMServiceType
HMCharacteristic
表示服务的特征值,比如可调灯的亮度或者色温。
Accessory 端
智能设备在 iOS 的 HomeKit 中被称为 Accessory,如果硬件需要支持 HomeKit 则需要实现苹果的 HomeKit Accessory Protocol,总共包含三个三种接入方式
- Bluetooth LE 配件
- ip配件
- RF射频配件,这种方式只能通过具备ip通信的桥接设备接入。
参考
官方资料
开发者HomeKit 开发介绍
HomeKit 文档
HomeKit 示例工程
卷帘门和灯的添加和使用
WWDC2015: Introduce HomeKit
更深层次的理解 HomeKit
iOS HomeKit 详解
详细介绍 HomeKit 相关类和操作,怎么模拟配件和开发。