2024年11月21日星期四 下午11:05:15

Homekit 工作原理

1 年 前
#22757 引用
Homekit 工作原理


理解Apple Homekit框架
https://www.cnblogs.com/ascii0x03/p/11198608.html
https://www.cnblogs.com/softlin/p/16632579.html
0
11 个月 前
#23870 引用
iCloud而中枢只是一个家庭讯息收发设备,当然注重隐私的苹果会把这部分信息采取端对端加密的形式,只在经过家庭成员授权下的设备上解密,你可以这么理解,只要你手中有一台终端设备,那么在这个世界上的任何一个角落,只要你有网那么icloud会实时的同步家庭信息到你的设备上,而你发出的每一个指令,再经过icloud到达家庭中枢,再进行执行。


用户端的手机,平板,语音指令下达后上传到云端,云端计算处理在下发指令控制家中的联网设备。

数据流向是这样的:

手机——云端——家庭网络里的 Apple TV ——通过相同的 Apple ID 进行 handshake ——最终到达 HomeKit 设备——指令被执行



0
11 个月 前
#23871 引用
AppleTV (第四代及以后的产品)
0
11 个月 前
#23874 引用
HomeKit零配置与设备发现

Bonjour

mDNS 是 Bonjour 的一部分

  HomeKit使用Bonjour作为其零配置与设备发现的服务,Bonjour底层使用了 mDNS(Multicast DNS) 与DNS-SD协议实现了零配置、服务发现的机制;

step 1.HomeKit设备会根据mDNS协议在局域网中广播自身的 .local本地域名 与IP地址.
step 2.局域网中其他设备收到广播的后的设备.lcoal本地域名与IP地址后会将mDNS信息缓存起来.

设备即可通过缓存的固定域名访问到局域网中的其他HomeKit设备,无需关心设备IP地址是否变化;
  由于mDNS协议自身的机制,HA接入到HomeKit中需要两者在同一个网段中,已保证mDNS服务能够正常通讯,否则需要mDNS中继设备用于保证mDNS报文能够跨网段转发;

接入HomeKit
  了解了HomeKit设备的通讯原理之后只要能保证HomeKit设备与HA之间mDNS协议报文能够正常通讯,两者运行在同一个网段,HA就能够顺利接入HomeKit;
  HA与HomeKit不在同一个网段无法通过mDNS协议通讯,需使用mDNS中继设备转发报文,不同方式安装HA导致无法接入HomeKit主要还是此问题;

  1、当在Win的WSL下使用Core模式安装HA时,就会存在此问题,在Win的WSL中WSL2与宿主Win系统并不在同一个网段,目前官方也不支持两者在同一个网段下;
  2、在Win下使用Container安装也会出现此问题,由于不支持host模式,因此两者也无法通过mDNS进行零配置设备发现,在桥接模式下两者也不再同一个网段;
  除非能够手动打通Win与WSL或Docker同网段网络限制,使之mDNS能够通讯,或使用mDNS中继设备进行跨网段mDNS报文转发;

https://www.cnblogs.com/softlin/p/16632579.html
0
11 个月 前
#23894 引用
HomeKit 通信安全性 - 官方 Apple 支持 (中国)
https://support.apple.com/zh-cn/guide/security/sec3a881ccb1/web
0
4 个月 前
#43479 引用
正在更新”的状态

当用户打开家庭app时,HomeKit会分别读取各个设备的状态。当然,读取状态是需要通过网络的,经过网络就会有延迟,可能快至1ms,也可能慢至几秒,甚至说可能某个设备断了电他将永远不会响应了。比如说,风扇设备需要10ms响应,而空净需要10s响应,或者说空净断了电。但是都没关系,响应的设备会在响应后将状态由“正在更新”变为当前的状态,并且用户已经可以控制他了,而没响应的设备他会继续保持“正在更新”的状态,直到响应,或是说超过一个超时时间,变为未响应状态
也就是说,当你打开家庭app的时候,可能不到1秒钟风扇的状态就读到了,你就可以控制他了,而空净可能需要5秒钟才会读到状态才能控制,但是不管空净多久读到状态,甚至是未响应,这都不会影响用户对风扇的操作。

https://bbs.hassbian.com/thread-1344-1-1.html
0