From 827e6b11c9644421f10646166a1bc54ceb31d2dc Mon Sep 17 00:00:00 2001 From: Tony Stork Date: Fri, 2 Jun 2023 20:29:50 -0400 Subject: [PATCH] Work on house status report --- custom_templates/lighting.jinja | 9 ++++++ custom_templates/status.jinja | 47 ++++++++++++++++++++++++++++ templates/speech/daily_briefing.yaml | 19 ++--------- 3 files changed, 58 insertions(+), 17 deletions(-) diff --git a/custom_templates/lighting.jinja b/custom_templates/lighting.jinja index a8d569a..d570779 100644 --- a/custom_templates/lighting.jinja +++ b/custom_templates/lighting.jinja @@ -2,3 +2,12 @@ {% set current = state_attr(entity_id,'brightness') %} {{ ((current / 255) * 100) | float | round(2) }} {% endmacro %} + +{% macro lightsOn(type,method) %} +{% set lights = states('sensor.current_lights_on') %} +{% if method == 'tts' %} +'Around the house, there {% if lights == '1' %}is{% else %}are{% endif %}currently{{ lights }} {% if lights == '1' %}light {% else %}lights {% endif %} on. ' +{% elif method == 'text' %} +There {% if lights == '1' %}is {% else %}are {% endif %}currently {{ lights }} {% if lights == '1' %}light {% else %}lights {% endif %}on. +{% endif %} +{% endmacro %} \ No newline at end of file diff --git a/custom_templates/status.jinja b/custom_templates/status.jinja index e8f3508..8082886 100644 --- a/custom_templates/status.jinja +++ b/custom_templates/status.jinja @@ -1,7 +1,54 @@ {% from 'time.jinja' import input_datetime_read, ct, next_twitch_stream, calendar_event_today, time_from_calendar %} {% from 'easy_time.jinja' import count_the_days, custom_time, custom_time_between, clock %} +{% from 'lighting.jinja' import lightsOn %} {% set ct = ct() | int %} +{% macro airLeaks(type,method) %} +{% set windows = states('sensor.windows_open') %} +{% set doors = states('sensor.doors_open') %} +{% if states('sensor.total_faults') > '0' %} + {% if method == 'tts' %} + {% if type == 'full' %} + {% if states('sensor.total_faults') > '0' %} + "Additionally, " + {% if windows > '0' and doors > '0' %} + "There are currently {{ states('sensor.windows_open') }} {% if windows == '1' %}window {% else %}windows {% endif %}and {{ states('sensor.doors_open') }} {% if doors == '1' %}door {% else %}doors {% endif %}open. " + {% else %} + {% if windows > '0' %} + "There {% if windows == '1' %}is {% else %}are {% endif %}currently {{ states('sensor.windows_open') }} {% if windows == '1' %}window {% else %}windows {% endif %}open. " + {% endif %} + {% if doors > '0' %} + "There {% if doors == '1' %}is {% else %}are {% endif %}currently {{ states('sensor.doors_open') }} {% if doors == '1' %}door {% else %}doors {% endif %}open. " + {% endif %} + {% endif %} + {% endif %} + {% endif %} + {% elif method == 'text' %} + {% if windows > '0' and doors > '0' %} + There are currently {{ states('sensor.windows_open') }} {% if windows == '1' %}window {% else %}windows {% endif %}and {{ states('sensor.doors_open') }} {% if doors == '1' %}door {% else %}doors {% endif %}open. + {% else %} + {% if windows > '0' %} + There {% if windows == '1' %}is {% else %}are {% endif %}currently {{ states('sensor.windows_open') }} {% if windows == '1' %}window {% else %}windows {% endif %}open. + {% endif %} + {% if doors > '0' %} + There {% if doors == '1' %}is {% else %}are {% endif %}currently {{ states('sensor.doors_open') }} {% if doors == '1' %}door {% else %}doors {% endif %}open. + {% endif %} + {% endif %} + {% endif %} +{% endif %} +{% endmacro %} + +{% macro houseStatusReport(type,method) %} +{% if type == 'airleaks' %} +{{ airLeaks(type,method) }} +{% elif type == 'lights' %} +{{ lightsOn(type,method) }} +{% elif type == 'full' %} +{{ lightsOn(type,method) }} +{{ airLeaks(type,method) }} +{% endif %} +{% endmacro %} + {% macro tony_morning_meds(type,method) %} {% if is_state('binary_sensor.overnight','off') %} {% if is_state('input_boolean.tony_morning_meds_taken','on') %} diff --git a/templates/speech/daily_briefing.yaml b/templates/speech/daily_briefing.yaml index 270c354..5ff543e 100644 --- a/templates/speech/daily_briefing.yaml +++ b/templates/speech/daily_briefing.yaml @@ -2,7 +2,7 @@ {# Daily Briefing #} {%- macro getReport() -%} {% from 'speech.jinja' import greeting, dadjoke, inspirational_quote %} - {% from 'status.jinja' import tonyStatusReport, tinaStatusReport, kallenStatusReport, emmaStatusReport %} + {% from 'status.jinja' import houseStatusReport, tonyStatusReport, tinaStatusReport, kallenStatusReport, emmaStatusReport %} {% from 'easy_time.jinja' import count_the_days %} {% from 'weather.jinja' import weatherReport %}

@@ -221,22 +221,7 @@

- 'Around the house, there are currently {{ states('sensor.current_lights_on') }} lights on. ' - {% set windows = states('sensor.windows_open') %} - {% set doors = states('sensor.doors_open') %} - {% if states('sensor.total_faults') > '0' %} - "Additionally, " - {% if windows > '0' and doors > '0' %} - "There are currently {{ states('sensor.windows_open') }} {% if windows == '1' %}window {% else %}windows {% endif %}and {{ states('sensor.doors_open') }} {% if doors == '1' %}door {% else %}doors {% endif %}open. " - {% else %} - {% if windows > '0' %} - "There {% if windows == '1' %}is {% else %}are {% endif %}currently {{ states('sensor.windows_open') }} {% if windows == '1' %}window {% else %}windows {% endif %}open. " - {% endif %} - {% if doors > '0' %} - "There {% if doors == '1' %}is {% else %}are {% endif %}currently {{ states('sensor.doors_open') }} {% if doors == '1' %}door {% else %}doors {% endif %}open. " - {% endif %} - {% endif %} - {% endif %} + {{ houseStatusReport('full','tts') }}