Любой, кто делает у себя "умный дом", рано или поздно приходит к баловству с голосовым управлением. И если для англоязычных любителей покомандовать выбор достаточно большой и интересный, то для русскоязычных до сих пор всё сводится исключительно к Алисе.
Конечно, я тоже не был уверен, что мне нужна Яндекс.Станция и я буду пользоваться её функционалом, поэтому я взял "пробную версию" - Яндекс.Станцию Мини. И, как оказалось, именно такой формат хорошо заходит как дополнение к уже существующим системам автоматизации.
Большая Яндекс.Станция, безусловно, имеет массу плюсов по сравнению с младшей сестрой - как подключение к телевизору, так и более интересный звук, и если пользователь привык к стриминговому ТВ и не имеет пока в своём распоряжении ТВ-боксов, то я буду рекомендовать именно большую версию (при наличии достаточных финансов), но именно для меня, обустроившего свою медиатеку на ТВ-боксе с Kodi на борту, Кинопоиск и необходимость переключать вход HDMI не вызвали особого энтузиазма.
В общем, Яндекс.Мини у меня прижилась и даже удвоилась (и я думаю, что ещё третья появится, когда будет достаточно вкусная акция). И главная причина, почему она прижилась - управление моим "умным домо" как мной, так и всем остальным семейством, включая четырёхлетнюю дочь. Это удобно.
Но сначала надо Станцию подключить к HomeAssistant. Для этого нам надо:
- Создать внешний доступ к HomeAssistant
- Установить и настроить интеграцию
- Создать Диалог, он же Навык, для того, чтобы подтянуть в Яндекс свои устройства
- Подключить HomeAssistant в приложении Яндекс
Создаем доступ извне
Здесь должна быть ссылка на отдельную мою заметку про создание внешнего доступа и сертификаты, но я пока не написал.
Для организации внешнего доступа нужно:
- получить ddns - доменное имя, которому будет присвоен ваш внешний IP-адрес. У меня тариф от провайдера со статическим IP-адресом, с ним обычно проблем не возникает, можно регистрироваться в том же duckdns.org без проблем (я потом напишу отдельно про это). С динамическим адресом всё сложнее, но тоже можно. Особенно можно пользователям роутеров Keenetic, у них, вроде, роутер умеет без лишних сервисов ddns предоставлять. Но сам не пробовал, не буду утверждать на 100%. Несколько слов о том, что и как можно сделать, есть на Sprut.io;
- создать SSL-сертификаты, например через Let's Encrypt. Более-менее подробная инструкция есть там же на Sprut.io.
Подключаем интеграцию
Тут всё просто - заходим в HACS и ищем Yandex Smart Home. Нашли - устанавливаем. После установки подключаем интеграцию в configuration.yaml:
yandex_smart_home:
В общем-то, этого уже достаточно. Остальные настройки можно добавить потом, я дальше расскажу о своём минимуме.
Создаем Диалог
И вот мы подошли к самому интересному: созданию собственного навыка для Алисы. Благодаря этому навыку, Яндекс.Станция получит доступ к HomeAssistant и всем его устройствам.
На странице диалогов создаём черновик типа "Умный Дом":
Указываем название нашего диалога (его потом надо будет искать в длинном списке диалогов в приложении Яндекс) и Endpoint URL (нужно подставить свой внешний IP-адрес или домен и, если используется нестандартный, порт. Обязательно поставить тип доступа "Приватный":
Текст в подзаголовке, в описании и прочих полях ниже особого значения не имеет, можно вписать что-нибудь от себя. Так же надо найти какую-нибудь картинку в качестве иконки. Требований нет, можно грузить что угодно.
Следующий раздел, который действительно интересен - Связка аккаунтов, здесь нужно задать параметры для авторизации диалога в HomeAssistant:
Здесь:
- Идентификатор приложения: https://social.yandex.net/ (без вариантов);
- Секрет приложения: можно вписать от балды, например password;
- URL авторизации: https://[Ваш адрес:порт]/auth/authorize
- URL для получения токена: https://[Ваш адрес:порт]/auth/token
- URL для обновления токена: https://[Ваш адрес:порт]/auth/token
После этого Диалог нужно сохранить. Если все настройки были введены верно, то кнопка "Опубликовать" наверху страницы станет активна. Нажимаем её, идёт проверка соединения и вуаля! навык создан.
Подключаем HomeAssistant к Яндексу
Во-первых, надо поставить на телефон само приложение. У меня телефон на Android, я качал из Google Play. Для айфона там, я думаю, тоже без проблем находится в AppStore.
В приложении нужно добавить "Другое устройство":
Находите в списке свой навык:
Заходите в него и нажимаете "Привязать я Яндексу". Откроется окно для входа в HomeAssistant - нужно ввести свои логин и пароль, после чего подтвердить доступ для Яндекса:
После этого будет кнопка "Обновить список устройств", если эту кнопку нажать, то всё, что будет в HomeAssistant, будет прокинуто в Яндекс и нужно будет каждый элемент прописывать - что это, куда это относится и в какой комнате находится.
При этом из HomeAssistant прокидывается очень много всякой ненужной ерунды, управлять которой вообще не предполагается, поэтому имеет смысл ограничить подключаемые устройства конкретными группами или вообще перечислить поштучно. Я у себя сделал так: включил устройства с типами "media_player" (сюда относятся в том числе колонки Яндекс и мой ТВ-бокс на Андроиде), "switch" (я почти всё перевёл из группы switch в light, но мало ли куда ещё пригодятся выключатели), "light" (всё моё освещение) и "script" (тут все скрипты, которые меняют громкость или яркость и всё в таком духе, чтобы их можно было вызывать с колонки голосовой командой), а так же выключил точно ненужные мне в Яндексе группы "automation" (все автоматизации, что с ними делать в Яндексе?) и "group" (не придумал, что можно делать с целыми группами):
filter:
include_domains: ['media_player', 'switch','light', 'script']
exclude_domains: ['automation','group']
После этих настроек уже можно обновлять список устройств и начинать наводить порядок и прописывать голосовые команды при необходимости.
Заключение
Изначально моя статья называлась "Алиса, выключи телевизор", но недавно случился один забавный случай, по поводу которого я уже потроллил Яндекс в своих сторис в инстаграме: колонка на команду "Алиса, включи свет на кухне" включила... композицию "Свет на кухне" некоего неизвестного широким массам (то есть мне и моей супруге) исполнителя.
И в этом есть кусочек высшей мудрости: современное голосовое управление, как бы хорошо оно ни было, всё же несовершенно. И к этому надо быть готовым, когда подключаете свой умный дом к, например, Яндекс.Станции.
Сам я не сказать чтобы прямо фанател от этой опции, физическими выключателями пользуюсь чаще, чем голосом, но и голосом пользуюсь тоже, порой это бывает действительно удобно.
Ну и вы тоже подключайтесь, разговаривайте со своим умным домом, лайкайте статьи, комментируйте и будьте счастливы.