Simplify default speaker volume settings

#238
This commit is contained in:
2025-04-19 14:30:41 -04:00
parent 7d6d72c6ef
commit 0d42142a07
2 changed files with 144 additions and 181 deletions

View File

@ -530,127 +530,126 @@
- id: '1667341156218'
alias: White Noise
description: ''
trigger:
- platform: state
entity_id:
triggers:
- entity_id:
- input_boolean.white_noise_emma_bedroom
to: 'on'
from: 'off'
id: emma-on
alias: Emma On
- platform: state
entity_id:
trigger: state
- entity_id:
- input_boolean.white_noise_basement
to: 'on'
from: 'off'
id: basement-on
alias: Basement On
- platform: state
entity_id:
trigger: state
- entity_id:
- input_boolean.white_noise_kallen_bedroom
to: 'on'
from: 'off'
id: kallen-on
alias: Kallen On
- platform: state
entity_id:
trigger: state
- entity_id:
- input_boolean.white_noise_emma_bedroom
from: 'on'
to: 'off'
id: emma-off
alias: Emma Off
- platform: state
entity_id:
trigger: state
- entity_id:
- input_boolean.white_noise_basement
from: 'on'
to: 'off'
id: basement-off
alias: Basement Off
- platform: state
entity_id:
trigger: state
- entity_id:
- input_boolean.white_noise_kallen_bedroom
from: 'on'
to: 'off'
id: kallen-off
alias: Kallen Off
trigger: state
- alias: Emma Timeout
platform: state
id: emma-timeout
entity_id:
- media_player.emma_bedroom_google_speaker
to: 'off'
trigger: state
- alias: Basement Timeout
platform: state
id: basement-timeout
entity_id:
- media_player.basement_google_speaker
to: 'off'
trigger: state
- alias: Kallen Timeout
platform: state
id: kallen-timeout
entity_id:
- media_player.kallen_bedroom_google_speaker
to: 'off'
condition: []
action:
trigger: state
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id: emma-on
sequence:
- alias: Start river sounds
service: google_assistant_sdk.send_text_command
data:
command: give me river noise on emma bedroom speaker
- service: media_player.volume_set
data:
volume_level: '{{ states(''input_number.emma_bedroom_google_speaker_night_volume'')
action: google_assistant_sdk.send_text_command
- data:
volume_level: '{{ states(''sensor.emma_bedroom_google_speaker_volume'')
}}'
target:
entity_id: media_player.emma_bedroom_google_speaker
alias: Set volume
action: media_player.volume_set
alias: Emma On
- conditions:
- condition: trigger
id: basement-on
sequence:
- service: google_assistant_sdk.send_text_command
data:
- data:
command: give me thunderstorm sounds on basement studio speaker
alias: Start thunderstorm sounds
- service: media_player.volume_set
data:
volume_level: '{{ states(''input_number.basement_google_speaker_night_volume'')
}}'
action: google_assistant_sdk.send_text_command
- data:
volume_level: '{{ states(''sensor.basement_google_speaker_volume'') }}'
target:
entity_id: media_player.basement_google_speaker
alias: Set volume
action: media_player.volume_set
alias: Basement On
- conditions:
- condition: trigger
id: kallen-on
sequence:
- alias: Start river sounds
service: google_assistant_sdk.send_text_command
data:
command: give me river noise on kallen bedroom speaker
- service: media_player.volume_set
data:
volume_level: '{{ states(''input_number.kallen_bedroom_google_speaker_night_volume'')
action: google_assistant_sdk.send_text_command
- data:
volume_level: '{{ states(''sensor.kallen_bedroom_google_speaker_volume'')
}}'
target:
entity_id: media_player.kallen_bedroom_google_speaker
alias: Set volume
action: media_player.volume_set
alias: Kallen On
- conditions:
- condition: trigger
id: emma-off
sequence:
- service: media_player.turn_off
data: {}
- data: {}
target:
entity_id: media_player.emma_bedroom_google_speaker
alias: Turn off speaker
action: media_player.turn_off
- alias: If Emma is awake, reset volume
if:
- condition: state
@ -662,49 +661,44 @@
minutes: 0
seconds: 5
milliseconds: 0
- service: media_player.volume_set
data:
volume_level: "{% if is_state('input_boolean.give_me_darkness','on') %}\n
\ {{ states('input_number.emma_bedroom_google_speaker_night_volume')
}}\n{% else %}\n {{ states('input_number.emma_bedroom_google_speaker_day_volume')
}}\n{% endif %}\n"
- data:
volume_level: '{{ states(''sensor.emma_bedroom_google_speaker_volume'')
}}'
target:
entity_id: media_player.emma_bedroom_google_speaker
alias: Reset volume
action: media_player.volume_set
alias: Emma Off
- conditions:
- condition: trigger
id: basement-off
sequence:
- service: media_player.turn_off
data: {}
- data: {}
target:
entity_id: media_player.basement_google_speaker
alias: Turn off speaker
action: media_player.turn_off
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- service: media_player.volume_set
data:
volume_level: "{% if is_state('input_boolean.give_me_darkness','on') %}\n
{{ states('input_number.basement_google_speaker_night_volume') }}\n{%
else %}\n {{ states('input_number.basement_google_speaker_day_volume')
}}\n{% endif %}\n"
- data:
volume_level: '{{ states(''sensor.basement_google_speaker_volume'') }}'
target:
entity_id: media_player.basement_google_speaker
alias: Reset volume
action: media_player.volume_set
alias: Basement Off
- conditions:
- condition: trigger
id: kallen-off
sequence:
- service: media_player.turn_off
data: {}
- data: {}
target:
entity_id: media_player.kallen_bedroom_google_speaker
alias: Turn off speaker
action: media_player.turn_off
- alias: If Kallen is awake, reset volume
if:
- condition: and
@ -721,15 +715,13 @@
minutes: 0
seconds: 5
milliseconds: 0
- service: media_player.volume_set
data:
volume_level: "{% if is_state('input_boolean.give_me_darkness','on') %}\n
\ {{ states('input_number.kallen_bedroom_google_speaker_night_volume')
}}\n{% else %}\n {{ states('input_number.kallen_bedroom_google_speaker_day_volume')
}}\n{% endif %}\n"
- data:
volume_level: '{{ states(''sensor.kallen_bedroom_google_speaker_volume'')
}}'
target:
entity_id: media_player.kallen_bedroom_google_speaker
alias: Reset volume
action: media_player.volume_set
alias: Kallen Off
- conditions:
- condition: trigger
@ -749,16 +741,16 @@
seconds: 5
milliseconds: 0
- alias: Start river sounds
service: google_assistant_sdk.send_text_command
data:
command: give me river noise on emma bedroom speaker
- service: media_player.volume_set
data:
volume_level: '{{ states(''input_number.emma_bedroom_google_speaker_night_volume'')
action: google_assistant_sdk.send_text_command
- data:
volume_level: '{{ states(''sensor.emma_bedroom_google_speaker_volume'')
}}'
target:
entity_id: media_player.emma_bedroom_google_speaker
alias: Set volume
action: media_player.volume_set
alias: Emma Timeout
- conditions:
- condition: trigger
@ -778,16 +770,15 @@
seconds: 5
milliseconds: 0
- alias: Start thunderstorm sounds
service: google_assistant_sdk.send_text_command
data:
command: give me thunderstorm sounds on basement studio speaker
- service: media_player.volume_set
data:
volume_level: '{{ states(''input_number.basement_google_speaker_night_volume'')
}}'
action: google_assistant_sdk.send_text_command
- data:
volume_level: '{{ states(''sensor.basement_google_speaker_volume'') }}'
target:
entity_id: media_player.basement_google_speaker
alias: Set volume
action: media_player.volume_set
alias: Basement Timeout
- conditions:
- condition: trigger
@ -807,16 +798,16 @@
seconds: 5
milliseconds: 0
- alias: Start river sounds
service: google_assistant_sdk.send_text_command
data:
command: give me river noise on kallen bedroom speaker
- service: media_player.volume_set
data:
volume_level: '{{ states(''input_number.kallen_bedroom_google_speaker_night_volume'')
action: google_assistant_sdk.send_text_command
- data:
volume_level: '{{ states(''sensor.kallen_bedroom_google_speaker_volume'')
}}'
target:
entity_id: media_player.kallen_bedroom_google_speaker
alias: Set volume
action: media_player.volume_set
alias: Kallen Timeout
mode: parallel
max: 20

