From bb10ca48b431323f0617157d1af4582aa80bb37c Mon Sep 17 00:00:00 2001 From: Tony Stork Date: Fri, 29 Mar 2024 22:22:13 -0400 Subject: [PATCH] Move sunrise/sunset status to a macro #196 --- custom_templates/speech.jinja | 32 +++++++++++++++++++++++++ templates/speech/basement_briefing.yaml | 6 ++++- templates/speech/daily_briefing.yaml | 32 ++----------------------- 3 files changed, 39 insertions(+), 31 deletions(-) diff --git a/custom_templates/speech.jinja b/custom_templates/speech.jinja index f7c714f..a2056b4 100644 --- a/custom_templates/speech.jinja +++ b/custom_templates/speech.jinja @@ -168,4 +168,36 @@ It is {{ now().strftime("%I:%M %p") }}. "Collin, your bedroom lights are now on." ] | random }} Goodnight! {% endif %} +{% endmacro %} + +{% macro sun_status() %} +{% if is_state('sun.sun','below_horizon') %} + You have + {% set seconds = as_timestamp(states.sun.sun.attributes.next_rising)-now().timestamp() %} + {% set hours = seconds / 60 %} + {% if seconds / ( 60 * 60 ) > 1 %} + {{ (seconds // ( 60 * 60 )) | int }} hours + {% else %} + {{ (seconds // 60) | int }} minutes + {% endif %} + {{ [ + 'until the sun rises.', + 'until the sun is up', + 'before the sun officially rises.' + ] | random }} +{% else %} + You have + {% set seconds = as_timestamp(states.sun.sun.attributes.next_setting)-now().timestamp() %} + {% set hours = seconds / 60 %} + {% if seconds / ( 60 * 60 ) > 1 %} + {{ (seconds // ( 60 * 60 )) | int }} hours + {% else %} + {{ (seconds // 60) | int }} minutes + {% endif %} + {{ [ + 'until the sun sets for the day.', + 'until the sun slips below the horizon.', + 'before the sun officially sets. ' + ]|random }} +{% endif %} {% endmacro %} \ No newline at end of file diff --git a/templates/speech/basement_briefing.yaml b/templates/speech/basement_briefing.yaml index 05643e8..603de93 100644 --- a/templates/speech/basement_briefing.yaml +++ b/templates/speech/basement_briefing.yaml @@ -3,7 +3,7 @@ {% from 'formatting.jinja' import cleanup %} {%- macro getReport() -%} - {% from 'speech.jinja' import greeting, today_is %} + {% from 'speech.jinja' import greeting, today_is, sun_status %} {% from 'weather.jinja' import weatherReport %} {% from 'sports.jinja' import sports_updates %}

@@ -13,6 +13,10 @@ {{ today_is() }}

+

+ {{ sun_status() }} +

+

{{ weatherReport('full','tts') }}

diff --git a/templates/speech/daily_briefing.yaml b/templates/speech/daily_briefing.yaml index b3f4c44..3bce7d7 100644 --- a/templates/speech/daily_briefing.yaml +++ b/templates/speech/daily_briefing.yaml @@ -2,7 +2,7 @@ {# Daily Briefing #} {% from 'formatting.jinja' import cleanup %} {%- macro getReport() -%} - {% from 'speech.jinja' import greeting, dadjoke, inspirational_quote, today_is %} + {% from 'speech.jinja' import greeting, dadjoke, inspirational_quote, today_is, sun_status %} {% from 'status.jinja' import houseStatusReport, tonyStatusReport, tinaStatusReport, kallenStatusReport, emmaStatusReport %} {% from 'easy_time.jinja' import count_the_days %} {% from 'weather.jinja' import weatherReport %} @@ -20,35 +20,7 @@

- {% if is_state('sun.sun','below_horizon') %} - You have - {% set seconds = as_timestamp(states.sun.sun.attributes.next_rising)-now().timestamp() %} - {% set hours = seconds / 60 %} - {% if seconds / ( 60 * 60 ) > 1 %} - {{ (seconds // ( 60 * 60 )) | int }} hours - {% else %} - {{ (seconds // 60) | int }} minutes - {% endif %} - {{ [ - 'until the sun rises.', - 'until the sun is up', - 'before the sun officially rises.' - ] | random }} - {% else %} - You have - {% set seconds = as_timestamp(states.sun.sun.attributes.next_setting)-now().timestamp() %} - {% set hours = seconds / 60 %} - {% if seconds / ( 60 * 60 ) > 1 %} - {{ (seconds // ( 60 * 60 )) | int }} hours - {% else %} - {{ (seconds // 60) | int }} minutes - {% endif %} - {{ [ - 'until the sun sets for the day.', - 'until the sun slips below the horizon.', - 'before the sun officially sets. ' - ]|random }} - {% endif %} + {{ sun_status() }}

{% set dow = as_timestamp(now()) | timestamp_custom('%A') %}