当前位置: 首页 > article >正文

HomeKit 基本理解

概括

HomeKit 将用户的家庭自动化信息存储在数据库中,该数据库由苹果的内置iOS家庭应用程序、支持HomeKit的应用程序和其他开发人员的应用程序共享。所有这些应用程序都使用HomeKit框架作为对等程序访问数据库.

Home 只是相当于 HomeKit 的表现层,其他应用在实现 HomeKit 也能可以具备相应的能力。实际的数据存在 HomeKit 的数据库中。

automation-1@2x

我们的操作都会转化到数据库中,所以苹果需要家庭中枢控制,是不是将数据放在家庭中枢中。

结构图,下图可以看出家庭、放假、设备的层次关系。

截屏2022-02-15 下午3.22.21

控制路线,一层一层往下控制。

HMHomeManager
HMHome
HMRoom
HMAccessory 设备
HMService 服务功能 比如开关
HMCharacteristic 特征值 比如开关灯

HMHomeManager

HomeKit的总管理,主要负责权限、家庭数组、主home、home 的操作(增删改)和相关的代理

HMHomeManager
primaryHome:主家庭
autorizationStatus:授权状态
homes:家庭组
updatePrimaryHome:更新主 Home
addHomeWithName:添加 home
removeHome:移除 home
delegate:操作 home 的回调

HMHomeManagerDelegate

该代理主要响应 home 的增删改回调,以及权限更改。

HMHome

home 表示一个家庭,包含家庭各种信息,标识,房间,和对房间的操作。

1129722-20170814091627506-1683325220

HMRome

Home 中的最小颗粒,表示一个房间或者地方。包含基本信息、硬件设备。

HMRome
name:房间名字
uniqueIdentifier: 房间UUID
updateName:更新房间名字
accessories:设备

HMAccessory

accessory表示智能设备,比如灯泡、开关等。

1129722-20170821153631871-487150278

HMService

表示服务,或者一种能力。比如照明和开关的服务,如果你对服务的理解感到模糊,可以参考苹果内置的一些服务HMServiceType

1129722-20170821154352152-1036468327

HMCharacteristic

表示服务的特征值,比如可调灯的亮度或者色温。

1129722-20170821155003730-783067098

Accessory 端

智能设备在 iOS 的 HomeKit 中被称为 Accessory,如果硬件需要支持 HomeKit 则需要实现苹果的 HomeKit Accessory Protocol,总共包含三个三种接入方式

  1. Bluetooth LE 配件
  2. ip配件
  3. RF射频配件,这种方式只能通过具备ip通信的桥接设备接入。

参考

官方资料

开发者HomeKit 开发介绍
HomeKit 文档
HomeKit 示例工程

卷帘门和灯的添加和使用

WWDC2015: Introduce HomeKit

更深层次的理解 HomeKit

iOS HomeKit 详解

详细介绍 HomeKit 相关类和操作,怎么模拟配件和开发。

http://www.lryc.cn/news/2394835.html

相关文章:

  • [SC]SystemC在CPU/GPU验证中的应用(三)
  • gunicorn多线程部署django导致的登陆错误
  • (LeetCode 每日一题) 909. 蛇梯棋 (广度优先搜索bfs)
  • PostgreSQL ERROR: out of shared memory处理
  • 生成https 证书步骤
  • 34、请求处理-【源码分析】-Model、Map原理
  • 设计模式——适配器设计模式(结构型)
  • 小黑大语言模型通过设计demo进行应用探索:langchain中chain的简单理解demo
  • 秒杀系统—5.第二版升级优化的技术文档三
  • [SC]SystemC在CPU/GPU验证中的应用(六)
  • 【STM32】HAL库 之 CAN 开发指南
  • WPF的基础设施:XAML基础语法
  • DeepSeek R1-0528 新开源推理模型(免费且快速)
  • Go 语言的 GC 垃圾回收
  • [git每日一句]your branch is behind ‘origin/master‘
  • 【QT】在QT6中读取文件的方法
  • 安全帽目标检测
  • Java工厂方法模式详解
  • 【pytorch学习】土堆pytorch学习笔记2
  • Eclipse 插件开发 5.3 编辑器 监听输入
  • iOS 集成网易云信IM
  • Parasoft C++Test软件单元测试_实例讲解(对多次调用的函数打桩)
  • azure web app创建分步指南系列之二
  • 题海拾贝:P8598 [蓝桥杯 2013 省 AB] 错误票据
  • MySQL 8.0:解析
  • Python量化交易12——Tushare全面获取各种经济金融数据
  • 封装一个小程序选择器(可多选、单选、搜索)
  • Dest建筑能耗模拟仿真功能简介
  • 【Hot 100】121. 买卖股票的最佳时机
  • 【机器学习基础】机器学习入门核心算法:XGBoost 和 LightGBM