Volume control and sleep mode improvements

This commit is contained in:
2023-02-22 16:36:05 -05:00
parent 8e4654f6f3
commit b6418b54b5
4 changed files with 667 additions and 54 deletions

View File

@ -11,28 +11,30 @@
entity_id: input_boolean.vacation_mode entity_id: input_boolean.vacation_mode
state: 'off' state: 'off'
action: action:
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.audible_notifications
- service: script.max_brightness - service: script.max_brightness
data: {} data: {}
- service: notify.all_ios - service: script.text_urgent_alert
data: data:
who: all
title: Tornado Warning - TAKE COVER! title: Tornado Warning - TAKE COVER!
message: The National Weather Service has issued a Tornado Warning for our area. message: The National Weather Service has issued a Tornado Warning for our area.
Take Cover NOW!!!! Take Cover NOW!!!!
- service: notify.tv_notifications alias: CRITICAL PHONE ALERT
- service: script.tv_notify
data: data:
who: all
title: Tornado Warning - TAKE COVER! title: Tornado Warning - TAKE COVER!
message: The National Weather Service has issued a Tornado Warning for our area. message: The National Weather Service has issued a Tornado Warning for our area.
Take Cover NOW!!!! Take Cover NOW!!!!
alias: TV Alert
- service: script.speech_engine - service: script.speech_engine
data: data:
who: everywhere who: Everywhere
message: A tornado warning has been issued, please take cover immediately! A message: A tornado warning has been issued, please take cover immediately! A
tornado warning has been issued, please take cover immediately! A tornado tornado warning has been issued, please take cover immediately! A tornado
warning has been issued, please take cover immediately! warning has been issued, please take cover immediately!
type: Alert
alias: Elevated TTS alert
- delay: - delay:
hours: 0 hours: 0
minutes: 1 minutes: 1
@ -44,6 +46,21 @@
message: A tornado warning has been issued, please take cover immediately! A message: A tornado warning has been issued, please take cover immediately! A
tornado warning has been issued, please take cover immediately! A tornado tornado warning has been issued, please take cover immediately! A tornado
warning has been issued, please take cover immediately! warning has been issued, please take cover immediately!
type: critical
alias: CRITICAL TTS ALERT
- delay:
hours: 0
minutes: 1
seconds: 0
milliseconds: 0
- service: input_boolean.turn_off
data: {}
target:
entity_id:
- input_boolean.white_noise_kallen_bedroom
- input_boolean.white_noise_basement
- input_boolean.white_noise_emma_bedroom
alias: Turn off white noise
mode: single mode: single
- id: '1640916845901' - id: '1640916845901'
alias: Cast to Chromecast alias: Cast to Chromecast
@ -370,7 +387,12 @@
data: data:
topic: house/basement/server/glances topic: house/basement/server/glances
payload: restart payload: restart
qos: 0
retain: false
alias: Restart Glances via MQTT alias: Restart Glances via MQTT
- service: script.volume_reset
data: {}
alias: Reset all speaker volumes
- if: - if:
- condition: state - condition: state
entity_id: input_boolean.studio_quiet entity_id: input_boolean.studio_quiet
@ -389,7 +411,8 @@
alias: Shutdown alias: Shutdown
then: then:
- service: automation.turn_off - service: automation.turn_off
data: {} data:
stop_actions: true
target: target:
entity_id: entity_id:
- automation.family_has_arrived - automation.family_has_arrived
@ -428,6 +451,8 @@
entity_id: input_boolean.vacation_mode entity_id: input_boolean.vacation_mode
state: 'off' state: 'off'
action: action:
- service: script.volume_reset
data: {}
- service: script.max_brightness_cleanup - service: script.max_brightness_cleanup
data: {} data: {}
- service: notify.all_ios - service: notify.all_ios
@ -477,19 +502,49 @@
- input_boolean.white_noise_emma_bedroom - input_boolean.white_noise_emma_bedroom
to: 'on' to: 'on'
from: 'off' from: 'off'
id: emma id: emma-on
- platform: state - platform: state
entity_id: entity_id:
- input_boolean.white_noise_basement - input_boolean.white_noise_basement
to: 'on' to: 'on'
from: 'off' from: 'off'
id: basement id: basement-on
- platform: state - platform: state
entity_id: entity_id:
- input_boolean.white_noise_kallen_bedroom - input_boolean.white_noise_kallen_bedroom
to: 'on' to: 'on'
from: 'off' from: 'off'
id: kallen id: kallen-on
- platform: state
entity_id:
- input_boolean.white_noise_emma_bedroom
from: 'on'
to: 'off'
for:
hours: 0
minutes: 5
seconds: 0
id: emma-off
- platform: state
entity_id:
- input_boolean.white_noise_basement
from: 'on'
to: 'off'
id: basement-off
for:
hours: 0
minutes: 0
seconds: 5
- platform: state
entity_id:
- input_boolean.white_noise_kallen_bedroom
from: 'on'
to: 'off'
for:
hours: 0
minutes: 15
seconds: 0
id: kallen-off
condition: [] condition: []
action: action:
- choose: - choose:
@ -504,7 +559,8 @@
milliseconds: 0 milliseconds: 0
- service: media_player.volume_set - service: media_player.volume_set
data: data:
volume_level: 0.35 volume_level: '{{ states(''input_number.emma_bedroom_google_speaker_night_volume'')
}}'
target: target:
entity_id: media_player.emma_bedroom_speaker entity_id: media_player.emma_bedroom_speaker
- conditions: - conditions:
@ -518,7 +574,8 @@
milliseconds: 0 milliseconds: 0
- service: media_player.volume_set - service: media_player.volume_set
data: data:
volume_level: 0.5 volume_level: '{{ states(''input_number.basement_google_speaker_night_volume'')
}}'
target: target:
entity_id: media_player.basement_google_speaker entity_id: media_player.basement_google_speaker
- conditions: - conditions:
@ -532,11 +589,63 @@
milliseconds: 0 milliseconds: 0
- service: media_player.volume_set - service: media_player.volume_set
data: data:
volume_level: 0.3 volume_level: '{{ states(''input_number.kallen_bedroom_google_speaker_night_volume'')
}}'
target: target:
entity_id: media_player.kallen_bedroom_speaker entity_id: media_player.kallen_bedroom_speaker
- conditions:
- condition: trigger
id: emma-off
sequence:
- if:
- condition: state
entity_id: input_boolean.emma_sleeping
state: 'off'
then:
- 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"
target:
entity_id: media_player.emma_bedroom_speaker
- conditions:
- condition: trigger
id: basement-off
sequence:
- 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"
target:
entity_id: media_player.basement_google_speaker
- conditions:
- condition: trigger
id: kallen-off
sequence:
- if:
- condition: and
conditions:
- condition: state
entity_id: input_boolean.kallen_sleeping
state: 'off'
- condition: state
entity_id: input_boolean.kallen_morning_briefing
state: 'off'
then:
- 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"
target:
entity_id: media_player.kallen_bedroom_speaker
mode: parallel mode: parallel
max: 6 max: 10
- id: '1671584633378' - id: '1671584633378'
alias: Delivery Mode Cleanup alias: Delivery Mode Cleanup
description: '' description: ''

