Files
Home-Assistant-Configs/packages/weatheralerts.yaml

1693 lines
90 KiB
YAML

# Original author: Jeffrey Stone
# Original repo: https://github.com/thejeffreystone/home-assistant-configuration
#
################################################################################
#
# weatheralerts.yaml
#
# weatheralerts sensors and automations (read comments below)
#
################################################################################
#
# Requirements: weatheralerts custom component (installable via HACS)
#
# To use this package go to your Home Assistant web interface, go to
# Configuration, then Entities, and find the new sensor.ZoneName sensor
# that was created for your location (ZoneName will likely be the name of
# your county). Rename that entity with weatheralerts
#
# This yaml package stores up to 5 most recent active alerts from the
# weather alerts feed and places them in these sensors:
#
# sensor.weatheralerts_alert_1
# sensor.weatheralerts_alert_2
# sensor.weatheralerts_alert_3
# sensor.weatheralerts_alert_4
# sensor.weatheralerts_alert_5
#
# Additional sensors available:
# sensor.weatheralerts_active_alerts (contains number of active alerts)
# weatheralerts_alerts_are_active (contains either Yes or No)
# sensor.weatheralerts_alert_1_last_changed
# sensor.weatheralerts_alert_2_last_changed
# sensor.weatheralerts_alert_3_last_changed
# sensor.weatheralerts_alert_4_last_changed
# sensor.weatheralerts_alert_5_last_changed
# sensor.weatheralerts_alert_1_most_recent_active_alert
# sensor.weatheralerts_alert_2_most_recent_active_alert
# sensor.weatheralerts_alert_3_most_recent_active_alert
# sensor.weatheralerts_alert_4_most_recent_active_alert
# sensor.weatheralerts_alert_5_most_recent_active_alert
#
################################################################################
input_boolean:
tornado_watch:
name: Tornado Watch
icon: mdi:message-alert
################################################################################
## sensor ##
template:
- sensor:
## You can add your county or city name to sensorname for personalization
## For example: Weather Alerts for YourCountyName
- name: Weather Alerts
unique_id: 32371252-89ff-47b2-86e3-32ef92a05205
unit_of_measurement: Alerts
icon: mdi:alert-rhombus
state: >-
{% set alerts_total = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0 %}
{% set alerts_total.count = alerts_total.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ alerts_total.count }}
attributes:
warning_count: >-
{% set warnings = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'warning' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set warnings.count = warnings.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ warnings.count }}
tornado_warning_count: >-
{% set warnings = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'tornado warning' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set warnings.count = warnings.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ warnings.count }}
freeze_warning_count: >-
{% set warnings = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'freeze warning' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set warnings.count = warnings.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ warnings.count }}
tstorm_warning_count: >-
{% set warnings = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'thunderstorm warning' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set warnings.count = warnings.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ warnings.count }}
flood_warning_count: >-
{% set warnings = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'flood warning' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set warnings.count = warnings.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ warnings.count }}
watch_count: >-
{% set watches = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'watch' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set watches.count = watches.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ watches.count }}
tornado_watch_count: >-
{% set watches = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'tornado watch' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set watches.count = watches.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ watches.count }}
tstorm_watch_count: >-
{% set watches = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'thunderstorm watch' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set watches.count = watches.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ watches.count }}
flood_watch_count: >-
{% set watches = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'flood watch' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set watches.count = watches.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ watches.count }}
advisory_count: >-
{% set advisories = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'advisory' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set advisories.count = advisories.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ advisories.count }}
statement_count: >-
{% set statements = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'statement' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set statements.count = statements.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ statements.count }}
outlook_count: >-
{% set outlooks = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'outlook' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set outlooks.count = outlooks.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ outlooks.count }}
alert_count: >-
{% set alerts = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'alert' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set alerts.count = alerts.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ alerts.count }}
message_count: >-
{% set messages = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'message' in alert.event.lower() and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set messages.count = messages.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ messages.count }}
important_count: >-
{% set important = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if ('emergency' in alert.event.lower() or 'danger' in alert.event.lower() or 'immediate' in alert.event.lower()) and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set important.count = important.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ important.count }}
test_count: >-
{% set test = namespace(count=0) %}
{% if (state_attr('sensor.weatheralerts', 'alerts')) %}
{% for alert in state_attr('sensor.weatheralerts', 'alerts') %}
{% if 'Test' in alert.event and (as_timestamp(alert['endsExpires']) - as_timestamp(now()) > 0) %}
{% set test.count = test.count + 1 %}
{% endif %}
{% endfor %}
{% endif %}
{{ test.count }}
- name: Weather Alert 1
unique_id: 752fb9ae-a61f-41f8-8882-f8d025b892e3
icon: mdi:alert-rhombus
state: >-
{% if (states('sensor.weatheralerts') != 'unavailable') and (state_attr('sensor.weatheralerts', 'alerts')[0] != null) or ((states('sensor.weatheralerts') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts', 'alerts')[0].endsExpires) - as_timestamp(now()) > 0)) %}
on
{% else %}
off
{% endif %}
attributes:
alert_id: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].id }}
{% else %}
None
{% endif %}
alert_event: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].event }}
{% else %}
None
{% endif %}
alert_area: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].area }}
{% else %}
None
{% endif %}
alert_NWSheadline: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}
{% else %}
None
{% endif %}
alert_description: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].description }}
{% else %}
None
{% endif %}
alert_messageType: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].messageType }}
{% else %}
None
{% endif %}
alert_status: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].status }}
{% else %}
None
{% endif %}
alert_category: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].category }}
{% else %}
None
{% endif %}
alert_urgency: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].urgency }}
{% else %}
None
{% endif %}
alert_severity: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].severity }}
{% else %}
None
{% endif %}
alert_certainty: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].certainty }}
{% else %}
None
{% endif %}
alert_response: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].response }}
{% else %}
None
{% endif %}
alert_instruction: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].instruction }}
{% else %}
None
{% endif %}
alert_sent: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].sent }}
{% else %}
None
{% endif %}
alert_effective: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].effective }}
{% else %}
None
{% endif %}
alert_onset: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].onset }}
{% else %}
None
{% endif %}
alert_expires: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].expires }}
{% else %}
None
{% endif %}
alert_title: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].title }}
{% else %}
None
{% endif %}
alert_zoneid: >-
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].zoneid }}
{% else %}
None
{% endif %}
display_title: >
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].title }}
{% else %}
None
{% endif %}
display_message: >
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{% if states.sensor.weatheralerts.attributes.alerts[0].NWSheadline != "null" %}
{{ states.sensor.weatheralerts.attributes.alerts[0].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}<br>
{% endif %}
<br>{{ states.sensor.weatheralerts.attributes.alerts[0].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}</ul><br>
{% if states.sensor.weatheralerts.attributes.alerts[0].instruction != None %}
{{ states.sensor.weatheralerts.attributes.alerts[0].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}<br>
{% endif %}
<br>Where : {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
<br>Effective: {{ states.sensor.weatheralerts.attributes.alerts[0].effective }}
{%- if states.sensor.weatheralerts.attributes.alerts[0].ends != None %}
<br>Ends: {{ states.sensor.weatheralerts.attributes.alerts[0].ends }}
{%- endif %}
<br>Expires: {{ states.sensor.weatheralerts.attributes.alerts[0].expires }}
{% else %}
None
{% endif %}
spoken_title: >
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
Attention!!! Weather alert for {{ state_attr('sensor.weatheralerts', 'friendly_name') }}. A {{ states.sensor.weatheralerts.attributes.alerts[0].title }}. {{ states.sensor.weatheralerts.attributes.alerts[0].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') | capitalize }}.
{% else %}
None
{% endif %}
spoken_message: >
{% if states('sensor.weatheralerts')|int > 0 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_1') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[0].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
{% if states.sensor.weatheralerts.attributes.alerts[0].instruction != None %}
{{ states.sensor.weatheralerts.attributes.alerts[0].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
{% endif %}
{% else %}
None
{% endif %}
- name: Weather Alert 2
unique_id: 4ecaa8ce-65ec-429f-956c-ac478f1c3d6f
icon: mdi:alert-rhombus
state: >-
{% if (states('sensor.weatheralerts') != 'unavailable') and (state_attr('sensor.weatheralerts', 'alerts')[1] != null) or ((states('sensor.weatheralerts') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts', 'alerts')[1].endsExpires) - as_timestamp(now()) > 0)) %}
on
{% else %}
off
{% endif %}
attributes:
alert_id: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].id }}
{% else %}
None
{% endif %}
alert_event: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].event }}
{% else %}
None
{% endif %}
alert_area: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].area }}
{% else %}
None
{% endif %}
alert_NWSheadline: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}
{% else %}
None
{% endif %}
alert_description: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].description }}
{% else %}
None
{% endif %}
alert_messageType: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].messageType }}
{% else %}
None
{% endif %}
alert_status: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].status }}
{% else %}
None
{% endif %}
alert_category: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].category }}
{% else %}
None
{% endif %}
alert_urgency: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].urgency }}
{% else %}
None
{% endif %}
alert_severity: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].severity }}
{% else %}
None
{% endif %}
alert_certainty: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].certainty }}
{% else %}
None
{% endif %}
alert_response: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].response }}
{% else %}
None
{% endif %}
alert_instruction: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].instruction }}
{% else %}
None
{% endif %}
alert_sent: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].sent }}
{% else %}
None
{% endif %}
alert_effective: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].effective }}
{% else %}
None
{% endif %}
alert_onset: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].onset }}
{% else %}
None
{% endif %}
alert_expires: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].expires }}
{% else %}
None
{% endif %}
alert_title: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].title }}
{% else %}
None
{% endif %}
alert_zoneid: >-
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].zoneid }}
{% else %}
None
{% endif %}
display_title: >
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].title }}
{% else %}
None
{% endif %}
display_message: >
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{% if states.sensor.weatheralerts.attributes.alerts[1].NWSheadline != "null" %}
{{ states.sensor.weatheralerts.attributes.alerts[1].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}<br>
{% endif %}
<br>{{ states.sensor.weatheralerts.attributes.alerts[1].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}</ul><br>
{% if states.sensor.weatheralerts.attributes.alerts[1].instruction != None %}
{{ states.sensor.weatheralerts.attributes.alerts[1].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}<br>
{% endif %}
<br>Where : {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
<br>Effective: {{ states.sensor.weatheralerts.attributes.alerts[1].effective }}
{%- if states.sensor.weatheralerts.attributes.alerts[1].ends != None %}
<br>Ends: {{ states.sensor.weatheralerts.attributes.alerts[1].ends }}
{%- endif %}
<br>Expires: {{ states.sensor.weatheralerts.attributes.alerts[1].expires }}
{% else %}
None
{% endif %}
spoken_title: >
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
Attention!!! Weather alert for {{ state_attr('sensor.weatheralerts', 'friendly_name') }}. A {{ states.sensor.weatheralerts.attributes.alerts[1].title }}. {{ states.sensor.weatheralerts.attributes.alerts[1].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') | capitalize }}.
{% else %}
None
{% endif %}
spoken_message: >
{% if states('sensor.weatheralerts')|int > 1 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_2') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[1].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
{% if states.sensor.weatheralerts.attributes.alerts[1].instruction != None %}
{{ states.sensor.weatheralerts.attributes.alerts[1].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
{% endif %}
{% else %}
None
{% endif %}
- name: Weather Alert 3
unique_id: 0dcc3731-c90e-427a-abd9-dee29a5ed1e1
icon: mdi:alert-rhombus
state: >-
{% if (states('sensor.weatheralerts') != 'unavailable') and (state_attr('sensor.weatheralerts', 'alerts')[2] != null) or ((states('sensor.weatheralerts') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts', 'alerts')[2].endsExpires) - as_timestamp(now()) > 0)) %}
on
{% else %}
off
{% endif %}
attributes:
alert_id: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].id }}
{% else %}
None
{% endif %}
alert_event: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].event }}
{% else %}
None
{% endif %}
alert_area: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].area }}
{% else %}
None
{% endif %}
alert_NWSheadline: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}
{% else %}
None
{% endif %}
alert_description: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].description }}
{% else %}
None
{% endif %}
alert_messageType: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].messageType }}
{% else %}
None
{% endif %}
alert_status: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].status }}
{% else %}
None
{% endif %}
alert_category: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].category }}
{% else %}
None
{% endif %}
alert_urgency: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].urgency }}
{% else %}
None
{% endif %}
alert_severity: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].severity }}
{% else %}
None
{% endif %}
alert_certainty: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].certainty }}
{% else %}
None
{% endif %}
alert_response: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].response }}
{% else %}
None
{% endif %}
alert_instruction: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].instruction }}
{% else %}
None
{% endif %}
alert_sent: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].sent }}
{% else %}
None
{% endif %}
alert_effective: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].effective }}
{% else %}
None
{% endif %}
alert_onset: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].onset }}
{% else %}
None
{% endif %}
alert_expires: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].expires }}
{% else %}
None
{% endif %}
alert_title: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].title }}
{% else %}
None
{% endif %}
alert_zoneid: >-
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].zoneid }}
{% else %}
None
{% endif %}
display_title: >
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].title }}
{% else %}
None
{% endif %}
display_message: >
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{% if states.sensor.weatheralerts.attributes.alerts[2].NWSheadline != "null" %}
{{ states.sensor.weatheralerts.attributes.alerts[2].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}<br>
{% endif %}
<br>{{ states.sensor.weatheralerts.attributes.alerts[2].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}</ul><br>
{% if states.sensor.weatheralerts.attributes.alerts[2].instruction != None %}
{{ states.sensor.weatheralerts.attributes.alerts[2].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}<br>
{% endif %}
<br>Where : {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
<br>Effective: {{ states.sensor.weatheralerts.attributes.alerts[2].effective }}
{%- if states.sensor.weatheralerts.attributes.alerts[2].ends != None %}
<br>Ends: {{ states.sensor.weatheralerts.attributes.alerts[2].ends }}
{%- endif %}
<br>Expires: {{ states.sensor.weatheralerts.attributes.alerts[2].expires }}
{% else %}
None
{% endif %}
spoken_title: >
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
Attention!!! Weather alert for {{ state_attr('sensor.weatheralerts', 'friendly_name') }}. A {{ states.sensor.weatheralerts.attributes.alerts[2].title }}. {{ states.sensor.weatheralerts.attributes.alerts[2].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') | capitalize }}.
{% else %}
None
{% endif %}
spoken_message: >
{% if states('sensor.weatheralerts')|int > 2 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_3') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[2].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
{% if states.sensor.weatheralerts.attributes.alerts[2].instruction != None %}
{{ states.sensor.weatheralerts.attributes.alerts[2].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
{% endif %}
{% else %}
None
{% endif %}
- name: Weather Alert 4
unique_id: 18f756d2-f3aa-476f-a1c0-12c70f173ead
icon: mdi:alert-rhombus
state: >-
{% if (states('sensor.weatheralerts') != 'unavailable') and (state_attr('sensor.weatheralerts', 'alerts')[3] != null) or ((states('sensor.weatheralerts') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts', 'alerts')[3].endsExpires) - as_timestamp(now()) > 0)) %}
on
{% else %}
off
{% endif %}
attributes:
alert_id: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].id }}
{% else %}
None
{% endif %}
alert_event: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].event }}
{% else %}
None
{% endif %}
alert_area: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].area }}
{% else %}
None
{% endif %}
alert_NWSheadline: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}
{% else %}
None
{% endif %}
alert_description: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].description }}
{% else %}
None
{% endif %}
alert_messageType: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].messageType }}
{% else %}
None
{% endif %}
alert_status: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].status }}
{% else %}
None
{% endif %}
alert_category: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].category }}
{% else %}
None
{% endif %}
alert_urgency: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].urgency }}
{% else %}
None
{% endif %}
alert_severity: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].severity }}
{% else %}
None
{% endif %}
alert_certainty: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].certainty }}
{% else %}
None
{% endif %}
alert_response: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].response }}
{% else %}
None
{% endif %}
alert_instruction: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].instruction }}
{% else %}
None
{% endif %}
alert_sent: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].sent }}
{% else %}
None
{% endif %}
alert_effective: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].effective }}
{% else %}
None
{% endif %}
alert_onset: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].onset }}
{% else %}
None
{% endif %}
alert_expires: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].expires }}
{% else %}
None
{% endif %}
alert_title: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].title }}
{% else %}
None
{% endif %}
alert_zoneid: >-
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].zoneid }}
{% else %}
None
{% endif %}
display_title: >
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].title }}
{% else %}
None
{% endif %}
display_message: >
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{% if states.sensor.weatheralerts.attributes.alerts[3].NWSheadline != "null" %}
{{ states.sensor.weatheralerts.attributes.alerts[3].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}<br>
{% endif %}
<br>{{ states.sensor.weatheralerts.attributes.alerts[3].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}</ul><br>
{% if states.sensor.weatheralerts.attributes.alerts[3].instruction != None %}
{{ states.sensor.weatheralerts.attributes.alerts[3].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}<br>
{% endif %}
<br>Where : {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
<br>Effective: {{ states.sensor.weatheralerts.attributes.alerts[3].effective }}
{%- if states.sensor.weatheralerts.attributes.alerts[3].ends != None %}
<br>Ends: {{ states.sensor.weatheralerts.attributes.alerts[3].ends }}
{%- endif %}
<br>Expires: {{ states.sensor.weatheralerts.attributes.alerts[3].expires }}
{% else %}
None
{% endif %}
spoken_title: >
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
Attention!!! Weather alert for {{ state_attr('sensor.weatheralerts', 'friendly_name') }}. A {{ states.sensor.weatheralerts.attributes.alerts[3].title }}. {{ states.sensor.weatheralerts.attributes.alerts[3].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') | capitalize }}.
{% else %}
None
{% endif %}
spoken_message: >
{% if states('sensor.weatheralerts')|int > 3 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_4') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[3].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
{% if states.sensor.weatheralerts.attributes.alerts[3].instruction != None %}
{{ states.sensor.weatheralerts.attributes.alerts[3].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
{% endif %}
{% else %}
None
{% endif %}
- name: Weather Alert 5
unique_id: c9690a26-84e8-439d-9718-469b227c4d66
icon: mdi:alert-rhombus
state: >-
{% if (states('sensor.weatheralerts') != 'unavailable') and (state_attr('sensor.weatheralerts', 'alerts')[4] != null) or ((states('sensor.weatheralerts') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts', 'alerts')[4].endsExpires) - as_timestamp(now()) > 0)) %}
on
{% else %}
off
{% endif %}
attributes:
alert_id: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].id }}
{% else %}
None
{% endif %}
alert_event: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].event }}
{% else %}
None
{% endif %}
alert_area: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].area }}
{% else %}
None
{% endif %}
alert_NWSheadline: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}
{% else %}
None
{% endif %}
alert_description: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].description }}
{% else %}
None
{% endif %}
alert_messageType: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].messageType }}
{% else %}
None
{% endif %}
alert_status: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].status }}
{% else %}
None
{% endif %}
alert_category: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].category }}
{% else %}
None
{% endif %}
alert_urgency: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].urgency }}
{% else %}
None
{% endif %}
alert_severity: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].severity }}
{% else %}
None
{% endif %}
alert_certainty: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].certainty }}
{% else %}
None
{% endif %}
alert_response: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].response }}
{% else %}
None
{% endif %}
alert_instruction: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].instruction }}
{% else %}
None
{% endif %}
alert_sent: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].sent }}
{% else %}
None
{% endif %}
alert_effective: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].effective }}
{% else %}
None
{% endif %}
alert_onset: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].onset }}
{% else %}
None
{% endif %}
alert_expires: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].expires }}
{% else %}
None
{% endif %}
alert_title: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].title }}
{% else %}
None
{% endif %}
alert_zoneid: >-
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].zoneid }}
{% else %}
None
{% endif %}
display_title: >
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].title }}
{% else %}
None
{% endif %}
display_message: >
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{% if states.sensor.weatheralerts.attributes.alerts[4].NWSheadline != "null" %}
{{ states.sensor.weatheralerts.attributes.alerts[4].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}<br>
{% endif %}
<br>{{ states.sensor.weatheralerts.attributes.alerts[4].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}</ul><br>
{% if states.sensor.weatheralerts.attributes.alerts[4].instruction != None %}
{{ states.sensor.weatheralerts.attributes.alerts[4].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}<br>
{% endif %}
<br>Where : {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
<br>Effective: {{ states.sensor.weatheralerts.attributes.alerts[4].effective }}
{%- if states.sensor.weatheralerts.attributes.alerts[4].ends != None %}
<br>Ends: {{ states.sensor.weatheralerts.attributes.alerts[4].ends }}
{%- endif %}
<br>Expires: {{ states.sensor.weatheralerts.attributes.alerts[4].expires }}
{% else %}
None
{% endif %}
spoken_title: >
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
Attention!!! Weather alert for {{ state_attr('sensor.weatheralerts', 'friendly_name') }}. A {{ states.sensor.weatheralerts.attributes.alerts[4].title }}. {{ states.sensor.weatheralerts.attributes.alerts[4].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') | capitalize }}.
{% else %}
None
{% endif %}
spoken_message: >
{% if states('sensor.weatheralerts')|int > 4 or (states('sensor.weatheralerts') == "unavailable" and states('sensor.weatheralerts_alert_5') == "on") %}
{{ states.sensor.weatheralerts.attributes.alerts[4].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
{% if states.sensor.weatheralerts.attributes.alerts[4].instruction != None %}
{{ states.sensor.weatheralerts.attributes.alerts[4].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
{% endif %}
{% else %}
None
{% endif %}
- name: Weatheralerts Alert 1 Last Changed
unique_id: 3db32f1f-a6d3-4321-9078-2577d403f314
state: >-
{% if states('sensor.weatheralerts_alert_1') == "on" %}
{{ states.sensor.weatheralerts_alert_1.last_updated }}
{% else %}
None
{% endif %}
- name: Weatheralerts Alert 2 Last Changed
unique_id: 75e746a0-b776-4dbb-b018-1e808a204f65
state: >-
{% if states('sensor.weatheralerts_alert_2') == "on" %}
{{ states.sensor.weatheralerts_alert_2.last_updated }}
{% else %}
None
{% endif %}
- name: Weatheralerts Alert 3 Last Changed
unique_id: 4382f9a3-32bf-42f9-809f-ae33f33140b7
state: >-
{% if states('sensor.weatheralerts_alert_3') == "on" %}
{{ states.sensor.weatheralerts_alert_3.last_updated }}
{% else %}
None
{% endif %}
- name: Weatheralerts Alert 4 Last Changed
unique_id: 4fbf5547-eac4-4ebf-b5fc-b043fafc0026
state: >-
{% if states('sensor.weatheralerts_alert_4') == "on" %}
{{ states.sensor.weatheralerts_alert_4.last_updated }}
{% else %}
None
{% endif %}
- name: Weatheralerts Alert 5 Last Changed
unique_id: d7b66a73-8431-433c-8cd1-d413d726cb0a
state: >-
{% if states('sensor.weatheralerts_alert_5') == "on" %}
{{ states.sensor.weatheralerts_alert_5.last_updated }}
{% else %}
None
{% endif %}
- name: Weatheralerts Alert 1 Most Recent Active Alert
unique_id: 569944e9-b4cf-4ed2-9bed-40b2a0a9b898
state: >-
{% if states('sensor.weatheralerts_alert_1_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_1') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_1_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_1') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_1_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_1') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_1') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_1', 'alert_event') }}
{% else %}
{{ states('sensor.weatheralerts_alert_1_most_recent_active_alert') }}
{% endif %}
attributes:
alert_effective: >-
{% if states('sensor.weatheralerts_alert_1_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_1') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_1_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_1') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_1_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_1') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_1') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_1', 'alert_effective') }}
{% else %}
{{ state_attr('sensor.weatheralerts_alert_1_most_recent_active_alert', 'alert_effective') }}
{% endif %}
alert_id: >-
{% if states('sensor.weatheralerts_alert_1_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_1') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_1_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_1') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_1_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_1') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_1') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_1', 'alert_id') }}
{% else %}
{{ state_attr('sensor.weatheralerts_alert_1_most_recent_active_alert', 'alert_id') }}
{% endif %}
- name: Weatheralerts Alert 2 Most Recent Active Alert
unique_id: 8112afda-58b9-4161-809c-9186212f86d7
state: >-
{% if states('sensor.weatheralerts_alert_2_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_2') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_2_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_2') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_2_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_2') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_2') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_2', 'alert_event') }}
{% else %}
{{ states('sensor.weatheralerts_alert_2_most_recent_active_alert') }}
{% endif %}
attributes:
alert_effective: >-
{% if states('sensor.weatheralerts_alert_2_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_2') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_2_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_2') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_2_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_2') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_2') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_2', 'alert_effective') }}
{% else %}
{{ state_attr('sensor.weatheralerts_alert_2_most_recent_active_alert', 'alert_effective') }}
{% endif %}
alert_id: >-
{% if states('sensor.weatheralerts_alert_2_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_2') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_2_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_2') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_2_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_2') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_2') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_2', 'alert_id') }}
{% else %}
{{ state_attr('sensor.weatheralerts_alert_2_most_recent_active_alert', 'alert_id') }}
{% endif %}
- name: Weatheralerts Alert 3 Most Recent Active Alert
unique_id: f71f4ab7-0959-43e9-877a-22084b9642c3
state: >-
{% if states('sensor.weatheralerts_alert_3_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_3') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_3_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_3') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_3_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_3') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_3') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_3', 'alert_event') }}
{% else %}
{{ states('sensor.weatheralerts_alert_3_most_recent_active_alert') }}
{% endif %}
attributes:
alert_effective: >-
{% if states('sensor.weatheralerts_alert_3_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_3') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_3_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_3') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_3_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_3') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_3') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_3', 'alert_effective') }}
{% else %}
{{ state_attr('sensor.weatheralerts_alert_3_most_recent_active_alert', 'alert_effective') }}
{% endif %}
alert_id: >-
{% if states('sensor.weatheralerts_alert_3_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_3') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_3_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_3') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_3_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_3') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_3') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_3', 'alert_id') }}
{% else %}
{{ state_attr('sensor.weatheralerts_alert_3_most_recent_active_alert', 'alert_id') }}
{% endif %}
- name: Weatheralerts Alert 4 Most Recent Active Alert
unique_id: e663e42b-a6b2-4a55-a3d9-1932b10fb0ca
state: >-
{% if states('sensor.weatheralerts_alert_4_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_4') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_4_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_4') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_4_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_4') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_4') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_4', 'alert_event') }}
{% else %}
{{ states('sensor.weatheralerts_alert_4_most_recent_active_alert') }}
{% endif %}
attributes:
alert_effective: >-
{% if states('sensor.weatheralerts_alert_4_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_4') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_4_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_4') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_4_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_4') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_4') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_4', 'alert_effective') }}
{% else %}
{{ state_attr('sensor.weatheralerts_alert_4_most_recent_active_alert', 'alert_effective') }}
{% endif %}
alert_id: >-
{% if states('sensor.weatheralerts_alert_4_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_4') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_4_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_4') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_4_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_4') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_4') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_4', 'alert_id') }}
{% else %}
{{ state_attr('sensor.weatheralerts_alert_4_most_recent_active_alert', 'alert_id') }}
{% endif %}
- name: Weatheralerts Alert 5 Most Recent Active Alert
unique_id: 523d7026-1fdd-4621-91c0-87e0bd98f14d
state: >-
{% if states('sensor.weatheralerts_alert_5_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_5') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_5_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_5') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_5_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_5') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_5') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_5', 'alert_event') }}
{% else %}
{{ states('sensor.weatheralerts_alert_5_most_recent_active_alert') }}
{% endif %}
attributes:
alert_effective: >-
{% if states('sensor.weatheralerts_alert_5_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_5') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_5_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_5') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_5_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_5') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_5') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_5', 'alert_effective') }}
{% else %}
{{ state_attr('sensor.weatheralerts_alert_5_most_recent_active_alert', 'alert_effective') }}
{% endif %}
alert_id: >-
{% if states('sensor.weatheralerts_alert_5_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_5') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_5_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_alert_5') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_5_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_alert_5') != 'on' %}
unavailable
{% elif states('sensor.weatheralerts_alert_5') == 'on' %}
{{ state_attr('sensor.weatheralerts_alert_5', 'alert_id') }}
{% else %}
{{ state_attr('sensor.weatheralerts_alert_5_most_recent_active_alert', 'alert_id') }}
{% endif %}
- name: Weather Alerts Are Active
unique_id: 3f6ecba1-c102-4324-b56e-6d80ead0c829
icon: mdi:alert-rhombus
state: >
{% if (states('sensor.weatheralerts') | int > 0) or ((states('sensor.weatheralerts') == 'unavailable') and (states('sensor.weatheralerts_alert_1') == 'on')) %}
Yes
{% else %}
No
{% endif %}
################################################################################
## input_text ##
input_text:
weatheralerts_triggered_ui_alert_ids:
name: Triggered Weather Alert IDs - UI
icon: mdi:information-variant
max: 255
initial: None
weatheralerts_triggered_pushbullet_alert_ids:
name: Triggered Weather Alert IDs - Pushbullet
icon: mdi:information-variant
max: 255
initial: None
weatheralerts_triggered_alert_ids:
name: Triggered Weather Alert IDs - Text
icon: mdi:information-variant
max: 255
initial: None
weatheralerts_triggered_audible_alert_ids:
name: Triggered Weather Alert IDs - Audible
icon: mdi:information-variant
max: 255
initial: None
################################################################################
## automation ##
automation:
## Automation to trigger a UI notification when there is an active weather alert.
## weatheralerts_alert_1 should always contain most recent alert.
- id: fd0b5635-8079-49df-899e-49d1a5871c77
alias: Weather Alert UI Notification - 1
initial_state: true
trigger:
- platform: state
entity_id: sensor.weatheralerts_alert_1_last_changed
- platform: homeassistant
event: start
condition:
- condition: and
conditions:
- condition: template
value_template: "{{ states('sensor.weatheralerts_alerts_are_active') == 'Yes' }}"
- condition: template
value_template: "{{ (as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_1', 'alert_sent'))) < 3600 }}"
- condition: template
value_template: "{{ state_attr('sensor.weatheralerts_alert_1', 'alert_id') not in states('input_text.weatheralerts_triggered_ui_alert_ids') }}"
action:
- service: script.weatheralerts_popup_on_wx_alert
data:
title: >
{% if (states('sensor.weatheralerts_alert_1') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_1', 'alert_effective'))|float) <= 3600) %}
{{ state_attr('sensor.weatheralerts_alert_1', 'display_title') }}
{% else %}
Weather Alerts
{% endif %}
message: >
{% if (states('sensor.weatheralerts_alert_1') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_1', 'alert_effective'))|float) <= 3600) %}
{{ state_attr('sensor.weatheralerts_alert_1', 'display_message') }}
{% endif %}
{% if (states('sensor.weatheralerts_alert_1') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_1', 'alert_effective'))|float) > 3600) %}
<hr>Alert: <br>{{ state_attr('sensor.weatheralerts_alert_1', 'display_title') }}
{% endif %}
{% if (states('sensor.weatheralerts_alert_2') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_2', 'alert_effective'))|float) <= 3600) %}
<hr>{{ state_attr('sensor.weatheralerts_alert_2', 'display_title') }}<br>
{{ state_attr('sensor.weatheralerts_alert_2', 'display_message') }}
{% endif %}
{% if (states('sensor.weatheralerts_alert_2') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_2', 'alert_effective'))|float) > 3600) %}
<hr>Alert: <br>{{ state_attr('sensor.weatheralerts_alert_2', 'display_title') }}
{% endif %}
{% if (states('sensor.weatheralerts_alert_3') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_3', 'alert_effective'))|float) <= 3600) %}
<hr>{{ state_attr('sensor.weatheralerts_alert_3', 'display_title') }}<br>
{{ state_attr('sensor.weatheralerts_alert_3', 'display_message') }}
{% endif %}
{% if (states('sensor.weatheralerts_alert_3') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_3', 'alert_effective'))|float) > 3600) %}
<hr>Alert: <br>{{ state_attr('sensor.weatheralerts_alert_3', 'display_title') }}
{% endif %}
{% if (states('sensor.weatheralerts_alert_4') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_4', 'alert_effective'))|float) <= 3600) %}
<hr>{{ state_attr('sensor.weatheralerts_alert_4', 'display_title') }}<br>
{{ state_attr('sensor.weatheralerts_alert_4', 'display_message') }}
{% endif %}
{% if (states('sensor.weatheralerts_alert_4') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_4', 'alert_effective'))|float) > 3600) %}
<hr>Alert: <br>{{ state_attr('sensor.weatheralerts_alert_4', 'display_title') }}
{% endif %}
{% if (states('sensor.weatheralerts_alert_5') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_5', 'alert_effective'))|float) <= 3600) %}
<hr>{{ state_attr('sensor.weatheralerts_alert_5', 'display_title') }}<br>
{{ state_attr('sensor.weatheralerts_alert_5', 'display_message') }}
{% endif %}
{% if (states('sensor.weatheralerts_alert_5') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_5', 'alert_effective'))|float) > 3600) %}
<hr>Alert: <br>{{ state_attr('sensor.weatheralerts_alert_5', 'display_title') }}
{% endif %}
- service: input_text.set_value
data:
entity_id: input_text.weatheralerts_triggered_ui_alert_ids
value: "{{ state_attr('sensor.weatheralerts_alert_1', 'alert_id') }} {{ state_attr('sensor.weatheralerts_alert_2', 'alert_id') }} {{ state_attr('sensor.weatheralerts_alert_3', 'alert_id') }} {{ state_attr('sensor.weatheralerts_alert_4', 'alert_id') }} {{ state_attr('sensor.weatheralerts_alert_5', 'alert_id') }}"
## Automation to dismiss UI notification if there are no active alerts for 30 minutes
## Disable or remove this automation if you don't want notifications to auto-dismiss
- id: a550cbf6-7745-405c-9548-5c2afdf52c34
alias: Weather Alert UI Notification Auto-dismiss - 1
trigger:
- platform: state
entity_id: sensor.weatheralerts_alerts_are_active
to: "No"
for:
minutes: 30
- platform: homeassistant
event: start
condition:
- condition: template
value_template: "{{ states('sensor.weatheralerts_alerts_are_active') == 'No' }}"
action:
- service: persistent_notification.dismiss
data:
notification_id: "weatheralerts_alert"
## Automation to push alerts via Pushbullet service
## Disable or remove this automation if you don't use Pushbullet
- id: 5145b56e-6db9-4352-a25d-376cebb191ff
alias: Weather Alerts Notification - 1
trigger:
platform: state
entity_id: sensor.weatheralerts_alert_1_last_changed
condition:
- condition: and
conditions:
- condition: template
value_template: "{{ states('sensor.weatheralerts_alerts_are_active') == 'Yes' }}"
- condition: template
value_template: "{{ (as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_1', 'alert_sent'))) < 3600 }}"
- condition: template
value_template: "{{ state_attr('sensor.weatheralerts_alert_1', 'alert_id') not in states('input_text.weatheralerts_triggered_alert_ids') }}"
action:
- service: notify.notify
data:
message: >
Current NWS Weather Alerts:
{% if states('sensor.weatheralerts_alerts_are_active') == "No" %}
No alerts at this time for {{ state_attr('sensor.weatheralerts', 'friendly_name') }}.
{% endif %}
{% if states.sensor.weatheralerts_alert_1.state == "on" %}
{{ states.sensor.weatheralerts_alert_1.attributes.display_title }} for {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
{% endif %}
{% if states.sensor.weatheralerts_alert_2.state == "on" %}
{{ states.sensor.weatheralerts_alert_2.attributes.display_title }} for {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
{% endif %}
{% if states.sensor.weatheralerts_alert_3.state == "on" %}
{{ states.sensor.weatheralerts_alert_3.attributes.display_title }} for {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
{% endif %}
{% if states.sensor.weatheralerts_alert_4.state == "on" %}
{{ states.sensor.weatheralerts_alert_4.attributes.display_title }} for {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
{% endif %}
{% if states.sensor.weatheralerts_alert_5.state == "on" %}
{{ states.sensor.weatheralerts_alert_5.attributes.display_title }} for {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
{% endif %}
- service: input_text.set_value
data:
entity_id: input_text.weatheralerts_triggered_alert_ids
value: "{{ state_attr('sensor.weatheralerts_alert_1', 'alert_id') }} {{ state_attr('sensor.weatheralerts_alert_2', 'alert_id') }} {{ state_attr('sensor.weatheralerts_alert_3', 'alert_id') }} {{ state_attr('sensor.weatheralerts_alert_4', 'alert_id') }} {{ state_attr('sensor.weatheralerts_alert_5', 'alert_id') }}"
# - alias: NWS Notification Weather Alert
# trigger:
# - platform: numeric_state
# entity_id: sensor.weatheralerts_active_alerts
# attribute: warning_count
# above: 0
# - platform: numeric_state
# entity_id: sensor.weatheralerts_active_alerts
# attribute: watch_count
# above: 0
# action:
# - service: script.text_notify
# data:
# title: "Weather Alert for Anchorage House"
# message: >
# There are currently {{ state_attr('sensor.weatheralerts_active_alerts', 'warning_count') | int }} active warnings and {{ state_attr('sensor.weatheralerts_active_alerts', 'watch_count') | int }} watches for our area.
# Announce Severe Weather
- id: b1bdfbf9-d82e-436f-bc60-77c3abfb077b
alias: NWS Announce Weather Alert
trigger:
- platform: numeric_state
entity_id: sensor.weatheralerts_active_alerts
attribute: tstorm_warning_count
above: 0
id: tstorm-warning
- platform: numeric_state
entity_id: sensor.weatheralerts_active_alerts
attribute: tornado_watch_count
above: 0
id: tornado-watch
- platform: numeric_state
entity_id: sensor.weatheralerts_active_alerts
attribute: tstorm_watch_count
above: 0
id: tstorm-watch
- platform: numeric_state
entity_id: sensor.weatheralerts_active_alerts
attribute: freeze_warning_count
above: 0
id: freeze-warning
condition:
- condition: and
conditions:
- condition: template
value_template: "{{ states('sensor.weatheralerts_alerts_are_active') == 'Yes' }}"
- condition: template
value_template: "{{ (as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_alert_1', 'alert_sent'))) < 3600 }}"
- condition: template
value_template: "{{ state_attr('sensor.weatheralerts_alert_1', 'alert_id') not in states('input_text.weatheralerts_triggered_audible_alert_ids') }}"
action:
- choose:
- conditions:
- condition: trigger
id: tstorm-warning
sequence:
- service: script.status_annc
data:
who: everywhere
type: weather
call_interruption: 1
call_thunderstorm_warning: 1
- conditions:
- condition: trigger
id: tornado-watch
sequence:
- service: script.status_annc
data:
who: everywhere
type: weather
call_interruption: 1
call_tornado_watch: 1
- conditions:
- condition: trigger
id: tstorm-watch
sequence:
- service: script.status_annc
data:
who: everywhere
type: weather
call_interruption: 1
call_thunderstorm_watch: 1
- conditions:
- condition: trigger
id: freeze-warning
sequence:
- service: script.status_annc
data:
who: everywhere
type: weather
call_interruption: 1
call_freeze_warning: 1
- service: input_text.set_value
data:
entity_id: input_text.weatheralerts_triggered_audible_alert_ids
value: "{{ state_attr('sensor.weatheralerts_alert_1', 'alert_id') }} {{ state_attr('sensor.weatheralerts_alert_2', 'alert_id') }} {{ state_attr('sensor.weatheralerts_alert_3', 'alert_id') }} {{ state_attr('sensor.weatheralerts_alert_4', 'alert_id') }} {{ state_attr('sensor.weatheralerts_alert_5', 'alert_id') }}"
# - id: 04b1119f-4e30-4ae3-ae50-632ac521c871
# alias: Lightning Detected
# trigger:
# - platform: state
# entity_id: binary_sensor.lightning_warning
# from: 'off'
# to: 'on'
# action:
# - service: script.lightning_warning
# - id: df317cd2-b5c6-43a7-a587-844403a4a0ad
# alias: Lightning Warning Off
# trigger:
# - platform: state
# entity_id: binary_sensor.lightning_warning
# from: 'on'
# to: 'off'
# action:
# - service: script.lightning_clear
- id: 9e34264f-b3c8-4537-ba31-b5915f2fd326
alias: NWS Freeze Warning
trigger:
- platform: numeric_state
entity_id: sensor.weatheralerts_active_alerts
attribute: freeze_warning_count
above: 0
action:
- service: input_boolean.turn_on
entity_id: input_boolean.freeze_warning
################################################################################
## script ##
script:
# lightning_warning:
# alias: 'Lightning Warning'
# sequence:
# - service: script.text_notify
# data:
# type: alert
# who: 'all'
# title: "Lightning Detected!"
# message: >-
# {% set ltgdist = (states('sensor.blitzortung_lightning_distance') | int) / 1.609 | round %}
# "Lightning has been detected within 20 miles of the house. Nearest storm is {{ ltgdist }} miles away."
# tag: lightning-warning
# - if:
# - condition: state
# entity_id: binary_sensor.audible_weather_alerts_allowed
# state: 'on'
# then:
# - service: scene.create
# data:
# scene_id: lightning_alert_restore
# snapshot_entities:
# - light.tina_lamp_side
# - light.tina_lamp_top
# - switch.adaptive_lighting_living_room
# - switch.adaptive_lighting_tina_lamp
# - service: switch.turn_off
# target:
# entity_id:
# - switch.adaptive_lighting_tina_lamp
# - delay:
# milliseconds: 500
# - service: light.turn_on
# target:
# entity_id:
# - light.tina_lamp_side
# - light.tina_lamp_top
# data:
# color_name: red
# - service: script.living_room_lights_alert
# data:
# type: red
# duration: 10
# - service: script.status_annc
# data:
# who: common
# type: weather
# call_interruption: 1
# call_lightning_alert: 1
# - delay:
# seconds: 10
# - service: scene.turn_on
# target:
# entity_id: scene.lightning_alert_restore
# lightning_clear:
# alias: 'Lightning Clear'
# sequence:
# - service: script.text_notify
# data:
# type: alert
# who: all
# message: clear_notification
# tag: lightning-warning
# - service: script.status_annc
# data:
# who: common
# type: weather
# call_interruption: 1
# call_lightning_clear: 1
# - service: script.text_notify
# data:
# type: alert
# who: 'all'
# title: "Lightning Clear"
# message: "The lightning threat has passed. It is safe to resume normal activities."
## Script creates UI notification and is called via automation defined above
weatheralerts_popup_on_wx_alert:
alias: Weather Alert Pop Up - 1
sequence:
## Dismiss any current alert so the UI isn't filled
## up with these if there are more then one.
## Only show the most recent alert
- service: persistent_notification.dismiss
data:
notification_id: "weatheralerts_alert"
## Create a new persistant notification in the UI for a new alert
- if:
- condition: template
value_template: "{{ states.sensor.weatheralerts.state != '0' }}"
then:
- service: persistent_notification.create
data:
notification_id: "weatheralerts_alert"
message: "{{ message }}"
title: "{{ title }}"