Умный дом - это целый комплекс взаимосвязанных между собой устройств. В моём случае одним из его элементов является Яндекс Станция. С ее помощью я получаю голосовые уведомления, а также сам отдаю голосовые команды. Но эта статья не об этом, она о том, как комфортно слушать музыку с помощью Станции и не беспокоить при этом соседей.
В комнате, где установлена Станция, у меня довольно хорошая слышимость с соседями, да и умная колонка весьма громкая, поэтому большую часть дня я слушаю музыку на уровне громкости - 2. Но этой громкости абсолютно не хватает для голосовых уведомлений от Алисы. Если я спрошу про погоду на улице - расслышать ответ будет очень сложно. Поэтому решил автоматизировать управление громкостью этой колонки.
Ранее я уже показывал свои автоматизации по установке уровня громкости на дневное и ночное время, но этого оказалось недостаточно.
# Установка громкости на ночь
- alias: "Volume Down at night"
initial_state: true
trigger:
- platform: time
at: '21:30:00'
condition: []
action:
- service: media_player.volume_set
entity_id: media_player.yandex_station_c
data:
volume_level: 0.2
# Установка громкости на день
- alias: "Volume Down at day"
initial_state: true
trigger:
- platform: time
at: '6:30:00'
condition: []
action:
- service: media_player.volume_set
entity_id: media_player.yandex_station_main
data:
volume_level: 0.3
Для того чтобы громкость музыки устанавливалась на необходимое значение, я написал следующую автоматизацию:
# Установка громкости в соответствии с временем после проигрывания музыки
- alias: "Volume after paused"
initial_state: true
trigger:
- platform: state
entity_id: media_player.yandex_station_main
from: 'playing'
to: 'paused'
action:
- choose:
- conditions:
- condition: time
after: '06:30:00'
before: '21:30:00'
sequence:
- service: media_player.volume_set
entity_id: media_player.yandex_station_main
data:
volume_level: 0.3
- conditions:
- condition: time
after: '21:30:00'
before: '06:30:00'
sequence:
- service: media_player.volume_set
entity_id: media_player.yandex_station_main
data:
volume_level: 0.2
Таким образом при изменении статуса колонки с проигрывания на паузу громкость колонки в зависимости от времени устанавливается на необходимое значение. Но этого было мало, так как в начале проигрывания днем звук все равно был слишком громким. Поэтому я написал еще одну автоматизацию.
# Установка громкости при проигрывании музыки
- alias: "Volume after playing"
initial_state: true
trigger:
- platform: state
entity_id: media_player.yandex_station_main
from: 'paused'
to: 'playing'
action:
- service: media_player.volume_set
entity_id: media_player.yandex_station_main
data:
volume_level: 0.2
Тут все наоборот, когда колонка начинает играть - громкость устанавливается на 2. Вот теперь все идеально, музыка играет на комфортном для меня уровне, если музыка не играет - громкость уведомлений и ответов от Алисы достаточна и слышна нормально.
С проблемой я столкнулся когда попытался спросить у Алисы что-то в процессе проигрывания музыки. И она ответила очень тихо. Пришлось бороться и с этим кейсом. Вот какую автоматизацию я использовал:
# Установка громкости голоса во время проигрывания
- alias: "Volume at talk"
initial_state: true
trigger:
- platform: template
value_template: "{{ state_attr('media_player.yandex_station_main', 'alice_state') == 'SPEAKING' }}"
condition:
condition: state
entity_id: media_player.yandex_station_main
state: 'playing'
action:
- service: media_player.volume_set
entity_id: media_player.yandex_station_main
data:
volume_level: 0.3
- wait_template: "{{ state_attr('media_player.yandex_station_main', 'alice_state') == 'IDLE' }}"
- service: media_player.volume_set
entity_id: media_player.yandex_station_main
data:
volume_level: 0.2
В качестве триггера тут используется шаблон, который срабатывает в тот момент, когда Алиса будет отвечать голосом на Ваш запрос. В качестве условия срабатывания - проигрывание колонкой музыки. Действие тут состоит из двух частей - установка громкости 3, ожидания, когда Алиса прекратит говорить, и наконец возвращение громкости 2.
Система получилось не очень гибкой, можно сделать немного сложнее и конкретно запоминать установленный уровень громкости на колонки и возвращать именно его, но мне это не нужно, эксплуатация такой версии показала себя великолепно. Теперь музыка всегда включается с комфортной для меня громкостью - а если надо, я ее без проблем могу увеличить, голосовые оповещения при этом всегда слышны в комнате, даже если в данный момент играет музыка на самой колонке.
Подписывайтесь на мой канал и страницу в инстаграм @smart.home53, чтобы не пропустить новые статьи.
#умный дом #smart home #home assistant #yandex #яндекс станция #интернет вещей #iot #технологии #алиса #умная колонка