Submodule node-red/projects/NerdFlows updated: f0b66f6bec...3c0b1ede3a

View File

@ -122,6 +122,80 @@ input_text:
icon: mdi:text icon: mdi:text
initial: Type your title here initial: Type your title here
input_number:
basement_echo_dot_day_volume:
name: Basement Echo Dot Day Volume
min: 0
max: 1.0
step: 0.01
icon: mdi:knob
basement_echo_dot_night_volume:
name: Basement Echo Dot Night Volume
min: 0
max: 1.0
step: 0.01
icon: mdi:knob
basement_google_speaker_day_volume:
name: Basement Google Speaker Day Volume
min: 0
max: 1.0
step: 0.01
icon: mdi:knob
basement_google_speaker_night_volume:
name: Basement Google Speaker Night Volume
min: 0
max: 1.0
step: 0.01
icon: mdi:knob
living_room_echo_dot_day_volume:
name: Living Room Echo Dot Day Volume
min: 0
max: 1.0
step: 0.01
icon: mdi:knob
living_room_echo_dot_night_volume:
name: Living Room Echo Dot Night Volume
min: 0
max: 1.0
step: 0.01
icon: mdi:knob
master_bedroom_echo_dot_day_volume:
name: Master Bedroom Echo Dot Day Volume
min: 0
max: 1.0
step: 0.01
icon: mdi:knob
master_bedroom_echo_dot_night_volume:
name: Master Bedroom Echo Dot Night Volume
min: 0
max: 1.0
step: 0.01
icon: mdi:knob
emma_bedroom_google_speaker_day_volume:
name: Emma Bedroom Google Speaker Day Volume
min: 0
max: 1.0
step: 0.01
icon: mdi:knob
emma_bedroom_google_speaker_night_volume:
name: Emma Bedroom Google Speaker Night Volume
min: 0
max: 1.0
step: 0.01
icon: mdi:knob
kallen_bedroom_google_speaker_day_volume:
name: Kallen Bedroom Google Speaker Day Volume
min: 0
max: 1.0
step: 0.01
icon: mdi:knob
kallen_bedroom_google_speaker_night_volume:
name: Kallen Bedroom Google Speaker Night Volume
min: 0
max: 1.0
step: 0.01
icon: mdi:knob
# Amazon Polly Sensors to see last message and location of audible notification # Amazon Polly Sensors to see last message and location of audible notification
mqtt: mqtt:
sensor: sensor:
@ -216,8 +290,369 @@ notify:
- service: alexa_media_living_room_echo_dot - service: alexa_media_living_room_echo_dot
- service: alexa_media_basement_echo_dot - service: alexa_media_basement_echo_dot
script: # The below was the initial attempt at day/night volume handling.
# I am keeping it here in case I decide I want to use it, but for now I think I have a better solution.
# automation:
# - id: a3bfc13c-b01f-4b85-8e47-b45cd173a774
# alias: 'Speaker Volume Handling'
# mode: parallel
# max: 12
# trigger:
# - platform: state
# entity_id: input_number.basement_echo_dot_day_volume
# for:
# seconds: 1
# id: basement-echo-day
# - platform: state
# entity_id: input_number.basement_echo_dot_night_volume
# for:
# seconds: 1
# id: basement-echo-night
# - platform: state
# entity_id: input_number.basement_google_speaker_day_volume
# for:
# seconds: 1
# id: basement-google-day
# - platform: state
# entity_id: input_number.basement_google_speaker_night_volume
# for:
# seconds: 1
# id: basement-google-night
# - platform: state
# entity_id: input_number.living_room_echo_dot_day_volume
# for:
# seconds: 1
# id: living-room-echo-day
# - platform: state
# entity_id: input_number.living_room_echo_dot_night_volume
# for:
# seconds: 1
# id: living-room-echo-night
# - platform: state
# entity_id: input_number.master_bedroom_echo_dot_day_volume
# for:
# seconds: 1
# id: master-bedroom-echo-day
# - platform: state
# entity_id: input_number.master_bedroom_echo_dot_night_volume
# for:
# seconds: 1
# id: master-bedroom-echo-night
# - platform: state
# entity_id: input_number.emma_bedroom_google_speaker_day_volume
# for:
# seconds: 1
# id: emma-bedroom-google-day
# - platform: state
# entity_id: input_number.emma_bedroom_google_speaker_night_volume
# for:
# seconds: 1
# id: emma-bedroom-google-night
# - platform: state
# entity_id: input_number.kallen_bedroom_google_speaker_day_volume
# for:
# seconds: 1
# id: kallen-bedroom-google-day
# - platform: state
# entity_id: input_number.kallen_bedroom_google_speaker_night_volume
# for:
# seconds: 1
# id: kallen-bedroom-google-night
# action:
# - choose:
# - conditions:
# - condition: trigger
# id: basement-echo-day
# sequence:
# - if:
# - condition: state
# entity_id: input_boolean.give_me_darkness
# state: 'off'
# then:
# - service: media_player.volume_set
# target:
# entity_id: media_player.basement_echo_dot
# data:
# volume_level: "{{ states('input_number.basement_echo_dot_day_volume') }}"
# - conditions:
# - condition: trigger
# id: basement-echo-night
# sequence:
# - if:
# - condition: state
# entity_id: input_boolean.give_me_darkness
# state: 'on'
# then:
# - service: media_player.volume_set
# target:
# entity_id: media_player.basement_echo_dot
# data:
# volume_level: "{{ states('input_numnber.basement_echo_dot_night_volume') }}"
# - conditions:
# - condition: trigger
# id: basement-google-day
# sequence:
# - if:
# - condition: state
# entity_id: input_boolean.give_me_darkness
# state: 'off'
# then:
# - service: media_player.volume_set
# target:
# entity_id: media_player.basement_google_speaker
# data:
# volume_level: "{{ states('input_number.basement_google_speaker_day_volume') }}"
# - conditions:
# - condition: trigger
# id: basement-google-night
# sequence:
# - if:
# - condition: state
# entity_id: input_boolean.give_me_darkness
# state: 'on'
# then:
# - service: media_player.volume_set
# target:
# entity_id: media_player.basement_google_speaker
# data:
# volume_level: "{{ states('input_number.basement_google_speaker_night_volume') }}"
# - conditions:
# - condition: trigger
# id: living-room-echo-day
# sequence:
# - if:
# - condition: state
# entity_id: input_boolean.give_me_darkness
# state: 'off'
# then:
# - service: media_player.volume_set
# target:
# entity_id: media_player.living_room_echo_dot
# data:
# volume_level: "{{ states('input_number.living_room_echo_dot_day_volume') }}"
# - conditions:
# - condition: trigger
# id: living-room-echo-night
# sequence:
# - if:
# - condition: state
# entity_id: input_boolean.give_me_darkness
# state: 'on'
# then:
# - service: media_player.volume_set
# target:
# entity_id: media_player.living_room_echo_dot
# data:
# volume_level: "{{ states('input_number.living_room_echo_dot_night_volume') }}"
# - conditions:
# - condition: trigger
# id: master-bedroom-echo-day
# sequence:
# - if:
# - condition: state
# entity_id: input_boolean.give_me_darkness
# state: 'off'
# then:
# - service: media_player.volume_set
# target:
# entity_id: media_player.master_bedroom_echo_dot
# data:
# volume_level: "{{ states('input_number.master_bedroom_echo_dot_day_volume') }}"
# - conditions:
# - condition: trigger
# id: master-bedroom-echo-night
# sequence:
# - if:
# - condition: state
# entity_id: input_boolean.give_me_darkness
# state: 'on'
# then:
# - service: media_player.volume_set
# target:
# entity_id: media_player.master_bedroom_echo_dot
# data:
# volume_level: "{{ states('input_number.master_bedroom_echo_dot_night_volume') }}"
# - conditions:
# - condition: trigger
# id: emma-bedroom-google-day
# sequence:
# - if:
# - condition: and
# conditions:
# - condition: state
# entity_id: input_boolean.give_me_darkness
# state: 'off'
# - condition: state
# entity_id: input_boolean.white_noise_emma_bedroom
# state: 'off'
# - condition: state
# entity_id: input_boolean.emma_sleeping
# state: 'off'
# then:
# - service: media_player.volume_set
# target:
# entity_id: media_player.emma_bedroom_speaker
# data:
# volume_level: "{{ states('input_number.emma_bedroom_google_speaker_day_volume') }}"
# - conditions:
# - condition: trigger
# id: emma-bedroom-google-night
# sequence:
# - if:
# - condition: and
# conditions:
# - condition: state
# entity_id: input_boolean.give_me_darkness
# state: 'on'
# - condition: state
# entity_id: input_boolean.white_noise_emma_bedroom
# state: 'off'
# - condition: state
# entity_id: input_boolean.emma_sleeping
# state: 'off'
# then:
# - service: media_player.volume_set
# target:
# entity_id: media_player.emma_bedroom_speaker
# data:
# volume_level: "{{ states('input_number.emma_bedroom_google_speaker_night_volume') }}"
# - conditions:
# - condition: trigger
# id: kallen-bedroom-google-day
# sequence:
# - if:
# - condition: and
# conditions:
# - condition: state
# entity_id: input_boolean.give_me_darkness
# state: 'off'
# - condition: state
# entity_id: input_boolean.white_noise_kallen_bedroom
# state: 'off'
# - condition: state
# entity_id: input_boolean.kallen_sleeping
# state: 'off'
# then:
# - service: media_player.volume_set
# target:
# entity_id: media_player.kallen_bedroom_speaker
# data:
# volume_level: "{{ states('input_number.kallen_bedroom_google_speaker_day_volume') }}"
# - conditions:
# - condition: trigger
# id: kallen-bedroom-google-night
# sequence:
# - if:
# - condition: and
# conditions:
# - condition: state
# entity_id: input_boolean.give_me_darkness
# state: 'on'
# - condition: state
# entity_id: input_boolean.white_noise_kallen_bedroom
# state: 'off'
# - condition: state
# entity_id: input_boolean.kallen_sleeping
# state: 'off'
# then:
# - service: media_player.volume_set
# target:
# entity_id: media_player.kallen_bedroom_speaker
# data:
# volume_level: "{{ states('input_number.kallen_bedroom_google_speaker_night_volume') }}"
script:
volume_reset:
alias: 'Volume Reset'
description: 'Use this to reset volumes to day or night on each speaker, depending on the time of day'
mode: restart
sequence:
- 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 %}
- 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 %}
- 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 %}
- if:
- condition: state
entity_id: input_boolean.master_bedroom_sleeping
state: 'off'
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 %}
- if:
- condition: and
conditions:
- condition: state
entity_id: input_boolean.white_noise_kallen_bedroom
state: 'off'
- condition: state
entity_id: input_boolean.kallen_sleeping
state: 'off'
then:
- service: media_player.volume_set
target:
entity_id: media_player.kallen_bedroom_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 %}
- if:
- condition: and
conditions:
- condition: state
entity_id: input_boolean.white_noise_emma_bedroom
state: 'off'
- condition: state
entity_id: input_boolean.emma_sleeping
state: 'off'
then:
- service: media_player.volume_set
target:
entity_id: media_player.emma_bedroom_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 %}
############################################################################### ###############################################################################
# Txt Notify # Txt Notify
@ -725,6 +1160,17 @@ script:
- Justin - Justin
- Matthew - Matthew
- Salli - Salli
type:
name: 'Type'
description: 'What type of message is this? Can override some settings depending on the option selected. Alert bypasses time restrictions but respects volume settings. Critical also bypasses time restrictions, but also sets all volumes to max.'
required: false
example: 'normal, alert, critical'
selector:
select:
options:
- Normal
- Alert
- Critical
variables: variables:
voice: "{{ states('input_select.jarvis_voice') }}" voice: "{{ states('input_select.jarvis_voice') }}"
sequence: sequence:
@ -756,9 +1202,18 @@ script:
topic: 'house/polly/lastloc' topic: 'house/polly/lastloc'
payload: '{{ who }}' payload: '{{ who }}'
retain: true retain: true
- condition: state - condition: or
entity_id: input_boolean.audible_notifications conditions:
state: 'on' - condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: template
value_template: >
{% if type in ['critical','Critical','alert','Alert'] %}
true
{% else %}
false
{% endif %}
- condition: state - condition: state
entity_id: group.adults entity_id: group.adults
state: 'home' state: 'home'
@ -863,6 +1318,7 @@ script:
{{ message }} {{ message }}
{% endif %} {% endif %}
voice: '{{ voice }}' voice: '{{ voice }}'
type: '{{ type }}'
- condition: template - condition: template
value_template: > value_template: >
{% if who in ['Everywhere','everywhere','all_bedrooms','All Bedrooms','kids_bedrooms','Kids Bedrooms'] %} {% if who in ['Everywhere','everywhere','all_bedrooms','All Bedrooms','kids_bedrooms','Kids Bedrooms'] %}
@ -875,6 +1331,7 @@ script:
who: '{{ who }}' who: '{{ who }}'
message: > message: >
{{ message }} {{ message }}
type: '{{ type }}'
@ -943,6 +1400,25 @@ script:
alexa_voice: alexa_voice:
alias: 'Alexa Voice' alias: 'Alexa Voice'
sequence: sequence:
- if:
- condition: template
value_template: >
{% if type in ['critical','Critical'] %}
true
{% else %}
false
{% endif %}
then:
- service: media_player.volume_set
target:
entity_id:
- media_player.living_room_echo_dot
- media_player.basement_echo_dot
- media_player.master_bedroom_echo_dot
data:
volume_level: 1.0
- delay:
seconds: 3
- service: notify.alexa_media - service: notify.alexa_media
data: data:
message: > message: >
@ -1051,19 +1527,57 @@ script:
media_player.emma_bedroom_speaker media_player.emma_bedroom_speaker
{% elif who in ['Basement Google','basement_google'] %} {% elif who in ['Basement Google','basement_google'] %}
media_player.basement_google_speaker media_player.basement_google_speaker
{% else %}
{% if states.input_boolean.audible_notifications.state == 'on' %}
media_player.living_room_tv
{% else %}
media_player.living_room_tv
{% endif %}
{% endif %} {% endif %}
volume_level: >- volume_level: >-
{% if states.input_boolean.audible_notifications.state == 'on' %} {% set numbers_night = [
0.8 states.input_number.emma_bedroom_google_speaker_night_volume.state,
states.input_number.kallen_bedroom_google_speaker_night_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 %}
{% 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_speaker'] %}
{{ states('input_number.kallen_bedroom_google_speaker_night_volume') }}
{% elif who in ['emma_bedroom','media_player.emma_bedroom_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 %} {% else %}
0.3 0.3
{% endif %} {% 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') }}
{% 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') }}
{% else %}
{{ kidsgroup_day }}
{% endif %}
{% elif who in ['kallen_bedroom','media_player.kallen_bedroom_speaker'] %}
{{ states('input_number.kallen_bedroom_google_speaker_day_volume') }}
{% elif who in ['emma_bedroom','media_player.emma_bedroom_speaker'] %}
{{ states('input_number.emma_bedroom_google_speaker_day_volume') }}
{% elif who in ['Basement Google','basement_google'] %}
{{ states('input_number.basement_google_speaker_day_volume') }}
{% else %}
0.6
{% endif %}
{% endif %}
- service: tts.amazon_polly_say - service: tts.amazon_polly_say
data_template: data_template:
entity_id: >- entity_id: >-
@ -1081,12 +1595,6 @@ script:
media_player.emma_bedroom_speaker media_player.emma_bedroom_speaker
{% elif who in ['Basement Google','basement_google'] %} {% elif who in ['Basement Google','basement_google'] %}
media_player.basement_google_speaker media_player.basement_google_speaker
{% else %}
{% if states.input_boolean.audible_notifications.state == 'on' %}
media_player.living_room_tv
{% else %}
media_player.living_room_tv
{% endif %}
{% endif %} {% endif %}
message: >- message: >-
<speak> <speak>

View File

@ -50,6 +50,8 @@ give_me_darkness:
continue_on_timeout: true continue_on_timeout: true
timeout: timeout:
seconds: 5 seconds: 5
- service: script.volume_reset
data: {}
- service: script.evening_on_first_floor - service: script.evening_on_first_floor
data: {} data: {}
- service: script.evening_on_second_floor - service: script.evening_on_second_floor
@ -435,15 +437,9 @@ max_brightness_cleanup:
- input_text.upstairs_hallway_selected_scene - input_text.upstairs_hallway_selected_scene
mode: single mode: single
icon: mdi:broom icon: mdi:broom
freeze_cleanup: cleanup_crash:
alias: Freeze Cleanup alias: Cleanup Crash
sequence: sequence:
- service: input_boolean.turn_off
data: {}
target:
entity_id:
- input_boolean.night_mode
- input_boolean.shower_mode
- service: switch.turn_off - service: switch.turn_off
data: {} data: {}
target: target:
@ -452,6 +448,7 @@ freeze_cleanup:
- switch.basement_echo_dot_do_not_disturb_switch - switch.basement_echo_dot_do_not_disturb_switch
- switch.living_room_echo_dot_do_not_disturb_switch - switch.living_room_echo_dot_do_not_disturb_switch
- switch.master_bedroom_echo_dot_do_not_disturb_switch - switch.master_bedroom_echo_dot_do_not_disturb_switch
alias: Turn off switches
- if: - if:
- condition: time - condition: time
after: input_datetime.master_bedroom_wakeup after: input_datetime.master_bedroom_wakeup
@ -474,6 +471,7 @@ freeze_cleanup:
data: {} data: {}
target: target:
entity_id: button.master_bedroom_night_mode entity_id: button.master_bedroom_night_mode
alias: Set climate state
- if: - if:
- condition: state - condition: state
entity_id: sensor.twitch_ironnerd24 entity_id: sensor.twitch_ironnerd24
@ -488,6 +486,7 @@ freeze_cleanup:
data: {} data: {}
target: target:
entity_id: input_boolean.studio_quiet entity_id: input_boolean.studio_quiet
alias: Set studio quiet if Twitch stream is live
- if: - if:
- condition: state - condition: state
entity_id: calendar.family_tinawork entity_id: calendar.family_tinawork
@ -505,6 +504,7 @@ freeze_cleanup:
data: {} data: {}
target: target:
entity_id: input_boolean.work_today entity_id: input_boolean.work_today
alias: Set Tina Work booleans
- if: - if:
- condition: state - condition: state
entity_id: calendar.kallen_school_days entity_id: calendar.kallen_school_days
@ -528,6 +528,7 @@ freeze_cleanup:
- input_boolean.kallen_school_today - input_boolean.kallen_school_today
- input_boolean.kallen_school_today_extended - input_boolean.kallen_school_today_extended
- input_boolean.kallen_at_school - input_boolean.kallen_at_school
alias: Set Kallen School booleans
- if: - if:
- condition: time - condition: time
before: input_datetime.audible_notification_on before: input_datetime.audible_notification_on
@ -542,6 +543,7 @@ freeze_cleanup:
data: {} data: {}
target: target:
entity_id: input_boolean.audible_notifications entity_id: input_boolean.audible_notifications
alias: Set audible notifications
- service: switch.turn_on - service: switch.turn_on
data: {} data: {}
target: target:
@ -558,6 +560,7 @@ freeze_cleanup:
- switch.adaptive_lighting_emma_bedroom - switch.adaptive_lighting_emma_bedroom
- switch.adaptive_lighting_upstairs_bathroom - switch.adaptive_lighting_upstairs_bathroom
- switch.adaptive_lighting_upstairs_hallway - switch.adaptive_lighting_upstairs_hallway
alias: Turn on all adaptive lighting
- service: input_text.set_value - service: input_text.set_value
data: data:
value: Adaptive value: Adaptive
@ -575,21 +578,14 @@ freeze_cleanup:
- input_text.upstairs_bathroom_selected_scene - input_text.upstairs_bathroom_selected_scene
- input_text.upstairs_hallway_selected_scene - input_text.upstairs_hallway_selected_scene
- input_text.dining_room_lamp_selected_scene - input_text.dining_room_lamp_selected_scene
- service: media_player.volume_set alias: Reset input texts to adaptive
data: - service: script.volume_reset
volume_level: 0.6 data: {}
target: alias: Reset all speaker volumes
entity_id:
- media_player.basement_echo_dot
- media_player.living_room_echo_dot
- service: media_player.volume_set
data:
volume_level: 0.5
target:
entity_id: media_player.master_bedroom_echo_dot
- service: button.press - service: button.press
data: {} data: {}
target: target:
entity_id: button.cleanup entity_id: button.cleanup
alias: Run Node-RED cleanup flow
mode: single mode: single
icon: mdi:truck-snowflake icon: mdi:truck-snowflake