127 lines
6.6 KiB
Django/Jinja
127 lines
6.6 KiB
Django/Jinja
{% macro emma_sleep() %}
|
|
{% from 'time.jinja' import input_datetime_12hr_with_date %}
|
|
{% from 'easy_time.jinja' import custom_time, custom_time_between %}
|
|
{% 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_12hr_with_date('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_12hr_with_date('input_datetime.emma_down_for_nap') }} 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 today.
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro emma_sleep_notification() %}
|
|
{% from 'easy_time.jinja' import clock, custom_time_between %}
|
|
{% 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 tony_morning_meds() %}
|
|
{% from 'time.jinja' import input_datetime_12hr, input_datetime_12hr_with_date, ct %}
|
|
{% set ct = ct() | int %}
|
|
{% if is_state('input_boolean.tony_morning_meds_taken','on') %}
|
|
Tony took his morning meds at {{ input_datetime_12hr_with_date('input_datetime.tony_morning_meds_taken') }} 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 %}
|
|
{{ ['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_12hr('input_datetime.tony_morning_meds_notify') }} today.
|
|
{% else %}
|
|
There are no further notifications scheduled for him today.
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro tony_night_meds() %}
|
|
{% from 'time.jinja' import input_datetime_12hr, input_datetime_12hr_with_date, ct %}
|
|
{% set ct = ct() | int %}
|
|
{% if is_state('input_boolean.tony_night_meds_taken','on') and ct < 43200 %}
|
|
Tony took his night meds at {{ input_datetime_12hr_with_date('input_datetime.tony_night_meds_taken') }} today.
|
|
{% elif is_state('input_boolean.tony_night_meds_taken','off') and (ct >= 82800 or ct <= 21600) %}
|
|
Tony 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.',
|
|
'This will be rectified whenever he drags his ass to bed.',
|
|
'All in due time, of course.'
|
|
] | random }}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro medReportTony() %}
|
|
{{ tony_morning_meds() }}
|
|
{{ tony_night_meds() }}
|
|
{% endmacro %}
|
|
|
|
{% macro kallen_morning_meds() %}
|
|
{% from 'time.jinja' import input_datetime_12hr, input_datetime_12hr_with_date, ct %}
|
|
{% set ct = ct() | int %}
|
|
{% if is_state('input_boolean.kallen_morning_meds_taken','on') %}
|
|
Kallen took his morning meds at {{ input_datetime_12hr_with_date('input_datetime.kallen_morning_meds_taken') }} 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_12hr('input_datetime.kallen_morning_meds_notify') }} today.
|
|
{% else %}
|
|
There are no further notifications scheduled for him today.
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro kallen_night_meds() %}
|
|
{% from 'time.jinja' import input_datetime_12hr, input_datetime_12hr_with_date, ct %}
|
|
{% set ct = ct() | int %}
|
|
{% set diff = state_attr('input_datetime.kallen_bedtime','timestamp') | int - ct %}
|
|
{% if is_state('input_boolean.kallen_night_meds_taken','on') %}
|
|
Kallen took his night meds at {{ input_datetime_12hr_with_date('input_datetime.kallen_night_meds_taken') }} today.
|
|
{% 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 %}
|
|
|