2020-06-12 20:02:42 +00:00
###############################################################################
# @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
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
2020-08-22 03:28:38 +00:00
lightning_warning :
name : Lightning Warning
icon : mdi:flash-alert
2020-06-12 20:02:42 +00:00
### You first need to find either your NWS Zone ID or County ID. I’ m 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
#I’ ve 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'
2020-08-28 01:07:15 +00:00
- platform : mqtt
name : "Back Porch"
state_topic : "house/acurite2mqtt/Acurite-6045M_3078"
unit_of_measurement : '°F'
value_template : "{{ value_json.temperature_F }}"
json_attributes_topic : "house/acurite2mqtt/Acurite-6045M_3078"
device_class : temperature
- platform : mqtt
2020-09-01 01:22:28 +00:00
name : "Crawlspace"
2020-08-28 01:07:15 +00:00
state_topic : "house/acurite2mqtt/Acurite-609TXC_73"
unit_of_measurement : '°F'
value_template : "{{ value_json.temperature_F }}"
json_attributes_topic : "house/acurite2mqtt/Acurite-609TXC_73"
device_class : temperature
- platform : mqtt
2020-09-01 01:22:28 +00:00
name : "Garage"
2020-08-28 01:07:15 +00:00
state_topic : "house/acurite2mqtt/Acurite-Tower_10968"
unit_of_measurement : '°F'
value_template : "{{ value_json.temperature_F }}"
json_attributes_topic : "house/acurite2mqtt/Acurite-Tower_10968"
device_class : temperature
- platform : mqtt
name : "Lightning total count"
state_topic : "house/lightning/total_count"
2020-09-01 01:22:28 +00:00
- platform : statistics
name : Inside Humidity Stats
entity_id : sensor.current_inside_humidity
sampling_size : 500
2020-06-12 20:02:42 +00:00
- platform : template
sensors :
flood_watch :
friendly_name : 'Flood Watch'
entity_id : sensor.time
value_template : >-
{% if 'Flood Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[0] or
'Flood Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[1] or
'Flood Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[2] or
'Flood Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[3] or
'Flood Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[4] or
'Flood Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[5]
%}
{{ states.sensor.nws_alerts.attributes.spoken_desc }}
{% else %}
inactive
{% endif %}
flood_warning :
friendly_name : 'Flood Warning'
entity_id : sensor.time
value_template : >-
{% if 'Flood Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[0] or
'Flood Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[1] or
'Flood Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[2] or
'Flood Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[3] or
'Flood Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[4] or
'Flood Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[5]
%}
{{ states.sensor.nws_alerts.attributes.spoken_desc }}
{% else %}
inactive
{% endif %}
tstorm_warning :
friendly_name : 'Thunderstorm Warning'
entity_id : sensor.time
value_template : >-
{% if 'Thunderstorm Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[0] or
'Thunderstorm Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[1] or
'Thunderstorm Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[2] or
'Thunderstorm Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[3] or
'Thunderstorm Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[4] or
'Thunderstorm Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[5]
%}
{{ states.sensor.nws_alerts.attributes.spoken_desc }}
{% else %}
inactive
{% endif %}
tstorm_watch :
friendly_name : 'Thunderstorm Watch'
entity_id : sensor.time
value_template : >-
{% if 'Thunderstorm Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[0] or
'Thunderstorm Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[1] or
'Thunderstorm Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[2] or
'Thunderstorm Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[3] or
'Thunderstorm Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[4] or
'Thunderstorm Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[5]
%}
{{ states.sensor.nws_alerts.attributes.spoken_desc }}
{% else %}
inactive
{% endif %}
tornado_watch :
friendly_name : 'Tornado Watch'
entity_id : sensor.time
value_template : >-
{% if 'Tornado Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[0] or
'Tornado Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[1] or
'Tornado Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[2] or
'Tornado Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[3] or
'Tornado Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[4] or
'Tornado Watch' in states.sensor.nws_alerts.attributes.title.split(' - ')[5]
%}
{{ states.sensor.nws_alerts.attributes.spoken_desc }}
{% else %}
inactive
{% endif %}
tornado_warning :
friendly_name : 'Tornado Warning'
entity_id : sensor.time
value_template : >-
{% if 'Tornado Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[0] or
'Tornado Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[1] or
'Tornado Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[2] or
'Tornado Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[3] or
'Tornado Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[4] or
'Tornado Warning' in states.sensor.nws_alerts.attributes.title.split(' - ')[5]
%}
{{ states.sensor.nws_alerts.attributes.spoken_desc }}
{% else %}
inactive
{% endif %}
2020-09-01 01:22:28 +00:00
backporch_weather :
friendly_name : Back Porch Weather
value_template : "{{ states.sensor.back_porch.state | round}} °F / {{ states.sensor.back_porch.attributes.humidity }} %"
garage_weather :
friendly_name : Garage Weather
value_template : "{{ states.sensor.garage.state | round}} °F / {{ states.sensor.garage.attributes.humidity }} %"
crawlspace_weather :
friendly_name : Crawlspace Weather
value_template : "{{ states.sensor.crawlspace.state | round}} °F / {{ states.sensor.crawlspace.attributes.humidity }} %"
clothing_forecast :
friendly_name : "Clothing Forecast"
unit_of_measurement : ''
entity_id : sensor.nws_daytime_temperature
value_template : >-
{%- if states('sensor.nws_daytime_temperature')|float > 63 %}
{%- if states('sensor.nws_daytime_temperature')|float < 80 %}
Nice
{% elif states('sensor.nws_daytime_temperature')|float > 95 %}
Hot
{% else %}
Toasty
{%- endif %}
{% elif states('sensor.nws_daytime_temperature')|float < 64 %}
{%- if states('sensor.nws_daytime_temperature')|float < 32 %}
Freezing
{% elif states('sensor.nws_daytime_temperature')|float > 50 %}
Chilly
{% else %}
Cold
{%- endif %}
{% else %}
Unknown
{%- endif %}
nws_current_forecast :
friendly_name : 'Current Forecast'
entity_id : weather.klzu_daynight
value_template : "{{ states.weather.klzu_daynight.attributes.forecast[0].detailed_description | truncate(250, False) }}"
nws_current_rain_forecast :
friendly_name : 'Current Rain Chance'
entity_id : weather.klzu_daynight
value_template : "{{ states.weather.klzu_daynight.attributes.forecast[0].precipitation_probability }}"
unit_of_measurement : '%'
nws_current_temperature :
friendly_name : 'Current Temperature'
entity_id : weather.klzu_daynight
value_template : "{{ states.weather.klzu_daynight.attributes.temperature }}"
device_class : temperature
nws_daytime_temperature :
friendly_name : 'Daytime Temperature'
entity_id : weather.klzu_daynight
value_template : >-
{% if states.weather.klzu_daynight.attributes.forecast[0].daytime == True %}
{{ states.weather.klzu_daynight.attributes.forecast[0].temperature }}
{% elif states.weather.klzu_daynight.attributes.forecast[1].daytime == True %}
{{ states.weather.klzu_daynight.attributes.forecast[1].temperature }}
{% endif %}
device_class : temperature
nws_current_condition :
friendly_name : 'Current Condition'
entity_id : weather.klzu_daynight
value_template : "{{ states.weather.klzu_daynight.state }}"
nws_current_humidity :
friendly_name : 'Current Humidity'
entity_id : weather.klzu_daynight
value_template : "{{ states.weather.klzu_daynight.attributes.humidity }}"
nws_current_visibility :
friendly_name : "Current Visability"
entity_id : weather.klzu_daynight
value_template : "{{ states.weather.klzu_daynight.attributes.visibility }}"
nws_current_windspeed :
friendly_name : "Current Windspeed"
entity_id : weather.klzu_daynight
value_template : "{{ states.weather.klzu_daynight.attributes.wind_speed }}"
nws_overnight_low :
friendly_name : "Overnight Low"
entity_id : weather.klzu_daynight
unit_of_measurement : ''
value_template : >-
{% if states.weather.klzu_daynight.attributes.forecast[0].daytime == False %}
{{ states.weather.klzu_daynight.attributes.forecast[0].temperature }}
{% elif states.weather.klzu_daynight.attributes.forecast[1].daytime == False %}
{{ states.weather.klzu_daynight.attributes.forecast[1].temperature }}
{% endif %}
nws_overnight_forecast :
friendly_name : "Overnight Forecast"
entity_id : weather.klzu_daynight
unit_of_measurement : ''
value_template : >-
{% if states.weather.klzu_daynight.attributes.forecast[0].daytime == False %}
{{ states.weather.klzu_daynight.attributes.forecast[0].detailed_description | truncate(250, False) }}
{% elif states.weather.klzu_daynight.attributes.forecast[1].daytime == False %}
{{ states.weather.klzu_daynight.attributes.forecast[1].detailed_description | truncate(250, False) }}
{% elif states.weather.klzu_daynight.attributes.forecast[2].daytime == False %}
{{ states.weather.klzu_daynight.attributes.forecast[2].detailed_description | truncate(250, False) }}
{% endif %}
nws_forecast_tomorrow :
friendly_name : "Forecast Tomorrow"
entity_id : weather.klzu_daynight
unit_of_measurement : ''
value_template : >-
{%- if states.weather.klzu_daynight.attributes.forecast[1].daytime == True %}
{{ states.weather.klzu_daynight.attributes.forecast[1].detailed_description | truncate(250, False) }}
{% elif states.weather.klzu_daynight.attributes.forecast[2].daytime == True %}
{{ states.weather.klzu_daynight.attributes.forecast[2].detailed_description | truncate(250, False) }}
{%- endif %}
nws_forecast_rain_tomorrow :
friendly_name : "Rain Chance Tomorrow"
entity_id : weather.klzu_daynight
unit_of_measurement : '%'
value_template : >-
{%- if states.weather.klzu_daynight.attributes.forecast[1].daytime == True %}
{{ states.weather.klzu_daynight.attributes.forecast[1].precipitation_probability }}
{% elif states.weather.klzu_daynight.attributes.forecast[2].daytime == True %}
{{ states.weather.klzu_daynight.attributes.forecast[2].precipitation_probability }}
{%- endif %}
nws_forecast_tomorrow_night :
friendly_name : "Forecast Tomorrow Night"
entity_id : weather.klzu_daynight
unit_of_measurement : ''
value_template : >-
{%- if states.weather.klzu_daynight.attributes.forecast[1].daytime == True %}
{{ states.weather.klzu_daynight.attributes.forecast[2].detailed_description | truncate(250, False) }}
{% elif states.weather.klzu_daynight.attributes.forecast[2].daytime == True %}
{{ states.weather.klzu_daynight.attributes.forecast[3].detailed_description | truncate(250, False) }}
{%- endif %}
nws_forecast_rain_tomorrow_night :
friendly_name : "Rain Chance Tomorrow Night"
entity_id : weather.klzu_daynight
unit_of_measurement : '%'
value_template : >-
{%- if states.weather.klzu_daynight.attributes.forecast[1].daytime == True %}
{{ states.weather.klzu_daynight.attributes.forecast[2].precipitation_probability }}
{% elif states.weather.klzu_daynight.attributes.forecast[2].daytime == True %}
{{ states.weather.klzu_daynight.attributes.forecast[3].precipitation_probability }}
{%- endif %}
current_inside_humidity :
friendly_name : "Current Inside Humidity"
entity_id : climate.home
unit_of_measurement : '%'
value_template : "{{ states.climate.home.attributes.current_humidity }}"
lighting_stike_count :
friendly_name : "Lightning Strike Count"
entity_id : sensor.back_porch
value_template : "{{ states.sensor.back_porch.attributes.strike_count }}"
2020-06-12 20:02:42 +00:00
automation :
- alias : 'NWS Weather Alert Pop Up Control'
trigger :
platform : state
entity_id : sensor.nws_alerts
condition :
- condition : template
value_template : '{{states.sensor.nws_alerts.state | int > 0}}'
- condition : template
value_template : '{{ trigger.to_state.state|float > trigger.from_state.state|float }}'
action :
service : script.nws_popup_on_wx_alert
data_template :
title : >
{% if states.sensor.nws_alerts.attributes.title.split(' - ')[5] is defined %}
"{{ states.sensor.nws_alerts.attributes.title.split(' - ')[5] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[4] is defined %}
"{{ states.sensor.nws_alerts.attributes.title.split(' - ')[4] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[3] is defined %}
"{{ states.sensor.nws_alerts.attributes.title.split(' - ')[3] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[2] is defined %}
"{{ states.sensor.nws_alerts.attributes.title.split(' - ')[2] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[1] is defined %}
"{{ states.sensor.nws_alerts.attributes.title.split(' - ')[1] }}"
{% else %}
"{{ states.sensor.nws_alerts.attributes.title.split(' - ')[0] }}"
{% endif %}
message : >
{% if states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[5] is defined %}
"{{ states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[5] }}"
{% elif states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[4] is defined %}
"{{ states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[4] }}"
{% elif states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[3] is defined %}
"{{ states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[3] }}"
{% elif states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[2] is defined %}
"{{ states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[2] }}"
{% elif states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[1] is defined %}
"{{ states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[1] }}"
{% else %}
"{{ states.sensor.nws_alerts.attributes.display_desc.split('\n\n-\n\n')[0] }}"
{% endif %}
- alias : 'NWS Weather Sensor Refresh'
trigger :
platform : state
entity_id : sensor.nws_alerts
action :
- service : script.refresh_weather_alert_sensors
- alias : NWS Notification Weather Alert
trigger :
platform : state
entity_id : sensor.nws_alerts
condition :
- condition : template
value_template : '{{states.sensor.nws_alerts.state | int > 0}}'
- condition : template
value_template : '{{ trigger.to_state.state|float > trigger.from_state.state|float }}'
- condition : state
entity_id : input_boolean.weather_alert_texts
state : 'on'
action :
- service : script.text_notify
data_template :
title : "Weather Alert for Anchorage House"
message : >
{% if states.sensor.nws_alerts.attributes.title.split(' - ')[5] is defined %}
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[5] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[4] is defined %}
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[4] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[3] is defined %}
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[3] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[2] is defined %}
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[2] }}"
{% elif states.sensor.nws_alerts.attributes.title.split(' - ')[1] is defined %}
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[1] }}"
{% else %}
"NWS: {{ states.sensor.nws_alerts.attributes.title.split(' - ')[0] }}"
{% endif %}
- alias : NWS Announce Weather Alert
trigger :
- platform : state
entity_id : sensor.nws_alerts
condition :
condition : and
conditions :
- condition : template
value_template : "{{states.sensor.nws_alerts.state | int > 0}}"
- condition : template
value_template : '{{ trigger.to_state.state|float > trigger.from_state.state|float }}'
- condition : template
value_template : "{{ (('Severe' in states.sensor.nws_alerts.attributes.title) or ('Thunderstorm' in states.sensor.nws_alerts.attributes.title)) and 'Warning' in states.sensor.nws_alerts.attributes.title }}"
action :
- service : script.ah_report
data_template :
speech_message : >
{% if states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[5] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[5] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[4] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[4] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[3] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[3] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[2] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[2] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[1] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[1] }}
{% else %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[0] }}
{% endif %}
- service : script.twitter_notify_image
data_template :
tweet : '{{ [ "Anchorage House is battening down the hatches. Servere Weather is imminent. ",
"The weather outside is getting intense, so I just made a weather announcement." ,
"Anchorage House monitors the NWS for severe weather using #HomeAssistant just for these occasions. Thanks for the heads up @NWSAtlanta " ] | random }}'
image : >-
{{ [ "/config/www/tweet_images/lightning.jpg" ,
"/config/www/tweet_images/lightning-bolt.jpg" ] | random }}
- delay : '00:00:15'
- service : script.ah_report
data_template :
speech_message : >
{% if states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[5] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[5] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[4] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[4] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[3] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[3] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[2] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[2] }}
{% elif states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[1] is defined %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[1] }}
{% else %}
The National Weather Service Has issued a {{ states.sensor.nws_alerts.attributes.spoken_desc.split('\n\n-\n\n')[0] }}
{% endif %}
- alias : NWS Announce Weather Alert for Tornado
trigger :
- platform : state
entity_id : sensor.nws_alerts
condition :
condition : and
conditions :
- condition : template
value_template : "{{states.sensor.nws_alerts.state | int > 0}}"
- condition : template
value_template : "{{ 'Tornado Warning' in states.sensor.nws_alerts.attributes.title}}"
action :
- service : script.jarvis_alert
data_template :
message : "Attention!,,,Attention!,,,The National Weather Service Has issued a Tornado Warning for our area."
- service : script.twitter_notify_image
data_template :
tweet : '{{ [ "NWS is sounding the Tornado alarm, so I am too. Anchorage House is taking cover. ",
"Anchorage House is heading to the closet because the NWS just issued a tornado warning for our area." ,
"I just activated the internal Tornado Alarm. Thanks for the heads up @NWSAtlanta " ] | random }}'
image : >-
"/config/www/tweet_images/tornado.jpg"
- delay : '00:00:15'
- service : script.jarvis_alert
data_template :
message : "Attention!,,,Attention!,,,The National Weather Service Has issued a Tornado Warning for our area."
- delay : '00:00:15'
- service : input_boolean.turn_on
entity_id : input_boolean.tornado_alarm
- service : script.text_alert
data_template :
title : "Tornado Warning!"
message : "The National Weather Service Has issued a Tornado Warning for our area."
2020-08-22 03:28:38 +00:00
- alias : Lightning Detected
trigger :
- platform : template
2020-08-28 01:07:15 +00:00
value_template : '{{ states.sensor.back_porch.attributes.strike_count | int > states.sensor.lightning_total_count.state | int }}'
2020-08-22 03:28:38 +00:00
condition :
- condition : state
entity_id : input_boolean.lightning_warning
state : 'off'
action :
- service : script.text_notify
data_template :
who : "jeff"
title : "Lightning Detected!"
message : "Lightning has been detected within 20 miles of Anchorage House"
- service : input_boolean.turn_on
entity_id : input_boolean.lightning_warning
2020-09-23 16:54:22 +00:00
- service : script.lightning_warning_audible
2020-06-12 20:02:42 +00:00
2020-08-22 03:28:38 +00:00
- alias : Lightning Warning Off
2020-08-28 01:07:15 +00:00
mode : restart
2020-08-22 03:28:38 +00:00
trigger :
- platform : template
2020-08-28 01:07:15 +00:00
value_template : '{{ states.sensor.back_porch.attributes.strike_count | int == states.sensor.lightning_total_count.state | int }}'
2020-08-22 03:28:38 +00:00
for :
minutes : 20
condition :
- condition : state
entity_id : input_boolean.lightning_warning
state : 'on'
action :
- service : script.text_notify
data_template :
who : "jeff"
title : "Lightning Threat Over."
message : "No more Lightning Strikes detected."
- service : input_boolean.turn_off
entity_id : input_boolean.lightning_warning
2020-09-23 16:54:22 +00:00
- service : script.lightning_clear_audible
2020-06-12 20:02:42 +00:00
- alias : NWS Freeze Warning
trigger :
- platform : state
entity_id : sensor.nws_alerts
condition :
condition : and
conditions :
- condition : template
value_template : "{{states.sensor.nws_alerts.state | int > 0}}"
- condition : template
value_template : "{{ 'Freeze Warning' in states.sensor.nws_alerts.attributes.title}}"
action :
- service : input_boolean.turn_on
entity_id : input_boolean.freeze_warning
- alias : Forecast Low Near Freezing
trigger :
- platform : numeric_state
entity_id : sensor.nws_overnight_low
below : 35
- platform : numeric_state
entity_id : sensor.nws_current_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.nws_overnight_low
above : 33
condition :
- condition : state
entity_id : input_boolean.freeze_warning
state : 'on'
- condition : numeric_state
entity_id : sensor.nws_overnight_low
above : 35
action :
- service : input_boolean.turn_off
entity_id : input_boolean.freeze_warning
- alias : Activate Tornado alarm
trigger :
- platform : state
entity_id : input_boolean.tornado_alarm
from : 'off'
to : 'on'
action :
- service : script.turn_on
entity_id : script.tornado_alarm
- alias : Deactivate Tornado alarm
trigger :
- platform : state
entity_id : input_boolean.tornado_alarm
from : 'on'
to : 'off'
action :
- service : script.turn_off
entity_id : script.tornado_alarm
- service : media_player.media_stop
entity_id : media_player.ha_speaker
script :
nws_popup_on_wx_alert :
alias : NWS Weather Alert Pop Up
sequence :
## Dismiss any current alert so the UI isn't filled
## up with these if there are more then one.
## Only show the latest alert
- service : persistent_notification.dismiss
data :
notification_id : "nwswxalert"
## Create a new persistant notification in the UI for a new alert
- service_template : >
{% if states.sensor.nws_alerts.state != '0' %}
persistent_notification.create
{% endif %}
data_template :
notification_id : "nwswxalert"
message : "{{ message }}"
title : '{{ title }}'
tornado_alarm :
sequence :
- delay :
seconds : 15
- service : media_player.play_media
entity_id : media_player.ha_speaker
data :
media_content_id : http://192.168.7.40/audio/tornado_alarm.mp3
media_content_type : "music"
- delay :
seconds : 110
- service : media_player.play_media
entity_id : media_player.ha_speaker
data :
media_content_id : http://192.168.7.40/audio/tornado_alarm.mp3
media_content_type : "music"
2020-08-22 03:28:38 +00:00
lightning_warning_audible :
sequence :
- condition : state
entity_id : binary_sensor.day
state : 'on'
- service : script.twitter_notify_image
data_template :
tweet : '{{ [ "Did you see that flash? I did. Letting everyone know there is lightning nearby.",
"When Lightning is near I notify the residents of Anchorage House to keep them safe." ,
"If the residents of Anchorage House didnt hear the thunder I just gave them a heads up." ,
"Everyone inside! If you are near Anchorage House that is. Lightning is near." ] | random }}'
image : >-
{{ [ "/config/www/tweet_images/lightning.jpg" ,
"/config/www/tweet_images/lightning-bolt.jpg" ] | random }}
- service : script.ah_report
data :
call_lightning_alert : 1
2020-06-12 20:02:42 +00:00
2020-08-22 03:28:38 +00:00
lightning_clear_audible :
sequence :
- condition : state
entity_id : binary_sensor.day
state : 'on'
- service : script.ah_report
data :
call_lightning_clear : 1
2020-06-12 20:02:42 +00:00
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
2020-08-22 03:28:38 +00:00
entity_id : sensor.flood_watch