Транспортный уровень HomeKit / Пульт дистанционного управления
Есть ли способ изменить транспортный протокол HomeKit на конкретный? Я хотел бы управлять своим устройством удаленно. То есть: туннель HTTP-трафика через XMPP/websocket. так далее?
Если нет, я знаю, что есть сервер имен DNS-SD, позволяющий обнаруживать глобально, но как я могу заставить фреймворк HomeKit выполнять поиск в данном домене?
1 ответ
Не существует поддерживаемого Apple метода изменения транспортного протокола HomeKit: он опирается непосредственно на HomeKit Accessory Protocol (HAP), который реализован в самой iOS. Кроме того, HomeKit ограничивает свой домен DNS-SD local.
поэтому ваш аксессуар должен присутствовать в текущей подсети.
Лучший способ получить доступ к аксессуарам HomeKit удаленно - использовать Apple TV. Согласно документу Apple HomeKit:
Если у вас Apple TV (3-го поколения или новее) с версией программного обеспечения 7.0 или новее, вы можете управлять своими аксессуарами с поддержкой HomeKit, когда вы находитесь вдали от дома, используя устройство iOS.
Войдите в iCloud с тем же Apple ID на вашем устройстве iOS и Apple TV, и вы сможете использовать команды Siri для удаленного управления своими аксессуарами.
Возможно, вам удастся написать простое приложение для iOS, которое рекламирует точные записи DNS-SD вашего аксессуара HomeKit и перенаправляет весь трафик выше уровня TCP на сервер в вашем доме. В этом случае домашний сервер должен будет подключиться к соответствующему аксессуару и перенаправить на него весь трафик, превышающий TCP. Это может не работать успешно в сотовой сети, потому что я полагаю, что DNS-SD потерпит неудачу, даже если это против localhost. Я также не уверен, что система DNS-SD на локальном хосте будет обнаружена системой.