Поиск по базе знаний

Как пробросить устройства из 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:

  1. Откройте панель управления вашим Home Assistant и перейдите в раздел HACS в боковом меню.
  2. Перейдите во вкладку Интеграции (Integrations).
  3. Нажмите на три точки в правом верхнем углу интерфейса и выберите пункт Пользовательские репозитории (Custom repositories).
  4. Вставьте ссылку на репозиторий dmitry-k/yandex-smart-home в поле адреса, выберите тип репозитория «Интеграция» и нажмите кнопку «Добавить».
  5. После обновления списка найдите интеграцию через строку поиска и нажмите кнопку Скачать (Download).
  6. Перезапустите сервер 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: Настройка приватного навыка умного дома в Яндекс Диалогах

Для безопасной связи Яндекса с вашей локальной инсталляцией необходимо создать мост в Яндекс Диалогах:

  1. Перейдите на сайт Яндекс Диалоги (dialogs.yandex.ru) и авторизуйтесь под своей учетной записью.
  2. Нажмите кнопку Создать диалог и выберите тип диалога Умный дом.
  3. Заполните обязательные поля: название навыка (например, «Умный Дом HA»), имя разработчика и выберите иконку.
  4. В поле Endpoint URL укажите адрес вашего сервера Home Assistant с суффиксом интеграции: https://your-domain.duckdns.org/api/yandex_smart_home/v1.0.
  5. Перейдите к разделу настройки авторизации OAuth 2.0. Задайте Идентификатор клиента (Client ID) и Секрет клиента (Client Secret) — вы можете использовать любые строки, например yandex_id и yandex_secret.
  6. В поле Авторизационный URL введите https://your-domain.duckdns.org/auth/authorize, а в поле URL для получения токена введите https://your-domain.duckdns.org/auth/token.
  7. Сохраните изменения и отправьте навык на модерацию. Для приватных навыков публикация происходит моментально и без ручной проверки модераторами.

Шаг 4: Связывание аккаунтов в Доме с Алисой

После публикации навыка его необходимо подключить на вашем мобильном устройстве:

  1. Откройте приложение Дом с Алисой на смартфоне.
  2. Нажмите на иконку плюса в верхнем правом углу экрана и выберите Устройство умного дома.
  3. Пролистайте список производителей до самого верха, где в разделе приватных навыков найдите ваш созданный диалог «Умный Дом HA».
  4. Выберите его и нажмите кнопку Объединить аккаунты.
  5. Произойдет перенаправление на страницу авторизации вашего сервера Home Assistant. Введите логин и пароль пользователя HA.
  6. Разрешите доступ Яндексу к управлению вашим умным домом.
  7. Дождитесь завершения автоматического поиска устройств. После завершения импорта распределите все найденные датчики и выключатели по комнатам и назначьте им удобные для произношения голосовые имена.

Диагностика и отладка интеграции

Если при объединении аккаунтов возникает ошибка «Не удалось связать аккаунты» или устройства отображаются со статусом «Не в сети», обратите внимание на следующие моменты:

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.

Инструкция по настройке

1

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

Установите компонент Yandex Smart Home через HACS в Home Assistant. Зайдите в HACS -> Интеграции, найдите Yandex Smart Home и нажмите Установить. Перезагрузите сервер Home Assistant для применения изменений.

2

Конфигурация пробрасываемых сущностей

Настройте фильтр устройств в файле configuration.yaml или через веб-интерфейс интеграции. Укажите, какие именно датчики, выключатели и климатические зоны должны быть видны Алисе.

3

Создание навыка и подключение к облаку

Создайте приватный навык в Яндекс Диалогах, укажите адрес вашего сервера Home Assistant и настройте авторизацию OAuth. Это позволит Яндексу безопасно опрашивать состояние ваших локальных устройств.

4

Синхронизация устройств в приложении Яндекс

Откройте приложение Дом с Алисой на смартфоне, перейдите в раздел добавления устройств, выберите категорию Другие устройства, найдите ваш созданный навык и выполните объединение аккаунтов.