# 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 # ################################################################################ ################################################################################ ## sensor ## sensor: - platform: template sensors: weatheralerts_active_alerts: ## You can add your county or city name to friendly_name for personalization ## For example: Weather Alerts for YourCountyName friendly_name: Weather Alerts unique_id: 32371252-89ff-47b2-86e3-32ef92a05205 unit_of_measurement: Alerts icon_template: mdi:alert-rhombus value_template: >- {% 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 }} attribute_templates: 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 }} weatheralerts_alert_1: friendly_name: Weather Alert 1 unique_id: 752fb9ae-a61f-41f8-8882-f8d025b892e3 icon_template: mdi:alert-rhombus value_template: >- {% 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 %} attribute_templates: 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('\'\]','') }}
{% endif %}
{{ states.sensor.weatheralerts.attributes.alerts[0].description | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }}
{% if states.sensor.weatheralerts.attributes.alerts[0].instruction != None %} {{ states.sensor.weatheralerts.attributes.alerts[0].instruction | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }}
{% endif %}
Where : {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
Effective: {{ states.sensor.weatheralerts.attributes.alerts[0].effective }} {%- if states.sensor.weatheralerts.attributes.alerts[0].ends != None %}
Ends: {{ states.sensor.weatheralerts.attributes.alerts[0].ends }} {%- endif %}
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','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }} {% if states.sensor.weatheralerts.attributes.alerts[0].instruction != None %} {{ states.sensor.weatheralerts.attributes.alerts[0].instruction | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }} {% endif %} {% else %} None {% endif %} weatheralerts_alert_2: friendly_name: Weather Alert 2 unique_id: 4ecaa8ce-65ec-429f-956c-ac478f1c3d6f icon_template: mdi:alert-rhombus value_template: >- {% 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 %} attribute_templates: 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('\'\]','') }}
{% endif %}
{{ states.sensor.weatheralerts.attributes.alerts[1].description | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }}
{% if states.sensor.weatheralerts.attributes.alerts[1].instruction != None %} {{ states.sensor.weatheralerts.attributes.alerts[1].instruction | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }}
{% endif %}
Where : {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
Effective: {{ states.sensor.weatheralerts.attributes.alerts[1].effective }} {%- if states.sensor.weatheralerts.attributes.alerts[1].ends != None %}
Ends: {{ states.sensor.weatheralerts.attributes.alerts[1].ends }} {%- endif %}
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','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }} {% if states.sensor.weatheralerts.attributes.alerts[1].instruction != None %} {{ states.sensor.weatheralerts.attributes.alerts[1].instruction | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }} {% endif %} {% else %} None {% endif %} weatheralerts_alert_3: friendly_name: Weather Alert 3 unique_id: 0dcc3731-c90e-427a-abd9-dee29a5ed1e1 icon_template: mdi:alert-rhombus value_template: >- {% 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 %} attribute_templates: 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('\'\]','') }}
{% endif %}
{{ states.sensor.weatheralerts.attributes.alerts[2].description | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }}
{% if states.sensor.weatheralerts.attributes.alerts[2].instruction != None %} {{ states.sensor.weatheralerts.attributes.alerts[2].instruction | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }}
{% endif %}
Where : {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
Effective: {{ states.sensor.weatheralerts.attributes.alerts[2].effective }} {%- if states.sensor.weatheralerts.attributes.alerts[2].ends != None %}
Ends: {{ states.sensor.weatheralerts.attributes.alerts[2].ends }} {%- endif %}
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','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }} {% if states.sensor.weatheralerts.attributes.alerts[2].instruction != None %} {{ states.sensor.weatheralerts.attributes.alerts[2].instruction | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }} {% endif %} {% else %} None {% endif %} weatheralerts_alert_4: friendly_name: Weather Alert 4 unique_id: 18f756d2-f3aa-476f-a1c0-12c70f173ead icon_template: mdi:alert-rhombus value_template: >- {% 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 %} attribute_templates: 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('\'\]','') }}
{% endif %}
{{ states.sensor.weatheralerts.attributes.alerts[3].description | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }}
{% if states.sensor.weatheralerts.attributes.alerts[3].instruction != None %} {{ states.sensor.weatheralerts.attributes.alerts[3].instruction | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }}
{% endif %}
Where : {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
Effective: {{ states.sensor.weatheralerts.attributes.alerts[3].effective }} {%- if states.sensor.weatheralerts.attributes.alerts[3].ends != None %}
Ends: {{ states.sensor.weatheralerts.attributes.alerts[3].ends }} {%- endif %}
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','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }} {% if states.sensor.weatheralerts.attributes.alerts[3].instruction != None %} {{ states.sensor.weatheralerts.attributes.alerts[3].instruction | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }} {% endif %} {% else %} None {% endif %} weatheralerts_alert_5: friendly_name: Weather Alert 5 unique_id: c9690a26-84e8-439d-9718-469b227c4d66 icon_template: mdi:alert-rhombus value_template: >- {% 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 %} attribute_templates: 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('\'\]','') }}
{% endif %}
{{ states.sensor.weatheralerts.attributes.alerts[4].description | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }}
{% if states.sensor.weatheralerts.attributes.alerts[4].instruction != None %} {{ states.sensor.weatheralerts.attributes.alerts[4].instruction | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }}
{% endif %}
Where : {{ state_attr('sensor.weatheralerts', 'friendly_name') }}
Effective: {{ states.sensor.weatheralerts.attributes.alerts[4].effective }} {%- if states.sensor.weatheralerts.attributes.alerts[4].ends != None %}
Ends: {{ states.sensor.weatheralerts.attributes.alerts[4].ends }} {%- endif %}
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','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }} {% if states.sensor.weatheralerts.attributes.alerts[4].instruction != None %} {{ states.sensor.weatheralerts.attributes.alerts[4].instruction | regex_replace('\n\n','

') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('

','\n\n') }} {% endif %} {% else %} None {% endif %} weatheralerts_alert_1_last_changed: unique_id: 3db32f1f-a6d3-4321-9078-2577d403f314 value_template: >- {% if states('sensor.weatheralerts_alert_1') == "on" %} {{ states.sensor.weatheralerts_alert_1.last_updated }} {% else %} None {% endif %} weatheralerts_alert_2_last_changed: unique_id: 75e746a0-b776-4dbb-b018-1e808a204f65 value_template: >- {% if states('sensor.weatheralerts_alert_2') == "on" %} {{ states.sensor.weatheralerts_alert_2.last_updated }} {% else %} None {% endif %} weatheralerts_alert_3_last_changed: unique_id: 4382f9a3-32bf-42f9-809f-ae33f33140b7 value_template: >- {% if states('sensor.weatheralerts_alert_3') == "on" %} {{ states.sensor.weatheralerts_alert_3.last_updated }} {% else %} None {% endif %} weatheralerts_alert_4_last_changed: unique_id: 4fbf5547-eac4-4ebf-b5fc-b043fafc0026 value_template: >- {% if states('sensor.weatheralerts_alert_4') == "on" %} {{ states.sensor.weatheralerts_alert_4.last_updated }} {% else %} None {% endif %} weatheralerts_alert_5_last_changed: unique_id: d7b66a73-8431-433c-8cd1-d413d726cb0a value_template: >- {% if states('sensor.weatheralerts_alert_5') == "on" %} {{ states.sensor.weatheralerts_alert_5.last_updated }} {% else %} None {% endif %} weatheralerts_alert_1_most_recent_active_alert: unique_id: 569944e9-b4cf-4ed2-9bed-40b2a0a9b898 value_template: >- {% 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 %} attribute_templates: 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 %} weatheralerts_alert_2_most_recent_active_alert: unique_id: 8112afda-58b9-4161-809c-9186212f86d7 value_template: >- {% 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 %} attribute_templates: 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 %} weatheralerts_alert_3_most_recent_active_alert: unique_id: f71f4ab7-0959-43e9-877a-22084b9642c3 value_template: >- {% 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 %} attribute_templates: 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 %} weatheralerts_alert_4_most_recent_active_alert: unique_id: e663e42b-a6b2-4a55-a3d9-1932b10fb0ca value_template: >- {% 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 %} attribute_templates: 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 %} weatheralerts_alert_5_most_recent_active_alert: unique_id: 523d7026-1fdd-4621-91c0-87e0bd98f14d value_template: >- {% 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 %} attribute_templates: 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 %} weatheralerts_alerts_are_active: friendly_name: Weather Alerts Are Active unique_id: 3f6ecba1-c102-4324-b56e-6d80ead0c829 icon_template: mdi:alert-rhombus value_template: > {% 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) %}


Alert:
{{ 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) %}
{{ state_attr('sensor.weatheralerts_alert_2', 'display_title') }}
{{ 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) %}
Alert:
{{ 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) %}
{{ state_attr('sensor.weatheralerts_alert_3', 'display_title') }}
{{ 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) %}
Alert:
{{ 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) %}
{{ state_attr('sensor.weatheralerts_alert_4', 'display_title') }}
{{ 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) %}
Alert:
{{ 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) %}
{{ state_attr('sensor.weatheralerts_alert_5', 'display_title') }}
{{ 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) %}
Alert:
{{ 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 call_interruption: 1 call_thunderstorm_warning: 1 - conditions: - condition: trigger id: tornado-watch sequence: - service: script.status_annc data: who: everywhere call_interruption: 1 call_tornado_watch: 1 - conditions: - condition: trigger id: tstorm-watch sequence: - service: script.status_annc data: who: everywhere call_interruption: 1 call_thunderstorm_watch: 1 - conditions: - condition: trigger id: freeze-warning sequence: - service: script.status_annc data: who: everywhere 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 - id: 288de6e1-ec3d-43fa-9be8-1b2e27e4ad85 alias: Rain Window Warning trigger: - platform: state entity_id: sensor.pirateweather_precip from: 'none' not_to: - unavailable - unknown condition: - condition: state entity_id: binary_sensor.windows state: 'on' action: - service: script.text_notify data: type: alert who: 'all' title: "WINDOWS ARE OPEN!" message: "It is raining and there are windows open in the house. Please close them!" tag: rain-window-warning - service: script.speech_engine data: who: everywhere message: "It is raining and there are windows open in the house. Please close them!" - wait_template: "{{ is_state('binary_sensor.windows','off') or is_state('sensor.pirateweather_precip','none') }}" timeout: "00:15:00" continue_on_timeout: true - choose: - conditions: - condition: template value_template: "{{ is_state('binary_sensor.windows','off') and states('sensor.pirateweather_precip') not in ['none'] }}" sequence: - service: script.text_notify data: type: alert who: all message: clear_notification tag: rain-window-warning - service: script.speech_engine data: who: common message: "Windows are now closed. Thank you, and enjoy your dry house." - conditions: - condition: template value_template: "{{ is_state('sensor.pirateweather_precip','none') }}" sequence: - service: script.text_notify data: type: alert who: all message: clear_notification tag: rain-window-warning - service: script.speech_engine data: who: common message: "Nevermind, it has stopped raining. Feel free to do whatever you'd like with the windows." default: - service: script.speech_engine data: who: common message: "Well, I guess no one cares if the house floods. Suit yourself, but do not say I didn't warn you." ################################################################################ ## 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: input_boolean.master_bedroom_sleeping state: 'off' then: - service: scene.create data: scene_id: lightning_alert_restore snapshot_entities: - light.living_room_color_1 - light.living_room_color_2 - light.living_room_color_3 - light.tina_lamp_side - light.tina_lamp_top - light.tina_desk_strip - switch.adaptive_lighting_living_room - switch.adaptive_lighting_tina_lamp - service: switch.turn_off target: entity_id: - switch.adaptive_lighting_living_room - switch.adaptive_lighting_tina_lamp - delay: milliseconds: 500 - service: light.turn_on target: entity_id: - light.living_room_color_1 - light.living_room_color_2 - light.living_room_color_3 - light.tina_lamp_side - light.tina_lamp_top - light.tina_desk_strip data: color_name: red - if: - condition: state entity_id: input_boolean.master_bedroom_sleeping state: 'off' then: - service: script.status_annc data: who: 'common' type: alert 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 - if: - condition: state entity_id: input_boolean.master_bedroom_sleeping state: 'off' then: - service: script.status_annc data: who: 'common' type: alert 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 }}"