> {# Weather Briefing #} {%- macro getReport() -%}

{{ states('sensor.current_conditions_detail') }}

{{ states('sensor.tomorrow_forecast_detail') }}

{{ states('sensor.clothing_forecast_detail') }}

{% if is_state('sensor.outside_frostrisk','high') %} "There is currently a high chance of frost outside. Plan accordingly! " {% elif is_state('sensor.outside_frostrisk','probable') %} "The possibility of frost exists currently. Be prepared. " {% endif %}

{% if states('sensor.weatheralerts_active_alerts') > '0' %} "Currently there are weather alerts active. The total number of alerts is {{ states('sensor.weatheralerts_active_alerts') }}. They are as follows. " {% if is_state('sensor.weatheralerts_alert_1','on') %} "{{ state_attr('sensor.weatheralerts_alert_1','alert_event') }}" {% endif %} {% if is_state('sensor.weatheralerts_alert_2','on') %} "{{ state_attr('sensor.weatheralerts_alert_2','alert_event') }}" {% endif %} {% if is_state('sensor.weatheralerts_alert_3','on') %} "{{ state_attr('sensor.weatheralerts_alert_3','alert_event') }}" {% endif %} {% if is_state('sensor.weatheralerts_alert_4','on') %} "{{ state_attr('sensor.weatheralerts_alert_4','alert_event') }}" {% endif %} {% if is_state('sensor.weatheralerts_alert_5','on') %} "{{ state_attr('sensor.weatheralerts_alert_5','alert_event') }}" {% endif %} {% endif %}

{%- endmacro -%} {# a macro that removes all newline characters, empty spaces, and returns formatted text #} {%- macro cleanup(data) -%} {%- for item in data.split("\n") if item | trim != "" -%} {{ item | trim }} {% endfor -%} {%- endmacro -%} {# a macro to call all macros :) #} {%- macro mother_of_all_macros() -%} {{ getReport() }} {%- endmacro -%} {# Call the macro #} {{- cleanup(mother_of_all_macros()) -}}