Найти тему
HASSStas: Рецепты HomeAssistant

Алиса, музыку!

Оглавление

Какое-то время назад у меня ожидаемо появилась Яндекс.Станция. Функционал большой колонки мне показался избыточным, поэтому первой станцией появилась Мини - так, побаловаться.

Картинка с официальной страницы https://yandex.ru/alice/station-mini
Картинка с официальной страницы https://yandex.ru/alice/station-mini

Изначально конкретных целей по использованию не было, предполагался чисто wow-эффект для гостей, на практике орать на всю квартиру "Алиса, выключи свет!" мне представлялось затеей так себе, когда можно нажать кнопку на телефоне. Но забегая вперёд могу сказать - время от времени голосовое управление используется по прямому назначению и это действительно удобно. Плюс немножко разных других плюшек.

Но обо всём по порядку.

Итак, Яндекс.Станция Мини куплена, распакована и подключена к моему аккаунту Яндекс (на котором, к слову, до того не было ничего, кроме метрик для сайта и Яндекс.Такси). И вот плюшка номер один: Яндекс.Музыка. Я и раньше задавался вопросом облачной медиатеки, пробовал разное, а теперь всё стало достаточно очевидно, и оно играет у меня на телефоне и из колонки дома. Сюда же можно отнести и плюшку №2: детские сказки. Не скажу, что это мегапопулярная функция у нас дома, сторителлинг от мамы и папы более популярен (тем более, что, как оказалось, далеко не все сказки есть в коллекции Яндекс), но тем не менее. В общем, уже не зря, хотя звук у Мини откровенно слабый. Я слушал JBL Music - там звук поинтереснее для компактной колонки, но и ценник в два раза дороже, тут уже кому что. Как я уже говорил - станцию.мини я купил побаловаться, а для музыки я подключил её к саундбару. Вполне можно слушать.

Подключение к HomeAssistant

Для подключения Яндекс.Станции к HomeAssistant есть кастомный компонент, доступный в том числе через HACS: AlexxIT/YandexStation. Нужно добавить репозиторий в HACS и установить интеграцию, после чего можно подключить интеграцию через интерфейс: Настройки - Интеграции - Добавить интеграцию:

Интеграция Yandex.Station
Интеграция Yandex.Station
Немногочисленные настройки интеграции
Немногочисленные настройки интеграции

После успешного подключения подтянутся все устройства и объекты (как правило одно устройство и один объект на каждую подключенную станцию).

Теперь со Станцией можно общаться, давать команды или управлять музыкой.

Сразу оговорюсь: с помощью этого компонента можно общаться из HomeAssistant со Станцией, но не наоборот!

Управление Станцией из HomeAssistant

В первую очередь Станция - это Яндекс.Музыка. А значит - новый объект можно добавить как media_player и управлять воспроизведением из HomeAssistant. Я предпочитаю кастомную карточку mini-media-player, которая наконец-то получила визуальный редактор:

Добавление карточки mini-media-player
Добавление карточки mini-media-player

Поскольку ступеней громкости у Станции Мини всего 10, то я рекомендую Volume Step ставить 10, остальные параметры по желанию. Удобно и красиво, когда выводится полная обложка (параметр artwork: full-cover), но надо помнить, что тогда карточка займёт в высоту столько же, сколько она занимает в ширину, и если это единственная карточка в столбце, то она может быть несколько великовата. В общем, можно поиграться с параметрами и выбрать то, что больше понравится.

Кроме всего прочего, mini-media-player позволяет создавать дополнительные кнопки сразу на карточке для разных целей. Мне хватает всего двух: включить рандомную музыку и включить моё избранное. Кнопки, увы, приходится добавлять в карточку в текстовом режиме:

shortcuts:
  buttons:
  - icon: 'mdi:playlist-star'
    type: command
    id: включи мою любимую музыку
  - icon: 'mdi:playlist-music'
    type: command
    id: включи музыку
Так выглядят добавленные кнопки
Так выглядят добавленные кнопки

Как видно в примере конфигурации выше - Станция не просто воспроизводит музыку, на неё ещё можно посылать практически любую команду, навесив её на кнопку или вообще создав текстовое поле, куда можно писать словами, что нужно сделать.

Напомню, что команды можно отправлять только те, которые знает сама Алиса. Обратной связи и доступа к командам и датчикам HomeAssistant интеграция Yandex.Station не даёт.

