有没有办法将 HomeKit 的传输协议更改为特定的协议?我想远程控制我的设备。即:通过 XMPP/websocket 隧道传输 HTTP 流量。ETC?
如果不是,我知道有一个 DNS-SD 名称服务器来启用广域发现,但是我如何强制 HomeKit 框架搜索给定的域?
有没有办法将 HomeKit 的传输协议更改为特定的协议?我想远程控制我的设备。即:通过 XMPP/websocket 隧道传输 HTTP 流量。ETC?
如果不是,我知道有一个 DNS-SD 名称服务器来启用广域发现,但是我如何强制 HomeKit 框架搜索给定的域?
没有 Apple 支持的更改 HomeKit 传输协议的方法:它直接依赖于 iOS 本身实现的 HomeKit 附件协议 (HAP)。此外,HomeKit 将其 DNS-SD 域限制为,local.
因此您的配件必须存在于当前子网上。
远程访问 HomeKit 配件的最佳方式是使用 Apple TV。根据Apple 的 HomeKit 支持文档:
如果您拥有软件版本为 7.0 或更高版本的 Apple TV(第 3 代或更高版本),则可以在不在家时使用 iOS 设备控制支持 HomeKit 的配件。
在您的 iOS 设备和 Apple TV 上使用相同的 Apple ID 登录 iCloud,您将能够使用 Siri 命令远程控制您的配件。
您也许可以编写一个简单的 iOS 应用程序,该应用程序宣传您的 HomeKit 配件的确切 DNS-SD 记录,并将 TCP 层以上的所有流量转发到您家中的服务器。然后,家庭服务器需要连接到适当的附件,并将 TCP 以上的所有流量转发给它。这可能无法在蜂窝网络上成功运行,因为我相信 DNS-SD 会失败,即使它针对 localhost。我也不确定系统是否会发现 localhost DNS-SD 服务。