Sleep changes #91

This commit is contained in:
2023-08-08 16:36:10 -04:00
parent 534aac0076
commit a8da417340
4 changed files with 65 additions and 19 deletions

View File

@ -289,7 +289,7 @@ Tony is currently streaming. The current stream category is {{ game }}. The curr
{% endmacro %}
{% macro kallen_morning_meds(type,method) %}
{% set wakeup = state_attr('input_datetime.kallen_wakeup_time','timestamp') | int %}
{% set wakeup = state_attr('input_datetime.kallen_awake_at','timestamp') | int %}
{% if state_attr('input_datetime.kallen_bedtime','timestamp') | int <= 7200 %}
{% set bedtime = 86340 %}
{% else %}
@ -311,8 +311,8 @@ Tony is currently streaming. The current stream category is {{ game }}. The curr
{% endmacro %}
{% macro kallen_night_meds(type,method) %}
{% set wakeup = state_attr('input_datetime.kallen_wakeup_time','timestamp') | int %}
{% if 0 <= state_attr('input_datetime.kallen_bedtime','timestamp') | int <= 7200 %}
{% set wakeup = state_attr('input_datetime.kallen_awake_at','timestamp') | int %}
{% if 0 <= state_attr('input_datetime.kallen_asleep_at','timestamp') | int <= 7200 %}
{% set bedtime = 85440 %}
{% else %}
{% set bedtime = state_attr('input_datetime.kallen_bedtime','timestamp') | int - 900 %}
@ -325,12 +325,14 @@ Tony is currently streaming. The current stream category is {{ game }}. The curr
{% else %}
{% if diff <= 3600 %}
{% if type == 'meds' %}Kallen{% else %}He{% endif %} 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.',
'All in due time, of course.'
] | random }}
{% endif %}
{% endif %}
{% endif %}
{% endmacro %}
{% macro medReportKallen(type,method) %}
@ -444,12 +446,12 @@ Tony is currently streaming. The current stream category is {{ game }}. The curr
{% macro kallenSleep(type,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') | trim }}.
Kallen went to bed at {{ input_datetime_read('input_datetime.kallen_asleep_at') | trim }}.
{% if 14400 < ct < bedtimestamp %}
His scheduled wakeup time is {{ input_datetime_read('input_datetime.kallen_wakeup_time') | trim }}.
{% endif %}
{% else %}
Kallen woke up at {{ input_datetime_read('input_datetime.kallen_wakeup_time') | trim }}.
Kallen woke up at {{ input_datetime_read('input_datetime.kallen_awake_at') | trim }}.
{% if ct > 57600 %}
His scheduled bedtime is {{ input_datetime_read('input_datetime.kallen_bedtime') | trim }}.
{% endif %}
@ -485,12 +487,12 @@ Tony is currently streaming. The current stream category is {{ game }}. The curr
Emma is down for nap. She was put down at around {{ input_datetime_read('input_datetime.emma_down_for_nap','withdate') | trim }}. 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. She went to bed at {{ input_datetime_read('input_datetime.emma_bedtime') | trim }}.
Emma is asleep for the night. She went to bed at {{ input_datetime_read('input_datetime.emma_asleep_at') | trim }}.
{% else %}
Emma has not yet awoken for the day. She went to bed at {{ input_datetime_read('input_datetime.emma_bedtime') | trim }}.
Emma has not yet awoken for the day. She went to bed at {{ input_datetime_read('input_datetime.emma_asleep_at') | trim }}.
{% endif %}
{% else %}
Emma is awake, and does not appear to have napped yet. She woke up at {{ input_datetime_read('input_datetime.emma_wakeup') | trim }}.
Emma is awake, and does not appear to have napped yet. She woke up at {{ input_datetime_read('input_datetime.emma_awake_at') | trim }}.
{% endif %}
{% endmacro %}

View File

@ -4,12 +4,20 @@
{{ (states(input_number)) | int * 60 }}
{% endmacro %}
{% macro current_time(hr) %}
{% macro current_time(hr,date) %}
{% if hr == 12 %}
{{ now().strftime('%-I:%M %p') }}
{% elif hr == 24 %}
{% if date is defined %}
{% if date == 'withdate' %}
{{ now().strftime('%Y-%m-%d %H:%M:%S') }}
{% elif date == 'nodate' %}
{{ now().strftime('%H:%M') }}
{% endif %}
{% else %}
{{ now().strftime('%H:%M') }}
{% endif %}
{% endif %}
{% endmacro %}
{% macro current_date_input() %}

View File

@ -31,6 +31,16 @@ input_datetime:
has_date: false
has_time: true
icon: mdi:fan-off
emma_asleep_at:
name: Emma Asleep At
has_date: false
has_time: true
icon: mdi:weather-night
emma_awake_at:
name: Emma Awake At
has_date: false
has_time: true
icon: mdi:weather-sunset-up
emma_down_for_nap:
name: Emma Down For Nap
has_date: true
@ -99,7 +109,17 @@ automation:
target:
entity_id: input_datetime.emma_down_for_nap
data:
datetime: "{{ as_timestamp(now()) | timestamp_custom('%Y-%m-%d %H:%M:%S') }}"
datetime: >
{% from 'time.jinja' import current_time %}
{{ current_time(24,'withdate') }}
else:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.emma_asleep_at
data:
time: >
{% from 'time.jinja' import current_time %}
{{ current_time(24) }}
- delay:
seconds: 1
- service: script.text_notify
@ -129,7 +149,9 @@ automation:
target:
entity_id: input_datetime.emma_up_from_nap
data:
datetime: "{{ as_timestamp(now()) | timestamp_custom('%Y-%m-%d %H:%M:%S') }}"
datetime: >
{% from 'time.jinja' import current_time %}
{{ current_time(24,'withdate') }}
- delay:
milliseconds: 500
- if:
@ -146,7 +168,7 @@ automation:
target:
entity_id: input_datetime.emma_bedtime
data:
time: "{{ (state_attr('input_datetime.emma_up_from_nap','timestamp') + 10800) | timestamp_custom('%H:%M') }}"
time: "{{ (state_attr('input_datetime.emma_up_from_nap','timestamp') + 14400) | timestamp_custom('%H:%M') }}"
- service: input_boolean.turn_on
target:
entity_id: input_boolean.emma_has_napped
@ -267,7 +289,7 @@ automation:
state: 'off'
- condition: time
before: "23:00:00"
after: "04:00:00"
after: "07:00:00"
sequence:
- service: timer.start
target:
@ -318,7 +340,9 @@ automation:
target:
entity_id: input_datetime.emma_down_for_nap
data:
datetime: "{{ as_timestamp(now()) | timestamp_custom('%Y-%m-%d %H:%M:%S') }}"
datetime: >
{% from 'time.jinja' import current_time %}
{{ current_time(24,'withdate') }}
- conditions:
- condition: or
conditions:
@ -331,7 +355,7 @@ automation:
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.emma_bedtime
entity_id: input_datetime.emma_asleep_at
data:
datetime: >
{% from 'time.jinja' import current_time %}
@ -357,7 +381,9 @@ automation:
target:
entity_id: input_datetime.emma_down_for_nap
data:
datetime: "{{ as_timestamp(now()) | timestamp_custom('%Y-%m-%d %H:%M:%S') }}"
datetime: >
{% from 'time.jinja' import current_time %}
{{ current_time(24,'withdate') }}
- conditions:
- condition: trigger
id: bedtime-timer-finished
@ -377,7 +403,7 @@ automation:
else:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.emma_bedtime
entity_id: input_datetime.emma_asleep_at
data:
datetime: >
{% from 'time.jinja' import current_time %}
@ -857,7 +883,7 @@ script:
then:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.emma_wakeup
entity_id: input_datetime.emma_awake_at
data:
time: >
{% from 'time.jinja' import current_time %}

View File

@ -37,6 +37,16 @@ input_datetime:
has_date: false
has_time: true
icon: mdi:bell-alert
kallen_asleep_at:
name: Kallen Asleep At
has_date: false
has_time: true
icon: mdi:weather-night
kallen_awake_at:
name: Kallen Awake At
has_date: false
has_time: true
icon: mdi:weather-sunset-up
kallen_fan:
name: Kallen Fan
has_date: false