Stupid House

Интеграция Home Assistant и Алисы по фамилии Яндекс


Умный дом Яндекс представляет из себя некий аккумулятор разных систем автоматизации, позволяющий управлять устройствами голосовыми командами при помощи Яндекс колонки или приложения Яндекс в телефоне. Имея большое количество готовых плагинов для подключения к различным устройствам, системам умного дома и автоматизации можно за пару минут получить голосовое управление устройствами в своем доме. К сожалению, решения из коробки для Home Assistant нет, но мир не без умных людей на GitHub есть проект Yandex Smart Home custom component for Home Assistant позволяющий выполнить подключение.

После обновления Home Assistant до актуальной версии (делаю я это редко) выяснилось, что с момента опубликования предыдущей статьи об интеграции Home Assistant с умным домом Яндекс многое изменилось в настройках системы автоматизации и интеграции. Посмотрим, как изменилась настройка интеграции и насколько она стала удобнее.

Настройка производилась на версии Home Assistant 2023.5.4, версия интеграции 0.6.3.

 

Установка интеграции

В Home Assistant идем в HACS, в поле поиска вводим «Yandex Smart Home».

home assistant hacs serach integration yandex smart home

Выбираем найденную интеграцию, выбираем последнюю версию и нажимаем «Скачать».

home assistant hacs yandex smart home integration select version

После успешного скачивания перезагружаем Home Assistant Developer Tools -> Check Configuration -> Restart.

 

Настройка интеграции

В Home Assistant переходим в «Интеграции» Settings -> Devices & Services -> Integrations. Добавляем новую интеграцию кнопкой + Add Integration. В строке поиска вводим «Yandex Smart Home».

home assistant add integration yandex smart home

 

Выбрав необходимую интеграцию в открывшемся окне, добавляем все необходимые объекты устройств, которые мы хотим видеть и управлять в умном доме от Яндекса. Это могут быть светильники, выключатели, розетки, роботы пылесосы, показания датчиков. Лишнее добавлять не надо чтобы не перегружать интерфейс в приложении Яндекса, по необходимости какие-то компоненты можно добавить потом.

home assistant integration yandex smart home add entities

Добавив все необходимые устройства нажимаем кнопку «Submit».

На следующем этапе настройки выбираем тип подключения умного дома Яндекс и Home Assistant. Вариантов два:

  1. Через сторонний облачный сервис и навык «Yaha Cloud»
  2. Прямой доступ к Home Assistant

home assistant integration yandex smart home check connect

Выбрав первый вариант, мы получаем ID и пароль для подключения Home Assistant к умному дому Яндекс с помощью облака и навыка «Yaha Cloud», а также инструкцию с дальнейшими действиями.

home assistant integration yandex smart home cloud connect success

 

Подключение с помощью облачного сервиса и навыка «Yaha Cloud»

Устанавливаем, при необходимости, и открываем в телефоне приложение «Дом с Алисой» от компании Яндекс. В правом верхнем углу нажимаем + -> Устройство умного дома. В строке поиска вводим «Дом с Алисой», выбираем его и нажимаем кнопку Привязать к Яндексу.

yandex smart home yaha cloud install

Вводим ранее полученные ID и пароль для подключения Home Assistant к умному дому Яндекс (если забыли, то их можно посмотреть в настройках интеграции ID и пароль (облачное подключение)).

yandex smart home yaha login

Даем разрешение на доступ навыка к учетной записи в Яндекс.

yandex smart home yaha set access

Обновляем список устройств и проверяем что устройства в настроенной интеграции работают.

yandex smart home yaha cloud setup complete

 

Прямое подключение к Home Assistant

