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') %}