Architecture HomeKit设备能否直接查看其他设备的状态/更改?

Architecture HomeKit设备能否直接查看其他设备的状态/更改?,architecture,homekit,Architecture,Homekit,一段时间以来,我一直在开发自己的“虚拟”HomeKit附件——有一个软件桥,其中包含两个附件,它们是在Scala中实现的(使用Java HomeKit附件库)。例如,有了它,我就能够打开/关闭电视或声条(使用一些不同的API)。作为一个具体的例子,我实现了一个HomeKit电源开关设备,它允许我(通过HomeKit)打开/关闭电视 我的问题是:我的附件能否直接从我家读取另一个附件的状态(并监听变化) 愚蠢的例子:我在客厅里有一盏飞利浦色光灯。如果我关了灯,我想让电视知道灯已经关了,并决定是否也关

一段时间以来,我一直在开发自己的“虚拟”HomeKit附件——有一个软件桥,其中包含两个附件,它们是在Scala中实现的(使用Java HomeKit附件库)。例如,有了它,我就能够打开/关闭电视或声条(使用一些不同的API)。作为一个具体的例子,我实现了一个HomeKit电源开关设备,它允许我(通过HomeKit)打开/关闭电视

我的问题是:我的附件能否直接从我家读取另一个附件的状态(并监听变化)

愚蠢的例子:我在客厅里有一盏飞利浦色光灯。如果我关了灯,我想让电视知道灯已经关了,并决定是否也关

如果我只想在灯熄灭的时候关掉电视,那就很容易了:我会在家里设置一个自动化应用程序,在灯熄灭的时候将“电视开关”设置为关闭。但这太简单了。假设您想要决定不同设备的多个参数和多个状态

目前,我正在模拟这种情况,在我的网桥上安装了一些人工开关,并在实际设备上使用自动装置将其打开和关闭。再举一个例子:我有一个叫做“客厅灯光状态”的程序开关,有两个自动开关——只要色调灯打开,就打开状态;每当色调灯关闭时,请关闭状态。有了这些,我将了解应用程序(虚拟桥)中色调灯的当前状态

我可以直接读取状态并收听色调灯的变化吗?或者HomeKit协议真的只用于附件/网桥和知道家庭设置的iOS应用程序之间的通信吗

我有时会读到“HomeKit是附件之间通信的协议”,但老实说,我从未见过任何示例,我也没有找到一种方法,如何让我的附件/桥接器在家中找到其他附件,并倾听其变化


编辑:我需要这个的更好例子:我有一个温度计和一个亮度传感器,它们没有一些二进制或枚举状态——它们当前的“状态”基本上是数字(分别是摄氏度和奢侈品)。我根本没有办法读懂这些数字。对于这个用例,与上面描述的情况相比,我甚至没有任何解决方法。

我不知道这是否仍然与您相关,但我想我可以给您一些答案和正确方向的提示

不,AFAIK两个附件无法通过HomeKit进行通信

然而,我不认为你的要求超出了HomeKit的可能性。你这么认为的原因是Home应用程序几乎不支持HomeKit的所有功能

您想要的自动化类型是。 此自动化由
HMEvent
触发。你对我特别感兴趣。 支持属于L个不同服务/附件的M个特征的N个触发器

一旦触发了自动化,将评估
谓词
。这个
谓词
是一个,所以你可以用它做很多事情…看看文档。之后,如果
谓词
的计算结果为
,则执行自动化

正如我提到的,问题在于Home app不支持HomeKit的所有(大部分)功能。您可以尝试使用第三方应用程序可以走多远。这是非常好的(我认为它支持布尔、枚举和数字特征用于自动化),或者你可以尝试一些非特定制造商的付费HomeKit应用程序(我自己没有尝试过)。最后一个选择是自己编写一个适合自己需要的应用程序