GithubHelp home page GithubHelp logo

Comments (4)

jlverhagen avatar jlverhagen commented on May 26, 2024

@mac-city,

First, thanks for sharing that video link. SlackerLabs has very nice additions to the yaml package there that I will be bringing into the yaml package here.

In the video, he puts the integration configuration into the weatheralerts_1.yaml file (but he renamed it to weatheralerts.yaml). In the packages folder here on this github repository, I have the integration configuration in weatheralerts.yaml and all of the extra stuff separated into weatheralerts_1.yaml. If you downloaded both of those yaml files from this repository and then followed the video and added the integration configuration details into the weatheralerts_1.yaml, then that would most likely be the problem since now there would be two weatheralerts_1 integration configurations (one in weatheralerts.yaml and one in weatheralerts_1.yaml). If that is the case, just delete one of the integration configuration sections and then make sure the one you don't delete has the proper state, zone, and county configuration for your location. My reasoning for keeping the integration configuration separate from the template sensor and automation stuff is to make it easier for the end user to update the package in the future without having to re-edit the file manually. If a duplicate integration configuration isn't the promem, if you followed the video and made any of those yaml edits to the original weatheralerts_1.yaml file, it could mean there is an indentation error or something was inserted into the yaml file slightly out-of-place.

If you edited the yaml package file and can't find the error, I'll take a look at if you email the yaml file to [email protected].

from weatheralerts.

mac-city avatar mac-city commented on May 26, 2024

Thanks so much for the speedy response! I only have one file in the packages folder, and like SlackerLabs, I just copied and pasted the contents from raw. I lied about "to the T" part though, I guess, because I used the original name on my file weatheralerts_1.yaml, copied here. It seems to be correct as far as I can tell, and I don't have the sensor entry in my configuration.yaml. since I stopped working on it at that point, I didn't look at any of his other changes, tbh.

################################################################################
#
#    weatheralerts_1.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 sensor Entity ID to sensor.weatheralerts_1 and
#    you shouldn't need to alter anything else in this yaml package to make it
#    all work.
#
#    This yaml package stores up to 5 most recent active alerts from the
#    weather alerts feed and places them in these sensors:
#
#        sensor.weatheralerts_1_alert_1
#        sensor.weatheralerts_1_alert_2
#        sensor.weatheralerts_1_alert_3
#        sensor.weatheralerts_1_alert_4
#        sensor.weatheralerts_1_alert_5
#
#    Additional sensors available:
#        sensor.weatheralerts_1_active_alerts (contains number of active alerts)
#        weatheralerts_1_alerts_are_active (contains either Yes or No)
#        sensor.weatheralerts_1_alert_1_last_changed
#        sensor.weatheralerts_1_alert_2_last_changed
#        sensor.weatheralerts_1_alert_3_last_changed
#        sensor.weatheralerts_1_alert_4_last_changed
#        sensor.weatheralerts_1_alert_5_last_changed
#        sensor.weatheralerts_1_alert_1_most_recent_active_alert
#        sensor.weatheralerts_1_alert_2_most_recent_active_alert
#        sensor.weatheralerts_1_alert_3_most_recent_active_alert
#        sensor.weatheralerts_1_alert_4_most_recent_active_alert
#        sensor.weatheralerts_1_alert_5_most_recent_active_alert
#
################################################################################




################################################################################
## sensor ##

