Статья

Интеграция Home Assistant в Google Home бесплатно, без СМС, но с регистрацией

Что это такое?

Google Home - система для управления устройствами умного дома от одноименной компании. На данный момент умеет управлять многими устройствами, но менее гибкая чем тот же HomeKit. Однако у нее есть определенное преимущество - голосовой помощник от Google уже говорит на русском и в скором времени в теории должен научиться и управлять устройствами умного дома русскими голосовыми командами. Это дает возможность использовать относительно недорогие колонки от Google для обращения к своему умному дому на родном для нас языке. 

А как это реализовать с Home Assistant?

Путей на данный момент два:

  1. С помощью облака Home Assistant (Далее HA)
  2. С помощью 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 они будут аналогичные:

Открываем приложение Assistant от Google и жмем на иконку своего аккаунта в правом верхнем углу
Переходим на вкладку Ассистент, потом выбираем пункт Автоматизация дома
Жмем на плюсик снизу
Выбираем наш плагин, который должен быть в самом начале списка

Если вы все сделали правильно - откроется страничка авторизации 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

У меня почемуто скрипты и автоматизация не пробрасывается хотя в конфиге их прописал.


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

Устройства


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