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.

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

@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