-
-
Save AlexxIT/c275ee512bef01ed4d3b0aebc12caef4 to your computer and use it in GitHub Desktop.
yandex_station: | |
username: myuser | |
password: mypass | |
sensor: | |
- platform: template | |
sensors: | |
alice_state: | |
value_template: "{{ state_attr('media_player.yandex_station_mini', 'alice_state') }}" | |
script: | |
listening: | |
mode: queued | |
sequence: | |
- service: light.turn_on | |
entity_id: light.lamp1, light.lamp2 | |
data: | |
rgb_color: [36, 36, 255] | |
transition: 1 | |
- delay: '00:00:01' | |
- service: light.turn_on | |
entity_id: light.lamp1, light.lamp2 | |
data: | |
rgb_color: [103, 57, 204] | |
transition: 1 | |
- delay: '00:00:01' | |
- service: script.turn_on | |
entity_id: script.listening | |
speaking: | |
mode: queued | |
sequence: | |
- service: light.turn_on | |
entity_id: light.lamp1, light.lamp2 | |
data: | |
brightness: 100 | |
transition: 1 | |
- delay: '00:00:01' | |
- service: light.turn_on | |
entity_id: light.lamp1, light.lamp2 | |
data: | |
brightness: 255 | |
transition: 1 | |
- delay: '00:00:01' | |
- service: script.turn_on | |
entity_id: script.speaking | |
automation: | |
- trigger: | |
platform: state | |
entity_id: sensor.alice_state | |
to: LISTENING | |
action: | |
- service: script.turn_off | |
entity_id: script.speaking | |
- service: light.turn_on | |
entity_id: light.lamp1, light.lamp2 | |
data: | |
rgb_color: [103, 57, 204] | |
brightness: 255 | |
- service: script.turn_on | |
entity_id: script.listening | |
- trigger: | |
platform: state | |
entity_id: sensor.alice_state | |
to: SPEAKING | |
action: | |
- service: script.turn_off | |
entity_id: script.listening | |
- service: light.turn_on | |
entity_id: light.lamp1, light.lamp2 | |
data: | |
rgb_color: [103, 57, 204] | |
brightness: 255 | |
- service: script.turn_on | |
entity_id: script.speaking | |
- trigger: | |
platform: state | |
entity_id: sensor.alice_state | |
to: IDLE | |
action: | |
- service: script.turn_off | |
entity_id: script.listening, script.speaking | |
- service: light.turn_off | |
entity_id: light.lamp1, light.lamp2 | |
yeelight: | |
devices: | |
192.168.1.123: | |
name: lamp1 | |
use_music_mode: True | |
192.168.1.124: | |
name: lamp2 | |
use_music_mode: True |
Обложка текущей песни отображается в ХА?
Все, разобрался. Mdns надо было настроить...
Как именно вы его настроили? Может другим поможет
Точно. Вечные проблемы людей, кто не поставил себе hass.io :)
Если у вас, как у меня, HA в докере и использовать net=host
нет желания или возможности (например, он находится за reverse proxy), можно достаточно просто ретранслировать mdns через avahi-daemon
.
Вот статья, которая мне помогла. Нужно всего 3 шага:
- Установить на хосте
avahi-daemon
. - В конфиге
avahi-daemon
добавить интерфейсы, для которых будет включена ретрансляция, и включить reflector. - Перезапустить
avahi-daemon
.
После этого mdns отлично прокидывается в VLAN докера и все девайсы обнаруживаются (не только колонка).
Супер! Алиса стоит под телевизором, поэтому ничего не слышит когда он включен.
Сделал чтобы телик ставился на mute когда алиса говорит. User Experience улучшился в разы!
Спасибо!
Есть возможность поделиться кодом?
@butalex11
В configurations.yaml
:
# Телевизор на Android TV:
media_player:
- platform: androidtv
device_class: androidtv
name: TV
host: 192.168.1.72
#Yandex станция
yandex_station:
username: !secret yandex_user
password: !secret yandex_pw
tts_service_name: alice_say
#включение файлов из других дирректорий
sensor: !include_dir_merge_list includes/sensor
automation: !include_dir_merge_list includes/automation
В includes/sensor/yandex_state.yaml
:
- platform: template
sensors:
alice_state:
value_template: "{{ state_attr('media_player.yandex_station_<ваш ID>', 'alice_state') }}"
В includes/automation/tv.yaml
:
- alias: "mute when alice is listening"
initial_state: 'on'
trigger:
platform: state
entity_id: sensor.alice_state
from: IDLE
to: LISTENING
action:
service: androidtv.adb_command
data_template:
entity_id: media_player.oetv
command: 'sendevent /dev/input/event3 4 4 786658 && sendevent /dev/input/event3 1 113 1 && sendevent /dev/input/event3 0 0 0 && sendevent /dev/input/event3 4 4 786658 && sendevent /dev/input/event3 1 113 0 && sendevent /dev/input/event3 0 0 0'
- alias: "unmute when alice is not listening"
initial_state: 'on'
trigger:
platform: state
entity_id: sensor.alice_state
to: IDLE
action:
service: androidtv.adb_command
data_template:
entity_id: media_player.oetv
command: 'sendevent /dev/input/event3 4 4 786665 && sendevent /dev/input/event3 1 115 1 && sendevent /dev/input/event3 0 0 0 && sendevent /dev/input/event3 4 4 786665 && sendevent /dev/input/event3 1 115 0 && sendevent /dev/input/event3 0 0 0'
В последнем файле команда MUTE отправляется на телевизор с помощью ADB (Android Debug Bridge), т.к. у меня телевизор на Android TV.
Возможно, у вас не такой телевизор и вам нужно посылать ему MUTE каким-то другим образом (через ИК повторитель итд).
@annikovk
Спасибо, всё получилось. У меня Samsung Smart TV, в action получилось вот так:
action:
service: media_player.volume_mute
data_template:
entity_id: media_player.televizor_kukhnia
is_volume_muted: true
Единственное, что возможно лучше было бы условие добавить, включен ли телевизор в данный момент. Но и так работает :)
У меня сенсор alice_state обновляется с задержкой 5-10 секунд. Можно как-то уменьшить это время?
От чего оно зависит?
У меня сенсор alice_state обновляется с задержкой 5-10 секунд. Можно как-то уменьшить это время?
От чего оно зависит?
Убедитесь что Яндекс станция в локальном режиме работает.
У меня сенсор alice_state обновляется с задержкой 5-10 секунд. Можно как-то уменьшить это время?
От чего оно зависит?
Прошивка на всех станциях поломана на стороне Яндекса. Теперь, к сожалению, так
Да, теперь станции к сожалению отвратительно стали работать, гораздо хуже чем раньше, янедкс не на ту дорожку встали))
Ещё вопрос есть, большая станция стала при активации голосом сразу выключается не дожидаясь команды, это тоже из за прошивок или это у меня какой-то глюк?))
У меня сенсор alice_state обновляется с задержкой 5-10 секунд. Можно как-то уменьшить это время?
От чего оно зависит?Прошивка на всех станциях поломана на стороне Яндекса. Теперь, к сожалению, так
А кто-то вообще туда пробовал обращаться? и куда вообще можно обратиться. Как вариант - составить текст и всем писать, хоть бы ответ какой получить, исправят ли они это вообще когда-либо.
Задачи сторонний умных домов у них точно не в приоритете.
Станция обновилась, больше звук не выключается на телевизор, когда она слушает. Состояние всегда IDLE.
Может просто локальное подключение оборвалось и не восстановилось
Может просто локальное подключение оборвалось и не восстановилось
Да, Спасибо. Ребут HA помог
всем привет! Локальный режим работает у меня но почему то состояние всегда IDLE. Ребут ХА самой алисы не помогает. Где копать подскажите ?
@annikovk
Спасибо, всё получилось. У меня Samsung Smart TV, в action получилось вот так:action: service: media_player.volume_mute data_template: entity_id: media_player.televizor_kukhnia is_volume_muted: true
Единственное, что возможно лучше было бы условие добавить, включен ли телевизор в данный момент. Но и так работает :)
Можете написать, что и куда прописывать в HA для реализации токового?
@Aleksey2910
Я прописал в automations.yaml, работает.
Вот фрагмент:
- id: '1631776747736'
alias: mute when alice is listening
trigger:
platform: state
entity_id: sensor.alice_state
from: IDLE
to: LISTENING
action:
service: media_player.volume_mute
data_template:
entity_id: media_player.televizor
is_volume_muted: true
initial_state: 'on'
mode: single
- id: '1631777034268'
alias: unmute when alice is not listening
trigger:
- platform: state
entity_id: sensor.alice_state
to: IDLE
action:
- service: media_player.volume_mute
data_template:
entity_id: media_player.televizor
is_volume_muted: false
initial_state: 'on'
Джентльмены, хел ми плиз! Сделал mute через ИК, вот так:
- id: '1639938170789'
alias: Приглушить звук
description: ''
trigger:
- platform: state
entity_id: sensor.alice_state
from: IDLE
to: LISTENING
condition: []
action:
- service: script.1639937968824
mode: single
- id: '1639938271133'
alias: Восстановить звук
description: ''
trigger:
- platform: state
entity_id: sensor.alice_state
to: IDLE
condition: []
action:
- service: script.1639937968824
mode: single
Работает, но есть одно НО... Если отправить текс на ЯС (например у меня чайник рапортует о том, что он вскипел), она отключает звук телевизора, но не возвращает его.
Вот.
Помогите пожалуйста, не могу понять. Я хочу сделать автоматизацию при включении станции мини сработали правила. Когда выставляю атрибуты без конкретных значений, автоматизация срабатывает. Но мне необходимо, что бы срабатывало при конкретных значениях. Какие конкретные бывают значенияу атрибутов для станции мини
Supported features
Alice state
не пинайте, тока поствил хом асист супервизор. Куда вставлять этот код, станцию уже привязал к ха.
Я новый пользователь Home Assistant, правильно ли понимаю что на текущее время разбивка по файлам поменялась и нужно это учитывать?
Обложка текущей песни отображается в ХА?