Например, можно сделать отдельные кнопки на "расскажи последние новости", или "какая завтра погода", или "Алиса, расскажи сказку". Можно собрать список избранных исполнителей или композиций и организовать выпадающий список с отправкой на Станцию для проигрывания. Но вообще, оказалось, что вполне удобно просто говорить Станции, что сделать, и она это делает.

И, наконец, третье, что может Станция (любая, хоть большая, хоть маленькая), кроме проигрывания музыки и выполнения собственных команд - это управлять устройствами, которые подключены к HomeAssistant. Для этого нужно проделать ряд телодвижений и всю последовательность действий и настроек я опишу в отдельной заметке. Но оно, как мне кажется, того стоит. И не только для того, чтобы удивлять гостей.

Некоторые особенности Яндекс.Станции Мини

Тут я должен сделать ремарку: кроме Мини другими станциями я не пользовался, но ожидаемо некоторые особвенности могут быть присущи как Мини, так и большой Яндекс.Станции, и Яндекс.Станции Макс, и всем остальным аналогам типа Ирбис или JBL. Просто надо быть готовыми и понимать, что это кусок техники, а не живой человек.

Итак:

1. Яндекс.Станция - это робот. Очевидно, но неплохая проработка человеческой речи и наличие собственного характера иногда сбивают с толку. Но тем не менее, колонка - это всего лишь колонка, какой бы умной она ни была. Поэтому с ней надо разговаривать чёткими командами. Фразы в духе "Ой, Алисочка, а включи-ка мне что-нибудь душевное" - скорее всего не прокатят. Хотя могут, если речь будет внятная, всё-таки распознавание речи у Яндекса на высоте. Например, она вполне понимает мою четырёхгодовалую дочь, которая не выговариват букву Р и шипящие, и постоянно называет гостиную "гостинцией". С командами включить свет "в гостинции" или выключить "телевизол" Станция впоне справляется.

2. Как бы ни хорошо Станция распознавала речь с дефектами - она не всесильна. Поэтому не стоит ожидать от неё исполнения команд, если, например, у вас громыхает музыка. Распознать команды среди какофонии звуков Станция может далеко не всегда (если бы точным: почти никогда), и, как и при общении с людьми, приходится орать, чтобы перекрыть все остальные звуки. При этом если человек способен из контекста понять, о чём идёт речь, даже в случае если расслышал не всё, с Алисой такой фокус не пройдёт. Поэтому, если вдруг вы включили музыку на той же Станции на максимальной громкости, выключить её может быть не так просто.

3. Искусственный интелект далёк от совершенства. В качестве собеседника Алиса очень, очень далека от идеала. Она достаточно внятно отвечает на фразы, но при этом не запоминает контекст, поэтому поддерживать беседу в каком-то одном русле не получится, на каждый вопрос она отвечает как на первый и единственный в разговоре. Впрочем, иногда бывает достаточно занятно побеседовать, если помнить об этой её особенности. И да, Алиса может обидеться или нахамить, если её провоцировать. Но тут же об этом забывает.

4. Очень приятной особенностью стало то, что Алиса распознаёт тембр голоса и хорошо (в нашем случае, по крайней мере) отличает ребёнка от взрослого. Если дочь просит включить музыку, Станция начинает играть детские песенки и не предлагает треки из папиного плей-листа. Но, в любом случае, поставить "безопасный режим" при наличии детей в квартире будет не лишним.

5. В репертуаре Яндекс.Музыки есть далеко не всё. Поэтому нередки случаи, когда Алиса сообщит, что она чего-то не знает или попробует поискать в интернете. Кроме того, Мини, в отличие от большой Станции, не имеет подключения к телевизору и бывает, что при просьбе поставить саундтрек от какого-то фильма, она пытается запустить сам фильм и сообщает, что она так не умеет. Да и "гуглит" она так себе. Часто на вполне конкретные вопросы типа "какой рост у тираннозавра" она лезет в википедию и просто читает всё, что там про тираннозавра есть.

В общем, надо помнить, что колонка - творение рук человека и требовать от неё каких-то сверхъестественных способностей пока рановато. Но функционал постоянно добавляется, так что когда-нибудь, лет через десять, можно будет сгонять со Станцией и на рыбалку.

Ну а на этом всё, be tuned, дальше предполагается ещё ряд заметок про разные взаимодействия со Станцией, в том числе управление приборами "умного дома" и выполнение разных сценариев.