home-assistant-configuration/config/packages/weather.yaml

823 lines
32 KiB
YAML
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

###############################################################################
# @author : Jeffrey Stone
# @date : 02/19/2019
# @package : Weather
# @description : Weather and NWS Alerts
# @original : https://github.com/Vasiley/Home-Assistant-Main/blob/master/packages/weather_alerts_nws.yaml
###############################################################################
homeassistant:
customize:
package.node_anchors:
customize: &customize
package: 'weather_alerts'
sensor.nws_alert_count:
friendly_name: Alerts
icon: mdi:alert-outline
# weather:
# # REMOVING darksky integration since API is EOL in 18 months. Migrated to NWS
# # - platform: darksky
# # api_key: !secret darksky_api
# - platform: nws
# api_key: !secret nws_api_key
# station: klzu
weather:
- platform: pirateweather
api_key: !secret pirate_weather_api
# Additional optional values:
#latitude: Location latitude
#longitude: Location longitude
mode: "daily"
name: Anchorage House
group:
alerts_card:
name: Alerts
entities:
- sensor.nws_alerts
input_boolean:
freeze_warning:
name: Freeze Warning
icon: mdi:snowflake-alert
weather_alert_texts:
name: Weather Alert Texts
icon: mdi:telegram
lightning_warning:
name: Lightning Warning
icon: mdi:flash-alert
tornado_alarm:
name: Tornado Alarm
icon: mdi:speaker-wireless
tstorm_alarm:
name: T-Storm Alarm
icon: mdi:speaker-wireless
raining:
name: Raining
utility_meter:
daily_rainfall_in:
source: sensor.acurite_rain899_2743_rt
cycle: daily
weekly_rainfall_in:
source: sensor.acurite_rain899_2743_rt
cycle: weekly
recent_lightning_strikes:
source: sensor.acurite_6045m_3078_strcnt
cycle: quarter-hourly
### You first need to find either your NWS Zone ID or County ID. Im not sure which is better but I used my Zone ID here.
### You can find your Zone ID by going to https://alerts.weather.gov/ 7, scroll down to your state and click on the “zone list” then look for the entry for your county.
### I recommond useing both
#Ive taken much of the underlying work here and created a custom component for nws alerts sensor.
#The sensor can be created by adding the nws_alerts.py file to <config_directory>/custom_components/sensor/ and adding the following to your sensor definitions:
sensor:
# - platform: nws_alerts
# zone_id: 'GAZ034,GAC135'
- platform: weatheralerts
state: GA
zone: 34
county: 135
- platform: pirateweather
api_key: !secret pirate_weather_api
scan_interval: '00:15:00'
monitored_conditions:
- temperature
- precip_probability
- precip_type
- humidity
- cloud_cover
- nearest_storm_distance
- precip_intensity
- wind_speed
- platform: statistics
name: Inside Humidity Stats
entity_id: sensor.current_inside_humidity
state_characteristic: mean
sampling_size: 500
- platform: template
sensors:
current_forecast:
friendly_name: Current Forecast
unit_of_measurement: ''
icon_template: mdi:weather-sunny
value_template: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[0] %}
{{ forecast.condition }}
attribute_templates:
high_temp: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[0] %}
{{ forecast.temperature }}
overnight_low: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[1] %}
{{ forecast.templow }}
wind_bearing: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[0] %}
{{ forecast.wind_bearing }}
wind_speed: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[0] %}
{{ forecast.wind_speed }}
precipitation: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[0] %}
{{ forecast.precipitation }}
current_forecast_detail:
friendly_name: Current Forecast Detail
unit_of_measurement: ''
icon_template: mdi:weather-sunny
value_template: >-
{%- macro getReport() -%}
{{ [
'Today in Grayson ',
'Later Today ',
'For the rest of the day'
] | random }}
expect a high of {{ state_attr('sensor.current_forecast','high_temp') }}
{%- if states('sensor.current_forecast') == 'sunny' and is_state('binary_sensor.night','off')%}
{{ [
'and sunny.',
'with sun.',
'with sunny conditions prevailing.'
] | random }}
{%- elif states('sensor.current_forecast') == 'sunny' and is_state('binary_sensor.night','on') %}
{{ [
'and clear.',
'with clear skies.'
] | random }}
{%- elif states('sensor.current_forecast') == 'clear-night' %}
{{ [
'and clear.',
'with clear skies.'
] | random }}
{%- elif states('sensor.current_forecast') == 'rainy' %}
{{ [
'with rain.',
'with showers.',
'and rainy.'
] | random }}
{{ [
'Rainfall accumulations ',
'Total Rainfall amounts '
] | random }}
near {{ state_attr('sensor.current_forecast','precipitation') }} inches
possible.
{%- elif states('sensor.current_forecast') == 'snowy' %}
{{ [
'with snow.',
'with snow showers.'
] | random }}
{{ [
'Snowfall accumulations ',
'Total snowfall amounts '
] | random }}
near {{ state_attr('sensor.current_forecast','precipitation') }} inches
possible.
{%- elif states('sensor.current_forecast') == 'snowy-rainy' %}
{{ [
'with mix preciptation possible.',
'with snow and rain showers.'
] | random }}
Total accumulation near {{ state_attr('sensor.current_forecast','precipitation') }} inches
possible.
{%- elif states('sensor.current_forecast') == 'windy' %}
{{ [
'and windy.',
'with lots of wind.'
] | random }}
{%- elif states('sensor.current_forecast') == 'fog' %}
{{ [
'and foggy.',
'with some fog.'
] | random }}
{% elif states('sensor.current_forecast') == 'cloudy' %}
{{ [
'with clouds.',
'with cloudy skies.'
] | random }}
{% elif states('sensor.current_forecast') == 'partlycloudy' %}
{{ [
'with some clouds.',
'with partly cloudy skies.',
'with scattered clouds'
] | random }}
{%- elif states('sensor.current_forecast') == 'hail' %}
{{ [
'with severve thunderstorms possible.',
'with hail possible.'
] | random }}
{{ [
'Rainfall accumulations ',
'Total Rainfall amounts '
] | random }}
near {{ state_attr('sensor.current_forecast','precipitation') }} inches
possible.
{%- elif states('sensor.current_forecast') == 'lightning' %}
{{ [
'with thunderstorms possible.',
'with the potential of thunderstorms.'
] | random }}
{{ [
'Rainfall accumulations ',
'Total Rainfall amounts '
] | random }}
near {{ state_attr('sensor.current_forecast','precipitation') }} inches
possible.
{% endif -%}
{{ [
'Later tonight expect a low of ',
'Overnight expect a low of '
] | random }}
{{ state_attr('sensor.current_forecast','overnight_low') }} degrees.
{%- endmacro -%}
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
{%- macro cleanup(data) -%}
{%- for item in data.split("\n") if item | trim != "" -%}
{{ item | trim }} {% endfor -%}
{%- endmacro -%}
{# a macro to call all macros :) #}
{%- macro mother_of_all_macros() -%}
{{ getReport() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}
tomorrow_forecast:
friendly_name: Tomorrows Forecast
unit_of_measurement: ''
icon_template: mdi:weather-sunny
value_template: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[1] %}
{{ forecast.condition }}
attribute_templates:
high_temp: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[1] %}
{{ forecast.temperature }}
overnight_low: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[2] %}
{{ forecast.templow }}
wind_bearing: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[1] %}
{{ forecast.wind_bearing }}
wind_speed: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[1] %}
{{ forecast.wind_speed }}
precipitation: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[1] %}
{{ forecast.precipitation }}
tomorrow_forecast_detail:
friendly_name: Tomorrow Forecast Detail
unit_of_measurement: ''
icon_template: mdi:weather-sunny
value_template: >-
{%- macro getReport() -%}
{{ [
'Tomorrow in Grayson ',
'For the next day ',
'Tomorrow '
] | random }}
expect a high of {{ state_attr('sensor.tomorrow_forecast','high_temp') }}
{%- if states('sensor.tomorrow_forecast') == 'sunny' %}
{{ [
'and sunny.',
'with sun.',
'with sunny conditions prevailing.'
] | random }}
{%- elif states('sensor.tomorrow_forecast') == 'rainy' %}
{{ [
'with rain.',
'with showers.',
'and rainy.'
] | random }}
{{ [
'Rainfall accumulations ',
'Total Rainfall amounts '
] | random }}
near {{ state_attr('sensor.tomorrow_forecast','precipitation') }} inches
possible.
{%- elif states('sensor.tomorrow_forecast') == 'snowy' %}
{{ [
'with snow.',
'with snow showers.'
] | random }}
{{ [
'Snowfall accumulations ',
'Total snowfall amounts '
] | random }}
near {{ state_attr('sensor.tomorrow_forecast','precipitation') }} inches
possible.
{%- elif states('sensor.tomorrow_forecast') == 'snowy-rainy' %}
{{ [
'with mix preciptation possible.',
'with snow and rain showers.'
] | random }}
Total accumulation near {{ state_attr('sensor.tomorrow_forecast','precipitation') }} inches
possible.
{%- elif states('sensor.tomorrow_forecast') == 'windy' %}
{{ [
'and windy.',
'with lots of wind.'
] | random }}
{%- elif states('sensor.current_forecast') == 'fog' %}
{{ [
'and foggy.',
'with some fog.'
] | random }}
{% elif states('sensor.tomorrow_forecast') == 'cloudy' %}
{{ [
'with clouds.',
'with cloudy skies.'
] | random }}
{% elif states('sensor.tomorrow_forecast') == 'partlycloudy' %}
{{ [
'with some clouds.',
'with partly cloudy skies.',
'with scattered clouds'
] | random }}
{%- elif states('sensor.tomorrow_forecast') == 'hail' %}
{{ [
'with severve thunderstorms possible.',
'with hail possible.'
] | random }}
{{ [
'Rainfall accumulations ',
'Total Rainfall amounts '
] | random }}
near {{ state_attr('sensor.current_forecast','precipitation') }} inches
possible.
{%- elif states('sensor.current_forecast') == 'lightning' %}
{{ [
'with thunderstorms possible.',
'with the potential of thunderstorms.'
] | random }}
{{ [
'Rainfall accumulations ',
'Total Rainfall amounts '
] | random }}
near {{ state_attr('sensor.current_forecast','precipitation') }} inches
possible.
{% endif -%}
{{ [
' Tomorrow night expect a low of '
] | random }}
{{ state_attr('sensor.tomorrow_forecast','overnight_low') }} degrees.
{%- endmacro -%}
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
{%- macro cleanup(data) -%}
{%- for item in data.split("\n") if item | trim != "" -%}
{{ item | trim }} {% endfor -%}
{%- endmacro -%}
{# a macro to call all macros :) #}
{%- macro mother_of_all_macros() -%}
{{ getReport() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}
current_conditions:
friendly_name: Current Conditions
unit_of_measurement: ''
icon_template: mdi:weather-sunny
value_template: >-
{%- macro getReport() -%}
The Weather in Grayson
{{ [
' is ',
' is currently '
] | random }}
{{states('sensor.acurite_6045m_3078_f')|round}} degrees
{% if is_state('weather.home', 'rainy') %}
{{ [
'with rain.',
'with showers.'
] | random }}
{% elif is_state('weather.home', 'cloudy') %}
{{ [
'with clouds.',
'with cloudy skies.'
] | random }}
{% elif is_state('weather.home', 'partlycloudy') %}
{{ [
'with some clouds.',
'with partly cloudy skies.',
'with scatterd clouds'
] | random }}
{% elif is_state('weather.home', '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.home.state }}
{% endif %}
{%- endmacro -%}
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
{%- macro cleanup(data) -%}
{%- for item in data.split("\n") if item | trim != "" -%}
{{ item | trim }} {% endfor -%}
{%- endmacro -%}
{# a macro to call all macros :) #}
{%- macro mother_of_all_macros() -%}
{{ getReport() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}
current_conditions_detail:
friendly_name: Current Conditions Detail
unit_of_measurement: ''
icon_template: mdi:weather-sunny
value_template: >-
{%- macro getReport() -%}
The Weather in Grayson
{{ [
' is ',
' is currently '
] | random }}
{{states('sensor.acurite_6045m_3078_f')|round}} degrees
{% if is_state('weather.home', 'rainy') %}
{{ [
'with rain.',
'with showers.'
] | random }}
{% elif is_state('weather.home', 'cloudy') %}
{{ [
'with clouds.',
'with cloudy skies.'
] | random }}
{% elif is_state('weather.home', 'partlycloudy') %}
{{ [
'with some clouds.',
'with partly cloudy skies.',
'with scatterd clouds'
] | random }}
{% elif is_state('weather.home', '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.home.state }}
{% endif %}
{%- if is_state('binary_sensor.night','off')%}
{{ [
'Later Today ',
'For the rest of the day'
] | random }}
expect a high of {{ state_attr('sensor.current_forecast','high_temp') }}
{%- if states('sensor.current_forecast') == 'sunny' and is_state('binary_sensor.night','off')%}
{{ [
'and sunny.',
'with sun.',
'with sunny conditions prevailing.'
] | random }}
{%- elif states('sensor.current_forecast') == 'sunny' and is_state('binary_sensor.night','on') %}
{{ [
'and clear.',
'with clear skies.'
] | random }}
{%- elif states('sensor.current_forecast') == 'clear-night' %}
{{ [
'and clear.',
'with clear skies.'
] | random }}
{%- elif states('sensor.current_forecast') == 'rainy' %}
{{ [
'with rain.',
'with showers.',
'and rainy.'
] | random }}
{{ [
'Rainfall accumulations ',
'Total Rainfall amounts '
] | random }}
near {{ state_attr('sensor.current_forecast','precipitation') }} inches
possible.
{%- elif states('sensor.current_forecast') == 'snowy' %}
{{ [
'with snow.',
'with snow showers.'
] | random }}
{{ [
'Snowfall accumulations ',
'Total snowfall amounts '
] | random }}
near {{ state_attr('sensor.current_forecast','precipitation') }} inches
possible.
{%- elif states('sensor.current_forecast') == 'snowy-rainy' %}
{{ [
'with mix preciptation possible.',
'with snow and rain showers.'
] | random }}
Total accumulation near {{ state_attr('sensor.current_forecast','precipitation') }} inches
possible.
{%- elif states('sensor.current_forecast') == 'windy' %}
{{ [
'and windy.',
'with lots of wind.'
] | random }}
{%- elif states('sensor.current_forecast') == 'fog' %}
{{ [
'and foggy.',
'with some fog.'
] | random }}
{% elif states('sensor.current_forecast') == 'cloudy' %}
{{ [
'with clouds.',
'with cloudy skies.'
] | random }}
{% elif states('sensor.current_forecast') == 'partlycloudy' %}
{{ [
'with some clouds.',
'with partly cloudy skies.',
'with scattered clouds'
] | random }}
{%- elif states('sensor.current_forecast') == 'hail' %}
{{ [
'with severve thunderstorms possible.',
'with hail possible.'
] | random }}
{{ [
'Rainfall accumulations ',
'Total Rainfall amounts '
] | random }}
near {{ state_attr('sensor.current_forecast','precipitation') }} inches
possible.
{%- elif states('sensor.current_forecast') == 'lightning' %}
{{ [
'with thunderstorms possible.',
'with the potential of thunderstorms.'
] | random }}
{{ [
'Rainfall accumulations ',
'Total Rainfall amounts '
] | random }}
near {{ state_attr('sensor.current_forecast','precipitation') }} inches
possible.
{% endif -%}
{{ [
'Later tonight expect a low of ',
'Overnight expect a low of '
] | random }}
{{ state_attr('sensor.current_forecast','overnight_low') }} degrees.
{%- else -%}
{{ [
'Tonight expect a low of ',
'Overnight expect a low of '
] | random }}
{{ state_attr('sensor.current_forecast','overnight_low') }} degrees.
{% endif %}
{%- endmacro -%}
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
{%- macro cleanup(data) -%}
{%- for item in data.split("\n") if item | trim != "" -%}
{{ item | trim }} {% endfor -%}
{%- endmacro -%}
{# a macro to call all macros :) #}
{%- macro mother_of_all_macros() -%}
{{ getReport() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}
outside_pressure:
friendly_name: 'outisde pressure'
value_template: '{{ state_attr(''weather.home'',''pressure'') }}'
unit_of_measurement: ''
todays_high_temp:
friendly_name: "Today's High Temp"
unit_of_measurement: ''
device_class: temperature
value_template: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[0] %}
{{ forecast.temperature }}
tonights_low_temp:
friendly_name: "Tonight's Low Temp"
unit_of_measurement: ''
device_class: temperature
value_template: >-
{% set forecast = state_attr('weather.anchorage_house','forecast')[1] %}
{{ forecast.lowtemp }}
clothing_forecast:
friendly_name: "Clothing Forecast"
unit_of_measurement: ''
value_template: >-
{% if is_state('binary_sensor.overnight', 'off') %}
{% set temp = states('sensor.todays_high_temp')|int %}
{% else %}
{% set temp = states('sensor.acurite_6045m_3078_f')|round %}
{% endif %}
{%- if states('sensor.todays_high_temp')|int > 63 %}
{%- if states('sensor.todays_high_temp')|int < 80 %}
Nice
{% elif states('sensor.todays_high_temp')|int > 95 %}
Hot
{% else %}
Toasty
{%- endif %}
{% elif states('sensor.todays_high_temp')|int < 64 %}
{%- if states('sensor.todays_high_temp')|int < 32 %}
Freezing
{% elif states('sensor.todays_high_temp')|int > 50 %}
Chilly
{% else %}
Cold
{%- endif %}
{% else %}
Unknown
{%- endif %}
clothing_forecast_detail:
friendly_name: "Clothing Forecast Detail"
unit_of_measurement: ''
value_template: >-
{% if is_state('binary_sensor.morning','on') %}
Based on the forecasted high temperature,
{% 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
{{ [ 'nice outside. ',
'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') %}
It is going to be
{{ [ 'bit warm ',
' rather warm outside ',
' almost too hot outside ',
' a little warm ',
] | random }}
today. So I suggest wearing shorts.
{% elif is_state('sensor.clothing_forecast', 'Hot') %}
It is going to be
{{ [ 'hot',
'hotter than the sun ',
'hotter than hot. but in a lot of bad ways ',
'hotter than the sun outside ',
'super hot ',
'hotter than the inside of a volcano '
] | random }}
today. So I suggest wearing shorts.
{% else %}
It is going to be {{ states.sensor.clothing_forecast.state }} today so I suggest wearing shorts.
{% endif %}
{% else %}
Based on the current temperature,
{% if is_state('sensor.clothing_forecast', 'Freezing') %}
It is freezing. so I suggest wearing long pants and a heavy coat if you are going out.
{% elif is_state('sensor.clothing_forecast','Cold') %}
It is cold outside. so I suggest wearing long pants and a light jacket.
{% elif is_state('sensor.clothing_forecast', 'Chilly') %}
It is chilly right now. so I suggest wearing at least long pants
if you are going to venture outside.
{% elif is_state('sensor.clothing_forecast', 'Nice') %}
It is
{{ [ 'nice outside. ',
'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') %}
It is
{{ [ 'bit warm ',
' rather warm outside ',
' almost too hot outside ',
' a little warm ',
] | random }}
outside. So I suggest wearing shorts.
{% elif is_state('sensor.clothing_forecast', 'Hot') %}
It is
{{ [ 'hot',
'hotter than the sun ',
'hotter than hot. but in a lot of bad ways ',
'hotter than the sun outside ',
'super hot ',
'hotter than the inside of a volcano '
] | random }}
outside. So I suggest wearing shorts.
{% else %}
It is {{ states.sensor.clothing_forecast.state }} right now so I suggest wearing shorts.
{% endif %}
{% endif %}
nws_current_visibility:
friendly_name: "Current Visability"
value_template: "{{ ((state_attr('weather.anchorage_house','visibility') | int) * 0.621371) | round }}"
current_inside_humidity:
friendly_name: "Current Inside Humidity"
unit_of_measurement: '%'
value_template: "{{ state_attr('climate.home','current_humidity') }}"
lighting_stike_count:
friendly_name: "Lightning Strike Count"
value_template: "{{ states('sensor.acurite_6045m_3078_strcnt') }}"
yesterday_rainfall_in:
friendly_name: "Yesterday Rainfall"
value_template: "{{ state_attr('sensor.daily_rainfall_in', 'last_period') }}"
previous_rainfall:
friendly_name: "Past 48h Rainfall"
value_template: "{{ states('sensor.daily_rainfall_in') | float + state_attr('sensor.daily_rainfall_in', 'last_period') | float }}"
lightning_warning:
friendly_name: "Lightning Warning"
value_template: >-
{%- if states('sensor.recent_lightning_strikes') | int > 0 %}
Unsafe
{% else %}
Safe
{%- endif %}
automation:
- alias: 'record previous day rainfall'
trigger:
- platform: time
at: '23:58:00'
action:
service: mqtt.publish
data_template:
topic: 'house/rain/yesterday_total'
retain: true
payload: "{{ states('sensor.todays_rainfall') }}"
- alias: Forecast Low Near Freezing
trigger:
- platform: numeric_state
entity_id: sensor.tonights_low_temp
below: 35
- platform: numeric_state
entity_id: sensor.pirateweather_temperature
below: 35
condition:
- condition: state
entity_id: input_boolean.freeze_warning
state: 'off'
action:
- service: input_boolean.turn_on
entity_id: input_boolean.freeze_warning
- alias: Forecast Low Above Freezing
trigger:
- platform: numeric_state
entity_id: sensor.tonights_low_temp
above: 33
condition:
- condition: state
entity_id: input_boolean.freeze_warning
state: 'on'
- condition: numeric_state
entity_id: sensor.tonights_low_temp
above: 35
action:
- service: input_boolean.turn_off
entity_id: input_boolean.freeze_warning
script:
refresh_weather_alert_sensors:
sequence:
- service: homeassistant.update_entity
entity_id: sensor.tornado_warning
- service: homeassistant.update_entity
entity_id: sensor.tornado_watch
- service: homeassistant.update_entity
entity_id: sensor.tstorm_warning
- service: homeassistant.update_entity
entity_id: sensor.tstorm_watch
- service: homeassistant.update_entity
entity_id: sensor.flood_warning
- service: homeassistant.update_entity
entity_id: sensor.flood_watch