Если по каким-либо причинам подключение через сторонний облачный сервис «Yaha Cloud» вас не устраивает, то есть альтернативный способ подключения напрямую к Home Assistant. Из плюсов данного способа подключения в том, что отданная голосовая команда обрабатывается в облаке Yandex, а команда на действие летит непосредственно в наш Home Assistant, который перенаправляет команду на устройство. Т.к. облако Яндекс взаимодействует непосредственно с нашим сервером, то сервер Home Assistant должен быть доступен из сети Internet и соответствовать следующим требованиям:

  • Необходим белый статический или динамический IP адрес (Данный вопрос решается с интернет-провайдером)
  • Необходимо доменное имя второго или третьего уровня (Покупается отдельно или используется сервис DDNS)
  • Необходим SSL сертификат для используемого домена (Как установить SSL сертификат описано здесь)
  • Зарегистрированный Yandex аккаунт
  • При нахождении сервера Home Assistant в локальной сети за NAT, пробросить порт до сервера на маршрутизаторе либо использовать реверс прокси

Заходим на сайт https://dialogs.yandex.ru/developer/ аккаунтом, под которым будут работать устройства для управления домом. Создаем новый Диалог -> Умный дом.

yandex create new dialog for smart home

Создаем черновик нового навыка заполняя поля в разделе «Настройки»:

  • Название - Отображается в списке доступных навыков при подключении. Вводим любое понятное значение, например, My Home Assistant
  • Backend - Адрес, на который будут отправляться запросы. Выбираем Endpoint URL, ниже в поле вписываем путь до API на нашем сервере. https://_your_home_assistent_addr_:8123/api/yandex_smart_home. Где _your_home_assistent_addr_ - адрес, по которому доступен сервер Home Assistant из сети интернет. 8123 - порт, на котором работает сервер Home Assistant и если сервер находится в локальной сети за NAT, то этот порт необходимо пробросить на маршрутизаторе. Кто-то делает внешний порт 443 и пробрасывает с него в локальную сеть на порт 8123, но лучше иметь единую конфигурацию внутри и снаружи
  • Тип доступа - Приватный. Навык будет доступен только Вам
  • Подзаголовок - Копируем из названия
  • Имя разработчика - Все что угодно
  • E-Mail разработчика - Должен подставиться автоматически ваш адрес Yandex почты, либо указываем вручную
  • Официальный навык - Нет!
  • Описание - Все что угодно
  • Иконка - Загружаем иконку размером 224х224 пикселя. Иконку нужного размера и в нужном формате можно взять здесь https://commons.wikimedia.org/wiki/File:Home_Assistant_Logo.svg

yandex create dialog for home assistant

yandex create dialog for home assistant 02

Теперь настраиваем «Связку аккаунтов». Заполняем необходимые поля:

  • Идентификатор приложения - https://social.yandex.net/
  • Секрет приложения - Вписал слово password, на сколько понимаю в нашем случае это поле роли не играет
  • URL авторизации - https://_your_home_assistent_addr_:8123/auth/authorize
  • URL для получения токена - https://_your_home_assistent_addr_:8123/auth/token
  • URL для обновления токена - https://_your_home_assistent_addr_:8123/auth/token
  • Идентификатор группы действий - оставляем пустым

yandex create diaolig for home assistant 03

Сохраняем все настройки и переходим на вкладку «Тестирование». В тестировании выбираем Черновик, в окне «Умный дом» нажимаем + -> Устройство умного дома. В списке выбираем созданный нами диалог и нажимаем кнопку Привязать к Яндексу.

yandex test dialog

Далее откроется Web страница для введения учетных данных доступа к Home Assistant, под которыми Yandex будет иметь доступ к системе автоматизации. Для безопасности лучше создать отдельную учетную запись без административных врав.

yandex smart home login to home assistant

Предоставляем доступ в Яндексе.

yandex set access

Обновляем список устройств, если всё выполнено верно, то должен загрузиться список устройств из вашего Home Assistant.

yandex test dialog for home assistant load devices

Если в настройках Диалога всё создано верно, но подключения не происходит, то попробуйте удалить диалог и создать заново.

После удачных тестов, возвращаемся на вкладку «Настройки» и нажимаем кнопку Опубликовать. Заходим в телефоне в приложение «умный дом Яндекс», если устройства не подтянулись во время тестирования, то нажимаем кнопку + -> Устройство умного дома, в списке производителей находим созданный наш навык.

 

Автор: muxa, 02.06.2023
Войдите или зарегистрируйтесь, чтобы иметь возможность оставлять комментарии