sensor:
  - platform: weatheralerts
    state: MI
    zone: 50
    county: 121
  - platform: template
    sensors:
      weatheralerts_1_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
        unit_of_measurement: Alerts
        icon_template: mdi:alert-rhombus
        value_template: >-
            {% set alerts_total = namespace(count=0) %}
            {% if (state_attr('sensor.weatheralerts_1', 'alerts')) %}
              {% for alert in state_attr('sensor.weatheralerts_1', '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_1', 'alerts')) %}
              {% for alert in state_attr('sensor.weatheralerts_1', '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 }}
          watch_count: >-
            {% set watches = namespace(count=0) %}
            {% if (state_attr('sensor.weatheralerts_1', 'alerts')) %}
              {% for alert in state_attr('sensor.weatheralerts_1', '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 }}
          advisory_count: >-
            {% set advisories = namespace(count=0) %}
            {% if (state_attr('sensor.weatheralerts_1', 'alerts')) %}
              {% for alert in state_attr('sensor.weatheralerts_1', '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_1', 'alerts')) %}
              {% for alert in state_attr('sensor.weatheralerts_1', '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_1', 'alerts')) %}
              {% for alert in state_attr('sensor.weatheralerts_1', '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_1', 'alerts')) %}
              {% for alert in state_attr('sensor.weatheralerts_1', '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_1', 'alerts')) %}
              {% for alert in state_attr('sensor.weatheralerts_1', '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_1', 'alerts')) %}
              {% for alert in state_attr('sensor.weatheralerts_1', '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_1', 'alerts')) %}
              {% for alert in state_attr('sensor.weatheralerts_1', '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_1_alert_1:
        friendly_name: Weather Alert 1
        icon_template: mdi:alert-rhombus
        value_template: >-
          {% if (states('sensor.weatheralerts_1') != 'unavailable') and (state_attr('sensor.weatheralerts_1', 'alerts')[0] != null) or ((states('sensor.weatheralerts_1') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts_1', 'alerts')[0].endsExpires) - as_timestamp(now()) > 0)) %}
            on
          {% else %}
            off
          {% endif %}
        attribute_templates:
          alert_id: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].id }}
            {% else %}
              None
            {% endif %}
          alert_event: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].event }}
            {% else %}
              None
            {% endif %}
          alert_area: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].area }}
            {% else %}
              None
            {% endif %}
          alert_NWSheadline: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}
            {% else %}
              None
            {% endif %}
          alert_description: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].description  }}
            {% else %}
              None
            {% endif %}
          alert_messageType: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].messageType }}
            {% else %}
              None
            {% endif %}
          alert_status: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].status }}
            {% else %}
              None
            {% endif %}
          alert_category: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].category }}
            {% else %}
              None
            {% endif %}
          alert_urgency: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].urgency }}
            {% else %}
              None
            {% endif %}
          alert_severity: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].severity }}
            {% else %}
              None
            {% endif %}
          alert_certainty: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].certainty }}
            {% else %}
              None
            {% endif %}
          alert_response: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].response }}
            {% else %}
              None
            {% endif %}
          alert_instruction: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].instruction }}
            {% else %}
              None
            {% endif %}
          alert_sent: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].sent }}
            {% else %}
              None
            {% endif %}
          alert_effective: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].effective }}
            {% else %}
              None
            {% endif %}
          alert_onset: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].onset }}
            {% else %}
              None
            {% endif %}
          alert_expires: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].expires }}
            {% else %}
              None
            {% endif %}
          alert_title: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].title }}
            {% else %}
              None
            {% endif %}
          alert_zoneid: >-
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].zoneid }}
            {% else %}
              None
            {% endif %}
          display_title: >
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].title }}
            {% else %}
              None
            {% endif %}
          display_message: >
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {% if states.sensor.weatheralerts_1.attributes.alerts[0].NWSheadline != "null" %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}<br>
              {% endif %}
              <br>{{ states.sensor.weatheralerts_1.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_1.attributes.alerts[0].instruction != None %}
              {{ states.sensor.weatheralerts_1.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_1', 'friendly_name') }}
              <br>Effective: {{ states.sensor.weatheralerts_1.attributes.alerts[0].effective }}
              {%- if states.sensor.weatheralerts_1.attributes.alerts[0].ends != None %}
                <br>Ends: {{ states.sensor.weatheralerts_1.attributes.alerts[0].ends }}
              {%- endif %}
              <br>Expires: {{ states.sensor.weatheralerts_1.attributes.alerts[0].expires }}
            {% else %}
              None
            {% endif %}
          spoken_title: >
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              Attention!!! Weather alert for {{ state_attr('sensor.weatheralerts_1', 'friendly_name') }}. A {{ states.sensor.weatheralerts_1.attributes.alerts[0].title }}. {{ states.sensor.weatheralerts_1.attributes.alerts[0].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') | capitalize }}.
            {% else %}
              None
            {% endif %}
          spoken_message: >
            {% if states('sensor.weatheralerts_1')|int > 0 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_1') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[0].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
              {% if states.sensor.weatheralerts_1.attributes.alerts[0].instruction != None %}
                {{ states.sensor.weatheralerts_1.attributes.alerts[0].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
              {% endif %}
            {% else %}
              None
            {% endif %}
      weatheralerts_1_alert_2:
        friendly_name: Weather Alert 2
        icon_template: mdi:alert-rhombus
        value_template: >-
          {% if (states('sensor.weatheralerts_1') != 'unavailable') and (state_attr('sensor.weatheralerts_1', 'alerts')[1] != null) or ((states('sensor.weatheralerts_1') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts_1', 'alerts')[1].endsExpires) - as_timestamp(now()) > 0)) %}
            on
          {% else %}
            off
          {% endif %}
        attribute_templates:
          alert_id: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].id }}
            {% else %}
              None
            {% endif %}
          alert_event: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].event }}
            {% else %}
              None
            {% endif %}
          alert_area: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].area }}
            {% else %}
              None
            {% endif %}
          alert_NWSheadline: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}
            {% else %}
              None
            {% endif %}
          alert_description: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].description  }}
            {% else %}
              None
            {% endif %}
          alert_messageType: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].messageType }}
            {% else %}
              None
            {% endif %}
          alert_status: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].status }}
            {% else %}
              None
            {% endif %}
          alert_category: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].category }}
            {% else %}
              None
            {% endif %}
          alert_urgency: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].urgency }}
            {% else %}
              None
            {% endif %}
          alert_severity: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].severity }}
            {% else %}
              None
            {% endif %}
          alert_certainty: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].certainty }}
            {% else %}
              None
            {% endif %}
          alert_response: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].response }}
            {% else %}
              None
            {% endif %}
          alert_instruction: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].instruction }}
            {% else %}
              None
            {% endif %}
          alert_sent: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].sent }}
            {% else %}
              None
            {% endif %}
          alert_effective: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].effective }}
            {% else %}
              None
            {% endif %}
          alert_onset: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].onset }}
            {% else %}
              None
            {% endif %}
          alert_expires: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].expires }}
            {% else %}
              None
            {% endif %}
          alert_title: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].title }}
            {% else %}
              None
            {% endif %}
          alert_zoneid: >-
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].zoneid }}
            {% else %}
              None
            {% endif %}
          display_title: >
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].title }}
            {% else %}
              None
            {% endif %}
          display_message: >
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {% if states.sensor.weatheralerts_1.attributes.alerts[1].NWSheadline != "null" %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}<br>
              {% endif %}
              <br>{{ states.sensor.weatheralerts_1.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_1.attributes.alerts[1].instruction != None %}
              {{ states.sensor.weatheralerts_1.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_1', 'friendly_name') }}
              <br>Effective: {{ states.sensor.weatheralerts_1.attributes.alerts[1].effective }}
              {%- if states.sensor.weatheralerts_1.attributes.alerts[1].ends != None %}
                <br>Ends: {{ states.sensor.weatheralerts_1.attributes.alerts[1].ends }}
              {%- endif %}
              <br>Expires: {{ states.sensor.weatheralerts_1.attributes.alerts[1].expires }}
            {% else %}
              None
            {% endif %}
          spoken_title: >
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              Attention!!! Weather alert for {{ state_attr('sensor.weatheralerts_1', 'friendly_name') }}. A {{ states.sensor.weatheralerts_1.attributes.alerts[1].title }}. {{ states.sensor.weatheralerts_1.attributes.alerts[1].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') | capitalize }}.
            {% else %}
              None
            {% endif %}
          spoken_message: >
            {% if states('sensor.weatheralerts_1')|int > 1 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_2') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[1].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
              {% if states.sensor.weatheralerts_1.attributes.alerts[1].instruction != None %}
                {{ states.sensor.weatheralerts_1.attributes.alerts[1].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
              {% endif %}
            {% else %}
              None
            {% endif %}
      weatheralerts_1_alert_3:
        friendly_name: Weather Alert 3
        icon_template: mdi:alert-rhombus
        value_template: >-
          {% if (states('sensor.weatheralerts_1') != 'unavailable') and (state_attr('sensor.weatheralerts_1', 'alerts')[2] != null) or ((states('sensor.weatheralerts_1') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts_1', 'alerts')[2].endsExpires) - as_timestamp(now()) > 0)) %}
            on
          {% else %}
            off
          {% endif %}
        attribute_templates:
          alert_id: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].id }}
            {% else %}
              None
            {% endif %}
          alert_event: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].event }}
            {% else %}
              None
            {% endif %}
          alert_area: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].area }}
            {% else %}
              None
            {% endif %}
          alert_NWSheadline: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}
            {% else %}
              None
            {% endif %}
          alert_description: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].description  }}
            {% else %}
              None
            {% endif %}
          alert_messageType: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].messageType }}
            {% else %}
              None
            {% endif %}
          alert_status: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].status }}
            {% else %}
              None
            {% endif %}
          alert_category: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].category }}
            {% else %}
              None
            {% endif %}
          alert_urgency: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].urgency }}
            {% else %}
              None
            {% endif %}
          alert_severity: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].severity }}
            {% else %}
              None
            {% endif %}
          alert_certainty: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].certainty }}
            {% else %}
              None
            {% endif %}
          alert_response: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].response }}
            {% else %}
              None
            {% endif %}
          alert_instruction: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].instruction }}
            {% else %}
              None
            {% endif %}
          alert_sent: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].sent }}
            {% else %}
              None
            {% endif %}
          alert_effective: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].effective }}
            {% else %}
              None
            {% endif %}
          alert_onset: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].onset }}
            {% else %}
              None
            {% endif %}
          alert_expires: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].expires }}
            {% else %}
              None
            {% endif %}
          alert_title: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].title }}
            {% else %}
              None
            {% endif %}
          alert_zoneid: >-
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].zoneid }}
            {% else %}
              None
            {% endif %}
          display_title: >
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].title }}
            {% else %}
              None
            {% endif %}
          display_message: >
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {% if states.sensor.weatheralerts_1.attributes.alerts[2].NWSheadline != "null" %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}<br>
              {% endif %}
              <br>{{ states.sensor.weatheralerts_1.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_1.attributes.alerts[2].instruction != None %}
              {{ states.sensor.weatheralerts_1.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_1', 'friendly_name') }}
              <br>Effective: {{ states.sensor.weatheralerts_1.attributes.alerts[2].effective }}
              {%- if states.sensor.weatheralerts_1.attributes.alerts[2].ends != None %}
                <br>Ends: {{ states.sensor.weatheralerts_1.attributes.alerts[2].ends }}
              {%- endif %}
              <br>Expires: {{ states.sensor.weatheralerts_1.attributes.alerts[2].expires }}
            {% else %}
              None
            {% endif %}
          spoken_title: >
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              Attention!!! Weather alert for {{ state_attr('sensor.weatheralerts_1', 'friendly_name') }}. A {{ states.sensor.weatheralerts_1.attributes.alerts[2].title }}. {{ states.sensor.weatheralerts_1.attributes.alerts[2].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') | capitalize }}.
            {% else %}
              None
            {% endif %}
          spoken_message: >
            {% if states('sensor.weatheralerts_1')|int > 2 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_3') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[2].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
              {% if states.sensor.weatheralerts_1.attributes.alerts[2].instruction != None %}
                {{ states.sensor.weatheralerts_1.attributes.alerts[2].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
              {% endif %}
            {% else %}
              None
            {% endif %}
      weatheralerts_1_alert_4:
        friendly_name: Weather Alert 4
        icon_template: mdi:alert-rhombus
        value_template: >-
          {% if (states('sensor.weatheralerts_1') != 'unavailable') and (state_attr('sensor.weatheralerts_1', 'alerts')[3] != null) or ((states('sensor.weatheralerts_1') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts_1', 'alerts')[3].endsExpires) - as_timestamp(now()) > 0)) %}
            on
          {% else %}
            off
          {% endif %}
        attribute_templates:
          alert_id: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].id }}
            {% else %}
              None
            {% endif %}
          alert_event: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].event }}
            {% else %}
              None
            {% endif %}
          alert_area: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].area }}
            {% else %}
              None
            {% endif %}
          alert_NWSheadline: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}
            {% else %}
              None
            {% endif %}
          alert_description: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].description  }}
            {% else %}
              None
            {% endif %}
          alert_messageType: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].messageType }}
            {% else %}
              None
            {% endif %}
          alert_status: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].status }}
            {% else %}
              None
            {% endif %}
          alert_category: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].category }}
            {% else %}
              None
            {% endif %}
          alert_urgency: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].urgency }}
            {% else %}
              None
            {% endif %}
          alert_severity: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].severity }}
            {% else %}
              None
            {% endif %}
          alert_certainty: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].certainty }}
            {% else %}
              None
            {% endif %}
          alert_response: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].response }}
            {% else %}
              None
            {% endif %}
          alert_instruction: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].instruction }}
            {% else %}
              None
            {% endif %}
          alert_sent: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].sent }}
            {% else %}
              None
            {% endif %}
          alert_effective: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].effective }}
            {% else %}
              None
            {% endif %}
          alert_onset: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].onset }}
            {% else %}
              None
            {% endif %}
          alert_expires: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].expires }}
            {% else %}
              None
            {% endif %}
          alert_title: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].title }}
            {% else %}
              None
            {% endif %}
          alert_zoneid: >-
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].zoneid }}
            {% else %}
              None
            {% endif %}
          display_title: >
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].title }}
            {% else %}
              None
            {% endif %}
          display_message: >
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {% if states.sensor.weatheralerts_1.attributes.alerts[3].NWSheadline != "null" %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}<br>
              {% endif %}
              <br>{{ states.sensor.weatheralerts_1.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_1.attributes.alerts[3].instruction != None %}
              {{ states.sensor.weatheralerts_1.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_1', 'friendly_name') }}
              <br>Effective: {{ states.sensor.weatheralerts_1.attributes.alerts[3].effective }}
              {%- if states.sensor.weatheralerts_1.attributes.alerts[3].ends != None %}
                <br>Ends: {{ states.sensor.weatheralerts_1.attributes.alerts[3].ends }}
              {%- endif %}
              <br>Expires: {{ states.sensor.weatheralerts_1.attributes.alerts[3].expires }}
            {% else %}
              None
            {% endif %}
          spoken_title: >
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              Attention!!! Weather alert for {{ state_attr('sensor.weatheralerts_1', 'friendly_name') }}. A {{ states.sensor.weatheralerts_1.attributes.alerts[3].title }}. {{ states.sensor.weatheralerts_1.attributes.alerts[3].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') | capitalize }}.
            {% else %}
              None
            {% endif %}
          spoken_message: >
            {% if states('sensor.weatheralerts_1')|int > 3 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_4') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[3].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
              {% if states.sensor.weatheralerts_1.attributes.alerts[3].instruction != None %}
                {{ states.sensor.weatheralerts_1.attributes.alerts[3].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
              {% endif %}
            {% else %}
              None
            {% endif %}
      weatheralerts_1_alert_5:
        friendly_name: Weather Alert 5
        icon_template: mdi:alert-rhombus
        value_template: >-
          {% if (states('sensor.weatheralerts_1') != 'unavailable') and (state_attr('sensor.weatheralerts_1', 'alerts')[4] != null) or ((states('sensor.weatheralerts_1') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts_1', 'alerts')[4].endsExpires) - as_timestamp(now()) > 0)) %}
            on
          {% else %}
            off
          {% endif %}
        attribute_templates:
          alert_id: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].id }}
            {% else %}
              None
            {% endif %}
          alert_event: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].event }}
            {% else %}
              None
            {% endif %}
          alert_area: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].area }}
            {% else %}
              None
            {% endif %}
          alert_NWSheadline: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}
            {% else %}
              None
            {% endif %}
          alert_description: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].description  }}
            {% else %}
              None
            {% endif %}
          alert_messageType: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].messageType }}
            {% else %}
              None
            {% endif %}
          alert_status: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].status }}
            {% else %}
              None
            {% endif %}
          alert_category: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].category }}
            {% else %}
              None
            {% endif %}
          alert_urgency: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].urgency }}
            {% else %}
              None
            {% endif %}
          alert_severity: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].severity }}
            {% else %}
              None
            {% endif %}
          alert_certainty: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].certainty }}
            {% else %}
              None
            {% endif %}
          alert_response: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].response }}
            {% else %}
              None
            {% endif %}
          alert_instruction: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].instruction }}
            {% else %}
              None
            {% endif %}
          alert_sent: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].sent }}
            {% else %}
              None
            {% endif %}
          alert_effective: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].effective }}
            {% else %}
              None
            {% endif %}
          alert_onset: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].onset }}
            {% else %}
              None
            {% endif %}
          alert_expires: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].expires }}
            {% else %}
              None
            {% endif %}
          alert_title: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].title }}
            {% else %}
              None
            {% endif %}
          alert_zoneid: >-
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].zoneid }}
            {% else %}
              None
            {% endif %}
          display_title: >
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].title }}
            {% else %}
              None
            {% endif %}
          display_message: >
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {% if states.sensor.weatheralerts_1.attributes.alerts[4].NWSheadline != "null" %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') }}<br>
              {% endif %}
              <br>{{ states.sensor.weatheralerts_1.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_1.attributes.alerts[4].instruction != None %}
              {{ states.sensor.weatheralerts_1.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_1', 'friendly_name') }}
              <br>Effective: {{ states.sensor.weatheralerts_1.attributes.alerts[4].effective }}
              {%- if states.sensor.weatheralerts_1.attributes.alerts[4].ends != None %}
                <br>Ends: {{ states.sensor.weatheralerts_1.attributes.alerts[4].ends }}
              {%- endif %}
              <br>Expires: {{ states.sensor.weatheralerts_1.attributes.alerts[4].expires }}
            {% else %}
              None
            {% endif %}
          spoken_title: >
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              Attention!!! Weather alert for {{ state_attr('sensor.weatheralerts_1', 'friendly_name') }}. A {{ states.sensor.weatheralerts_1.attributes.alerts[4].title }}. {{ states.sensor.weatheralerts_1.attributes.alerts[4].NWSheadline | regex_replace('\[\'','') | regex_replace('\'\]','') | capitalize }}.
            {% else %}
              None
            {% endif %}
          spoken_message: >
            {% if states('sensor.weatheralerts_1')|int > 4 or (states('sensor.weatheralerts_1') == "unavailable" and states('sensor.weatheralerts_1_alert_5') == "on") %}
              {{ states.sensor.weatheralerts_1.attributes.alerts[4].description | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
              {% if states.sensor.weatheralerts_1.attributes.alerts[4].instruction != None %}
                {{ states.sensor.weatheralerts_1.attributes.alerts[4].instruction | regex_replace('\n\n','<p>') | regex_replace('\n',' ') | regex_replace('\*','\n*') | regex_replace('<p>','\n\n') }}
              {% endif %}
            {% else %}
              None
            {% endif %}

      weatheralerts_1_alert_1_last_changed:
        value_template: >-
          {% if states('sensor.weatheralerts_1_alert_1') == "on" %}
            {{ states.sensor.weatheralerts_1_alert_1.last_updated }}
          {% else %}
            None
          {% endif %}
      weatheralerts_1_alert_2_last_changed:
        value_template: >-
          {% if states('sensor.weatheralerts_1_alert_2') == "on" %}
            {{ states.sensor.weatheralerts_1_alert_2.last_updated }}
          {% else %}
            None
          {% endif %}
      weatheralerts_1_alert_3_last_changed:
        value_template: >-
          {% if states('sensor.weatheralerts_1_alert_3') == "on" %}
            {{ states.sensor.weatheralerts_1_alert_3.last_updated }}
          {% else %}
            None
          {% endif %}
      weatheralerts_1_alert_4_last_changed:
        value_template: >-
          {% if states('sensor.weatheralerts_1_alert_4') == "on" %}
            {{ states.sensor.weatheralerts_1_alert_4.last_updated }}
          {% else %}
            None
          {% endif %}
      weatheralerts_1_alert_5_last_changed:
        value_template: >-
          {% if states('sensor.weatheralerts_1_alert_5') == "on" %}
            {{ states.sensor.weatheralerts_1_alert_5.last_updated }}
          {% else %}
            None
          {% endif %}

      weatheralerts_1_alert_1_most_recent_active_alert:
        value_template: >-
          {% if states('sensor.weatheralerts_1_alert_1_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_1') != 'on' %}
            unavailable
          {% elif states('sensor.weatheralerts_1_alert_1_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_1') != 'on' %}
            unavailable
          {% elif states('sensor.weatheralerts_1_alert_1_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_1') != 'on' %}
            unavailable
          {% elif states('sensor.weatheralerts_1_alert_1') == 'on' %}
            {{ state_attr('sensor.weatheralerts_1_alert_1', 'alert_event') }}
          {% else %}
            {{ states('sensor.weatheralerts_1_alert_1_most_recent_active_alert') }}
          {% endif %}
        attribute_templates:
          alert_effective: >-
            {% if states('sensor.weatheralerts_1_alert_1_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_1') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_1_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_1') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_1_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_1') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_1') == 'on' %}
              {{ state_attr('sensor.weatheralerts_1_alert_1', 'alert_effective') }}
            {% else %}
              {{ state_attr('sensor.weatheralerts_1_alert_1_most_recent_active_alert', 'alert_effective') }}
            {% endif %}
          alert_id: >-
            {% if states('sensor.weatheralerts_1_alert_1_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_1') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_1_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_1') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_1_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_1') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_1') == 'on' %}
              {{ state_attr('sensor.weatheralerts_1_alert_1', 'alert_id') }}
            {% else %}
              {{ state_attr('sensor.weatheralerts_1_alert_1_most_recent_active_alert', 'alert_id') }}
            {% endif %}
      weatheralerts_1_alert_2_most_recent_active_alert:
        value_template: >-
          {% if states('sensor.weatheralerts_1_alert_2_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_2') != 'on' %}
            unavailable
          {% elif states('sensor.weatheralerts_1_alert_2_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_2') != 'on' %}
            unavailable
          {% elif states('sensor.weatheralerts_1_alert_2_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_2') != 'on' %}
            unavailable
          {% elif states('sensor.weatheralerts_1_alert_2') == 'on' %}
            {{ state_attr('sensor.weatheralerts_1_alert_2', 'alert_event') }}
          {% else %}
            {{ states('sensor.weatheralerts_1_alert_2_most_recent_active_alert') }}
          {% endif %}
        attribute_templates:
          alert_effective: >-
            {% if states('sensor.weatheralerts_1_alert_2_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_2') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_2_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_2') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_2_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_2') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_2') == 'on' %}
              {{ state_attr('sensor.weatheralerts_1_alert_2', 'alert_effective') }}
            {% else %}
              {{ state_attr('sensor.weatheralerts_1_alert_2_most_recent_active_alert', 'alert_effective') }}
            {% endif %}
          alert_id: >-
            {% if states('sensor.weatheralerts_1_alert_2_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_2') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_2_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_2') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_2_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_2') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_2') == 'on' %}
              {{ state_attr('sensor.weatheralerts_1_alert_2', 'alert_id') }}
            {% else %}
              {{ state_attr('sensor.weatheralerts_1_alert_2_most_recent_active_alert', 'alert_id') }}
            {% endif %}
      weatheralerts_1_alert_3_most_recent_active_alert:
        value_template: >-
          {% if states('sensor.weatheralerts_1_alert_3_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_3') != 'on' %}
            unavailable
          {% elif states('sensor.weatheralerts_1_alert_3_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_3') != 'on' %}
            unavailable
          {% elif states('sensor.weatheralerts_1_alert_3_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_3') != 'on' %}
            unavailable
          {% elif states('sensor.weatheralerts_1_alert_3') == 'on' %}
            {{ state_attr('sensor.weatheralerts_1_alert_3', 'alert_event') }}
          {% else %}
            {{ states('sensor.weatheralerts_1_alert_3_most_recent_active_alert') }}
          {% endif %}
        attribute_templates:
          alert_effective: >-
            {% if states('sensor.weatheralerts_1_alert_3_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_3') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_3_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_3') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_3_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_3') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_3') == 'on' %}
              {{ state_attr('sensor.weatheralerts_1_alert_3', 'alert_effective') }}
            {% else %}
              {{ state_attr('sensor.weatheralerts_1_alert_3_most_recent_active_alert', 'alert_effective') }}
            {% endif %}
          alert_id: >-
            {% if states('sensor.weatheralerts_1_alert_3_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_3') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_3_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_3') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_3_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_3') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_3') == 'on' %}
              {{ state_attr('sensor.weatheralerts_1_alert_3', 'alert_id') }}
            {% else %}
              {{ state_attr('sensor.weatheralerts_1_alert_3_most_recent_active_alert', 'alert_id') }}
            {% endif %}
      weatheralerts_1_alert_4_most_recent_active_alert:
        value_template: >-
            {% if states('sensor.weatheralerts_1_alert_4_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_4') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_4_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_4') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_4_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_4') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_4') == 'on' %}
              {{ state_attr('sensor.weatheralerts_1_alert_4', 'alert_event') }}
            {% else %}
              {{ states('sensor.weatheralerts_1_alert_4_most_recent_active_alert') }}
            {% endif %}
        attribute_templates:
          alert_effective: >-
            {% if states('sensor.weatheralerts_1_alert_4_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_4') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_4_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_4') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_4_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_4') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_4') == 'on' %}
              {{ state_attr('sensor.weatheralerts_1_alert_4', 'alert_effective') }}
            {% else %}
              {{ state_attr('sensor.weatheralerts_1_alert_4_most_recent_active_alert', 'alert_effective') }}
            {% endif %}
          alert_id: >-
            {% if states('sensor.weatheralerts_1_alert_4_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_4') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_4_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_4') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_4_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_4') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_4') == 'on' %}
              {{ state_attr('sensor.weatheralerts_1_alert_4', 'alert_id') }}
            {% else %}
              {{ state_attr('sensor.weatheralerts_1_alert_4_most_recent_active_alert', 'alert_id') }}
            {% endif %}
      weatheralerts_1_alert_5_most_recent_active_alert:
        value_template: >-
          {% if states('sensor.weatheralerts_1_alert_5_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_5') != 'on' %}
            unavailable
          {% elif states('sensor.weatheralerts_1_alert_5_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_5') != 'on' %}
            unavailable
          {% elif states('sensor.weatheralerts_1_alert_5_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_5') != 'on' %}
            unavailable
          {% elif states('sensor.weatheralerts_1_alert_5') == 'on' %}
            {{ state_attr('sensor.weatheralerts_1_alert_5', 'alert_event') }}
          {% else %}
            {{ states('sensor.weatheralerts_1_alert_5_most_recent_active_alert') }}
          {% endif %}
        attribute_templates:
          alert_effective: >-
            {% if states('sensor.weatheralerts_1_alert_5_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_5') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_5_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_5') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_5_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_5') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_5') == 'on' %}
              {{ state_attr('sensor.weatheralerts_1_alert_5', 'alert_effective') }}
            {% else %}
              {{ state_attr('sensor.weatheralerts_1_alert_5_most_recent_active_alert', 'alert_effective') }}
            {% endif %}
          alert_id: >-
            {% if states('sensor.weatheralerts_1_alert_5_most_recent_active_alert') == '' and states('sensor.weatheralerts_1_alert_5') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_5_most_recent_active_alert') == 'unavailable' and states('sensor.weatheralerts_1_alert_5') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_5_most_recent_active_alert') == 'unknown' and states('sensor.weatheralerts_1_alert_5') != 'on' %}
              unavailable
            {% elif states('sensor.weatheralerts_1_alert_5') == 'on' %}
              {{ state_attr('sensor.weatheralerts_1_alert_5', 'alert_id') }}
            {% else %}
              {{ state_attr('sensor.weatheralerts_1_alert_5_most_recent_active_alert', 'alert_id') }}
            {% endif %}

      weatheralerts_1_alerts_are_active:
        friendly_name: Weather Alerts Are Active
        icon_template: mdi:alert-rhombus
        value_template: >
          {% if (states('sensor.weatheralerts_1') | int > 0) or ((states('sensor.weatheralerts_1') == 'unavailable') and (states('sensor.weatheralerts_1_alert_1') == 'on')) %}
            Yes
          {% else %}
            No
          {% endif %}




################################################################################
## input_text ##

input_text:
  weatheralerts_1_triggered_ui_alert_ids:
    name: Triggered Weather Alert IDs - UI
    icon: mdi:information-variant
    max: 255
    initial: None

  weatheralerts_1_triggered_pushbullet_alert_ids:
    name: Triggered Weather Alert IDs - Pushbullet
    icon: mdi:information-variant
    max: 255
    initial: None
    



################################################################################
## automation ##

automation:
  ## Automation to trigger a UI notification when there is an active weather alert.
  ## weatheralerts_1_alert_1 should always contain most recent alert.
  - alias: Weather Alert UI Notification - 1
    initial_state: 'on'
    trigger:
      - platform: state
        entity_id: sensor.weatheralerts_1_alert_1_last_changed
      - platform: homeassistant
        event: start
    condition:
      - condition: and
        conditions:
          - condition: template
            value_template: "{{ states('sensor.weatheralerts_1_alerts_are_active') == 'Yes' }}"
          - condition: template
            value_template: "{{ (as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_1_alert_1', 'alert_sent'))) < 3600 }}"
          - condition: template
            value_template: "{{ state_attr('sensor.weatheralerts_1_alert_1', 'alert_id') not in states('input_text.weatheralerts_1_triggered_ui_alert_ids') }}"
    action:
      - service: script.weatheralerts_1_popup_on_wx_alert
        data_template:
          title: >
            {% if (states('sensor.weatheralerts_1_alert_1') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_1_alert_1', 'alert_effective'))|float) <= 3600) %}
              {{ state_attr('sensor.weatheralerts_1_alert_1', 'display_title') }}
            {% else %}
              Weather Alerts
            {% endif %}
          message: >
            {% if (states('sensor.weatheralerts_1_alert_1') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_1_alert_1', 'alert_effective'))|float) <= 3600) %}
              {{ state_attr('sensor.weatheralerts_1_alert_1', 'display_message') }}
            {% endif %}
            {% if (states('sensor.weatheralerts_1_alert_1') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_1_alert_1', 'alert_effective'))|float) > 3600) %}
              <hr>Alert: <br>{{ state_attr('sensor.weatheralerts_1_alert_1', 'display_title') }}
            {% endif %}
            {% if (states('sensor.weatheralerts_1_alert_2') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_1_alert_2', 'alert_effective'))|float) <= 3600) %}
              <hr>{{ state_attr('sensor.weatheralerts_1_alert_2', 'display_title') }}<br>
              {{ state_attr('sensor.weatheralerts_1_alert_2', 'display_message') }}
            {% endif %}
            {% if (states('sensor.weatheralerts_1_alert_2') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_1_alert_2', 'alert_effective'))|float) > 3600) %}
              <hr>Alert: <br>{{ state_attr('sensor.weatheralerts_1_alert_2', 'display_title') }}
            {% endif %}
            {% if (states('sensor.weatheralerts_1_alert_3') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_1_alert_3', 'alert_effective'))|float) <= 3600) %}
              <hr>{{ state_attr('sensor.weatheralerts_1_alert_3', 'display_title') }}<br>
              {{ state_attr('sensor.weatheralerts_1_alert_3', 'display_message') }}
            {% endif %}
            {% if (states('sensor.weatheralerts_1_alert_3') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_1_alert_3', 'alert_effective'))|float) > 3600) %}
              <hr>Alert: <br>{{ state_attr('sensor.weatheralerts_1_alert_3', 'display_title') }}
            {% endif %}
            {% if (states('sensor.weatheralerts_1_alert_4') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_1_alert_4', 'alert_effective'))|float) <= 3600) %}
              <hr>{{ state_attr('sensor.weatheralerts_1_alert_4', 'display_title') }}<br>
              {{ state_attr('sensor.weatheralerts_1_alert_4', 'display_message') }}
            {% endif %}
            {% if (states('sensor.weatheralerts_1_alert_4') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_1_alert_4', 'alert_effective'))|float) > 3600) %}
              <hr>Alert: <br>{{ state_attr('sensor.weatheralerts_1_alert_4', 'display_title') }}
            {% endif %}
            {% if (states('sensor.weatheralerts_1_alert_5') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_1_alert_5', 'alert_effective'))|float) <= 3600) %}
              <hr>{{ state_attr('sensor.weatheralerts_1_alert_5', 'display_title') }}<br>
              {{ state_attr('sensor.weatheralerts_1_alert_5', 'display_message') }}
            {% endif %}
            {% if (states('sensor.weatheralerts_1_alert_5') == 'on') and ((as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_1_alert_5', 'alert_effective'))|float) > 3600) %}
              <hr>Alert: <br>{{ state_attr('sensor.weatheralerts_1_alert_5', 'display_title') }}
            {% endif %}
      - service: input_text.set_value
        data_template:
          entity_id: input_text.weatheralerts_1_triggered_ui_alert_ids
          value: "{{ state_attr('sensor.weatheralerts_1_alert_1', 'alert_id') }} {{ state_attr('sensor.weatheralerts_1_alert_2', 'alert_id') }} {{ state_attr('sensor.weatheralerts_1_alert_3', 'alert_id') }} {{ state_attr('sensor.weatheralerts_1_alert_4', 'alert_id') }} {{ state_attr('sensor.weatheralerts_1_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
  - alias: Weather Alert UI Notification Auto-dismiss - 1
    trigger:
      - platform: state
        entity_id: sensor.weatheralerts_1_alerts_are_active
        to: "No"
        for:
          minutes: 30
      - platform: homeassistant
        event: start
    condition:
      - condition: template
        value_template: "{{ states('sensor.weatheralerts_1_alerts_are_active') == 'No' }}"
    action:
      - service: persistent_notification.dismiss
        data:
          notification_id: "weatheralerts_1_alert"

  ## Automation to push alerts via Pushbullet service
  ## Disable or remove this automation if you don't use Pushbullet
  - alias: Weather Alerts Pushbullet Notification - 1
    trigger:
      platform: state
      entity_id: sensor.weatheralerts_1_alert_1_last_changed
    condition:
      - condition: and
        conditions:
          - condition: template
            value_template: "{{ states('sensor.weatheralerts_1_alerts_are_active') == 'Yes' }}"
          - condition: template
            value_template: "{{ (as_timestamp(now()) - as_timestamp(state_attr('sensor.weatheralerts_1_alert_1', 'alert_sent'))) < 3600 }}"
          - condition: template
            value_template: "{{ state_attr('sensor.weatheralerts_1_alert_1', 'alert_id') not in states('input_text.weatheralerts_1_triggered_pushbullet_alert_ids') }}"
    action:
      - service: notify.pushbullet_notify
        data_template:
          message: >
            Current NWS Weather Alerts:
              
            {% if states('sensor.weatheralerts_1_alerts_are_active') == "No" %}
            No alerts at this time for {{ state_attr('sensor.weatheralerts_1', 'friendly_name') }}.
            {% endif %}
            {% if states.sensor.weatheralerts_1_alert_1.state == "on" %}
            {{ states.sensor.weatheralerts_1_alert_1.attributes.display_title }} for {{ state_attr('sensor.weatheralerts_1', 'friendly_name') }}
              
            {% endif %}
            {% if states.sensor.weatheralerts_1_alert_2.state == "on" %}
            {{ states.sensor.weatheralerts_1_alert_2.attributes.display_title }} for {{ state_attr('sensor.weatheralerts_1', 'friendly_name') }}
              
            {% endif %}
            {% if states.sensor.weatheralerts_1_alert_3.state == "on" %}
            {{ states.sensor.weatheralerts_1_alert_3.attributes.display_title }} for {{ state_attr('sensor.weatheralerts_1', 'friendly_name') }}
              
            {% endif %}
            {% if states.sensor.weatheralerts_1_alert_4.state == "on" %}
            {{ states.sensor.weatheralerts_1_alert_4.attributes.display_title }} for {{ state_attr('sensor.weatheralerts_1', 'friendly_name') }}
              
            {% endif %}
            {% if states.sensor.weatheralerts_1_alert_5.state == "on" %}
            {{ states.sensor.weatheralerts_1_alert_5.attributes.display_title }} for {{ state_attr('sensor.weatheralerts_1', 'friendly_name') }}
            {% endif %}
      - service: input_text.set_value
        data_template:
          entity_id: input_text.weatheralerts_1_triggered_pushbullet_alert_ids
          value: "{{ state_attr('sensor.weatheralerts_1_alert_1', 'alert_id') }} {{ state_attr('sensor.weatheralerts_1_alert_2', 'alert_id') }} {{ state_attr('sensor.weatheralerts_1_alert_3', 'alert_id') }} {{ state_attr('sensor.weatheralerts_1_alert_4', 'alert_id') }} {{ state_attr('sensor.weatheralerts_1_alert_5', 'alert_id') }}"




################################################################################
## script ##

script:
  ## Script creates UI notification and is called via automation defined above
  weatheralerts_1_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_1_alert"
        ## Create a new persistant notification in the UI for a new alert
      - service_template: >
          {% if states.sensor.weatheralerts_1.state != '0' %}
            persistent_notification.create
          {% endif %}
        data_template:
          notification_id: "weatheralerts_1_alert"
          message: "{{ message }}"
          title: "{{ title }}"

from weatheralerts.

jlverhagen avatar jlverhagen commented on May 26, 2024

I think we got this figured out over email. The issue was getting the right settings in the configuration.yaml file to load the weatheralerts YAML files as a YAML package. In the configuration.yaml, there should be something like this:

homeassistant:
  packages: !include_dir_named packages

This assumes you have a directory named packages in your /home/homeassistant/.homeassistant directory (your Home Assistant configuration directory), and you have placed the weatheralerts YAML files in that packages directory.

A couple of issues of deprecated automation and script usage in the YAML package were also identified. They shouldn't cause failures at this time, but a future version of Home Assistant could result in UI notifications and auto-dismissal problems. The current YAML packages will be updated with these fixes soon. Thanks @mac-city for bringing these to my attention.

from weatheralerts.

stale avatar stale commented on May 26, 2024

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

from weatheralerts.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.