Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
1a706153a8
|
|||
95b2c8cfc5
|
|||
61b04c05c6
|
|||
41141e94df
|
|||
cc9ec0b211
|
|||
adf881a106
|
|||
6ee298a3d2
|
|||
aa6358ce19
|
|||
abe62888b2
|
|||
0cabab0462
|
|||
034cf2f972
|
|||
1d246e8018
|
|||
5cffb7208f
|
|||
a7b1a53754
|
|||
de5efd39b4
|
@ -1 +1 @@
|
|||||||
2025.5.2
|
2025.6.2
|
@ -1869,54 +1869,70 @@
|
|||||||
to: 'on'
|
to: 'on'
|
||||||
id: recliner-on
|
id: recliner-on
|
||||||
trigger: state
|
trigger: state
|
||||||
|
alias: Recliner Mode On
|
||||||
- entity_id: input_boolean.recliner_mode
|
- entity_id: input_boolean.recliner_mode
|
||||||
from: 'on'
|
from: 'on'
|
||||||
to: 'off'
|
to: 'off'
|
||||||
id: recliner-off
|
id: recliner-off
|
||||||
trigger: state
|
trigger: state
|
||||||
|
alias: Recliner Mode Off
|
||||||
conditions: []
|
conditions: []
|
||||||
actions:
|
actions:
|
||||||
- choose:
|
- alias: Routing
|
||||||
|
choose:
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: trigger
|
- condition: trigger
|
||||||
id: recliner-on
|
id: recliner-on
|
||||||
|
alias: Recliner Mode On
|
||||||
sequence:
|
sequence:
|
||||||
- target:
|
- target:
|
||||||
entity_id: input_select.basement_studio_scenes
|
entity_id: input_select.basement_studio_scenes
|
||||||
data:
|
data:
|
||||||
option: Stairwell
|
option: Stairwell
|
||||||
action: input_select.select_option
|
action: input_select.select_option
|
||||||
|
alias: Set scene to Stairwell
|
||||||
- target:
|
- target:
|
||||||
entity_id:
|
entity_id:
|
||||||
- input_boolean.white_noise_basement
|
- input_boolean.white_noise_basement
|
||||||
- input_boolean.studio_quiet
|
- input_boolean.studio_quiet
|
||||||
data: {}
|
data: {}
|
||||||
action: input_boolean.turn_on
|
action: input_boolean.turn_on
|
||||||
- if:
|
alias: Turn on white noise and Studio Quiet
|
||||||
|
- alias: Turn off TV
|
||||||
|
if:
|
||||||
- condition: template
|
- condition: template
|
||||||
value_template: "{% if is_state('media_player.basement_tv','playing') %}\n
|
value_template: "{% if is_state('media_player.basement_tv','playing') %}\n
|
||||||
\ false\n{% elif is_state('media_player.basement_tv','paused') or is_state('media_player.basement_tv','idle')
|
\ false\n{% elif is_state('media_player.basement_tv','paused') or is_state('media_player.basement_tv','idle')
|
||||||
%}\n {{ state_attr('media_player.basement_tv','app_name') in ['TV','Android
|
%}\n {{ state_attr('media_player.basement_tv','app_name') in ['TV','Android
|
||||||
TV Launcher'] }}\n{% else %}\n false\n{% endif %}\n"
|
TV Launcher'] }}\n{% else %}\n false\n{% endif %}\n"
|
||||||
|
alias: If nothing is playing
|
||||||
then:
|
then:
|
||||||
- target:
|
- target:
|
||||||
entity_id: media_player.basement_tv
|
entity_id: media_player.basement_tv
|
||||||
data: {}
|
data: {}
|
||||||
action: media_player.turn_off
|
action: media_player.turn_off
|
||||||
- if:
|
alias: Turn off TV
|
||||||
- condition: not
|
enabled: false
|
||||||
|
- alias: Turn off computer monitors
|
||||||
|
if:
|
||||||
|
- alias: If I'm not watching something
|
||||||
|
condition: not
|
||||||
conditions:
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: media_player.tony_asus
|
entity_id: media_player.tony_asus
|
||||||
state: playing
|
state: playing
|
||||||
|
alias: PC playing video or music
|
||||||
then:
|
then:
|
||||||
- target:
|
- target:
|
||||||
entity_id: script.tony_desktop_displays_off
|
entity_id: script.tony_desktop_displays_off
|
||||||
data: {}
|
data: {}
|
||||||
action: script.turn_on
|
action: script.turn_on
|
||||||
|
alias: Turn off computer monitors
|
||||||
|
enabled: false
|
||||||
- conditions:
|
- conditions:
|
||||||
- condition: trigger
|
- condition: trigger
|
||||||
id: recliner-off
|
id: recliner-off
|
||||||
|
alias: Recliner Mode Off
|
||||||
sequence:
|
sequence:
|
||||||
- data: {}
|
- data: {}
|
||||||
target:
|
target:
|
||||||
@ -2046,10 +2062,12 @@
|
|||||||
- script.tony_desktop_displays_on
|
- script.tony_desktop_displays_on
|
||||||
data: {}
|
data: {}
|
||||||
action: script.turn_on
|
action: script.turn_on
|
||||||
|
enabled: false
|
||||||
- target:
|
- target:
|
||||||
entity_id: media_player.basement_tv
|
entity_id: media_player.basement_tv
|
||||||
data: {}
|
data: {}
|
||||||
action: media_player.turn_on
|
action: media_player.turn_on
|
||||||
|
enabled: false
|
||||||
mode: restart
|
mode: restart
|
||||||
- id: '1696286540644'
|
- id: '1696286540644'
|
||||||
alias: Basement Lights Adaptive Resync
|
alias: Basement Lights Adaptive Resync
|
||||||
|
@ -825,7 +825,21 @@
|
|||||||
'ottobre',
|
'ottobre',
|
||||||
'novembre',
|
'novembre',
|
||||||
'dicembre',
|
'dicembre',
|
||||||
]
|
],
|
||||||
|
'time_of_hour':{
|
||||||
|
0: '{hour}',
|
||||||
|
1: '{hour} e un minuto',
|
||||||
|
15: '{hour} ed un quarto',
|
||||||
|
30: '{hour} e mezzo',
|
||||||
|
45: '15 minuti alle {hour}',
|
||||||
|
59: 'un minuto alle {hour}',
|
||||||
|
'past_hour': '{hour} e {minute}',
|
||||||
|
'to_hour': '{hour} meno {minute}',
|
||||||
|
},
|
||||||
|
'time_of_day':{
|
||||||
|
'midnight': 'mezzanotte',
|
||||||
|
'noon': 'mezzogiorno',
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'pt':{
|
'pt':{
|
||||||
'_language': 'Português',
|
'_language': 'Português',
|
||||||
@ -1041,7 +1055,21 @@
|
|||||||
'Październik',
|
'Październik',
|
||||||
'Listopad',
|
'Listopad',
|
||||||
'Grudzień',
|
'Grudzień',
|
||||||
]
|
],
|
||||||
|
'time_of_hour': {
|
||||||
|
0: '{hour}',
|
||||||
|
1: 'minuta po {hour}',
|
||||||
|
15: 'kwadrans po {hour}',
|
||||||
|
30: 'pół godziny po {hour}',
|
||||||
|
45: 'za kwadrans {hour}',
|
||||||
|
59: 'za minutę {hour}',
|
||||||
|
'past_hour': '{minute} po {hour}',
|
||||||
|
'to_hour': '{minute} do {hour}'
|
||||||
|
},
|
||||||
|
'time_of_day': {
|
||||||
|
'midnight': 'północ',
|
||||||
|
'noon': 'południe'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
'ru':{
|
'ru':{
|
||||||
'_language': 'Русский',
|
'_language': 'Русский',
|
||||||
@ -1779,9 +1807,9 @@
|
|||||||
{%- else %}
|
{%- else %}
|
||||||
{%- set t = translate('ago', language=language) %}
|
{%- set t = translate('ago', language=language) %}
|
||||||
{%- if '%s' in t %}
|
{%- if '%s' in t %}
|
||||||
{{ t % items }}
|
{{- t % items }}
|
||||||
{%- else %}
|
{%- else %}
|
||||||
{{- items }} {{ translate('ago', language=language) }}
|
{{- items }} {{ t }}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- else %}
|
{%- else %}
|
||||||
@ -2045,7 +2073,7 @@
|
|||||||
{%- if '%s' in t %}
|
{%- if '%s' in t %}
|
||||||
{{- t % ret }}
|
{{- t % ret }}
|
||||||
{%- else %}
|
{%- else %}
|
||||||
{{- ret }} {{ translate('ago', language=language) }}
|
{{- ret }} {{ t }}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
@ -236,7 +236,7 @@
|
|||||||
'hour': ['ч', 'час', 'часа', 'часов'],
|
'hour': ['ч', 'час', 'часа', 'часов'],
|
||||||
'minute': ['м', 'минута', 'минуты', 'минут'],
|
'minute': ['м', 'минута', 'минуты', 'минут'],
|
||||||
'second': ['с', 'секунда', 'секунды', 'секунд'],
|
'second': ['с', 'секунда', 'секунды', 'секунд'],
|
||||||
'millisecond': ['мс', 'милисекунда', 'милисекунды', 'милисекунд'],
|
'millisecond': ['мс', 'миллисекунда', 'миллисекунды', 'миллисекунд'],
|
||||||
'combine': 'и',
|
'combine': 'и',
|
||||||
'error': 'Неверная дата',
|
'error': 'Неверная дата',
|
||||||
}
|
}
|
||||||
@ -337,6 +337,22 @@
|
|||||||
'error': 'Érvénytelen dátum',
|
'error': 'Érvénytelen dátum',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'language': 'tr',
|
||||||
|
'plural_form': 'english',
|
||||||
|
'phrases': {
|
||||||
|
'year': ['yıl', 'yıl', 'yıl'],
|
||||||
|
'month': ['ay', 'ay', 'ay'],
|
||||||
|
'week': ['hf', 'hafta', 'hafta'],
|
||||||
|
'day': ['gün', 'gün', 'gün'],
|
||||||
|
'hour': ['sa', 'saat', 'saat'],
|
||||||
|
'minute': ['dk', 'dakika', 'dakika'],
|
||||||
|
'second': ['sn', 'saniye', 'saniye'],
|
||||||
|
'millisecond': ['ms', 'milisaniye', 'milisaniye'],
|
||||||
|
'combine': 've',
|
||||||
|
'error': 'Geçersiz tarih',
|
||||||
|
}
|
||||||
|
},
|
||||||
] -%}
|
] -%}
|
||||||
|
|
||||||
{# macro to convert the abbreviated input for the not_use and always_show lists to the full time part names #}
|
{# macro to convert the abbreviated input for the not_use and always_show lists to the full time part names #}
|
||||||
|
@ -27,8 +27,15 @@
|
|||||||
{% set period_str = period_str(team) %}
|
{% set period_str = period_str(team) %}
|
||||||
{% set game_clock = state_attr(team,'clock') | lower %}
|
{% set game_clock = state_attr(team,'clock') | lower %}
|
||||||
{% if state_attr(team,'league') == 'MLB' %}
|
{% if state_attr(team,'league') == 'MLB' %}
|
||||||
|
{% if 'rain delay' in game_clock %}
|
||||||
|
{# Handle cases like "Rain Delay, Top 1st" #}
|
||||||
|
{% set status, inning = game_clock.split(',', 1) %}
|
||||||
|
{% set inning_parts = inning.split(' ') %}
|
||||||
|
in a {{ status | trim }} in the {{ inning_parts[1] ~ ' of the ' ~ inning_parts[2] }} {{ period_str }}
|
||||||
|
{% else %}
|
||||||
{% set inning_parts = game_clock.split(' ') %}
|
{% set inning_parts = game_clock.split(' ') %}
|
||||||
in the {{ inning_parts[0] ~ ' of the ' ~ inning_parts[1] ~ ' ' ~ period_str }}
|
in the {{ inning_parts[0] ~ ' of the ' ~ inning_parts[1] ~ ' ' ~ period_str }}
|
||||||
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if ' - ' in game_clock %}
|
{% if ' - ' in game_clock %}
|
||||||
{% set clock_time, quarter = game_clock.split(' - ') %}
|
{% set clock_time, quarter = game_clock.split(' - ') %}
|
||||||
|
@ -19,15 +19,15 @@
|
|||||||
{% if type in ['alerts','full'] %}
|
{% if type in ['alerts','full'] %}
|
||||||
{% if is_state('input_boolean.tornado_alarm','on') %}
|
{% if is_state('input_boolean.tornado_alarm','on') %}
|
||||||
We are under a tornado warning. If you are not already in shelter, you should be. Get on it!
|
We are under a tornado warning. If you are not already in shelter, you should be. Get on it!
|
||||||
{% if state_attr('binary_sensor.tornado_warning','confirmed' == true) %}
|
{% if state_attr('binary_sensor.tornado_warning','confirmed') == true %}
|
||||||
A tornado has been confirmed in the area. Please take shelter immediately!
|
A tornado has been confirmed in the area. Please take shelter immediately!
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% elif is_state('binary_sensor.severe_thunderstorm_warning','on') %}
|
{% elif is_state('binary_sensor.severe_thunderstorm_warning','on') %}
|
||||||
We are under a severe thunderstorm warning.
|
We are under a severe thunderstorm warning.
|
||||||
{% if state_attr('binary_sensor.severe_thunderstorm_warning','tornado_possible' == true) %}
|
{% if state_attr('binary_sensor.severe_thunderstorm_warning','tornado_possible') == true %}
|
||||||
The incoming storm has the potential to produce a tornado, so please pay attention and prepare to take shelter!
|
The incoming storm has the potential to produce a tornado, so please pay attention and prepare to take shelter!
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if state_attr('binary_sensor.severe_thunderstorm_warning','considerable_destructive' == true) %}
|
{% if state_attr('binary_sensor.severe_thunderstorm_warning','considerable_destructive') == true %}
|
||||||
This storm has the potential to cause considerable damage. Please take shelter and stay safe!
|
This storm has the potential to cause considerable damage. Please take shelter and stay safe!
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% elif states('sensor.weatheralerts_active_alerts') > '0' and method != 'dashboard' %}
|
{% elif states('sensor.weatheralerts_active_alerts') > '0' and method != 'dashboard' %}
|
||||||
@ -39,9 +39,24 @@
|
|||||||
There is lightning in the area. Nearest strike is {{ ltgdist }} miles away.
|
There is lightning in the area. Nearest strike is {{ ltgdist }} miles away.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if is_state('binary_sensor.raining','on') %}
|
{% if is_state('binary_sensor.raining','on') %}
|
||||||
|
{% if states('sensor.home_tempest_cloud_sensors_precipitation_intensity') not in ['unavailable','unknown','no_rain'] %}
|
||||||
|
{% set intensity = states('sensor.home_tempest_cloud_sensors_precipitation_intensity') %}
|
||||||
|
{% if intensity == 'very_light' %}
|
||||||
|
There is currently a very light drizzle falling.
|
||||||
|
{% elif intensity == 'light' %}
|
||||||
|
There is currently light rain falling. Front porch windows should be okay, but other windows should be closed.
|
||||||
|
{% elif intensity == 'moderate' %}
|
||||||
|
It is raining pretty good outside, you should probably make sure all windows are closed.
|
||||||
|
{% elif intensity in ['heavy','very_heavy'] %}
|
||||||
|
There is heavy rain falling, please make sure all doors and windows are closed at this time.
|
||||||
|
{% elif intensity == 'extreme' %}
|
||||||
|
It is raining extremely hard outside. Make sure all doors and windows are closed, and I recommend staying inside until it calms down. Perhaps check for roof leaks as well.
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
It is currently raining. Make sure all doors and windows are closed!
|
It is currently raining. Make sure all doors and windows are closed!
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% if state_attr('weather.iron_nerd_weather_station','visibility') | int < 3 %}
|
{% if state_attr('weather.iron_nerd_weather_station','visibility') | int < 3 %}
|
||||||
Caution: Current outdoor visibility is {{ state_attr('weather.iron_nerd_weather_station','visibility') }} miles.
|
Caution: Current outdoor visibility is {{ state_attr('weather.iron_nerd_weather_station','visibility') }} miles.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -60,15 +75,15 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% if is_state('input_boolean.tornado_alarm','on') %}
|
{% if is_state('input_boolean.tornado_alarm','on') %}
|
||||||
"We are under a tornado warning. If you are not already in shelter, you should be. Get on it! "
|
"We are under a tornado warning. If you are not already in shelter, you should be. Get on it! "
|
||||||
{% if state_attr('binary_sensor.tornado_warning','confirmed' == true) %}
|
{% if state_attr('binary_sensor.tornado_warning','confirmed') == true %}
|
||||||
"A tornado has been confirmed in the area. Please take shelter immediately! "
|
"A tornado has been confirmed in the area. Please take shelter immediately! "
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% elif is_state('binary_sensor.severe_thunderstorm_warning','on') %}
|
{% elif is_state('binary_sensor.severe_thunderstorm_warning','on') %}
|
||||||
"We are under a severe thunderstorm warning. "
|
"We are under a severe thunderstorm warning. "
|
||||||
{% if state_attr('binary_sensor.severe_thunderstorm_warning','tornado_possible' == true) %}
|
{% if state_attr('binary_sensor.severe_thunderstorm_warning','tornado_possible') == true %}
|
||||||
"The incoming storm has the potential to produce a tornado, so please pay attention and prepare to take shelter! "
|
"The incoming storm has the potential to produce a tornado, so please pay attention and prepare to take shelter! "
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if state_attr('binary_sensor.severe_thunderstorm_warning','considerable_destructive' == true) %}
|
{% if state_attr('binary_sensor.severe_thunderstorm_warning','considerable_destructive') == true %}
|
||||||
"This storm has the potential to cause considerable damage. Please take shelter and stay safe! "
|
"This storm has the potential to cause considerable damage. Please take shelter and stay safe! "
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% elif is_state('input_boolean.tornado_watch','on') %}
|
{% elif is_state('input_boolean.tornado_watch','on') %}
|
||||||
@ -90,6 +105,42 @@
|
|||||||
"The nearest lightning strike is {{ ltgdist }} miles away. "
|
"The nearest lightning strike is {{ ltgdist }} miles away. "
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if is_state('binary_sensor.raining','on') %}
|
{% if is_state('binary_sensor.raining','on') %}
|
||||||
|
{% if states('sensor.home_tempest_cloud_sensors_precipitation_intensity') not in ['unavailable','unknown','no_rain'] %}
|
||||||
|
{% set intensity = states('sensor.home_tempest_cloud_sensors_precipitation_intensity') %}
|
||||||
|
{% if intensity == 'very_light' %}
|
||||||
|
{{ [
|
||||||
|
"There is currently a very light drizzle falling. ",
|
||||||
|
"It is drizzling outside, but it is not too bad. ",
|
||||||
|
"The sky is spitting on us. That's not very nice, but a mild inconvenience at most. "
|
||||||
|
] | random }}
|
||||||
|
{% elif intensity == 'light' %}
|
||||||
|
{{ [
|
||||||
|
"There is currently light rain falling. ",
|
||||||
|
"It is raining lightly outside, but it is not too bad. ",
|
||||||
|
"It kinda wainin outside, but just a little. "
|
||||||
|
] | random }}
|
||||||
|
"Front porch windows should be okay, but other windows should be closed. "
|
||||||
|
{% elif intensity == 'moderate' %}
|
||||||
|
{{ [
|
||||||
|
"It is raining pretty good outside, you should probably make sure all windows are closed. ",
|
||||||
|
"It is raining at a decent rate outside, please make sure all windows are closed. "
|
||||||
|
"If you look outside, you will see that it wainin. "
|
||||||
|
] | random }}
|
||||||
|
{% elif intensity in ['heavy','very_heavy'] %}
|
||||||
|
{{ [
|
||||||
|
"There is heavy rain falling, please make sure all doors and windows are closed at this time. ",
|
||||||
|
"It is raining heavily outside, please make sure all doors and windows are closed. ",
|
||||||
|
"It wainin sideways! Please make sure all doors and windows are closed. "
|
||||||
|
] | random }}
|
||||||
|
{% elif intensity == 'extreme' %}
|
||||||
|
{{ [
|
||||||
|
"It is raining extremely hard outside. ",
|
||||||
|
"There is a torrential downpour outside. ",
|
||||||
|
"Holy crap, I have never seen it rain this hard before. "
|
||||||
|
] | random }}
|
||||||
|
"Make sure all doors and windows are closed, and I recommend staying inside until it calms down. Perhaps check for roof leaks as well. "
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
{{ [
|
{{ [
|
||||||
"I have looked outside and determined that it is raining. ",
|
"I have looked outside and determined that it is raining. ",
|
||||||
"If you look outside the window, you will notice, it wainin. ",
|
"If you look outside the window, you will notice, it wainin. ",
|
||||||
@ -97,6 +148,7 @@
|
|||||||
"There appears to be excessive moisture currently falling from the sky. Plan accordingly. ",
|
"There appears to be excessive moisture currently falling from the sky. Plan accordingly. ",
|
||||||
] | random }}
|
] | random }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% if (state_attr('weather.iron_nerd_weather_station','visibility') | int ) < 3 %}
|
{% if (state_attr('weather.iron_nerd_weather_station','visibility') | int ) < 3 %}
|
||||||
{{ [
|
{{ [
|
||||||
"It is foggy outside, please exercise caution when driving. ",
|
"It is foggy outside, please exercise caution when driving. ",
|
||||||
|
@ -239,6 +239,9 @@ script:
|
|||||||
server_maintenance_annc:
|
server_maintenance_annc:
|
||||||
alias: Server Maintenance Announcement
|
alias: Server Maintenance Announcement
|
||||||
sequence:
|
sequence:
|
||||||
|
- service: input_boolean.turn_on
|
||||||
|
target:
|
||||||
|
entity_id: input_boolean.server_maintenance
|
||||||
- service: script.status_annc
|
- service: script.status_annc
|
||||||
data:
|
data:
|
||||||
who: "{{ who|default('everywhere') }}"
|
who: "{{ who|default('everywhere') }}"
|
||||||
@ -248,6 +251,9 @@ script:
|
|||||||
server_maintenance_done_annc:
|
server_maintenance_done_annc:
|
||||||
alias: Server Maintenance Done Announcement
|
alias: Server Maintenance Done Announcement
|
||||||
sequence:
|
sequence:
|
||||||
|
- service: input_boolean.turn_off
|
||||||
|
target:
|
||||||
|
entity_id: input_boolean.server_maintenance
|
||||||
- service: script.status_annc
|
- service: script.status_annc
|
||||||
data:
|
data:
|
||||||
who: "{{ who|default('everywhere') }}"
|
who: "{{ who|default('everywhere') }}"
|
||||||
|
@ -68,6 +68,7 @@ weather:
|
|||||||
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
||||||
pressure_template: >
|
pressure_template: >
|
||||||
{% set pressures = [
|
{% set pressures = [
|
||||||
|
states.sensor.home_tempest_local_slp,
|
||||||
states.sensor.home_tempest_cloud_sensors_sea_level_pressure,
|
states.sensor.home_tempest_cloud_sensors_sea_level_pressure,
|
||||||
states.sensor.home_pressure,
|
states.sensor.home_pressure,
|
||||||
states.sensor.kdfi_barometric_pressure
|
states.sensor.kdfi_barometric_pressure
|
||||||
@ -173,6 +174,7 @@ weather:
|
|||||||
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
{{ forecasts | selectattr('forecast','defined') | map(attribute='forecast') | list | first }}
|
||||||
pressure_template: >
|
pressure_template: >
|
||||||
{% set pressures = [
|
{% set pressures = [
|
||||||
|
states.sensor.home_tempest_local_slp,
|
||||||
states.sensor.home_tempest_cloud_sensors_sea_level_pressure,
|
states.sensor.home_tempest_cloud_sensors_sea_level_pressure,
|
||||||
states.sensor.home_pressure,
|
states.sensor.home_pressure,
|
||||||
states.sensor.kdfi_barometric_pressure
|
states.sensor.kdfi_barometric_pressure
|
||||||
|
@ -44,6 +44,9 @@ input_boolean:
|
|||||||
adaptive_lighting_adjustments:
|
adaptive_lighting_adjustments:
|
||||||
name: Adaptive Lighting Adjustments
|
name: Adaptive Lighting Adjustments
|
||||||
icon: mdi:knob
|
icon: mdi:knob
|
||||||
|
sunset_lights_triggered:
|
||||||
|
name: Sunset Lights Triggered
|
||||||
|
icon: mdi:weather-sunset
|
||||||
|
|
||||||
input_number:
|
input_number:
|
||||||
upstairs_bathroom_motion_off_delay:
|
upstairs_bathroom_motion_off_delay:
|
||||||
@ -215,6 +218,13 @@ input_number:
|
|||||||
mode: box
|
mode: box
|
||||||
unit_of_measurement: lx
|
unit_of_measurement: lx
|
||||||
icon: mdi:sun-wireless
|
icon: mdi:sun-wireless
|
||||||
|
sunset_lights_outdoor_lux_threshold:
|
||||||
|
name: Sunset Lights Outdoor Lux Threshold
|
||||||
|
min: 0
|
||||||
|
max: 10000
|
||||||
|
step: 100
|
||||||
|
unit_of_measurement: lx
|
||||||
|
icon: mdi:sun-wireless
|
||||||
|
|
||||||
# Settings for adaptive adjustments
|
# Settings for adaptive adjustments
|
||||||
daytime_colortemp_front_porch:
|
daytime_colortemp_front_porch:
|
||||||
|
@ -602,26 +602,16 @@ script:
|
|||||||
{% set low = states('sensor.overnight_lowest_temperature') | int %}
|
{% set low = states('sensor.overnight_lowest_temperature') | int %}
|
||||||
{% set high = states('sensor.todays_high_temp') | int %}
|
{% set high = states('sensor.todays_high_temp') | int %}
|
||||||
{% set kallen_bedtime = state_attr('input_datetime.kallen_bedtime','timestamp') | int %}
|
{% set kallen_bedtime = state_attr('input_datetime.kallen_bedtime','timestamp') | int %}
|
||||||
|
{% set kallen_fantime = state_attr('input_datetime.kallen_fan','timestamp') | int %}
|
||||||
|
{% set bedroom_hot = is_state('binary_sensor.kallen_bedroom_hot','on') %}
|
||||||
{% set cutoff = 81000 %} {# Cutoff time is 22:30 #}
|
{% set cutoff = 81000 %} {# Cutoff time is 22:30 #}
|
||||||
{% if is_state('binary_sensor.kallen_school_tomorrow','on') %}
|
{% if is_state('input_boolean.hot_day','on') or bedroom_hot == true %}
|
||||||
{% if is_state('input_boolean.hot_day','on') %}
|
{{ (kallen_fantime - 3600) | timestamp_custom('%H:%M',false) }}
|
||||||
{{ (kallen_bedtime - 3600) | timestamp_custom('%H:%M',false) }}
|
|
||||||
{% elif low >= 56 or high >= 75 %}
|
{% elif low >= 56 or high >= 75 %}
|
||||||
{{ (kallen_bedtime - 1800) | timestamp_custom('%H:%M',false) }}
|
{{ (kallen_bedtime - 1800) | timestamp_custom('%H:%M',false) }}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ kallen_bedtime | timestamp_custom('%H:%M',false) }}
|
{{ kallen_bedtime | timestamp_custom('%H:%M',false) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% elif low > 60 or high > 74 %}
|
|
||||||
{% if kallen_bedtime < cutoff %}
|
|
||||||
{{ kallen_bedtime | timestamp_custom('%H:%M',false) }}
|
|
||||||
{% else %}
|
|
||||||
22:00
|
|
||||||
{% endif %}
|
|
||||||
{% elif 56 <= low <= 60 %}
|
|
||||||
22:30
|
|
||||||
{% else %}
|
|
||||||
00:00
|
|
||||||
{% endif %}
|
|
||||||
- service: input_datetime.set_datetime
|
- service: input_datetime.set_datetime
|
||||||
entity_id: input_datetime.master_bedroom_fan
|
entity_id: input_datetime.master_bedroom_fan
|
||||||
data:
|
data:
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
input_boolean:
|
||||||
|
server_maintenance:
|
||||||
|
name: Server Maintenance
|
||||||
|
icon: mdi:wrench-clock
|
||||||
|
|
||||||
input_select:
|
input_select:
|
||||||
log_level:
|
log_level:
|
||||||
name: Log Level
|
name: Log Level
|
||||||
|
@ -854,6 +854,12 @@ adaptive_on_first_floor:
|
|||||||
adaptive_on_second_floor:
|
adaptive_on_second_floor:
|
||||||
alias: Adaptive on Second Floor
|
alias: Adaptive on Second Floor
|
||||||
sequence:
|
sequence:
|
||||||
|
- action: switch.turn_on
|
||||||
|
metadata: {}
|
||||||
|
data: {}
|
||||||
|
target:
|
||||||
|
entity_id: switch.adaptive_lighting_stairwell
|
||||||
|
alias: Turn on adaptive lighting in stairwell
|
||||||
- if:
|
- if:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: light.hallway_overhead
|
entity_id: light.hallway_overhead
|
||||||
|
Reference in New Issue
Block a user