gpt4 book ai didi

architecture - HomeKit 设备可以直接看到其他设备的状态/变化吗?

转载 作者:行者123 更新时间:2023-12-03 21:22:38 26 4
gpt4 key购买 nike

一段时间以来,我一直在开发自己的“虚拟” HomeKit 附件——有一个软件桥,带有几个用 Scala 实现的附件(使用 Java HomeKit 附件库)。有了这个,我可以打开/关闭电视或条形音箱(使用一些不同的 API)。作为一个具体的例子,我已经实现了一个 HomeKit 电源开关设备,它允许我(通过 HomeKit)打开/关闭电视。

我的问题是:我的配件可以直接从我家读取另一个配件的状态(并监听变化)吗?

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

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

目前,我正在通过在我的网桥上安装一些人工开关来模拟这一点,并使用真实设备上的自动化来设置它们的开启和关闭。再举一个例子:我有一个名为“Living room light state”的程序开关,并且有两个自动化 - 每当 Hue 灯打开时,打开状态;每当 Hue 灯关闭时,关闭状态。有了这个,我将了解 Hue 灯的当前状态到我的应用程序(虚拟桥)。

我可以直接读取状态并监听 Hue 灯的变化吗?或者 HomeKit 协议(protocol)是否真的只用于配件/桥接器和知道家庭设置的 iOS 应用程序之间的通信?

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

编辑:为什么我需要这个更好的例子:我有一个温度计和一个光照水平传感器,它们没有一些二进制或枚举状态——它们当前的“状态”基本上是数字(分别为摄氏度和勒克斯)。我根本没有找到如何阅读这些数字的方法。对于这个用例,与上述情况相比,我什至没有任何解决方法。

最佳答案

我不知道这是否仍然与您相关,但我想我可以给您一些答案并暗示正确的方向。
不,AFAIK 两个配件无法通过 HomeKit 进行通信。
但是,我认为您的要求不会超出 HomeKit 的可能性。您这么认为的原因是 Home 应用程序几乎不支持 HomeKit 的所有功能。
您想要的自动化类型是 HMEventTrigger .
此自动化由 HMEvent 触发.您对 HMCharacteristicEvent s 特别感兴趣.
支持属于 L 个不同服务/附件的 M 个特征的 N 个触发器。
一旦触发自动化,predicate被评估。这个predicate NSPredicate ,所以你真的可以用这个做很多事情......看看文档。之后,如果 predicate 则执行自动化。确实评估为 true .
正如我所提到的,问题在于 Home 应用程序不支持 HomeKit 的所有(大部分)功能。您可以尝试使用第三方应用程序可以走多远。 Eve App非常好(我认为它支持用于自动化的 bool 、枚举和数字特征),或者您可以尝试一些非制造商特定的付费 HomeKit 应用程序(我自己没有尝试过)。最后一个选择是自己编写一个适合您需求的应用程序。

关于architecture - HomeKit 设备可以直接看到其他设备的状态/变化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50593318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com