Третье, что мне хотелось от Яндекс.Станции - это озвучивание каких-либо событий.
Напомню, первое - это проигрывание музыки, о чём я уже писал ранее. Кстати, если кто не знает, примерно с декабря Яндекс.Станции умеют мультирум (одновременное и синхронное проигрывание одного контента на разных станциях).
Второе, о чём я ещё только буду писать - это управление устройствами умного дома голосом, но это отдельная интеграция с не самой простой настройкой, сначала надо разобраться с тем, что есть.
Итак: озвучивание каких-либо событий.
Тут, на самом деле, всё достаточно просто. После того, как мы подключили Яндекс.Станцию любого формата в наш HomeAssistant, мы получили возможность отправлять на неё любые команды. В простом примере - команду включить музыку. Но это не единственное, что можно отправить на станцию.
Помимо контента и команды на станцию можно отправить обычный текст, который станция произнесёт голосом Алисы. Делается это так же, как и отправка команды:
- service: media_player.play_media
entity_id: media_player.yandex_station_[...]
data:
media_content_id: Привет, мой господин!
media_content_type: text
Эту конструкцию можно использовать в автоматизациях и скриптах, а так же напрямую при нажатии кнопки. По первости я баловался шаблонными разговорами Алисы с дочерью, очень помогало сказать что-то в духе "Лена, пора спать", и ребёнок бежит укладываться в кровать. Или "Лена, надо покушать", и ложка мелькает на радость маме.
Вот, например, мой скрипт выключения мультиков по расписанию (scripts.yaml):
stop_multik:
alias: Выключить мультики в 21:00
sequence:
- service: media_player.play_media
entity_id: media_player.yandex_station_[...]
data:
media_content_id: Телевизор устал и пошёл спать. Спокойной ночи.
media_content_type: text
- service: media_player.select_source
data:
entity_id: media_player.tv_box
source: '!com.liskovsoft.smarttubetv.beta'
- service: script.turn_on
entity_id: script.media_toggle_display
Как видно из названия, скрипт выключает мультики в 21:00, при этом в скрипте последовательно выполняются три действия:
- на Яндекс.Станцию отправляется текст "Телевизор устал и пошёл спать. Спокойной ночи", чтобы было понятно, почему вдруг телевизор внезапно выключился;
- на медиа-приставку отправляется команда завершить приложение SmartTube beta (клиент Ютуба), при этом происходит переход в лончер;
- на телевизор отправляется команда погасить экран.
Кроме этого, аналогичные озвучки у меня используются на разных датчиках, например на индикаторах плесени, при превышении порогового значения, отправляется команда на станцию - сообщить, что в какой-то комнате слишком влажно и пора проветрить:
action:
- service: media_player.play_media
entity_id: media_player.yandex_station_ff98f029a78650ae25f9e027
data:
media_content_id: "Высокая влажность {{ zone_entity }}, надо бы проветрить"
media_content_type: text
К слову о таких автоматизациях: не так давно в HomeAssistant появились так называемые bluerpints, или, по-русски, схемы - это шаблоны скриптов и автоматизаций, в которые можно передавать наборы параметров, чтобы не прописывать для похожих вещей одни и те же автоматизации по нескольку раз. Например у меня пять индикаторов плесени, и вызов голосового оповещения для каждого из них сделан через вызов такой схемы и в результате, если я захочу что-то поменять, мне не придётся пять раз менять скрипт автоматизации для каждого индикатора, а достаточно поменять схему.
Об этом, я думаю, я напишу в следующей заметке, так что stay tuna.