Уже некоторое время я разрабатываю свои собственные «виртуальные» аксессуары HomeKit - в Scala реализован программный мост с парой аксессуаров (с использованием библиотеки аксессуаров Java HomeKit).Благодаря этому я, например, могу включать / выключать телевизор или звуковую панель (используя несколько разных API).В качестве конкретного примера я реализовал устройство с переключателем питания HomeKit, которое позволяет мне (через HomeKit) включать / выключать телевизор.
Мой вопрос: может ли мой аксессуар напрямую считывать состояние (и прослушивать изменения?)) другого аксессуара из моего дома?
Глупый пример: у меня в гостиной лампа Philips Hue.Если я выключу лампу, я хочу сообщить телевизору, что свет теперь выключен, и решить, должен ли он также выключаться.
Если я хочу просто выключить телевизор в любое время лампа выключена, это было бы легко: я бы настроил приложение Automation in Home, которое выключало бы «ТВ-переключатель» каждый раз, когда лампа выключена.Но это слишком просто.Представьте, что вы хотите выбрать несколько параметров и несколько состояний различных устройств.
В настоящее время я имитирую это, имея несколько искусственных переключателей на моем мосту, и включаю и выключаю их с помощью автоматики на реальных устройствах.Еще один пример: у меня есть программный переключатель под названием «Состояние освещения в гостиной», и есть две автоматические системы - каждый раз, когда включается лампа «Оттенок», включайте состояние;всякий раз, когда лампа Hue выключается, выключите состояние.После этого я получу информацию о текущем состоянии лампы Hue для своего приложения (виртуальный мост).
Могу ли я прочитать состояние и напрямую прослушать изменения лампы Hue?Или протокол HomeKit на самом деле предназначен только для связи между аксессуаром / мостом и приложением iOS, которое знает о настройке дома?
Иногда я читал, что «HomeKit - это протокол для связи между аксессуарами», но, честно говоря, яЯ никогда не видел ни одного примера, и я не нашел способа, как я мог позволить своим аксессуарам / мосту найти какой-нибудь другой аксессуар в моем доме и выслушать его изменения.
РЕДАКТИРОВАТЬ: Лучший пример, почему мне это нужно: У меня есть термометр и датчик уровня света, у которых нет некоторых двоичных или перечисленных состояний - их текущие «состояния» в основном являются числами (градусы Цельсия и люкссоответственно).Я не нашел способ прочитать эти цифры вообще.Для этого варианта использования у меня даже нет обходного пути по сравнению с ситуацией, описанной выше.