Что это такое?
Google Home - система для управления устройствами умного дома от одноименной компании. На данный момент умеет управлять многими устройствами, но менее гибкая чем тот же HomeKit. Однако у нее есть определенное преимущество - голосовой помощник от Google уже говорит на русском и в скором времени в теории должен научиться и управлять устройствами умного дома русскими голосовыми командами. Это дает возможность использовать относительно недорогие колонки от Google для обращения к своему умному дому на родном для нас языке.
А как это реализовать с Home Assistant?
Путей на данный момент два:
- С помощью облака Home Assistant (Далее HA)
- С помощью Google API
Первый способ самый простой, но стоит денег. 3$ в месяц. Если вам не жалко такой суммы в месяц и не хочется возиться с вот этими всеми заморочками с API - то это ваш вариант. Второй способ бесплатный, но придется немного помучиться с интеграцией. Его мы и будем использовать.
Что для этого требуется?
Для начала необходимо получить свой домен для HA. Самый простой способ - использовать сервис ddns. После этого необходимо настроить ssl (не путать с ssh) соединение для этого домена. Как это сделать, я рассказывал в своей прошлой статье в серии про HA. Это очень важный пункт и без него ничего не получится!
Настраиваем сервисы Google API
Заходим в консоль разработчиков Google под своей учетной записью и выбираем там пункт "Add/import project":
Далее заполняем поле имени проекта и выбираем в качестве страны "Россия", язык не меняем, с другим у меня не заработало:
После создания проекта вам предложат выбрать платформу, нажимаем на "Home Control":
И далее выбираем единственный пункт "Smart Home":
На вновь открывшейся страничке выбираем самый первый пункт "Name your Smart Home action":
и в появившемся поле пишем имя навыка. Может быть любым. Я выбрал себе "hunter's home". После этого жмем на кнопочку "Save" в правом верхнем углу и возвращаемся на главную страничку настроек, нажав на пункт "Overview":
Теперь выбираем второй пункт:
И выставляем там параметры следующим образом:
На 3 шаге пишем следующие пункты:
- https://oauth-redirect.googleusercontent.com/ Это поле заполняем так же
- любой набор буквоцифр - он ни на что не влияет
- https://your.domain.org/auth/authorize вместо https://your.domain.org пишем свой домен
- https://your.domain.org/auth/token вместо https://your.domain.org пишем свой домен
На 4 шаге указываем в точности как на скриншоте, а на пятном можете написать любую фразу, она ни на что не влияет. Далее нажимаем кнопку "Save", и переходим снова в пункт "Overview" слева.
Теперь в разделе "Build your Action" выбираем строчку "Add Action(s)":
И в появившемся поле пишем https://your.domain.org/api/google_assistant, все так же заменяя https://your.domain.org на свой домен. В дальнейшем не буду более это указывать, запомните и будьте внимательней:
После жмете кнопку "Done", и в открывшейся странице кликаем кнопку "Test":
В открывшемся симуляторе переходим в строчку в нижнем левом углу и нажимаем на enter.
Тест выдаст ошибку, но это нам неважно, главное - сам факт запуска теста. Снова переходим в пункт "Overview" и выбираем последний пункт раздела:
Теперь заполняем все поля в новой странице:
Первый раздел - имя и описание нашего дополнения. У меня это OXOTH1K's Home Assistant:
Второй раздел - изображение для дополнения. Можно загрузить любое:
Третий раздел - ваша контактная информация. Я писал свой e-mail:
И последний раздел - заполняем одно поле и пишем в нем https://www.home-assistant.io/
Наконец кликаем на кнопку "Save" и переходим опять в раздел "Overview" слева. Если все предыдущие пункты сделаны верно, вы должны увидеть следующую картину:
Если у вас так же, жмем на шестеренку возле "Overview", выбираем "Project settings" и копируем куда-нибудь данные из строчки "Project ID":
Получаем API ключ
Вторым пунктом получаем API ключ, необходимый для взаимодействия с сервисом. Переходим на сайт Google API cloud. Выбираем сверху наш ранее созданный проект и жмем на кнопку Включить API и сервисы:
В поиске вводим "Homegraph" и выбираем единственную плашку:
Далее жмем кнопку "Включить", переходим в раздел "Учетные данные", выбираем "Создать учетные данные" и там пункт "Ключ API":
В открывшемся окошке копируем ключ и сохраняем его куда-нибудь, он так же понадобится в дальнейшем. После кликаем на кнопку "Применить ограничения для ключа":
Теперь, когда у нас есть все необходимые данные - приступим к настройке HA.
Добавляем необходимые настройки в HA
Тут все просто, подключаемся по ssh к HA и открываем конфигурирование настроек. Вносим в самый конец файла следующие строки:
google_assistant: project_id: google_project_id api_key: google_api_key exposed_domains: - switch - light - climate - media_player
- project_id: вносим данные, которые получили в первой части статьи
- api_key: вносим данные, которые получили во второй части статьи
- exposed_domains: перечисляем типы устройств, которые хотим экспортировать в HA
Полный список доменов и более подробную информацию о плагине импорта можно посмотреть на его официальной страничке. Сохраняем файл конфига, проверяем на правильность и перезапускаем сервер. Если все корректно запустилось - переходим к последней части.
Подключаем плагин HA в Google Home
Дальнейшие инструкции будут для приложения на iOS, но думаю для Android они будут аналогичные:
Если вы все сделали правильно - откроется страничка авторизации HA, в которой надо залогиниться. После этого можете открыть приложение Google Home и убедиться, что все устройства, которые мы указали - добавились:
Если что-то не получилось - можно удалить все плагины и проекты, которые мы создавали и начать все сначала. У меня у самого получилось со второго раза. Задавайте свои вопросы и комментируйте!
Отличная статья и серьёзная заявка на победу ;)
Спасибо. Сам прошёл этот путь вчера.
Спасибо большое за статью, все работает! Ждем русский язык!
Отлично, все работает и завелись все устройства, счастья полные штаны.
Спасибо, все работает
не выходит у меня что-то каменный цветок
Надо 443 порт на малину прокидывать?
Хотя у меня по адресам которые в визарде вписывал и изнутри ничего не отвечает
3 раза пересоздал - эффект тот-же - в ассистенте фовардится на внешнее имя - пишет сафари не удалось установить безопасное соединение с сервером, хотя сертификат установлен, на https://myhostname.com:8443">https://myhostname.com:8123 нормально захожу
443 надо прокидывать, если доменное имя без порта по https работает. У меня https://myhost.name.com">https://myhost.name.com - адрес HA.
Оно будет работать если я пропишу
https://myhost.name.com">https://myhost.name.com:8123/api/google_assistant и т.п. ?
Потому, что в противном случае если завернуть на внешнем интерфейсе 443 порт на 8123 - оно изнутри не будет работать,т.к. изнутри надо на конкретный порт стучаться а не на 443, либо менять порт HA на 443, да и у многих ( у меня в том числе ) 443 порт завернут на другой девайс или сервис.
Да, будет.
Вопрос по связке. У меня раз в 3-5 дней теряет google home mini связку. Помогает заход на duckdns и обновление IP адреса. Может кто подскажет как побороть?
Спасибо за статью
Сань, везде нужен порт HA - 8123 или какой он там сконфигурирован.
https://your.domain.org:8123/auth/authorize
https://your.domain.org:8123/auth/token
И так далее. Только что проделал, наткнулся на ошибку, пошел проверять в чем дело и починил так.
Друзья, а как нонче настроить https в HA, раньше с этим спокойно duckdns справлялось, а теперь - шиш. А для яндекса и гугла требуется https. Как быть, кто чем пользуется?
Опцию 'api_key' удалили, начиная с версии HA 0.105.
Смотрите корректную инструкцию по адресу: https://www.home-assistant.io/integrations/google_assistant">https://www.home-assistant.io/integrations/google_assistant
Подскажите как исключить некоторые сенсоры и выключатели? чтобы они не попадали в google assistant
У меня почемуто скрипты и автоматизация не пробрасывается хотя в конфиге их прописал.