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

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

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

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

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

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

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


Topics

1. Home Setup

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

  • HMHome

    • 一个家和它的配件。
  • HMHomeManager

    • 一个或者多个home的管理者。
  • HMUser

    • 在家中的人可能有权控制家中的配件和服务。
  • HMHomeAccessControl

    • 与家庭关联的用户的访问权限。

2. Home Layout

  • HMZone

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

    • home中的一个room

3. Home Automation Accessories

  • Accessory Configuration

    • 发现和配置附近的家庭自动化配件。 设置配件触发器,操作和事件。
  • Light and Power

    • 使用天然和人造光源。 监视和控制电源插座,开关和电池。
  • Air, Temperature, Humidity, and Water

    • 监视和控制通风,空调,烟雾检测和空气质量配件。 使用供水和过滤配件。
  • Locks, Safety, and Security

    • 监控,配置和使用门铃,车库门开启器和锁。 与家庭安全系统一起工作。
  • Cameras, Video Cameras, and Sound

    • 连接,配置和使用相机型配件(包括摄像机),并配置和使用音频配件。

4. Events and Event Triggers

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

  • Location Events

    • 表示用户在区域间移动的指定事件。
  • Time Events

    • 根据时间,重大事件和持续时间来指定事件。
  • Characteristic Events

    • 根据附件的功能或特性指定事件。
  • Presence Events

    • 根据用户在家中的存在来指定事件。
  • HMEventTrigger

    • 基于一组事件和可选条件执行HomeKit自动化场景的触发器。
  • HMEventTriggerActivationState

  • HMEvent

    • 一个非特定的HomeKit事件。

5. Errors

  • HMErrorCode

    • 可能从HomeKit API返回的错误值。
  • HMErrorDomain

    • 标识HomeKit错误域的字符串。

6. Classes

  • HMAccessControl

7. Reference

  • HomeKit Enumerations

  • HomeKit Constants

8. Related Documentation

  • HomeKit Developer Guide

后记

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

HomeKit框架详细解析(一) —— 基本概览_第1张图片

你可能感兴趣的:(HomeKit框架详细解析(一) —— 基本概览)