421 lines
21 KiB
Django/Jinja
421 lines
21 KiB
Django/Jinja
{% from 'time.jinja' import input_datetime_read, ct, next_twitch_stream, calendar_event_today, read_time_from_calendar %}
|
|
{% from 'easy_time.jinja' import count_the_days, custom_time, custom_time_between, clock %}
|
|
{% set ct = ct() | int %}
|
|
|
|
{% macro tony_morning_meds(method) %}
|
|
{% if is_state('binary_sensor.overnight','off') %}
|
|
{% if is_state('input_boolean.tony_morning_meds_taken','on') %}
|
|
Tony took his morning meds at {{ input_datetime_read('input_datetime.tony_morning_meds_taken','withdate') }} today.
|
|
{% elif is_state('input_boolean.tony_morning_meds_taken','off') and ct >= 21600 %}
|
|
Tony has not taken his morning meds.
|
|
{% if ct < state_attr('input_datetime.tony_morning_meds_notify','timestamp') | int %}
|
|
{% if method == 'tts' %}
|
|
{{ ['He has a reminder scheduled for',
|
|
'Rest assured that I will pester him mercilessly about this, starting at',
|
|
'This is absolutely essential, and I will remind him to do it at',
|
|
'Since nobody including Tony himself likes him without his meds, I will remind him at',
|
|
] | random }} {{ input_datetime_read('input_datetime.tony_morning_meds_notify') }} today.
|
|
{% else %}
|
|
He will be reminded at {{ input_datetime_read('input_datetime.tony_morning_meds_notify') }} today.
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro tony_night_meds(method) %}
|
|
{% if is_state('input_boolean.tony_night_meds_taken','on') and ct < 43200 %}
|
|
Tony took his night meds at {{ input_datetime_read('input_datetime.tony_night_meds_taken','withdate') }} today.
|
|
{% elif is_state('input_boolean.tony_night_meds_taken','off') and (ct >= 82800 or ct <= 21600) %}
|
|
Tony has not taken his night meds.
|
|
{% if method == 'tts' %}
|
|
{{ ['He will be reminded when he goes to bed.',
|
|
'I will make sure he is reminded when it is time.',
|
|
'This will be rectified whenever he drags his ass to bed.',
|
|
'All in due time, of course.'
|
|
] | random }}
|
|
{% else %}
|
|
He will be reminded when he goes to bed.
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro medReportTony(method) %}
|
|
{{ tony_morning_meds(method) }}
|
|
{{ tony_night_meds(method) }}
|
|
{% endmacro %}
|
|
|
|
{% macro twitchStreamInfo(method) %}
|
|
{% if is_state('input_boolean.tony_streaming_today','on') or calendar_event_today('calendar.tony_s_twitch_schedule') == 'false' %}
|
|
{% set streamstart = state_attr('input_datetime.tony_streaming_start_time','timestamp') | timestamp_custom('%-I:%M %p',false) %}
|
|
{% elif calendar_event_today('calendar.tony_s_twitch_schedule') == 'true' %}
|
|
{% set streamstart = as_timestamp(state_attr('calendar.tony_s_twitch_schedule','start_time')) | int | timestamp_custom('%-I:%M %p') %}
|
|
{% endif %}
|
|
{% set game = state_attr('sensor.twitch_ironnerd24','game') %}
|
|
{% set viewers = state_attr('sensor.twitch_ironnerd24','viewers') %}
|
|
{% if is_state('sensor.twitch_ironnerd24','streaming') %}
|
|
Tony is currently streaming. The current stream category is {{ game }}. The current viewer count is {{ viewers }}.
|
|
{% elif is_state('input_boolean.tony_streaming_today','on') or calendar_event_today('calendar.tony_s_twitch_schedule') == 'true' %}
|
|
{% if method == 'tts' %}
|
|
{{ [
|
|
"Tony will be pretending to be a real content creator tonight. ",
|
|
"Tony will be doing his best to defeat his impostor syndrome tonight. ",
|
|
"Tony will be playing video games and yelling into a microphone tonight. ",
|
|
"Tony will be scraping out the nickels and dimes tonight for the sake of entertainment. ",
|
|
"Tony is not really all that funny, but tonight he will present himself to a crowd of questionable individuals who seem to think that he is. "
|
|
] | random }} The studio is scheduled to go online at {{ streamstart }}. "
|
|
{% elif method == 'text' %}
|
|
Tony will be streaming today. Stream starts at {{ streamstart }}.
|
|
{% endif %}
|
|
{% elif state_attr('calendar.tony_s_twitch_schedule','start_time') != none %}
|
|
{% if count_the_days('calendar.tony_s_twitch_schedule','start_time') | int == 1 %}
|
|
Tony will be streaming at {{ read_time_from_calendar('calendar.tony_s_twitch_schedule','start_time') }} tomorrow.
|
|
{% else %}
|
|
Tony does not have a stream scheduled today. The next scheduled stream is in {{ next_twitch_stream() }} approximately.
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro tonyStatusReport(type,method) %}
|
|
{% if type == 'meds' %}
|
|
{{ medReportTony(method) }}
|
|
{% endif %}
|
|
{% if type == 'stream' %}
|
|
{{ twitchStreamInfo(method) }}
|
|
{% endif %}
|
|
{% if type == 'full' %}
|
|
{{ medReportTony(method) }}
|
|
{{ twitchStreamInfo(method) }}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro workReportTina(method) %}
|
|
{% set tina = states.person.christina_stork.state %}
|
|
{% set start = (state_attr('binary_sensor.tina_work_tomorrow','start_timestamp') | int) // 1000 %}
|
|
{% set tmrw = (as_timestamp(states('sensor.date')) + 86400) | int %}
|
|
{% set diff = (start - tmrw) %}
|
|
{% if method == 'tts' %}
|
|
{% if is_state('input_boolean.work_today','on') and tina in ['Bob Evans','BobEvans'] %}
|
|
{{ [
|
|
"Tina is still at work right now, ",
|
|
"Tina has not yet been released from work, ",
|
|
"Tina is still at the thankless idiot scape known as work, ",
|
|
"Tina is still consumed by the gods of capitalism, ",
|
|
] | random }} she will be done at approximately {{ input_datetime_read('input_datetime.tina_workday_end') }}.
|
|
{% elif is_state('binary_sensor.evening','on') %}
|
|
{% if is_state('binary_sensor.tina_work_tomorrow','on') %}
|
|
{{ [
|
|
"Tina must go and please the food gods tomorrow ",
|
|
"Tomorrow, Tina must go and entertain the gremlins known as her customers and coworkers ",
|
|
"Tomorrow, Tina will be owned by our lovely lord and savior capitalism ",
|
|
] | random }} at {{ diff | timestamp_custom('%H:%M %p',false) }}. "
|
|
{% elif is_state('binary_sensor.tina_work_tomorrow','off') %}
|
|
{{ [
|
|
"Tina seems to have been granted a reprieve from her endless torture tomorrow. ",
|
|
"The powers that be have decided that Tina deserves a break from work tomorrow. ",
|
|
"Tina has been granted time off from the hellscape of work tomorrow. ",
|
|
"Tina will not be attending the gathering of tormented souls known as work tomorrow. ",
|
|
"The scheduling gods have decided that Tina's services will not be required tomorrow. "
|
|
"Tina gets a break tomorrow from grinding it out for the gods of capitalism. ",
|
|
"Tina will not be at the thankless idiot scape known as work tomorrow. ",
|
|
] | random }}
|
|
{% endif %}
|
|
{% elif is_state('input_boolean.work_today','on') %}
|
|
{{ [
|
|
"Tina must go and please the food gods today ",
|
|
"Today, Tina must go and entertain the gremlins known as her customers and coworkers ",
|
|
"Today, Tina will be owned and operated by our lovely lord and savior capitalism starting ",
|
|
"Tina will attempt to satiate the patron saint of capitalism today "
|
|
] | random }} at {{ input_datetime_read('input_datetime.tina_workday_start') }}.
|
|
{% else %}
|
|
{{ [
|
|
"Tina seems to have been granted a reprieve from her endless torture today. ",
|
|
"The powers that be have decided that Tina deserves a break from work today. ",
|
|
"Tina has been granted time off from the hellscape of work today. ",
|
|
"Tina will not be attending the gathering of tormented souls known as work today. ",
|
|
"The scheduling gods have decided that Tina's services will not be required today. "
|
|
"Tina gets a break today from grinding it out for the gods of capitalism. ",
|
|
"Tina will not be at the thankless idiot scape known as work today. ",
|
|
] | random }}
|
|
{% endif %}
|
|
{% elif method == 'text' %}
|
|
{% if tina in ['Bob Evans','BobEvans'] and is_state('input_boolean.work_today','on') %}
|
|
Tina is at work right now. She will be done at approximately {{ input_datetime_read('input_datetime.tina_workday_end') }} today.
|
|
{% elif is_state('input_boolean.work_today','on') %}
|
|
Tina has work at {{ input_datetime_read('input_datetime.tina_workday_start') }} today.
|
|
{% elif is_state('input_boolean.work_today_extended','on') and is_state('input_boolean.work_today','off') %}
|
|
Tina has finished work for the day.
|
|
{% if is_state('binary_sensor.tina_work_tomorrow','on') %}
|
|
She has work tomorrow at {{ diff | timestamp_custom('%-I:%M %p',false) }}.
|
|
{% endif %}
|
|
{% else %}
|
|
Tina has today off from work.
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro tina_morning_meds(method) %}
|
|
{% if is_state('binary_sensor.overnight','off') %}
|
|
{% if is_state('input_boolean.tina_morning_meds_taken','on') %}
|
|
Tina took her morning meds at {{ input_datetime_read('input_datetime.tina_morning_meds_taken','withdate') }} today.
|
|
{% elif is_state('input_boolean.tina_morning_meds_taken','off') and is_state('binary_sensor.after_midnight','off') %}
|
|
Tina has not taken her morning meds.
|
|
{% if ct < state_attr('input_datetime.tina_morning_meds_notify','timestamp') | int %}
|
|
{% if method == 'tts' %}
|
|
{{ ['She has a reminder scheduled for',
|
|
'Rest assured that I will pester her mercilessly about this, starting at',
|
|
'This is absolutely essential, and I will remind her to do it at',
|
|
'Her blood pressure is very important, so I will remind her at',
|
|
] | random }} {{ input_datetime_read('input_datetime.tina_morning_meds_notify') }} today.
|
|
{% else %}
|
|
She will be reminded at {{ input_datetime_read('input_datetime.tina_morning_meds_notify') }} today.
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro medReportTina(method) %}
|
|
{{ tina_morning_meds(method) }}
|
|
{% endmacro %}
|
|
|
|
{% macro tinaStatusReport(type,method) %}
|
|
{% if type == 'work' %}
|
|
{{ workReportTina(method) }}
|
|
{% elif type == 'meds' %}
|
|
{{ medReportTina(method) }}
|
|
{% elif type == 'full' %}
|
|
{{ medReportTina(method) }}
|
|
{{ workReportTina(method) }}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro kallen_morning_meds() %}
|
|
{% set wakeup = state_attr('input_datetime.kallen_wakeup_time','timestamp') | int %}
|
|
{% if state_attr('input_datetime.kallen_bedtime','timestamp') | int <= 7200 %}
|
|
{% set bedtime = 86340 %}
|
|
{% else %}
|
|
{% set bedtime = state_attr('input_datetime.kallen_bedtime','timestamp') | int - 900 %}
|
|
{% endif %}
|
|
{% if wakeup <= ct <= bedtime %}
|
|
{% if is_state('input_boolean.kallen_morning_meds_taken','on') %}
|
|
Kallen took his morning meds at {{ input_datetime_read('input_datetime.kallen_morning_meds_taken','withdate') }} today.
|
|
{% else %}
|
|
Kallen has not taken his morning meds.
|
|
{% if ct < state_attr('input_datetime.kallen_morning_meds_notify','timestamp') | int %}
|
|
{{ ['He has a reminder scheduled for',
|
|
'Rest assured that I will pester him mercilessly about this, starting at',
|
|
'This is absolutely essential, and I will remind him to do it at',
|
|
] | random }} {{ input_datetime_read('input_datetime.kallen_morning_meds_notify') }} today.
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro kallen_night_meds() %}
|
|
{% set wakeup = state_attr('input_datetime.kallen_wakeup_time','timestamp') | int %}
|
|
{% if 0 <= state_attr('input_datetime.kallen_bedtime','timestamp') | int <= 7200 %}
|
|
{% set bedtime = 85440 %}
|
|
{% else %}
|
|
{% set bedtime = state_attr('input_datetime.kallen_bedtime','timestamp') | int - 900 %}
|
|
{% endif %}
|
|
{% set diff = bedtime - ct %}
|
|
{% if is_state('input_boolean.kallen_night_meds_taken','on') %}
|
|
{% if (ct >= bedtime) or (ct < wakeup) %}
|
|
Kallen took his night meds at {{ input_datetime_read('input_datetime.kallen_night_meds_taken','withdate') }} tonight.
|
|
{% endif %}
|
|
{% else %}
|
|
{% if diff <= 3600 %}
|
|
Kallen has not taken his night meds.
|
|
{{ ['He will be reminded when he goes to bed.',
|
|
'I will make sure he is reminded when it is time.',
|
|
'All in due time, of course.'
|
|
] | random }}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro medReportKallen() %}
|
|
{% if is_state('input_boolean.kallen_overnight','on') %}
|
|
Kallen is staying elsewhere overnight.
|
|
{% else %}
|
|
{{ kallen_morning_meds() }}
|
|
{{ kallen_night_meds() }}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro schoolReportKallen(method) %}
|
|
{% set wakeup = state_attr('input_datetime.kallen_wakeup_time','timestamp') %}
|
|
{% set bedtime = state_attr('input_datetime.kallen_bedtime','timestamp') %}
|
|
{% if method == 'tts' %}
|
|
{% if is_state('input_boolean.kallen_school_today', 'on') %}
|
|
{% if is_state('sensor.school_start_days2go', '0') %}
|
|
Today is the first day of school! The last day is in {{ custom_time('input_datetime.school_last_day','month,week,day') }}.
|
|
{% else %}
|
|
{{ [ 'Today is a school day.',
|
|
'Collin has school today.',
|
|
'It is a school day. '
|
|
] | random }}
|
|
{% if is_state('input_boolean.two_hour_delay','on') %}
|
|
'But there was a two hour delay. '
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if is_state('input_boolean.kallen_alternate_pickup','on') %}
|
|
{{ states('input_text.kallen_pickup') }} will be picking Collin up from school today.
|
|
{% else %}
|
|
Pickup today will be at {{ input_datetime_read('input_datetime.kallen_school_day_end') }}.
|
|
{% if is_state('input_boolean.kallen_school_early_release','on') %}
|
|
And It is early release!
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if states('sensor.windows_open') | int > 0 %}
|
|
'I detect that there are windows open. Make sure you close them before you leave, or else the security system will not arm. '
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if is_state('input_boolean.school_cancelled','on') %}
|
|
'School has been cancelled for today. '
|
|
{% endif %}
|
|
{% if (count_the_days('input_datetime.thanksgiving_break_start') | int <= 14) and (count_the_days('input_datetime.thanksgiving_break_start') | int > 0) %}
|
|
{{ [ 'Oh, and look at that.',
|
|
'For those trying to keep count. ',
|
|
'In case you were wondering.',
|
|
'Also, did you know.'
|
|
] | random }}
|
|
'Thanksgiving break starts in {{ custom_time('input_datetime.thanksgiving_break_start','week,day') }}!'
|
|
{% endif %}
|
|
{% if (count_the_days('input_datetime.christmas_break_start') | int <= 14) and (count_the_days('input_datetime.christmas_break_start') | int > 0) %}
|
|
{{ [ 'Oh, and look at that.',
|
|
'For those trying to keep count. ',
|
|
'In case you were wondering.',
|
|
'Also, did you know.'
|
|
] | random }}
|
|
'Christmas break starts in {{ custom_time('input_datetime.christmas_break_start','week,day') }}!'
|
|
{% endif %}
|
|
{% if (count_the_days('input_datetime.spring_break_start') | int <= 14) and (count_the_days('input_datetime.spring_break_start') | int > 0) %}
|
|
{{ [ 'Oh, and look at that.',
|
|
'For those trying to keep count. ',
|
|
'In case you were wondering.',
|
|
'Also, did you know.'
|
|
] | random }}
|
|
'Spring break starts in {{ custom_time('input_datetime.spring_break_start','week,day') }}!'
|
|
{% endif %}
|
|
{% if (count_the_days('input_datetime.school_last_day') | int <= 35) and (count_the_days('input_datetime.school_last_day') | int > 0) %}
|
|
{{ [ 'Oh, and look at that.',
|
|
'For those trying to keep count. ',
|
|
'In case you were wondering.',
|
|
'Also, did you know.'
|
|
] | random }}
|
|
The school year ends in {{ custom_time('input_datetime.school_last_day','week,day') }}.
|
|
{% endif %}
|
|
{% if count_the_days('input_datetime.school_last_day') | int == 0 %}
|
|
Congratulations, today is the last day of school! Have an awesome day!
|
|
{% endif %}
|
|
{% if count_the_days('input_datetime.school_last_day') | int == -1 -%}
|
|
Today is the first day of Summer Break!
|
|
{%- endif %}
|
|
{% elif method == 'text' %}
|
|
{% if is_state('input_boolean.school_in_session','on') %}
|
|
{% if is_state('input_boolean.kallen_school_today','on') %}
|
|
{% if is_state('input_boolean.two_hour_delay','on') %}
|
|
School is currently under a two hour delay for Kallen.
|
|
{% elif is_state('input_boolean.kallen_at_school','on') %}
|
|
Kallen is at school right now.
|
|
{% if is_state('input_boolean.kallen_alternate_pickup','on') %}
|
|
{{ states('input_text.kallen_pickup') }} will be picking him up from school today.
|
|
{% elif is_state('input_boolean.kallen_school_early_release','on') %}
|
|
The school is on an early release schedule, pickup is at {{ input_datetime_read('input_datetime.kallen_school_day_end') }} today.
|
|
{% else %}
|
|
His pickup time is {{ input_datetime_read('input_datetime.kallen_school_day_end') }} today.
|
|
{% endif %}
|
|
{% else %}
|
|
Kallen has school at {{ input_datetime_read('input_datetime.kallen_school_day_start') }} today.
|
|
{% endif %}
|
|
{% elif is_state('input_boolean.school_cancelled','on') %}
|
|
School is cancelled today for Kallen.
|
|
{% elif is_state('input_boolean.kallen_school_today_extended','on') and is_state('input_boolean.kallen_school_today','off') %}
|
|
{% if (ct > wakeup) and (ct < bedtime) %}
|
|
Kallen has finished his school day.
|
|
{% endif %}
|
|
{% else %}
|
|
Kallen does not have school today.
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro kallenSleep(method) %}
|
|
{% set bedtimestamp = state_attr('input_datetime.kallen_bedtime','timestamp') | int %}
|
|
{% if is_state('input_boolean.kallen_sleeping','on') %}
|
|
Kallen went to bed at {{ input_datetime_read('input_datetime.kallen_bedtime') }} tonight.
|
|
{% if 14400 < ct < bedtimestamp %}
|
|
His scheduled wakeup time is {{ input_datetime_read('input_datetime.kallen_wakeup_time') }} today.
|
|
{% endif %}
|
|
{% else %}
|
|
Kallen woke up at {{ input_datetime_read('input_datetime.kallen_wakeup_time') }} today.
|
|
{% if ct > 57600 %}
|
|
His scheduled bedtime is {{ input_datetime_read('input_datetime.kallen_bedtime') }} tonight.
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro kallenStatusReport(type,method) %}
|
|
{% if type == 'meds' %}
|
|
{{ medReportKallen() }}
|
|
{% elif type == 'school' %}
|
|
{{ schoolReportKallen(method) }}
|
|
{% elif type == 'sleep' %}
|
|
{{ kallenSleep(method)}}
|
|
{% elif type == 'full' %}
|
|
{{ kallenSleep(method) }}
|
|
{{ medReportKallen() }}
|
|
{{ schoolReportKallen(method) }}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro emma_sleep() %}
|
|
{% set asleep = state_attr('input_datetime.emma_down_for_nap','timestamp') | int %}
|
|
{% set wakeup = state_attr('input_datetime.emma_up_from_nap','timestamp') | int %}
|
|
{% set day = now().strftime("%-d") %}
|
|
{% set asleep_day = asleep | timestamp_custom("%-d") %}
|
|
{% set wakeup_day = wakeup | timestamp_custom("%-d") %}
|
|
{% if is_state('input_boolean.emma_sleeping','off') and is_state('input_boolean.emma_has_napped','on') or ((asleep_day == day) and (wakeup_day == day)) %}
|
|
Emma napped today for {{ custom_time_between('input_datetime.emma_down_for_nap','input_datetime.emma_up_from_nap','hour,minute') }}. She was retrieved from her room at {{ input_datetime_read('input_datetime.emma_up_from_nap') }} approximately.
|
|
{% elif is_state('input_boolean.emma_has_napped','off') and ((asleep_day == day) and (wakeup_day != day)) and is_state('input_boolean.emma_sleeping','on') %}
|
|
Emma is down for nap. She was put down at {{ input_datetime_read('input_datetime.emma_down_for_nap','withdate') }} approximately. She has been asleep for {{ custom_time('input_datetime.emma_down_for_nap','hour,minute') }}.
|
|
{% elif is_state('input_boolean.emma_sleeping','on') %}
|
|
{% if is_state('binary_sensor.early_night_mode','on') %}
|
|
Emma is asleep for the night.
|
|
{% else %}
|
|
Emma has not yet awoken for the day.
|
|
{% endif %}
|
|
{% else %}
|
|
Emma is awake, and does not appear to have napped yet. She woke up at {{ input_datetime_read('input_datetime.emma_wakeup') }} today.
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro emma_sleep_notification() %}
|
|
{% set asleep = state_attr('input_datetime.emma_down_for_nap','timestamp') | int %}
|
|
{% set wakeup = state_attr('input_datetime.emma_up_from_nap','timestamp') | int %}
|
|
{% set day = now().strftime("%-d") %}
|
|
{% set asleep_day = asleep | timestamp_custom("%-d") %}
|
|
{% set wakeup_day = wakeup | timestamp_custom("%-d") %}
|
|
{% if is_state('input_boolean.emma_sleeping','off') and is_state('input_boolean.emma_has_napped','on') or ((asleep_day == day) and (wakeup_day == day)) %}
|
|
Emma has awoken. She napped today for {{ custom_time_between('input_datetime.emma_down_for_nap','input_datetime.emma_up_from_nap','hour,minute') }}. She was retrieved from her room at {{ clock('12-hr') }}
|
|
{% elif is_state('input_boolean.emma_has_napped','off') and is_state('input_boolean.emma_sleeping','off') and ((asleep_day != day) or (wakeup_day != day)) %}
|
|
Emma has awoken for the day at {{ clock('12-hr') }}
|
|
{% elif is_state('input_boolean.emma_has_napped','off') and ((asleep_day == day) and (wakeup_day != day)) and is_state('input_boolean.emma_sleeping','on') %}
|
|
Emma is being put down for nap. She was put down at {{ clock('12-hr') }}
|
|
{% elif is_state('input_boolean.emma_sleeping','on') %}
|
|
Emma is asleep for the night (or at least, her sleep switch is active) at {{ clock('12-hr') }}
|
|
{% else %}
|
|
This notification is confused and should not be here. Blame Tony.
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro emmaStatusReport(type,method) %}
|
|
{% if type == 'sleep' %}
|
|
{{ emma_sleep() }}
|
|
{% elif type == 'full' %}
|
|
{{ emma_sleep() }}
|
|
{% endif %}
|
|
{% endmacro %} |