Overhaul presentation of general weather information
This commit is contained in:
@ -27,6 +27,20 @@ template:
|
||||
attributes:
|
||||
current_temp: "{{ states('sensor.pirateweather_temperature') | int }}"
|
||||
threshold: "{{ states('input_number.hot_day_threshold') | int }}"
|
||||
- binary_sensor:
|
||||
- name: Heat Index Threshold
|
||||
state: >
|
||||
{% set feelslike = states('sensor.pirateweather_apparent_temperature') | int %}
|
||||
{% set threshold = states('input_number.heat_index_threshold') | int %}
|
||||
{% if feelslike >= threshold %}
|
||||
true
|
||||
{% else %}
|
||||
false
|
||||
{% endif %}
|
||||
device_class: heat
|
||||
attributes:
|
||||
current_temp: "{{ states('sensor.pirateweather_apparent_temperature') | int }}"
|
||||
threshold: "{{ states('input_number.heat_index_threshold') | int }}"
|
||||
- binary_sensor:
|
||||
- name: Cold Threshold
|
||||
state: >
|
||||
@ -41,6 +55,20 @@ template:
|
||||
attributes:
|
||||
current_temp: "{{ states('sensor.pirateweather_temperature') | int }}"
|
||||
threshold: "{{ states('input_number.cold_day_threshold') | int }}"
|
||||
- binary_sensor:
|
||||
- name: Wind Chill Threshold
|
||||
state: >
|
||||
{% set feelslike = states('sensor.pirateweather_apparent_temperature') | int %}
|
||||
{% set threshold = states('input_number.wind_chill_threshold') | int %}
|
||||
{% if feelslike <= threshold %}
|
||||
true
|
||||
{% else %}
|
||||
false
|
||||
{% endif %}
|
||||
device_class: cold
|
||||
attributes:
|
||||
current_temp: "{{ states('sensor.pirateweather_temperature') | int }}"
|
||||
threshold: "{{ states('input_number.wind_chill_threshold') | int }}"
|
||||
|
||||
sensor:
|
||||
- platform: weatheralerts
|
||||
@ -492,8 +520,7 @@ sensor:
|
||||
'Rainfall accumulations ',
|
||||
'Total Rainfall amounts '
|
||||
] | random }}
|
||||
near {{ state_attr('sensor.current_forecast','precipitation') }} inches
|
||||
possible.
|
||||
near {{ state_attr('sensor.current_forecast','precipitation') }} inches possible.
|
||||
{%- elif states('sensor.current_forecast') == 'snowy' %}
|
||||
{{ [
|
||||
'with snow. ',
|
||||
@ -510,8 +537,7 @@ sensor:
|
||||
'with mix preciptation possible. ',
|
||||
'with snow and rain showers. '
|
||||
] | random }}
|
||||
Total accumulation near {{ state_attr('sensor.current_forecast','precipitation') }} inches
|
||||
possible.
|
||||
Total accumulation near {{ state_attr('sensor.current_forecast','precipitation') }} inches possible.
|
||||
{%- elif states('sensor.current_forecast') == 'windy' %}
|
||||
{{ [
|
||||
'and windy. ',
|
||||
@ -690,10 +716,12 @@ sensor:
|
||||
{% else %}
|
||||
It is going to be {{ states('sensor.clothing_forecast') }} today so I suggest wearing shorts.
|
||||
{% endif %}
|
||||
{% set high = state_attr('sensor.current_forecast','high_temp') %}
|
||||
{% if high > 85 %}
|
||||
{% if is_state('input_boolean.hot_day','on') %}
|
||||
Warning, today will be a very sweaty day, so please remember to stay hydrated!
|
||||
{% endif %}
|
||||
{% if is_state('input_boolean.cold_day','on') %}
|
||||
Warning, today will be excessively cold, please make sure all exposed skin is covered to avoid frostbite!
|
||||
{% endif %}
|
||||
{% else %}
|
||||
Based on the current temperature,
|
||||
{% if is_state('sensor.clothing_forecast', 'Freezing') %}
|
||||
@ -753,13 +781,15 @@ sensor:
|
||||
{% else %}
|
||||
It is {{ states('sensor.clothing_forecast') }} right now so I suggest wearing shorts.
|
||||
{% endif %}
|
||||
{% set heatindex = states('sensor.pirateweather_apparent_temperature') | float | round %}
|
||||
{% if heatindex > 90 %}
|
||||
Warning, the heat index is {{ heatindex }} degrees right now, which is very high. So please make sure to stay hydrated!
|
||||
{% if is_state('binary_sensor.heat_index_threshold','on') %}
|
||||
Warning, the heat index is {{ states('sensor.pirateweather_apparent_temperature') | float | round }} degrees right now, which is very high. So please make sure to stay hydrated!
|
||||
{% endif %}
|
||||
{% if is_state('binary_sensor.wind_chill_threshold','on') %}
|
||||
Warning, it currently feels like {{ states('sensor.pirateweather_apparent_temperature') | float | round }} degrees outside, so please make sure all exposed skin is covered to avoid frostbite!
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if states('sensor.thermal_comfort_simmerindex') in ['extremely_warm','danger_of_heatstroke','extreme_danger_of_heatstroke','circulatory_collapse_imminent'] %}
|
||||
"To reiterate, it is dangerously hot outside! "
|
||||
"To reiterate, the current weather is dangerously hot! "
|
||||
{% endif %}
|
||||
{% if is_state('sensor.thermal_comfort_perception','somewhat_uncomfortable') %}
|
||||
"The humidity is somewhat uncomfortable outside."
|
||||
|
@ -22,38 +22,7 @@
|
||||
{% endif %}
|
||||
|
||||
<p>
|
||||
The weather in Defiance is {{ state_attr('weather.iron_nerd_weather_station','temperature') | round }} degrees
|
||||
{% if is_state('weather.iron_nerd_weather_station','rainy') %}
|
||||
{{ [
|
||||
'with rain.',
|
||||
'with showers.'
|
||||
] | random }}
|
||||
{% elif is_state('weather.iron_nerd_weather_station','cloudy') %}
|
||||
{{ [
|
||||
'with clouds.',
|
||||
'with cloudy skies.'
|
||||
] | random }}
|
||||
{% elif is_state('weather.iron_nerd_weather_station','partlycloudy') %}
|
||||
{{ [
|
||||
'with some clouds.',
|
||||
'with partly cloudy skies.',
|
||||
'with scattered clouds.'
|
||||
] | random }}
|
||||
{% elif is_state('weather.iron_nerd_weather_station','sunny') %}
|
||||
{% if is_state('sun.sun','above_horizon') %}
|
||||
{{ [
|
||||
'and sunny.',
|
||||
'with sun.'
|
||||
] | random }}
|
||||
{% else %}
|
||||
{{ [
|
||||
'and clear.',
|
||||
'with clear skies.'
|
||||
] | random }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
and {{ states.weather.iron_nerd_weather_station.state }}
|
||||
{% endif %}
|
||||
{{ states('sensor.current_conditions_detail') }}
|
||||
|
||||
{% if states('sensor.weatheralerts_active_alerts') > '0' %}
|
||||
"Currently there are weather alerts active. The total number of alerts is {{ states('sensor.weatheralerts_active_alerts') }}. They are as follows. "
|
||||
@ -75,6 +44,24 @@
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{{ [
|
||||
'The weather for the rest of today should be,',
|
||||
'The forecast for the rest of the day is,',
|
||||
'Through the rest of your day, the weather is expected to be,'
|
||||
] | random }}
|
||||
{{ states.sensor.current_forecast.state }}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{{ [
|
||||
'Just in case you were planning on going anywhere,',
|
||||
'On the off chance that you planned to go outside,',
|
||||
'If you were planning to go out and do something with your life,',
|
||||
] | random }}
|
||||
{{ states('sensor.clothing_forecast_detail') }}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{% if is_state('sun.sun','below_horizon') %}
|
||||
You have
|
||||
|
@ -20,56 +20,8 @@
|
||||
</p>
|
||||
|
||||
<p>
|
||||
{% if is_state('sensor.clothing_forecast', 'Freezing') %}
|
||||
It is going to be freezing today. so I suggest wearing long pants and a heavy coat.
|
||||
{% elif is_state('sensor.clothing_forecast','Cold') %}
|
||||
It is going to be cold today. so I suggest wearing long pants and a light jacket.
|
||||
{% elif is_state('sensor.clothing_forecast', 'Chilly') %}
|
||||
It is going to be chilly today. so I suggest wearing at least long pants.
|
||||
{% elif is_state('sensor.clothing_forecast', 'Nice') %}
|
||||
It is going to be
|
||||
{{ [ 'pretty nice outside. ',
|
||||
'a good day to be outside. ',
|
||||
'rather enjoyable outside. ',
|
||||
] | random }}
|
||||
So I suggest wearing shorts.
|
||||
{% elif is_state('sensor.clothing_forecast', 'Toasty') and is_state('sensor.current_forecast','sunny') %}
|
||||
It is going to be
|
||||
{{ [ ' rather warm outside. ',
|
||||
' almost too hot outside. ',
|
||||
' a little warm today. ',
|
||||
] | random }}
|
||||
and very sunny, so I suggest wearing shorts and maybe some sunscreen.
|
||||
{% elif is_state('sensor.clothing_forecast', 'Hot') and is_state('sensor.current_forecast','sunny') %}
|
||||
It is going to be
|
||||
{{ [ 'hotter than the sun today. ',
|
||||
'hotter than the sun outside. ',
|
||||
'super hot today. ',
|
||||
'hotter than the inside of a volcano today. Well not exactly, but you get the point. '
|
||||
] | random }}
|
||||
and very sunny, so I suggest wearing shorts and maybe some sunscreen.
|
||||
{% elif is_state('sensor.clothing_forecast', 'Toasty') %}
|
||||
It is going to be
|
||||
{{ [ ' rather warm outside. ',
|
||||
' almost too hot outside. ',
|
||||
' a little warm today. ',
|
||||
] | random }}
|
||||
So I suggest wearing shorts.
|
||||
{% elif is_state('sensor.clothing_forecast', 'Hot') %}
|
||||
It is going to be
|
||||
{{ [ 'hotter than the sun today. ',
|
||||
'hotter than the sun outside. ',
|
||||
'super hot today. ',
|
||||
'hotter than the inside of a volcano today. Well not exactly, but you get the point. '
|
||||
] | random }}
|
||||
So I suggest wearing shorts.
|
||||
{% else %}
|
||||
It is going to be {{ states.sensor.clothing_forecast.state }} today so I suggest wearing shorts.
|
||||
{% endif %}
|
||||
{% set hightemp = state_attr('sensor.current_forecast','high_temp') | float %}
|
||||
{% if hightemp > 84 %}
|
||||
Warning, today will be a very sweaty day, so you need to remember to stay hydrated.
|
||||
{% endif %}
|
||||
Today the high temperature will be {{ state_attr('sensor.current_forecast','high_temp') }} degrees.
|
||||
{{ states('sensor.clothing_forecast_detail') }}
|
||||
</p>
|
||||
|
||||
<p>
|
||||
|
@ -66,7 +66,10 @@
|
||||
'The rest of the day should be,',
|
||||
'Todays forecast should be ,'
|
||||
]|random }}
|
||||
{{ states.sensor.current_forecast.state }}
|
||||
{{ states('sensor.current_forecast') }}
|
||||
</p>
|
||||
<p>
|
||||
{{ states('sensor.clothing_forecast_detail') }}
|
||||
</p>
|
||||
<p>
|
||||
{% if is_state('sensor.halloween_countdown','0') %}
|
||||
|
Reference in New Issue
Block a user