View File

@ -198,6 +198,57 @@ input_number:
step: 0.05
icon: mdi:knob
template:
- sensor:
- name: "Basement Echo Dot Volume"
state: >
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ states('input_number.basement_echo_dot_night_volume') }}
{% else %}
{{ states('input_number.basement_echo_dot_day_volume') }}
{% endif %}
icon: mdi:volume-high
- name: "Basement Google Speaker Volume"
state: >
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ states('input_number.basement_google_speaker_night_volume') }}
{% else %}
{{ states('input_number.basement_google_speaker_day_volume') }}
{% endif %}
icon: mdi:volume-high
- name: "Living Room Echo Dot Volume"
state: >
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ states('input_number.living_room_echo_dot_night_volume') }}
{% else %}
{{ states('input_number.living_room_echo_dot_day_volume') }}
{% endif %}
icon: mdi:volume-high
- name: "Master Bedroom Echo Dot Volume"
state: >
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ states('input_number.master_bedroom_echo_dot_night_volume') }}
{% else %}
{{ states('input_number.master_bedroom_echo_dot_day_volume') }}
{% endif %}
icon: mdi:volume-high
- name: "Kallen Bedroom Google Speaker Volume"
state: >
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ states('input_number.kallen_bedroom_google_speaker_night_volume') }}
{% else %}
{{ states('input_number.kallen_bedroom_google_speaker_day_volume') }}
{% endif %}
icon: mdi:volume-high
- name: "Emma Bedroom Google Speaker Volume"
state: >
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ states('input_number.emma_bedroom_google_speaker_night_volume') }}
{% else %}
{{ states('input_number.emma_bedroom_google_speaker_day_volume') }}
{% endif %}
icon: mdi:volume-high
# Amazon Polly Sensors to see last message and location of audible notification
mqtt:
sensor:
@ -325,24 +376,14 @@ script:
- condition: template
value_template: >
{% set current = state_attr('media_player.basement_echo_dot','volume_level') | float %}
{% set night = states('input_number.basement_echo_dot_night_volume') | float %}
{% set day = states('input_number.basement_echo_dot_day_volume') | float %}
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ current != night }}
{% else %}
{{ current != day }}
{% endif %}
{% set expected = states('sensor.basement_echo_dot_volume') | float %}
{{ current != expected }}
then:
- service: media_player.volume_set
target:
entity_id: media_player.basement_echo_dot
data:
volume_level: >
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ states('input_number.basement_echo_dot_night_volume') }}
{% else %}
{{ states('input_number.basement_echo_dot_day_volume') }}
{% endif %}
volume_level: "{{ states('sensor.basement_echo_dot_volume') }}"
# Basement Google Speaker
- if:
- condition: and
@ -373,24 +414,14 @@ script:
- condition: template
value_template: >
{% set current = state_attr('media_player.basement_google_speaker','volume_level') | float %}
{% set night = states('input_number.basement_google_speaker_night_volume') | float %}
{% set day = states('input_number.basement_google_speaker_day_volume') | float %}
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ current != night }}
{% else %}
{{ current != day }}
{% endif %}
{% set expected = states('sensor.basement_google_speaker_volume') | float %}
{{ current != expected }}
then:
- service: media_player.volume_set
target:
entity_id: media_player.basement_google_speaker
data:
volume_level: >
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ states('input_number.basement_google_speaker_night_volume') }}
{% else %}
{{ states('input_number.basement_google_speaker_day_volume') }}
{% endif %}
volume_level: "{{ states('sensor.basement_google_speaker_volume') }}"
- service: media_player.volume_mute
target:
entity_id: media_player.basement_google_speaker
@ -405,24 +436,14 @@ script:
- condition: template
value_template: >
{% set current = state_attr('media_player.living_room_echo_dot','volume_level') | float %}
{% set night = states('input_number.living_room_echo_dot_night_volume') | float %}
{% set day = states('input_number.living_room_echo_dot_day_volume') | float %}
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ current != night }}
{% else %}
{{ current != day }}
{% endif %}
{% set expected = states('sensor.living_room_echo_dot_volume') | float %}
{{ current != expected }}
then:
- service: media_player.volume_set
target:
entity_id: media_player.living_room_echo_dot
data:
volume_level: >
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ states('input_number.living_room_echo_dot_night_volume') }}
{% else %}
{{ states('input_number.living_room_echo_dot_day_volume') }}
{% endif %}
volume_level: "{{ states('sensor.living_room_echo_dot_volume') }}"
# Master Bedroom Echo Dot
- if:
- condition: state
@ -435,24 +456,14 @@ script:
- condition: template
value_template: >
{% set current = state_attr('media_player.master_bedroom_echo_dot','volume_level') | float %}
{% set night = states('input_number.master_bedroom_echo_dot_night_volume') | float %}
{% set day = states('input_number.master_bedroom_echo_dot_day_volume') | float %}
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ current != night }}
{% else %}
{{ current != day }}
{% endif %}
{% set expected = states('sensor.master_bedroom_echo_dot_volume') | float %}
{{ current != expected }}
then:
- service: media_player.volume_set
target:
entity_id: media_player.master_bedroom_echo_dot
data:
volume_level: >
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ states('input_number.master_bedroom_echo_dot_night_volume') }}
{% else %}
{{ states('input_number.master_bedroom_echo_dot_day_volume') }}
{% endif %}
volume_level: "{{ states('sensor.master_bedroom_echo_dot_volume') }}"
# Kallen Bedroom Speaker
- if:
- condition: and
@ -483,24 +494,14 @@ script:
- condition: template
value_template: >
{% set current = state_attr('media_player.kallen_bedroom_google_speaker','volume_level') | float %}
{% set night = states('input_number.kallen_bedroom_google_speaker_night_volume') | float %}
{% set day = states('input_number.kallen_bedroom_google_speaker_day_volume') | float %}
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ current != night }}
{% else %}
{{ current != day }}
{% endif %}
{% set expected = states('sensor.kallen_bedroom_google_speaker_volume') | float %}
{{ current != expected }}
then:
- service: media_player.volume_set
target:
entity_id: media_player.kallen_bedroom_google_speaker
data:
volume_level: >
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ states('input_number.kallen_bedroom_google_speaker_night_volume') }}
{% else %}
{{ states('input_number.kallen_bedroom_google_speaker_day_volume') }}
{% endif %}
volume_level: "{{ states('sensor.kallen_bedroom_google_speaker_volume') }}"
- service: media_player.volume_mute
target:
entity_id: media_player.kallen_bedroom_google_speaker
@ -536,24 +537,14 @@ script:
- condition: template
value_template: >
{% set current = state_attr('media_player.emma_bedroom_google_speaker','volume_level') | float %}
{% set night = states('input_number.emma_bedroom_google_speaker_night_volume') | float %}
{% set day = states('input_number.emma_bedroom_google_speaker_day_volume') | float %}
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ current != night }}
{% else %}
{{ current != day }}
{% endif %}
{% set expected = states('sensor.emma_bedroom_google_speaker_volume') | float %}
{{ current != expected }}
then:
- service: media_player.volume_set
target:
entity_id: media_player.emma_bedroom_google_speaker
data:
volume_level: >
{% if is_state('input_boolean.give_me_darkness','on') %}
{{ states('input_number.emma_bedroom_google_speaker_night_volume') }}
{% else %}
{{ states('input_number.emma_bedroom_google_speaker_day_volume') }}
{% endif %}
volume_level: "{{ states('sensor.kallen_bedroom_google_speaker_volume') }}"
- service: media_player.volume_mute
target:
entity_id: media_player.emma_bedroom_google_speaker
@ -1326,53 +1317,34 @@ script:
media_player.basement_google_speaker
{% endif %}
volume_level: >-
{% set numbers_night = [
states.input_number.emma_bedroom_google_speaker_night_volume.state,
states.input_number.kallen_bedroom_google_speaker_night_volume.state
{% set numbers = [
states.sensor.emma_bedroom_google_speaker_volume.state,
states.sensor.kallen_bedroom_google_speaker_volume.state
] %}
{% set numbers_day = [
states.input_number.emma_bedroom_google_speaker_day_volume.state,
states.input_number.kallen_bedroom_google_speaker_day_volume.state
] %}
{% set kidsgroup_night = numbers_night | list | min | float %}
{% set kidsgroup_day = numbers_day | list | max | float %}
{% set kidsgroup = numbers | list | min | float %}
{% if type in ['critical'] %}
1.0
{% elif is_state('input_boolean.give_me_darkness','on') %}
{% if who in ['Everywhere','everywhere','kids_bedrooms','all_bedrooms'] %}
{% if is_state('input_boolean.emma_sleeping','on') and is_state('input_boolean.kallen_sleeping','off') %}
{{ states('input_number.kallen_bedroom_google_speaker_night_volume') }}
{% elif is_state('input_boolean.kallen_sleeping','on') and is_state('input_boolean.emma_sleeping','off') %}
{{ states('input_number.emma_bedroom_google_speaker_night_volume') }}
{% else %}
{{ kidsgroup_night }}
{% endif %}
{% elif who in ['kallen_bedroom','media_player.kallen_bedroom_google_speaker'] %}
{{ states('input_number.kallen_bedroom_google_speaker_night_volume') }}
{% elif who in ['emma_bedroom','media_player.emma_bedroom_google_speaker'] %}
{{ states('input_number.emma_bedroom_google_speaker_night_volume') }}
{% elif who in ['Basement Google','basement_google'] %}
{{ states('input_number.basement_google_speaker_night_volume') }}
{% else %}
0.3
{% endif %}
{% else %}
{% if who in ['Everywhere','everywhere','kids_bedrooms','all_bedrooms'] %}
{% if is_state('input_boolean.emma_sleeping','on') and is_state('input_boolean.kallen_sleeping','off') %}
{{ states('input_number.kallen_bedroom_google_speaker_day_volume') }}
{{ states('sensor.kallen_bedroom_google_speaker_volume') }}
{% elif is_state('input_boolean.kallen_sleeping','on') and is_state('input_boolean.emma_sleeping','off') %}
{{ states('input_number.emma_bedroom_google_speaker_day_volume') }}
{{ states('sensor.emma_bedroom_google_speaker_volume') }}
{% else %}
{{ kidsgroup_day }}
{{ kidsgroup }}
{% endif %}
{% elif who in ['kallen_bedroom','media_player.kallen_bedroom_google_speaker'] %}
{{ states('input_number.kallen_bedroom_google_speaker_day_volume') }}
{{ states('sensor.kallen_bedroom_google_speaker_volume') }}
{% elif who in ['emma_bedroom','media_player.emma_bedroom_google_speaker'] %}
{{ states('input_number.emma_bedroom_google_speaker_day_volume') }}
{{ states('sensor.emma_bedroom_google_speaker_volume') }}
{% elif who in ['Basement Google','basement_google'] %}
{{ states('input_number.basement_google_speaker_day_volume') }}
{{ states('sensor.basement_google_speaker_volume') }}
{% else %}
0.6
{% if is_state('input_boolean.give_me_darkness','on') %}
0.3
{% else %}
0.6
{% endif %}
{% endif %}
{% endif %}
- service: tts.amazon_polly_say