Google maps. Делимся локацией людей с умным домом. Уведомляем в Telegram.
На машине часто ставят автозапуск и понятно зачем, летом это позволяет машину охладить, а зимой — нагреть. Давайте начнем делать “автозапуск” для дома. Только управлять отоплением или кондиционером мы будем не брелком, а своей локацией. Но обо всем по порядку…
Оригинал статьи в дзене. Также не забывайте читать нас в других сервисах: Instagram канала и telegram канала (RU, EN, DE). Medium, LiveJournal, YouTube.
Пару месяцев назад я описывал автоматизацию, триггером которой было посещение комнаты. Расширим границы чувствительности нашего умного дома, пусть он будет видеть нас на подходе к дому. Также сделаем и обратную автоматизацию, по факту удаления от дома.
Для начала не будем делать ничего сложного, а просто будем присылать уведомления в telegram. Для тех, кто пропустил тему — ловите ссылку на последнюю статью по теме. Если потребуется копнуть поглубже, то в публикации есть ссылки.
Базовая инструкция уже есть на сайте Home Assistant, но из отзывов людей на сторонних сайтах, можно узнать, что работает она не у всех. У меня тоже заработала не так как предполагалось, но и не хуже…
Начнем с описания. Нам потребуется google аккаунт, с которым будут делится своей геопозицией все люди, за которыми мы будем следить. Тут есть нюанс, если у нас есть только наш личный аккаунт, с которым уже делятся координатами какие-то люди, то они будут отображаться в умном доме, а вот сам владелец аккаунта отображаться не будет. Поэтому нам потребуется второй аккаунт, его потребуется создать или это может быть аккаунт человека, который уже следит за Вами. Например, Ваш аккаунт и аккаунт вашей подруги/друга/жены/мужа. Если последних нет или не хотим использовать чужие данные, то создаем новый. Проще говоря, у нас две схемы. В первой все заинтересованные люди делятся координатами с одним аккаунтом и его данные мы используем. Во втором варианте мы используем два аккаунта и собираем расшаренные геоданные с обоих. Я пошел по третьему пути, но это вышло случайно… Я собрал геоданные всех людей из своего аккаунта, а для того, чтобы видеть самого себя — создал на телефоне новый, второй аккаунт и разрешил ему шарить координаты с основным.
Теперь как это работает. Когда мы в браузере заходим на сайт, то скачиваем небольшой фрагмент данных — Cookie (куки). В них есть вся необходимая информация для отслеживания за людьми. Теперь получим эти самые cookie из Google. При помощи правильного аккаунта зайдем в Google Maps на компьютере через Firefox или Chrome. Нужно убедиться, что в конце адреса сайта гугла стоит .com (например maps.google.com), иначе работать не будет. После того как мы вошли в аккаунт, то должны увидеть людей. Скрин ниже, лица я закрасил синим кругом.
Теперь получим требуемые данные через Export cookies для Firefox (Нужно убедится, что не стоит галка на пункте “Prefix HttpOnly cookies”) или через расширение get_cookies.txt для Chrome или Chromium. Я использовал последний и нажав единственную кнопку получил все данные.
Половина сделана. Теперь файлик нужно закинуть на сервер. Это можно сделать через общий файлообменник или создать новый пустой файл внутри умного дома и скопировать в него содержимое с нашего компьютера, просто подключившись через терминал. Мы сохраняем наш cookie файл в папку с конфигурацией Home Assistant под следующим именем: .google_maps_location_sharing.cookies.имя_вашего_почтового_ящика_gmail_com. Например, для ящика location.tracker@gmail.com, имя файла будет выглядеть так: .google_maps_location_sharing.cookies.location_tracker_gmail_com
Теперь, когда файлик лежит рядом с файлом конфигурации — настало время править конфигурацию. Допишем в нее:
# Example configuration.yaml entry
device_tracker:
- platform: google_maps
username: “YOUR_EMAIL”
Лучше скопировать текст с оригинального сайта, хотя я постарался скопировать максимально верно…
Перезапускаем home assistant и проверяем, чтобы в папке рядом с конфигурацией появился файлик known_devices.yaml с данными отслеживаемых людей. Можно его открыть и проверить, что он не пустой.
Теперь можно придумать автоматизацию. Создадим новую, введем ее название и описание. В качестве триггера выберем “Зона”, выберем человека для отслеживания, выберем зону, в которой отслеживается человек (zone.home создается автоматически, когда мы указываем свой адрес) и выбираем условие: “покидает зону” или “входит в зону”. Ну и в качестве действия — сообщение в telegram.
Результатом будут сообщения от бота в чате
Если сохранить куки с другого аккаунта, то дописав в конфигурацию тот самый другой аккаунт — мы будем видеть координаты людей и из него. Максимальное количество аккаунтов не описывается, но два точно работают.
А на этом все, подписываемся, ставим лайки, репостим… это поможет статьям выходить чаще.