Skip to content

Instantly share code, notes, and snippets.

@AlexxIT
Last active April 25, 2023 06:06
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AlexxIT/6a3a1a5ba4c4ebe1fabbec639542d446 to your computer and use it in GitHub Desktop.
Save AlexxIT/6a3a1a5ba4c4ebe1fabbec639542d446 to your computer and use it in GitHub Desktop.
Ответ на intent с последней активной колонки
yandex_station: # мой компонент YandexStation
username: myuser
password: mypass
intents:
Расскажи шутку: # добавьте ваши фразы
yandex_smart_home: # НЕ мой компонент Yandex Smart Home
filter: # не забудьте добавить другие, важные для вас, устройства
include_entities:
- media_player.yandex_intents # этот плеер отвечает за работу `intents`
yandex_smart_home_fix: # мой фикс, чтоб YSH работал на Hass версии 0.118
input_text: # этот компонент запомнит последнюю активную станцию
last_active:
name: Активная станция
automation: # работает ТОЛЬКО на локальных колонках!!!
- trigger:
platform: state
entity_id: media_player.yandex_station # поменяйте на вашу первую станцию
attribute: alice_state
to: LISTENING
action:
service: input_text.set_value
entity_id: input_text.last_active
data:
value: media_player.yandex_station # повторите вашу первую станцию тут
- trigger:
platform: state
entity_id: media_player.yandex_station_mini # поменяйте на вашу вторую станцию
attribute: alice_state
to: LISTENING
action:
service: input_text.set_value
entity_id: input_text.last_active
data:
value: media_player.yandex_station_mini # повторите вашу вторую станцию тут
- trigger:
platform: event
event_type: yandex_intent
event_data:
text: Расскажи шутку # тут обработка вашей фразы
action:
service: media_player.play_media
data_template:
entity_id: "{{ states('input_text.last_active') }}"
media_content_id: >- # ответ меняйте под себя
{{[
"А вот и не расскажу!",
"Чего тебе надо, человек?",
"Да ну тебя, я занята"
]|random}}
media_content_type: text
@AlexxIT
Copy link
Author

AlexxIT commented Nov 22, 2020

  • Автоматизация, позволяет отвечать на intents с последней активной колонки
  • Работает ТОЛЬКО с локальными колонками (на сегодня - маленькая и большая Яндекс.Станции)

Это "костыльный", но рабочий способ. Правильным способом было бы использование Яндекс.Диалогов, но их настройка немного сложнее и к каждой фразе нужно добавлять имя навыка. Тоже "костыль", но другой :)

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