Статья

Получение уведомлений от HomeKit на Android

Решил написать статью, несмотря на то, что в основном являюсь читателем этого ресурса и уж точно не являюсь экспертом в построении умных домов, но у меня была утилитарная проблема и простого рецепта в интернете я, к сожалению, не нашел. Вполне возможно моя статья поможет такому же страждущему решить свою проблему.

Начну с проблемы

В апреле этого года я переехал в новое место, где в качестве общедомовой домофонии многоквартирного дома был представлен Rubetek. Так как все управление калитками и дверьми реализовано было на технологиях этой компании выбирая дверной звонок я предположил, что интеграция с их планшетом будет легче всего с их родным звонком RV-3430, который я и приобрел. Несколько месяцев мучений с этим устройством убедили в справедливости всех отзывов об этом "чуде" и я решил от него избавиться.  Ключевые минусы: отсутствие нормальной интеграции этого звонка со своим же планшетом, ужасная реализация внутриквартирного звонка с постоянными обрывами связи, неудобная возможность просмотра истории и слабая поддержка вендора.Соответственно встала проблема чем заменить данный гаджет, желательно чтобы он был интегрирован с умным домом. У меня есть с десяток умных устройств типа метеостанции, видеоняни или умных ламп, но каждое из них живет в своей экосистеме. Есть Aqara, Xiaomi, их дочка Yeelight, Polaris, LG, Bosch, Google, ну и HomeKit - хаб, которого живет в  Apple TV. В отличии от других членов семьи я не являюсь любителем Apple устройств, все что у меня есть это Ipad используемый для работы, но телефон и часы на андроиде. Однако детальный анализ показал, что для моих целей с уведомлениям, записями и остальным имеет смысл брать устройство совместимое с HomeKit. В итоге поисков набрел на наилучшее на мой взгляд (на тот момент) устройство Logitech Circle View Doorbell.   

Logitech Circle View Doorbell
Ужасный RV-3430 - не тратьте деньги

Я опущу процесс с подключением этого гаджета, так как это оказалось непростой затеей из-за специфичного европейского питания (переменный ток 24V). В итоге трансформатор на планку в распределительный щит был найден, питание подведено и устройство работает. Из того, что смущает пожалуй сильный его нагрев. Боюсь, что сгорит так как он постоянно горячий. В остальном устройство премиальное во всем, а особенно в звуке уведомления. Так как устройство является элементом "умного дома" квартирную часть звонка было решено не устанавливать, зачем будить звонком все семейство. Все уведомления приходят на Apple TV, айпад или на айфоны других членов семьи. Вот тут мы и пришли от длинного вступления к проблеме. Когда звонят в дверь я не получаю уведомления на смартфон Android. Если дома есть другие члены семьи - все ок, кто то увидит. Если я сижу за айпадом или эпл тв, то тоже. Но ходить в душ или туалет с айпадом или телевизором я не планировал. Поэтому начал решать проблему:
Как сделать так, чтобы при нажатии кнопки на дверном звонке получить уведомление на андроид смартфон?

HomeBridge

В своих первых экспериментах по объединению зоопарка умных устройств я, как и многие , начинал с универсального HomeBridge. В один период времени я хотел проверить будет ли актуальным для меня сверхумная квартира и завязывание на друг друга всех устройств. Приобрел "малинку", поставил на нее какой то готовый образ и даже смог прописать почти все свои устройства в нем, но, как в итоге оказалось умный дом это забавно, но скорее баловство, когда "умного" у тебя только робот пылесос и увлажнитель воздуха. Малинка была переделана в эмулятор сега/денди и отдана на растерзание старшему сыну.Теперь я опять решил возобновить этот процесс с тем же бриджем, но отказываться от уже настроенной с HomeKit системы не хотелось, в ней уже видео-няня с трансляцией картинки на экран, звонок с теми же опциями и еще несколько датчиков. Нужно было просто отдать информацию от HomeKit в HomeBridge.
В качестве базы был взят домашний Synology Nas. Не буду подробно описывать установку на него софта, есть более подробные профильные публикации. После успешного запуска процесса были установлены различные плагины, которыми я пытался получить уведомление от HomeKit. Перепробовано было очень много различных решений, пока я не наткнулся на один сервис, который профилируется именно на этом - Notify.events.

Notify

Сервис - мост по уведомлениям между HomeBridge и разными получателями
Родной плагин

Данный сервис позволяет создать в HomeBridge аксессуар с нужными параметрами и при активации этого аксессуара в режим "включено" отправлять сообщения разным получателям. Сервис бесплатный при условии 300 сообщений в месяц (для меня это за глаза, ко мне не ходит 10 человек в сутки в гости, даже с учетом всех курьеров). Если сообщений надо больше, его можно оплатить, что в эпоху СВО стало большой проблемой для многих сервисов. У этого нет проблем, принял от меня оплату через тинькофф.pay

Заполняем 3 строки и viola - аксессуар создан!
долгожданная кнопка - "DorbellNotify"

Сам код кнопки "DorbellNotify" в конфигураторе имеет следующий вид:

json
Копировать
{
            "platform""NotifyEvents",
            "action": {
                "enabled"false,
                "listen""0.0.0.0",
                "port"53535,
                "host""",
                "path""/"
            },
            "channels": [
                {
                    "title""My Channel",
                    "token""МОЙ СЕКРЕТНЫЙ ТОКЕН С САЙТА",
                    "messages": [
                        {
                            "name""DorbellNotify",
                            "title""ЗВОНОК!",
                            "text""Звонок в дверь",
                            "priority""normal",
                            "level""info",
                            "images": [],
                            "files": [],
                            "actions": []
                        }
                    ]
                }
            ]
        }

Установил приложение на смарт и подписался на уведомления (просто указывается токен с сайта), разрешил приложению уведомления, чтобы получать их на часы. И подписался на телеграм бота. Есть еще возможность СМС отправлять и голосом звонить, но мне хватит телеги.
В общем дальше дело техники как подумал я и полез в настройки дома в айпаде. Быстренько добавил с HomeBridge свою кнопку "DorbellNotify" и приготовил автоматизацию, а "вот те хрен" сказал HomeKit и отказался мне добавлять автоматизацию на дверной звонок от Logitech. А если быть более точным, то на НАЖАТИЕ НА КНОПКУ ЗВОНКА.

У звонка есть опция обнаружения движения и он предложил мне завязать автоматизацию на датчик движения. Круто, но по коридору ходит много людей, а звонят в звонок единицы.

Покурив реддит, я понял что я не единственный, а звонок с такой проблемой единственный. То есть именно для этой модели звонка HomeKit так не умеет, но есть другие где он это сделать может. Пришлось искать дальше, как расширить возможности HomeKit и, конечно, в 21 веке такой способ нашелся. Называет он себя Home+ 6 Вещь недешевая 1,5 тысячи рублей, но тут уж ничего не поделаешь, остальной комплект тоже стоил недешево.

Home+

HOME+ 6 позиционирует себя как лучшее приложение в классе
но и стоит недешево

Данное приложение просто расширяет возможности настройки умного дома HomeKit позволяя делать больше чем оригинальное эпловское. Честно сказать там не было сразу волшебной кнопки - "если кто то жмет на Ring, то сделай мне ....", но я решил проэкспериментировать и тупо сказал если меняется "любое" значение, то жми на мой "DorbellNotify" .
Я думал это автоматом приведет к реакции на движение/звонок/освещенность. Однако, к моему удивлению, оказалось, что нет, работает это именно так как мне нужно, реагирует только на нажатие.

рабочий вариант автоматизации
а вот так его видит обычное приложение эпла
а вот выглядит так цепочка в Телеге

Что мы имеем в итоге:

  1. Посетитель подходит к двери и жмет на кнопку.
  2. Кнопка сообщает HomeKit, что есть нажатие.
  3. HomeKit уведомляет всех вокруг, что пришел сосед Александр (да, и лица узнает) и делает запись события в облако эпла (и еще может доставки распознавать, да и вообще крутая штука).
  4. Автоматизация дергает HomeBridge, который на Synology NAS крутится и запускает через домашний мост сервис 3тьей стороны.
  5. Сервис третьей стороны пушит сообщения боту в телеге и на свой канал.
  6. Приложение на смартфоне получает уведомление через свой канал связи с сервисом третьей стороны, телега получает от себя.
  7. Я поднимаю руку, вижу на своих часа уведомление - "Звонок в дверь" и бегу открывать.

Во первых плохо, что есть сервис третьей стороны, это безусловно так. Неизвестно как у него со стабильностью. Во вторых сам эпл шлет на часы картинку с камеры, а тут только короткий текст. А было бы так круто видеть "пришел Александр" с фоткой. В третьих есть задержка. Тестово видел, что разница между уведомлением на Apple TV до сообщения в телеграме от 1 до 5 секунд разницы. И тут неизвестно кто тупит, производительность HomeBridge в жрущем много ресурса контейнере докера на старом NASe или сервис третьей стороны на бесплатном тарифе, но дельта имеется. Но это черт возьми работает. Итоговые затраты - 1500 на приложение. Плюс тестово кинул 500 рублей на сервис уведомлений, надеюсь не понадобятся. В следующей итерации хочу забрать у старшего заброшенную им за ненадобностью "малинку" и перенести на нее HomeBridge, возможно тупняки действительно на стороне Synology. Возможно у кого то есть более простой рецепт как мне можно было бы получить эти уведомления без сервиса третьей стороны или без HomeBridge. Как и написал несколько дней убил на составление рецепта этого борща так как не нашел его готового, буду благодарен за предложения от более опытных товарищей.


Автор, отзовись! Страна должна знать своих героев.
А что за видеоняня у вас с хоумкитом?
aqara camera hub g2h, хоумкит позволяет выводить картинку с камеры на экран ты в режиме PIP, смотришь фильм и следишь за спящим ребенком. Уже есть следующая версия, вроде сильно лучше.
Если у кого-то получилось вытянуть снапшоты или короткие видео (когда кто-то звонит в дверь) в телеграм, дайте знать как реализовали.

Вернуться назад
Вернуться назад