HomeKit框架详细解析(一) —— 基本概览

版本记录

版本号 时间
V1.0 2018.01.29

前言

目前全世界都在积极投入AI领域,我国的互联网公司也是积极在AI方面进行投入布局,比如BAT以及今日头条等互联网公司都有自己的AI实验室。这里面和AI相关的目前可见的比如说智能家居,比如小米就出一款智能音响,苹果公司在这方面也不甘落后,推出框架HomeKit,接下来几篇我们就一起看一下这个框架。

Overview

该框架用于沟通、配置和控制家庭自动化配件,包括复杂的相机型配件。

HomeKit使用独立于设备的协议将iOS,tvOS和watchOS设备与家庭自动化配件集成在一起。 HomeKit使您的应用程序能够协调和控制来自多个供应商的配件,呈现一个连贯的,以用户为中心的界面。


Working with Home Automation Accessories - 使用家庭自动化配件

HomeKit允许您的应用程序执行三个主要功能:

  • 发现HomeKit兼容的自动化配件并将其添加到持久的跨设备主配置数据库。
  • 显示,编辑家庭配置数据库中的数据并对其执行操作。
  • 与配置的配件和服务进行通信,让他们执行操作,例如打开客厅的灯光。

家庭配置数据库不仅适用于第三方应用程序,也适用于Siri。 这允许用户发出诸如“Siri,打开客厅灯”之类的命令。用户可以通过配件,服务和命令的逻辑分组来配置家庭,然后使用Siri通过简单的语音控制来调用复杂的操作。

重要:为了保护用户的隐私,在iOS 10.0或之后链接的iOS应用程序以及访问用户的HomeKit配置数据的iOS应用程序必须静态声明这样做的意图。 在应用程序的Info.plist文件中包含NSHomeKitUsageDescription项并提供此项的用途字符串。 如果您的应用尝试更改用户的HomeKit配置数据而没有相应的目的字符串,则您的应用退出。

Home Configuration

HomeKit将家居视为家庭自动化配件的集合。 进行家庭配置的目的是允许最终用户为他们购买和安装的家庭自动化配件提供有意义的标签和分组。 应用程序可以提供建议来帮助用户创建有用的标签和分组,但不应将自己的偏好强加于用户 - 用户的意愿是最重要的。

基本的数据包含层次结构如下所示:

  • HomesHMHome)是顶层的容器,代表了一个用户通常认为是一个家庭的结构。用户可能有多个相隔甚远的家庭,比如主要家庭和度假屋。或者他们可能有两个相互靠近的家,但是他们考虑的是不同的家,例如,在同一个财产上的主要住宅和客房。

  • RoomsHMRoom)是家庭的可选部分,代表家中的独立房间。房间没有任何物理特征 - 大小,位置等。它们只是对用户有意义的名字,例如“living room”“kitchen”。有意义的房间名称使命令,如Siri,打开厨房灯

  • AccessoriesHMAccessory)安装到家中并分配到房间。这些是实际的物理家庭自动化设备,例如车库门开启器。如果用户没有配置任何房间,则HomeKit将配件分配给家庭的特定默认房间。

  • ServicesHMService)是附件提供的实际服务。配件既有用户可控制的服务,如灯光,也有自己使用的服务,如固件更新服务。 HomeKit最关心的是用户可控的服务。

    • 一个配件可能有多个用户可控的服务。例如,大多数车库门开启器都有开门和关门的服务,另外还有一个用于车库开门器上的灯的服务。
  • ZonesHMZone)是可选的家庭房间分组;例如,“upstairs”“downstairs”将以区域来表示。区域是完全可选的 - 房间不需要在区域中。通过给区域增加房间,用户可以向Siri发出命令,例如“Siri,打开楼下所有的灯”。


Topics

1. Home Setup

定义和配置家庭和家庭用户,并设置控制家庭的用户权限。

2. Home Layout

  • HMZone

    • 用户通常认为是单个区域的一组房间。
  • HMRoom

    • home中的一个room

3. Home Automation Accessories

4. Events and Event Triggers

定义和响应事件,例如用户到家或特定时间,并设置场景自动化。

5. Errors

6. Classes

7. Reference

8. Related Documentation

后记

本篇已结束,后面更精彩~~~~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容