Как пробросить устройства из Home Assistant в Алису через мост
Интеграция локального сервера Home Assistant с голосовым ассистентом Алисой позволяет объединить гибкость профессионального умного дома с удобством голосового интерфейса от Яндекса. В то время как Home Assistant выступает в роли ядра системы, обрабатывая показания сотен датчиков и сложные автоматизации, Яндекс Станция обеспечивает быстрый доступ к управлению голосом для всех членов семьи.
Связав эти две системы, вы получите возможность управлять реле, светильниками, кондиционерами, термостатами и роботами-пылесосами с помощью простых голосовых команд, а также использовать датчики Home Assistant в сценариях Яндекса.
В отличие от стандартных облачных решений сторонних производителей, данный метод позволяет развернуть собственный приватный навык в Яндекс Диалогах. Это исключает зависимость от сторонних серверов, гарантирует высокую скорость отклика и повышает безопасность передачи данных.
Необходимые требования для интеграции
Прежде чем приступать к интеграции, необходимо настроить удаленный доступ к вашему серверу Home Assistant из внешней сети по защищенному протоколу HTTPS.
- SSL-сертификат: Яндекс требует наличия валидного SSL-сертификата (например, бесплатного от Let’s Encrypt).
- Методы доступа: Вы можете настроить удаленный доступ с помощью DDNS (DuckDNS, KeenDNS) или через Cloudflare Tunnel.
NOTE
Для критически важных систем, работающих без подключения к глобальной сети, рекомендуется настроить локальный проброс Home Assistant в Яндекс, который функционирует внутри домашней сети по протоколу HomeKit без отправки трафика на внешние сервера.
Инструкция по пошаговой настройке
Шаг 1: Установка интеграционного компонента через HACS
Основная часть работы по установке выполняется через магазин дополнений HACS:
- Откройте панель управления вашим Home Assistant и перейдите в раздел HACS в боковом меню.
- Перейдите во вкладку Интеграции (Integrations).
- Нажмите на три точки в правом верхнем углу интерфейса и выберите пункт Пользовательские репозитории (Custom repositories).
- Вставьте ссылку на репозиторий
dmitry-k/yandex-smart-homeв поле адреса, выберите тип репозитория «Интеграция» и нажмите кнопку «Добавить». - После обновления списка найдите интеграцию через строку поиска и нажмите кнопку Скачать (Download).
- Перезапустите сервер Home Assistant через меню «Инструменты разработчика» -> «Управление сервером».
Шаг 2: Настройка конфигурации устройств
Хотя интеграцию можно настроить через веб-интерфейс, использование файла configuration.yaml предпочтительно для крупных систем. Это позволяет зафиксировать настройки в виде кода и исключить случайные сбросы параметров. Добавьте в файл конфигурации следующий блок настроек:
yandex_smart_home:
notifier:
- oauth_token: "AgAAAAA..."
filter:
include_domains:
- light
- climate
- switch
include_entities:
- sensor.bedroom_temperature
- sensor.living_room_humidity
entity_config:
switch.boiler_relay:
name: "Бойлер"
room: "Ванная"
type: switch
sensor.bedroom_temperature:
name: "Температура"
room: "Спальня"
type: sensor.temperature
- Фильтр устройств: В блоке
filterмы четко ограничиваем список устройств, передаваемых в Яндекс, чтобы избежать захламления интерфейса системными сущностями. - Кастомные имена: В блоке
entity_configможно переопределить имена, комнаты размещения и типы устройств, которые будут отображаться в приложении «Дом с Алисой».
Шаг 3: Настройка приватного навыка умного дома в Яндекс Диалогах
Для безопасной связи Яндекса с вашей локальной инсталляцией необходимо создать мост в Яндекс Диалогах:
- Перейдите на сайт Яндекс Диалоги (dialogs.yandex.ru) и авторизуйтесь под своей учетной записью.
- Нажмите кнопку Создать диалог и выберите тип диалога Умный дом.
- Заполните обязательные поля: название навыка (например, «Умный Дом HA»), имя разработчика и выберите иконку.
- В поле Endpoint URL укажите адрес вашего сервера Home Assistant с суффиксом интеграции:
https://your-domain.duckdns.org/api/yandex_smart_home/v1.0. - Перейдите к разделу настройки авторизации OAuth 2.0. Задайте Идентификатор клиента (Client ID) и Секрет клиента (Client Secret) — вы можете использовать любые строки, например
yandex_idиyandex_secret. - В поле Авторизационный URL введите
https://your-domain.duckdns.org/auth/authorize, а в поле URL для получения токена введитеhttps://your-domain.duckdns.org/auth/token. - Сохраните изменения и отправьте навык на модерацию. Для приватных навыков публикация происходит моментально и без ручной проверки модераторами.
Шаг 4: Связывание аккаунтов в Доме с Алисой
После публикации навыка его необходимо подключить на вашем мобильном устройстве:
- Откройте приложение Дом с Алисой на смартфоне.
- Нажмите на иконку плюса в верхнем правом углу экрана и выберите Устройство умного дома.
- Пролистайте список производителей до самого верха, где в разделе приватных навыков найдите ваш созданный диалог «Умный Дом HA».
- Выберите его и нажмите кнопку Объединить аккаунты.
- Произойдет перенаправление на страницу авторизации вашего сервера Home Assistant. Введите логин и пароль пользователя HA.
- Разрешите доступ Яндексу к управлению вашим умным домом.
- Дождитесь завершения автоматического поиска устройств. После завершения импорта распределите все найденные датчики и выключатели по комнатам и назначьте им удобные для произношения голосовые имена.
Диагностика и отладка интеграции
Если при объединении аккаунтов возникает ошибка «Не удалось связать аккаунты» или устройства отображаются со статусом «Не в сети», обратите внимание на следующие моменты:
IMPORTANT
Проверьте SSL-сертификат: Яндекс не работает с самоподписанными сертификатами. Убедитесь, что ваш домен доступен по HTTPS из внешней сети без предупреждений безопасности браузера.
Проверьте порты: Если ваш Home Assistant работает за роутером, убедитесь, что порт 443 корректно проброшен на внутренний порт сервера (обычно 8123) или туннель Cloudflare функционирует в штатном режиме.
TIP
Логи компонента: Откройте логи Home Assistant. Если Яндекс пытается достучаться до сервера, в логах будут видны запросы к /api/yandex_smart_home/v1.0. Отсутствие запросов говорит о том, что Endpoint URL указан неверно или заблокирован брандмауэром.
Использование собственной связки с Home Assistant обеспечивает максимальный контроль над данными. Регулярно обновляйте компонент через HACS, чтобы иметь доступ к поддержке новых типов устройств умного дома, которые Яндекс добавляет в свои спецификации API.
Если вам нужно подключить датчики к серверу HA напрямую, изучите инструкцию по прошивке Zigbee-стика Sonoff 3.0.
Инструкция по настройке
Установка интеграции Yandex Smart Home
Установите компонент Yandex Smart Home через HACS в Home Assistant. Зайдите в HACS -> Интеграции, найдите Yandex Smart Home и нажмите Установить. Перезагрузите сервер Home Assistant для применения изменений.
Конфигурация пробрасываемых сущностей
Настройте фильтр устройств в файле configuration.yaml или через веб-интерфейс интеграции. Укажите, какие именно датчики, выключатели и климатические зоны должны быть видны Алисе.
Создание навыка и подключение к облаку
Создайте приватный навык в Яндекс Диалогах, укажите адрес вашего сервера Home Assistant и настройте авторизацию OAuth. Это позволит Яндексу безопасно опрашивать состояние ваших локальных устройств.
Синхронизация устройств в приложении Яндекс
Откройте приложение Дом с Алисой на смартфоне, перейдите в раздел добавления устройств, выберите категорию Другие устройства, найдите ваш созданный навык и выполните объединение аккаунтов.