在HomeAssistant中接入HomeKit后可以使用iPad或iPhone的家庭App控制已接入HA的设备,如HA接入了很多小米智能家居设备,HA接入HomeKit后就可以使用苹果自带的家庭App控制已接入的小米设备;
HA对应的安装方式有:OS、Container、Core、Supervised等,不同的安装方式在接入HomeKit时也会有所影响,当在Windows下使用Container模式安装HA时,并不能原生环境支持接入HomeKit;
HomeKit零配置与设备发现
HomeKit使用Bonjour作为其零配置与设备发现的服务,Bonjour底层使用了 mDNS(Multicast DNS) 与DNS-SD协议实现了零配置、服务发现的机制;HomeKit设备会根据mDNS协议在局域网中广播自身的 .local本地域名 与IP地址,局域网中其他设备收到广播的后的设备.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报文转发;
在HA页面->配置->集成->添加集成 在设置集成页面 输入HomeKit 选择HomeKit即可进行HomeKit的集成,完成后在HA通知下可看到接入HomeKit的二维码,使用iPad或iPhone的家庭App扫描即可,接入后设备将自动同步到家庭App中;
设备接入后家庭App显示: