Skip to content

Instantly share code, notes, and snippets.

@AlexxIT
Last active February 12, 2024 12:59
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AlexxIT/d4995839aedde2bbcf822831a71a52c5 to your computer and use it in GitHub Desktop.
Save AlexxIT/d4995839aedde2bbcf822831a71a52c5 to your computer and use it in GitHub Desktop.
Локальные сценарии (интенты) на колонках с Алисой
  • Способ позволяет перехватывать фразы на локальных колонках (и только на них!)
  • Можно узнать, с какой локальной колонки пришёл запрос!
  • Не нужна интеграция с умным домом Яндекса (белый IP и HTTPS)
  • Поддерживает только три разные фразы :(
  • Работает только, если колонка НЕ играет музыку в данный момент
  • Работает только, если у вас есть подписка Яндекса на музыку
  1. Создаём сценарий в умном доме Яндекса:

    Если: Я скажу - любая, нужная вам фраза, например "какая температура в комнате"
    То: Колонка, которая меня услышит, выполнит команду «Включи медитацию»

  2. Добавляем автоматизацию

    alias: Команда "включи медитацию"
    description: ''
    trigger:
      - platform: state
        entity_id:
          - media_player.yandex_station_mini  # замените на одну вашу колонку
          - media_player.yandex_station  # замените на другую вашу колонку
        to: playing
    condition:
      - condition: template
        value_template: '{{ trigger.to_state.attributes.get("media_title") == "Тест. Часть 1" }}'
    action:
      - service: media_player.media_pause
        data_template:
          entity_id: '{{ trigger.entity_id }}'
      - service: media_player.play_media  # укажите нужное вам действие
        data_template:
          entity_id: '{{ trigger.entity_id }}'
          media_content_id: 'Температура в комнате {{ states("sensor.temperature_hall")|round }} градуса'
          media_content_type: text
    mode: single

Как бы всё. Если вам удобнее - можете разбить разные колонки на разные автоматизации.

Можно использовать другие фразы. Тогда внесите изменения в сценарии Яндекса и в condition у автоматизации:

  • включи медитацию => Тест. Часть 1
  • включи медитацию для сна => Текст. Часть 2
  • включи медитацию антистресс => Тест. 3 часть

Почему именно "включи медитацию"? Потому что именно по этим фразам колонка НЕ проговаривает, что за музыку она включила, а молча её включает. Компонент перехватывает это событие, тормозит музыку и позволяет вам совершить любое действие в Home Assistant.

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

@tuxamat
Copy link

tuxamat commented Dec 28, 2020

Можно просто убавлять громкость в ноль, а потом поднимать

@marlgrave
Copy link

Прибавь громкость на 0.. А дальше можно развивать на0! на 00!!!! и тд. И пишете сколько угодно сценариев. Проверено, работает

@GH-KovVlad
Copy link

попробовал выключать/выключать свет по этому сценарию
все работает, но после собственно включения света колонка отрабатывает стартовую фразу еще раз
приходится каждый раз слушать Nelly Furtado "Turn on the light" ((
нет идей, как такое поведение победить?

@a-x-
Copy link

a-x- commented Feb 12, 2024

Откуда берется «Тест. Часть 1»??? В title разве не должно быть что-то про медитацию?

и если жена включит медитацию то все пойдет не по плану

вы где-то в другом месте предлагаю гораздо лучше вариант: «измени громкость на 0» кажется и добавлять всякую пунктуацию сколько угодно раз без ограничения 3 вариантами

@a-x-
Copy link

a-x- commented Feb 12, 2024

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

@a-x-
Copy link

a-x- commented Feb 12, 2024

Мне больше интересно можно ли перехватывать что-то с колонки, любые запросы, ответы

это очень важно и нужно

Например на добавление в список покупок автоматически вызывать синхронизацию. Что за бред вызывать ее вручную…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment