/ ЯндексСтанция

Компонент для управления Яндекс.Станцией и другими колонками с Алисой из Home Assistant.

  • Установка
  • Настройка
  • Примеры использования
    • Первый способ вызвать TTS
    • Второй способ вызвать TTS
    • Третий способ вызвать TTS
    • Спецэффекты в TTS
    • Другие голоса
    • Проигрывание медиа по ссылкам
    • Яндекс Алиса в Telegram
    • Яндекс Алиса в Lovelace
    • Морфология числительных
    • Выполнение команд станцией
    • Примеры управления станцией
  • Внешний вид
  • Продвинутое использование команд
  • Звук Яндекс.Станции по HDMI
  • Статический IP для локального режима
  • Получение команд от станции
  • Управление умным домом Яндекса
  • Полезные автоматизированные
  • Полезные ссылки

Новые фичи в версии 2.0:

  • Поддержка всех колонок через облачное управление ( не все протестированы! )
  • Одновременное управление колонками по локальной сети и через облако
  • Проигрывание медиа по ссылкам (подробнее)
  • Яндекс Алиса в Telegram (подробнее)

Внимание . В тексте часто используются термины локальная колонка, локальный режим и локальное управление (они несут одинаковый смысл). Внимательно изучите какие колонки его Внимательно. Функции и возможности локального управления сильно превосходят облачное управление. Локальный режим включается автоматически на поддерживаемых колонках, поробнее тут.

Список устройств

Устройство Локальное управление Облачное
Яндекс.Станция (большая) Поддерживается Поддерживается
Яндекс. Станция Макс Поддерживается Поддерживается
Яндекс.Станция Мини Поддерживается Поддерживается
Яндекс.Модуль Поддерживается Поддерживается
DEXP Smartbox Нет Поддерживается
Elari SmartBeat Нет Поддерживается
Irbis A Нет Поддерживается
LG XBOOM AI ThinQ WK7Y Нет Поддерживается
Prestigio Smartmate Mayak Edition Нет Поддерживается
JBL Link Music Поддерживается Поддерживается
JBL Link Portable ? Поддерживается

управление не поддерживаются на стороне Яндекса . Если на колонку «прилетит» новая прошивка с поддержкой управления — она ​​с высокой вероятностью «подхватится» без доработки компонента.

Внимание: у облачного управления нет обратной связи от колонки. Неизвестно играет ли колонка что-то или стоит на паузе и какая у нее актуальная громкость. Так что состояние колонки в Home Assistant может отличаться от актуального состояния колонки, если вы давали ей команды не из компонента.

Возможности локального и облачного управления:

  • управление воспроизведением и громкостью станции
  • отправка TTS на станцию ​​ из окна медиаплеера и через сервисы ( голосом Алисы! )
  • отправка любых текстовых команд на станцию ​​из окна медиаплеера и через сервисы (например, включи мою музыку )
  • спецэффекты в TTS (библиотека звуков и наложение эффектов на голос Алисы)

Дополнительные возможности локального управления:

  • просмотр что играет на станции , включая обложку (только для музыки)
  • перемотка треков

Карточка Яндекс Станции

Обложки работают только при локальном управлении

Карточка Яндекс Мини

Демо

Вопросы и ответы

В. Какой компонент лучше ЯндексСтанция или Умный дом Яндекс?
О. Это разные компоненты для разных задач. Первый позволяет управлять вашими колонками с Алисой из Home Assistant, отправлять на них голосовые уведомления и много чего ещё. Второй позволяет добавить ваши умные из Home Assistant в умный дом Яндекса и управлять ими любого устройства с Алисой, в том числе с колонок.

Установка

Ставится через кастомный репозиторий HACS — AlexxIT/YandexStation

Или через копирование папок yandex_station из последнего релиза в папке custom_components (создать при необходимости) директории с конфигами.

Настройка

Нужны имя и пароль аккаунта Яндекс, к которым привязаны колонки. Изучите код, если думаете, что это небезопасно.

Двухфакторная авторизация работает по одноразовому паролю из приложения Яндекс.Ключ. Главное успеть за 30 секунд 🙂

 yandex_station: имя пользователя: пароль myuser: mypass 

Примеры использования

Если у вас в конфиге есть другие TTS, например от Google — читайте это.

Для шаблонов не забывайте указывать data_template , для остальных команд хватит просто data .

Поддерживаются команды на несколько станций одновременно (как TTS, так и media_player).

Внимание: Для каждой вашей колонки создано приложение Яндекса будет служебный сценарий . Не трогайте его. Если случайно удалили — перезапустите Home Assistant.

Первый способ вызвать TTS

Работает на всех колонках

Зависит от настройки «Режим звука» (из окна медиа-плеера). Будет или произносить текст или выполнять команду. Он же вызывается из окна медиа-плеера.

Из-за зависимости от «Режима звука» — не рекомендуется к использованию в автоматизациях. Используйте Второй способ.

 script: # TTS зависит от настройки "Режим звука"!  (произвести или выполнить команду) yandex_tts1: alias: TTS зависит от настройки "Режим звука"!  последовательность: - service: tts.yandex_station_say entity_id: media_player.yandex_station data_template: message: Температура в комнате {{состояния ("sensor.temperature_hall") | round}} градуса. 

Второй способ вызвать TTS

Работает на всех колонках

Не зависит от настройки «Режим звука».

Внимание . Команда всегда отправляется через облако, даже на локальных колонках, потому что это единственно известный способ, чтобы станция НЕ продолжала слушать после TTS.

В облачном режиме есть два ограничения:

  • Команда Алисе может содержать только кириллицу, латиницу, цифры и спецсимволы: «-,!.: =?».
  • Команда Алисе должна быть не длиннее 100 символов

Компонент автоматически удалит из запрещенных символов текста и ограничит длинну до допустимой.

 скрипт: # TTS не зависит от "Режима звука"!  и всегда будет произносить фразу yandex_tts2: alias: TTS не зависит от настройки "Режим звука" последовательность: - service: media_player.play_media entity_id: media_player.yandex_station data: media_content_id: Повторяю вашу фразу media_content_type: text 

Третий способ вызвать TTS

Только для локального режима!

Не зависит от настройки «Режим звука», но продолжает слушать после произнесения текста! Зато нет ограничения на количество символов. Поддерживает спецэффекты.

 script: yandex_tts3: alias: TTS только для локального режима sequence: - service: media_player.play_media entity_id: media_player.yandex_station data: media_content_id:  Ехал Грека через реку  видит Грека в реке рак 

  • Библиотека звуков

     media_content_id:  У вас получилось! 

  •  скрипт: yandex_tts4: # работает и в локальном и в облачном режиме псевдоним: TTS c последовательность эффектов: - service: media_player.play_media entity_id: media_player.yandex_station data: media_content_id  :  сил  Объявление погоды на сегодня ... media_content_type: dialog 

    v>

    Другие голоса

    Только для локального режима!

    Можно использовать не только голос Алисы. Разные голоса можно посмотреть тут.

    Внимание: Работают не все голоса. Если указать неправильный голос — колонка заглючит.

     скрипт: yandex_tts5: # работает и в локальном и в облачном режиме псевдоним: другой голос, тогда на нее нужно отправить команду  стоп  или перезагрузить.  Последовательность TTS: - service: media_player.play_media entity_id: media_player.yandex_station данные: media_content_id:  Всем привет.  Меня зовут Захар ... media_content_type: dialog 

    Проигрывание медиа по ссылкам

    Только для локального режима!

    Поддерживаются только ссылки, которые умеют устройства Яндекса!

    • Песня на Яндекс.Музыке — пример
    • Альбом на Яндекс .Музыке — пример
    • Исполнитель на Яндекс.Музыке — пример
    • Плейлист на Яндекс.Музыке — пример

    Только на устройствах с экраном (большая Станция или Модуль)

    • YouTube — пример
    • Кинопоиск — пример
    • Кинопоиск HD — пример

    Это работает в том числе из графического интерфейса, если вставить ссылку в поле «воспроизвести текст».

     скрипт: yandex_play_url  : alias: Проигрывание медиа по ссылке sequence: - service: media_player.play_media entity_id: media_player.yandex_station данные: media_content_id: https://music.yandex.ru/album/2150009/track/19174962 media_content_type: xxx # тип не важен, но  должен быть! 

    Яндекс Алиса в Telegram

    Только для локального режима!

    Вы можете общаться со своей Алисой через Telegram. И она вам будет отвечать в Telegram! Можете спросить погоду, вызвать такси, включить песню, поиграть в города или управлять вашим умным домом (если настроили интеграцию с умным домом Яндекса). Никаких слеш-команд Telegram, общайтесь с Алисой обычным текстом.

    При этом Home Assistant не обязательно «прокидывать» в Интернет. Telegram в режиме polling может работать без внешнего доступа.

    При этом проигрывателе медиа по ссылкам тоже будет работать. Просто поделитесь со своим Telegram ботом на фильм Кинопоиска, ролик YouTube или песню/альбом/плейлист на Яндекс Музыке — и они запустятся на вашей колонке!

     telegram_bot: - platform: polling  api_key: TELEGRAM_BOT_API_KEY # создайте свой Телеграм бота allowed_chat_ids: - TELEGRAM_USER1_ID # укажите ID своего аккаунта - TELEGRAM_USER2_ID # при желании, поддерживайте несколько аккаунтовавтоматизация: - trigger: platform: event_type_service_type: telegram_text_player: service: # media_type  на вашу станцию ​​data_template: media_content_id: "{{trigger.event.data.text}}" media_content_type: "question: {{trigger.event.data.chat_id}}" - триггер: платформа: событие event_type: yandex_station_response действие: служба:  telegram_bot.send_message data_template: target: "{{trigger.event.data.request_id}}" message: "{{trigger.event.data.text}}" 

    Для отправки Telegram сообщений разным станциям @ProstoMaks ks поддерживает такое решение.

    Яндекс Алиса в Lovelace

    Только для локального режима!

    Вы можете общаться со своей Алисой через GUI Home Assistant (lovelace). Это работает в любом браузере на любой платформе, включая смартфоны и официальные мобильные приложения.

    При включении компонента Разговор в верхнем интерфейсе интерфейса Home Assistant отображает микрофон. Сам компонент позволяет общаться в режиме диалога.

    Работает аналогично добавление Алисы в Телеграм. Вы фактически общаетесь в текстовом режиме с одной из ваших колонок. Отправка ссылок на медиа тоже работает!

     обсуждение: intents: media_player.yandex_station_mini: [. +] # Замените на вашу станцию ​​

    Компонет поддерживает не только текстовый, но и голосовой ввод при следующих условиях:

    • Home Assistant открыт в браузере Google Chrome на Windows, macOS, Linux, Android или в приложении Android — потому что для распознования голоса используются API Google
    • Home Assistant открыт по HTTPS-ссылке или localhost-ссылке — потому что микрофон в браузере Google Chrome доступен только в этом случае

    По умолчанию в Home Assistant включен голосовой ввод только на английском языке. Чтоб это исправить — добавить в конфиг такую ​​настройку. Если у вас голосовой ввод не работает или он вам не нужен — настройку смайлов не надо! Общаться текстом с Алисой вы и без нее. После изменений системы возможного сброса кэширования (включая файлы cookie и другие данные сайта).

     yandex_station: распознавание_lang: ru-RU 

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

    Морфология числительных

    Логическое произношения числительных в TTS, ознакомьтесь с другим компонентом — MorphNumbers. /p>

    Выполнение команд станцией

    Работает на всех колонках

     скрипт: yandex_command  : # работает и в локальном и в другом режиме псевдоним: Выполнить команду последовательность: - service: media_player.play_media entity_id: media_player.yandex_station data: media_content_id: Включи мою любимую музыку вперемешку media_content_type: command 

    Примеры управления станцией

    Работает на всех колонках

     скрипт: yandex_volume_set: # в локальном или облачном  режим псевдонима: Меняем громкость нескольких станци  © sequence: - service: media_player.volume_set data: entity_id: - media_player.yandex_station_12345678901234567890 - media_player.yandex_station_98765432109876543210 volume_level: 0,5 

    Только для локального режима! >

     скрипт: yandex_play_album: # только в локальном режиме !!!  псевдоним: Включить Би-2 на Станции последовательность: - service: media_player.play_media entity_id: media_player.yandex_station данные: media_content_id: 60062 # ID альбома в Яндекс.Музыка media_content_type: album # альбом, трек или плейлист 

    Внешний вид

    Красивые иконки Яндекс устройств можно установить через HACS.

    Внимание . Ниже пример нестандартной карточки медиалеера. Её нет в Домашний помощник по умолчанию. Она легко ставится через HACS. Если у вас сложности с установкой — просто використовуйте стандартную карточку. Она тоже работает.

     entity: media_player.yandex_station_mini # поменяйте на вашу колонкуartwork: playsound_mode: iconshortcuts: attribute: sound_mode кнопки: - icon: 'mdi: account-voice' id:  Произнеси тип текста: sound_mode - icon: 'mdi: robot' id: Выполнили команду type: sound_mode - icon: 'mdi: playlist-star' id :и мою любимую музыку вперемешку тип: command - icon: 'mdi: playlist-music'  id: включи плейлист дня тип: команда - значок: 'mdi: heart' id: лайк тип: команда - значок: 'mdi: heart-off' id: снять лайк тип: столбцы команд: 6hide: sound_mode: false время выполнения: фальцеты:  platform: yandex_stationtype: 'custom: mini-media-player' 

    Продвинутое использование команд

    Только для локального режима!

    Компонент создаёт сервис yandex_station. send_command , которую необходимо передать команду.

    Полезные команды станции можно узнать тут.

    Самая универсальная — это sendText . Станция выполнит посланную фразу, как буд-то услышала команду голосом.

    Выбрать станцию ​​можно указав entity_id или device (для обратной совместимости). В качесте device может быть название станции или идентификатор. Можно посмотреть в приложении Яндекс или в веб-интерфейсе.

    Если станция одна — можно ничего не указывать.

     скрипт: yandex_tts: alias: TTS на  Последовательность Яндекс.Станции: - service: yandex_station.send_command data: entity_id: media_player.yandex_station_12345678901234567890 команда: sendText text: Повтори за мной Звонок 'Привет, человек!' 

    Яндекс.Станции по HDMI

    Только для большого Яндекс.Станции!

    Функция переключения выхода звука находится у Яндекса в бете. На телевизор выводится только звук видео (например YouTube). Звук музыки и голос Алисы остаются на Станции.

    Раньше функция включалась в конфиге. Теперь включен по умолчанию для всех владельцев больших Станций.

     script: yandex_hdmi_sound: alias: Звук Станции на HDMI sequence: - service: media_player.select_source entity_id: media_player.yandex_station # поменяйте на  вашу станцию ​​data: source: HDMI 

    Статический IP для локального режима

    Только для локального режима!

    Проще всего проверить работу локального запуска — запустить на колонке песню и посмотреть, отображается ли обложка в Home Assistant.

    Локальные устройства ищутся автоматически по протоколу mDNS (zeroconf). Если у вас есть с этим какие-то проблемы — можно указать для них статический IP-адрес на роутере.

    mDNS не будет работать, если вы открыли только один порт для Home Assistant. Например установка в Docker без настройки network = host (в Hass.io всё хорошо) или виртуальная машина с NAT.

    В конфиге нужно указывать device_id вашей колонки. Он есть на конце entity_id после media_player.yandex_station_ .

     yandex_station: devices: 12345678901234567890: # device_id вашей колонки host: 192.168.1.123 name: Яндекс Станция # имя можно  задать и тут 

    Получение команд от станции

    Только для продвинутых пользователей

    Для работы функционала должна быть настроена интеграция Home Assistant с умным домом Яндекса!

    1. Настройте список фраз, на которые ваши станции должны реагировать и ответы на них. Если не хотите ответ — оставьте его пустым (двоеточие обязательно). При первом запуске копонент создаёт служебный медиа-плеер media_player.yandex_intents .
    2. Синхронизируйте ваше устройство в приложении Яндекса, чтоб этот плеер и там. Не нужно его переименовывать и перемещать в комнаты.
    3. Перезапустите Home Assistant. В новом приложении Яндекса должны появиться ваши сценарии.

    Ответ на эти фразы в Home Assistan будет генерироваться событие типа yandex_intent с произнесённым текстом. Теперь можете писать свои собственные на YAML или Node-RED.

     yandex_station: имя пользователя: myuser пароль: mypass intents: Покажи сообщение: ага Какая температура в комнате: Какая влажность в комнате:  автоматизация: - триггер: платформа: событие event_type: yandex_intent event_data: текст: Покажи сообщение action: service: persistent_notification.create data: title: Сообщение со станции message: Шеф, станция чего-то хочет 

    Управление умным домом Яндекса

    На данный момент поддерживаются:

    • Кондиционеры — добавленные как через ИК -пульт, так и напрямую (например, LG с Wi-Fi)
    • Телевизоры — добавленные через ИК-пульт, так и напрямую
    • Обученные вручную ИК-команды — обученные вручную команды ИК-пульта (Пульт => Добавить устройство => Настроить вручную)
    • Розетки — включая энергопотребление
    • Лампочки — включая настройку яркости и цвета
    • Обогреватели

    В ИК-пультов можно использовать Яндекс Пульт или более дешевую версию от Tuya (добавляется напрямую как родной пульт Яндекса).

    В конфиге нужно перечислить имена ваших устройств:

     yandex_station: имя пользователя: пароль myuser: mypass include:  - Кондиционер # имя вашего кондиционера - Приставка # имя не ИК-пульта, а устройство, настроенного вручную 

    Кондиционер будет добавлен как термостат:

    Настроенное вручную ИК-устройство будет добавлено как Remote. Команды отправляются через сервис remote.send_command . Можно отправить несколько команд за раз, настроить задержку и количество повторов.

     script: volume_up: alias: Сделай громче последовательность: - service: remote.send_command entity_id: remote.yandex_station_remote # поменяйте  на ваше устройство data: command: Сделай громче # имя кнопки в интерфейсе num_repeats: 5 # (опционально) количество повторов delay_secs: 0.4 # (опционально) пауза между повторами в секундах turn_on: alias: Включи телевизор последовательность: - service: remote.send_command entity_id  : remote.yandex_station_remote # поменяйте на ваше устройство data: command: [Включи, Смени вход, Ниже, ниже, ОК] # можно несколько кнопок delay_secs: 0.4 # (опционально) пауза между повторами в секундах 

    Полезные возможности

    • Отображаем статус Яндекс Станции с помощью умных ламп, так же эту автоматизацию можно переделать в» Приглушаем звук телевизора, когда Алиса слушает «, Только для
    • Звонок на колонку с Алисой
    • Перехват фраз с локальных колонок, Только для локального режима!
    • Отвечать на намерения с последней активной колонки, Только для локального режима!
    • Управление разными станциями из Telegram, Только для локального режима!
    • Действие по таймеру в Яндекс Алисе
    • Список радиостанций для колонок Яндекса

    Полезные ссылки

    • https://github.com/sergejey/majordomo-yadevices
    • https://github.com/anVlad11/ дд-алицизация
    Оцените статью
    techsly.ru
    Добавить комментарий