Прямое подключение (УДЯ)¶
Только для продвинутых пользователей!
Для использования прямого подключения вы самостоятельно создаёте приватный навык в Яндекс.Диалогах, который будет напрямую подключаться к вашему Home Assistant (не используя навык Yaha Cloud).
Предварительные требования¶
- Доступность Home Assistant из интернета по доменному имени используя белый IP адрес или сторонние сервисы: Dataplicity, KeenDNS. По этому же доменному имени Home Assistant должен быть доступен и из локальной сети.
- Настроенный HTTPS сертификат. При наличии белого IP адреса можно воспользоваться официальным аддоном Let's Encrypt. При использовании Dataplicity или KeenDNS HTTPS настраивается автоматически. Самоподписанные сертификаты работать не будут.
- Прописанный адрес Home Assistant в разделе
Настройки→Система→Сеть→URL-адрес сервера→Интернет(для видимости раздела включитеРасширенный режимв профиле пользователя). - Перед добавлением интеграции обязательно проверьте доступность HA из интернета.
Настройка¶
- Установите компонент и добавьте интеграцию используя прямой тип подключения
-
Зайдите на dialogs.yandex.ru и создайте диалог (навык) с типом "Умный дом". Желательно это делать из под аккаунта, который планируется использовать для управления умным домом. При необходимости доступ к навыку можно предоставить другим пользователям Яндекса (вкладка Доступ).
-
Заполните параметры (вкладка
Настройки):
| Поле | Значение |
|---|---|
| Язык | Русский |
| Название | Любое (например Home Assistant) |
| Подключение устройств | Любой текст |
| Backend | Endpoint URL: https://[YOUR_HA_DOMAIN:PORT]/api/yandex_smart_home(пример: https://XXXX.dataplicity.io/api/yandex_smart_home) |
| Тип доступа | Приватный |
| Имя разработчика | Любое |
| Официальный навык | Нет |
| Иконка | Любая (например эта) |
- Заполните параметры (вкладка
Связка аккаунтов):
| Поле | Значение |
|---|---|
| Идентификатор приложения | https://social.yandex.net/ |
| Секрет приложения | Любой, например: secret |
| URL авторизации | https://[YOUR_HA_DOMAIN:PORT]/auth/authorize |
| URL для получения токена | https://[YOUR_HA_DOMAIN:PORT]/auth/token |
| URL для обновления токена | https://[YOUR_HA_DOMAIN:PORT]/auth/token |
- На вкладке
Настройкиобязательно нажмитеОпубликовать(для приватных навыков публикация автоматическая и моментальная). В этот момент УДЯ попробует подключиться к вашему Home Assistant, и если у него не получится - появятся ошибки валидации.
Все параметры навыка также продублированы в настройках интеграции в разделе Параметры навыка
Не используйте навык в режиме "Черновик", это может вызывать различные проблемы (дубли устройств, ошибки в нотификаторе)
При публикации навыка в журнале Home Assistant возникает ошибка Login attempt or request with invalid authentication. Это нормально и не влияет на работу компонента.
- Откройте приложение Дом с Алисой
- Нажмите иконку в правом верхнем углу →
Устройство умного дома - Найдите в списке и выберите производителя (ищите по названию диалога, который создали ранее)
- Нажмите кнопку
Привязать к Яндексу, откроется страница авторизации Home Assistant. Рекомендуется создать отдельного пользователя специально для УДЯ и авторизоваться под ним. В этом случае в журнале событий будет видно, когда устройством управлял Яндекс.
Проблемы¶
Яндекс не может достучаться до Home Assistant¶
-
Проверьте доступность Home Assistant из интернета через сервис httpstatus.io:
- Вставьте ссылку
https://YOUR_HA_DOMAIN:PORT/manifest.jsonи нажмитеCheck status.
Альтернативная ссылка для проверкиhttps://YOUR_HA_DOMAIN:PORT/api/yandex_smart_home/v1.0/ping– будет доступна только если добавлена хотя бы одна интеграция Yandex Smart Home, в остальных случаях по ней возвращается404. - Убедитесь, что возвращается код
200(столбецStatus codes) - Если возвращаются другие ошибки - нажмите на стрелку слева от ссылки, чтобы узнать подробнее. Пример ошибки некорректной настройки SSL сертификата:
- Вставьте ссылку
-
Если сертификат настраивался вручную: убедитесь, что используется fullchain сертификат (в случае штатного аддона Let's Encrypt он в файле fullchain.cer):
http:
ssl_certificate: /config/acme.sh/YOUR_HA_DOMAIN/fullchain.cer
ssl_key: /config/acme.sh/YOUR_HA_DOMAIN/YOUR_HA_DOMAIN.key
Корректность установки сертификата можно проверить через этот сервис. 3. Если DNS запись добавлялась вручную: убедитесь, что у используемого домена нет AAAA записи (должна быть только A).
Появляются дубли устройств¶
Скорее всего часть устройств были добавлены в Черновик навыка.
Удалите их оттуда вручную через dialogs.yandex.ru/developer (вкладка Тестирование).
Ошибки при публикации навыка¶
При публикации навыка кнопкой Опубликовать могут появляться ошибки валидации.
Подробнее об ошибке можно узнать, нажав на стрелочку вниз в правом верхнем углу ошибки.
Превышено время ожидания ответа¶
Если Home Assistant доступен из интернета, но публикация навыка даёт ошибку Превышено время ожидания ответа,
скорее всего проблема в неработающем (или частично работающем) DNSе внутри контейнера Home Assistant.
Такое иногда встречается на NAS (например QNAP). Для исправления:
- Зайдите внутрь контейнера Home Assistant:
docker exec -it homeassistant sh - Укажите DNS сервер Яндекса:
echo nameserver 77.88.8.8 > /etc/resolv.conf
Исправление актуально только для публикации навыка и не требуется для обычной работы УДЯ.
Другая причина возникновения проблемы - использование Яндекс.DNS с фильтрацией. Попробуйте отключить фильтрацию, если вы её используете.
URL не найден¶
Возможные причины:
- Некорректно задан
Endpoint URLв настройках навыка - Компонент Yandex Smart Home не установлен
- Интеграция Yandex Smart Home не добавлена
Внутренняя ошибка навыка¶
Обычно возникает из-за проблем в разрешении IP-адреса из имени.
По состоянию на конец октября 2021 замечено, что без видимой причины могут не работать домены *.tplinkdns.com (попробуйте использовать другой динамический DNS).


