Настройка Google Assistant для Home Assistant

Home Assistant на сегодняшний день — лучший хаб для умного дома. Количество поддерживаемых устройств растет с каждым днем, но с голосовым управлением выбор не велик. Для англоговорящих пользователей уже давно существует Алекса и Google Assistant. Последний мы сегодня и будем добавлять для управления устройствами Home Assistant.

Это бесплатный способ. Существует так же платный, через Home Assistant Cloud, его я рассматривать не буду.

Итак, начнем с требований. Home Assistant должен быть доступен через интернет по SSL. У меня есть для этого отдельная серия статей:

https://kvvhost.ru/2019/03/19/white-ip-with-vpn/

Правильная настройка SSL для удаленного доступа к Home Assistant

Теперь о самой настройке Google Assistant. Переходим в Google Actions и создаем новый проект:

Затем выбираем Home Control:

И Smart home:

Далее выбираем Name your Smart Home action:

И придумываем имя:

Сохраняем.

Далее возвращаемся в раздел Overview и выбираем Setup account linking:

На выборе No, I only want to allow account creation on my website жмем Next:
И в Linking type выбираем OAuth и Authorization code и жмем Next:

 

Далее, заполняем:

 

Client ID: должен быть https://oauth-redirect.googleusercontent.com/

Client secret: любой пароль, не используется Home Assistant, нужен только для google

Authorization URL: https://hass.example.com/auth/authorize

где https://hass.example.com это адрес вашего Home Assistant в интернете

Token URL: https://hass.example.com/auth/token

где https://hass.example.com это так же адрес вашего Home Assistant в интернете

 

Далее в Configure your client (optional) добавим строчку, и введем email и имя:

 

Галочку на Google to transmit clientID and secret via HTTP basic auth header ставить не нужно.

В Testing instructions пишем что угодно, например test, и сохраняем:

 

Теперь возвращаемся на Overview и жмем Add Action(s):

Add fulfillment URL должен быть: https://hass.example.com/api/google_assistant

где https://hass.example.com это адрес вашего Home Assistant в интернете:

Возвращаемся на Overview и жмем Enter information required for listing your Action in the Actions directory:

И заполняем в произвольной форме, это нигде не пригодится:

Privacy Policy можно вставить ссылку на сайт Home Assistant: https://www.home-assistant.io:

Поднимаемся наверх и жмем Save. Опять возвращаемся на Overview и смотрим чтобы везде стояли галочки:

Перейдем на вкладку Test, выбираем русский язык в Language и жмем Start testing:

После жмем Done:

И дожидаемся вот такого подтверждения:

После жмем на три точки для открытия меню и выбираем Project Settings:

Попадаем в настройки, где нам нужен Project ID:

Он необходим для настройки Google Assistant внутри Home Assistant.

Теперь настроим ключ API. Переходим в Google Cloud Console и выбираем свой проект вверху, как показано на скриншоте (если их несколько):

Жмем Перейти к обзору API в карточке API:

и жмем Включить API и сервисы:

Ищем Homegraph API и включаем:

Затем в левой колонке жмем на Учетные данные и жмем на Настроить окно запроса доступа:

На открывшейся странице жмем на вкладку Учетные данные, затем Создать учетные данные, и выбираем Ключ API:

Запишите ваш Ключ API. Можно нажать Закрыть, а можно настроить ограничения, например дать ключу имя, чтобы в будущем отличить его от других:

 

На стороне Google это всё. Теперь пришло время добавить компонент Google Assistant в наш Home Assistant.

В configuration.yaml:

google_assistant:
  project_id: PROJECTID
  api_key: APIKEY
  exposed_domains:
    - light

project_id и api_key мы получили ранее.

Чтобы более тонко настроить обнаружение ваших объектов из Home Assistant в Google Assistant посетите https://www.home-assistant.io/components/google_assistant/, там указаны все переменные и их описание.

Теперь переходим в приложение Google Home, жмем + добавить устройство > Настроить устройство > Ранее настроенные устройства, и выбираем наш Home Assistant — значок облака и присвоенное ему вами ранее имя:

Нас перекидывает на страницу авторизации нашего Home Assistant. Авторизуемся, и после устройства появятся:

 

Update 08.12.2020:

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

Перешел в Google Cloud Platform по этой ссылке и включил HomeGraph API:

Далее перешел по этой ссылке и создал закрытый ключ, который необходимо добавить в конфигурацию Home Assistant:

После нажатия кнопки «Создать» будет загружен .json файл с необходимыми данными:

В configuration.yaml в разделе google_assistant: удалил ненужную строчку api_key и добавил данные из .json файла:

service_account:
  private_key: "nGIIEvgIGOODANBgkqhkiSCB/и/остальная/часть"
  client_email: "key-105@hass-45789.iam.gserviceaccount.com"

private_key очень длинный, находится между ——BEGIN PRIVATE KEY——\ и \n——END PRIVATE KEY——\n

Дальше просто заново добавил HA в приложении Google Home и все устройства подтянулись.

Поделитесь с друзьями
Подписаться
Уведомить о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

14 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Bluefox
5 лет назад

Не думаю, что hass лучший.

concept
concept
4 лет назад

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

Lenny
Lenny
4 лет назад

Вопрос: как работает голосовое управление, по сравнению с Алисой (что вы предпочитаете, например lenovo smart display или яндекс.станция)?
Какой девайс в принципе посоветуете для голосового управления? Спасибо.

Дмитрий
Дмитрий
4 лет назад

Добрый день. Подскажите почему то не появляется окно выбора На выборе No, I only want to allow account creation on my website жмем Next:. Как будто проскакивает этот шаг. А после того как все выполняешь просит заполнить данные о компании. С чем эт может быть связано?

Kirill
Kirill
3 лет назад
Ответить на  Дмитрий

Тоже самое, застрял на данных о компании.

Kirill
Kirill
3 лет назад
Ответить на  Дмитрий

Через гугловый шаблон Smart Home не получилось создать, через дефолный OAuth и Authorization code работает

Александр
Александр
3 лет назад
Ответить на  Дмитрий

Я прошёл эту настройку только написав no company в графе name company

Сергей
Сергей
3 лет назад

А возможно использовать голосовое управления с Android телефона?

Сергей
Сергей
3 лет назад
Ответить на  kvv

Спасибо, проверил и уже все заработало.

Роман
Роман
6 месяцев назад

Не видит все устройства, почему то только 8шт нашел и все.