Compare commits
12 Commits
sleep-awar
...
2025.4.3
Author | SHA1 | Date | |
---|---|---|---|
713ddb9f75
|
|||
10d7ec5e03
|
|||
95ffb38b7e
|
|||
b5c295a19d
|
|||
bd9dde2455
|
|||
857870e0b1
|
|||
003fe6614d
|
|||
364c81e8b1
|
|||
0d42142a07
|
|||
7d6d72c6ef
|
|||
41228c1304
|
|||
b4f4d06d6c
|
@ -1 +1 @@
|
||||
2025.4.2
|
||||
2025.4.3
|
129
automations.yaml
129
automations.yaml
@ -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
|
||||
|
@ -32,8 +32,16 @@ frontend:
|
||||
extra_module_url:
|
||||
- /hacsfiles/hass-hue-icons/hass-hue-icons.js
|
||||
- /hacsfiles/hass-bha-icons/hass-bha-icons.js
|
||||
- /hacsfiles/material-you-utilities/material-you-utilities.min.js
|
||||
javascript_version: latest
|
||||
|
||||
panel_custom:
|
||||
- name: material-you-panel
|
||||
url_path: material-you-configuration
|
||||
sidebar_title: Material You Utilities
|
||||
sidebar_icon: mdi:material-design
|
||||
module_url: /hacsfiles/material-you-utilities/material-you-utilities.min.js
|
||||
|
||||
http:
|
||||
use_x_forwarded_for: true
|
||||
trusted_proxies:
|
||||
@ -107,6 +115,7 @@ recorder:
|
||||
- sensor.*gpu_core_load
|
||||
- sensor.portainer*
|
||||
- sensor.mosquitto*
|
||||
- sensor.*_rssi
|
||||
entities:
|
||||
- sensor.avg_ping
|
||||
- sensor.max_ping
|
||||
|
@ -32,9 +32,11 @@
|
||||
{% else %}
|
||||
{% if ' - ' in game_clock %}
|
||||
{% set clock_time, quarter = game_clock.split(' - ') %}
|
||||
with {{ clock_time ~ ' remaining in the ' ~ quarter ~ ' ' ~ period_str }}
|
||||
{% else %}
|
||||
with {{ game_clock ~ ' remaining in the ' ~ period_str }}
|
||||
{% if quarter == 'ot' %}
|
||||
with {{ clock_time ~ ' remaining in overtime' }}
|
||||
{% else %}
|
||||
with {{ clock_time ~ ' remaining in the ' ~ quarter ~ ' ' ~ period_str }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
|
@ -116,16 +116,6 @@ template:
|
||||
unique_id: 2ce31844-b115-42b8-8213-feccf24e236c
|
||||
state: "{{ state_attr('climate.master_bedroom_aircon','temperature') | float }}"
|
||||
availability: "{{ states('climate.master_bedroom_aircon') not in ['unavailable','unknown'] }}"
|
||||
- name: "Master Bedroom Eco Mode"
|
||||
unique_id: edf36e23-adcf-4506-80eb-a14f4ea2fce0
|
||||
state: "{{ is_state_attr('climate.master_bedroom_aircon','preset_mode','eco') }}"
|
||||
icon: >-
|
||||
{% if is_state_attr('climate.master_bedroom_aircon','preset_mode','eco') %}
|
||||
mdi:home-lightning-bolt
|
||||
{% else %}
|
||||
mdi:home-lightning-bolt-outline
|
||||
{% endif %}
|
||||
availability: "{{ states('climate.master_bedroom_aircon') not in ['unavailable','unknown'] }}"
|
||||
- name: "Master Bedroom Aircon Fan Mode"
|
||||
unique_id: c0e4f9ba-0c6c-4673-9a75-13f253f2f2e8
|
||||
state: "{{ state_attr('climate.master_bedroom_aircon','fan_mode') }}"
|
||||
@ -146,16 +136,6 @@ template:
|
||||
unique_id: b81152a1-d4d9-4e3e-8a78-6039de2884ad
|
||||
state: "{{ state_attr('climate.emma_bedroom_aircon','temperature') | float }}"
|
||||
availability: "{{ states('climate.emma_bedroom_aircon') not in ['unavailable','unknown'] }}"
|
||||
- name: "Emma Bedroom Eco Mode"
|
||||
unique_id: 4b6fc8fc-4152-4d8b-ad8d-80f97fcabe44
|
||||
state: "{{ is_state_attr('climate.emma_bedroom_aircon','preset_mode','eco') }}"
|
||||
icon: >-
|
||||
{% if is_state_attr('climate.emma_bedroom_aircon','preset_mode','eco') %}
|
||||
mdi:home-lightning-bolt
|
||||
{% else %}
|
||||
mdi:home-lightning-bolt-outline
|
||||
{% endif %}
|
||||
availability: "{{ states('climate.emma_bedroom_aircon') not in ['unavailable','unknown'] }}"
|
||||
- name: "Emma Bedroom Aircon Fan Mode"
|
||||
unique_id: d678eb2e-be5b-4626-913d-fc1e32941ead
|
||||
state: "{{ state_attr('climate.emma_bedroom_aircon','fan_mode') }}"
|
||||
|
@ -659,14 +659,18 @@ template:
|
||||
state: >
|
||||
{% set lights = states.light.upstairs_bathroom_lights,
|
||||
states.light.hallway_overhead,
|
||||
states.light.downstairs_bathroom_lights %}
|
||||
states.light.downstairs_bathroom_lights,
|
||||
states.light.living_room_lights,
|
||||
states.light.front_porch_light %}
|
||||
{% set issues = lights | selectattr('state','eq','unavailable') | list | count %}
|
||||
{{ issues > 0 }}
|
||||
attributes:
|
||||
issues: >
|
||||
{% set lights = states.light.upstairs_bathroom_lights,
|
||||
states.light.hallway_overhead,
|
||||
states.light.downstairs_bathroom_lights %}
|
||||
states.light.downstairs_bathroom_lights,
|
||||
states.light.living_room_lights,
|
||||
states.light.front_porch_light %}
|
||||
{% set ids = lights | selectattr('state','eq','unavailable') | map(attribute='attributes.friendly_name') | list %}
|
||||
{{ ids | join(', ') }}
|
||||
- sensor:
|
||||
|
@ -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') or is_state('binary_sensor.people_sleeping','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') or is_state('input_boolean.kallen_sleeping','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') or is_state('input_boolean.emma_sleeping','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
|
||||
|
@ -714,14 +714,19 @@ script:
|
||||
entity_id: input_select.scheduled_climate_mode_emma_bedroom
|
||||
data:
|
||||
option: >
|
||||
{% if is_state('input_boolean.emma_bedroom_aircon_installed','on') %}
|
||||
{% if (states('sensor.overnight_lowest_temperature') | int) >= (states('input_number.emma_aircon_threshold') | int) %}
|
||||
{% set low = states('sensor.overnight_lowest_temperature') | int %}
|
||||
{% set run_threshold = states('input_number.emma_bedroom_aircon_run_threshold') | int %}
|
||||
{% set mode_threshold = states('input_number.emma_bedroom_aircon_mode_threshold') | int %}
|
||||
{% if is_state('input_boolean.emma_bedroom_aircon_installed','off') %}
|
||||
N/A
|
||||
{% elif low >= run_threshold %}
|
||||
{% if low >= mode_threshold %}
|
||||
AC
|
||||
{% else %}
|
||||
White Noise
|
||||
Fan
|
||||
{% endif %}
|
||||
{% else %}
|
||||
White Noise
|
||||
N/A
|
||||
{% endif %}
|
||||
- service: input_datetime.set_datetime
|
||||
target:
|
||||
|
64
scenes.yaml
64
scenes.yaml
@ -1210,14 +1210,23 @@
|
||||
min_mireds: 153
|
||||
max_mireds: 500
|
||||
effect_list:
|
||||
- None
|
||||
- 'off'
|
||||
- candle
|
||||
- fire
|
||||
- prism
|
||||
- sparkle
|
||||
- opal
|
||||
- glisten
|
||||
- underwater
|
||||
- cosmos
|
||||
- sunbeam
|
||||
- enchant
|
||||
- sunrise
|
||||
- sunset
|
||||
supported_color_modes:
|
||||
- color_temp
|
||||
- xy
|
||||
effect: None
|
||||
effect: 'off'
|
||||
color_mode: xy
|
||||
brightness: 179
|
||||
color_temp_kelvin:
|
||||
@ -1244,14 +1253,23 @@
|
||||
min_mireds: 153
|
||||
max_mireds: 500
|
||||
effect_list:
|
||||
- None
|
||||
- 'off'
|
||||
- candle
|
||||
- fire
|
||||
- prism
|
||||
- sparkle
|
||||
- opal
|
||||
- glisten
|
||||
- underwater
|
||||
- cosmos
|
||||
- sunbeam
|
||||
- enchant
|
||||
- sunrise
|
||||
- sunset
|
||||
supported_color_modes:
|
||||
- color_temp
|
||||
- xy
|
||||
effect: None
|
||||
effect: 'off'
|
||||
color_mode: xy
|
||||
brightness: 255
|
||||
color_temp_kelvin:
|
||||
@ -1278,10 +1296,13 @@
|
||||
min_mireds: 153
|
||||
max_mireds: 500
|
||||
effect_list:
|
||||
- None
|
||||
- 'off'
|
||||
- candle
|
||||
- fire
|
||||
- prism
|
||||
- sparkle
|
||||
- opal
|
||||
- glisten
|
||||
supported_color_modes:
|
||||
- color_temp
|
||||
- xy
|
||||
@ -1342,14 +1363,23 @@
|
||||
min_mireds: 153
|
||||
max_mireds: 500
|
||||
effect_list:
|
||||
- None
|
||||
- 'off'
|
||||
- candle
|
||||
- fire
|
||||
- prism
|
||||
- sparkle
|
||||
- opal
|
||||
- glisten
|
||||
- underwater
|
||||
- cosmos
|
||||
- sunbeam
|
||||
- enchant
|
||||
- sunrise
|
||||
- sunset
|
||||
supported_color_modes:
|
||||
- color_temp
|
||||
- xy
|
||||
effect: None
|
||||
effect: 'off'
|
||||
color_mode: xy
|
||||
brightness: 255
|
||||
color_temp_kelvin:
|
||||
@ -1376,14 +1406,23 @@
|
||||
min_mireds: 153
|
||||
max_mireds: 500
|
||||
effect_list:
|
||||
- None
|
||||
- 'off'
|
||||
- candle
|
||||
- fire
|
||||
- prism
|
||||
- sparkle
|
||||
- opal
|
||||
- glisten
|
||||
- underwater
|
||||
- cosmos
|
||||
- sunbeam
|
||||
- enchant
|
||||
- sunrise
|
||||
- sunset
|
||||
supported_color_modes:
|
||||
- color_temp
|
||||
- xy
|
||||
effect: None
|
||||
effect: 'off'
|
||||
color_mode: xy
|
||||
brightness: 255
|
||||
color_temp_kelvin:
|
||||
@ -1441,14 +1480,17 @@
|
||||
min_mireds: 153
|
||||
max_mireds: 500
|
||||
effect_list:
|
||||
- None
|
||||
- 'off'
|
||||
- candle
|
||||
- fire
|
||||
- prism
|
||||
- sparkle
|
||||
- opal
|
||||
- glisten
|
||||
supported_color_modes:
|
||||
- color_temp
|
||||
- xy
|
||||
effect: None
|
||||
effect: 'off'
|
||||
color_mode: xy
|
||||
brightness: 204
|
||||
color_temp_kelvin:
|
||||
|
16
scripts.yaml
16
scripts.yaml
@ -2481,25 +2481,26 @@ kallen_morning_meds:
|
||||
kallen_night_meds:
|
||||
alias: Kallen Night Meds
|
||||
sequence:
|
||||
- service: counter.increment
|
||||
- alias: Increment night reminder counter
|
||||
metadata: {}
|
||||
data: {}
|
||||
alias: Increment night reminder counter
|
||||
- service: script.text_notify
|
||||
data:
|
||||
action: counter.increment
|
||||
target:
|
||||
entity_id: counter.kallen_night_meds_reminder_count
|
||||
- data:
|
||||
type: alert
|
||||
who: all
|
||||
message: clear_notification
|
||||
tag: kallen-night-meds
|
||||
alias: Clear previous night notification
|
||||
action: script.text_notify
|
||||
- delay:
|
||||
hours: 0
|
||||
minutes: 0
|
||||
seconds: 5
|
||||
milliseconds: 0
|
||||
- parallel:
|
||||
- service: script.text_notify
|
||||
data:
|
||||
- data:
|
||||
who: "{% if states('person.christina_stork') in ['Bob Evans','BobEvans'] %}\n
|
||||
\ tony\n{% else %}\n parents\n{% endif %}\n"
|
||||
type: alert
|
||||
@ -2512,8 +2513,8 @@ kallen_night_meds:
|
||||
- action: KALLEN_NIGHT_MEDS_SKIPPED
|
||||
title: Skip
|
||||
alias: Send to parents
|
||||
action: script.text_notify
|
||||
- alias: Send to Kallen
|
||||
service: script.text_notify
|
||||
data:
|
||||
who: kallen
|
||||
type: alert
|
||||
@ -2525,6 +2526,7 @@ kallen_night_meds:
|
||||
title: Taken
|
||||
- action: KALLEN_NIGHT_MEDS_SKIPPED
|
||||
title: Skip
|
||||
action: script.text_notify
|
||||
alias: Send text notifications
|
||||
icon: mdi:medication
|
||||
mode: restart
|
||||
|
Reference in New Issue
Block a user