Интеграция 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.
- Установка интеграции
- Настройка интеграции
- Подключение с помощью облачного сервиса и навыка «Yaha Cloud»
- Прямое подключение к Home Assistant
Установка интеграции
В Home Assistant идем в HACS, в поле поиска вводим «Yandex Smart Home».
Выбираем найденную интеграцию, выбираем последнюю версию и нажимаем «Скачать».
После успешного скачивания перезагружаем Home Assistant Developer Tools -> Check Configuration -> Restart
.
Настройка интеграции
В Home Assistant переходим в «Интеграции» Settings -> Devices & Services -> Integrations
. Добавляем новую интеграцию кнопкой + Add Integration
. В строке поиска вводим «Yandex Smart Home».
Выбрав необходимую интеграцию в открывшемся окне, добавляем все необходимые объекты устройств, которые мы хотим видеть и управлять в умном доме от Яндекса. Это могут быть светильники, выключатели, розетки, роботы пылесосы, показания датчиков. Лишнее добавлять не надо чтобы не перегружать интерфейс в приложении Яндекса, по необходимости какие-то компоненты можно добавить потом.
Добавив все необходимые устройства нажимаем кнопку «Submit».
На следующем этапе настройки выбираем тип подключения умного дома Яндекс и Home Assistant. Вариантов два:
- Через сторонний облачный сервис и навык «Yaha Cloud»
- Прямой доступ к Home Assistant
Выбрав первый вариант, мы получаем ID и пароль для подключения Home Assistant к умному дому Яндекс с помощью облака и навыка «Yaha Cloud», а также инструкцию с дальнейшими действиями.
Подключение с помощью облачного сервиса и навыка «Yaha Cloud»
Устанавливаем, при необходимости, и открываем в телефоне приложение «Дом с Алисой» от компании Яндекс. В правом верхнем углу нажимаем + -> Устройство умного дома
. В строке поиска вводим «Дом с Алисой», выбираем его и нажимаем кнопку Привязать к Яндексу
.
Вводим ранее полученные ID и пароль для подключения Home Assistant к умному дому Яндекс (если забыли, то их можно посмотреть в настройках интеграции ID и пароль (облачное подключение)
).
Даем разрешение на доступ навыка к учетной записи в Яндекс.
Обновляем список устройств и проверяем что устройства в настроенной интеграции работают.
Прямое подключение к 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/ аккаунтом, под которым будут работать устройства для управления домом. Создаем новый Диалог -> Умный дом
.
Создаем черновик нового навыка заполняя поля в разделе «Настройки»:
- Название - Отображается в списке доступных навыков при подключении. Вводим любое понятное значение, например, 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
Теперь настраиваем «Связку аккаунтов». Заполняем необходимые поля:
- Идентификатор приложения - 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
- Идентификатор группы действий - оставляем пустым
Сохраняем все настройки и переходим на вкладку «Тестирование». В тестировании выбираем Черновик
, в окне «Умный дом» нажимаем + -> Устройство умного дома
. В списке выбираем созданный нами диалог и нажимаем кнопку Привязать к Яндексу
.
Далее откроется Web страница для введения учетных данных доступа к Home Assistant, под которыми Yandex будет иметь доступ к системе автоматизации. Для безопасности лучше создать отдельную учетную запись без административных врав.
Предоставляем доступ в Яндексе.
Обновляем список устройств, если всё выполнено верно, то должен загрузиться список устройств из вашего Home Assistant.
Если в настройках Диалога всё создано верно, но подключения не происходит, то попробуйте удалить диалог и создать заново.
После удачных тестов, возвращаемся на вкладку «Настройки» и нажимаем кнопку Опубликовать
. Заходим в телефоне в приложение «умный дом Яндекс», если устройства не подтянулись во время тестирования, то нажимаем кнопку + -> Устройство умного дома
, в списке производителей находим созданный наш навык.
Комментарии
"Интеграция Home Assistant и Алисы по фамилии Яндекс"
Информция - безнадежно устарела.
В настоящее время "по фамилии Яндекс" - 2 интеграции:
yandex_tranport - использует Яндекс Карты - покажет вам время до следующего отправления автобуса/трамвая и т. д. остановки.
https://www.home-assistant.io/integrations/yandex_transport/
yandextts - Интеграция преобразования текста в речь. Использует Яндекс SpeechKit движок преобразования текста в речь, позволяющий читать текст естественным голосом.
https://www.home-assistant.io/integrations/yandextts/
А информация тут - относится только к Yandex Smart Home. И не затрагивает даже, еще одну интеграцию - Yandex.Station (управление приборами из Home Assistant через Yandex). И она то-же устарела...
С приветом - Я!