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 %} {% endmacro %}
{% macro kallen_morning_meds(type,method) %} {% 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 %} {% if state_attr('input_datetime.kallen_bedtime','timestamp') | int <= 7200 %}
{% set bedtime = 86340 %} {% set bedtime = 86340 %}
{% else %} {% else %}
@ -311,8 +311,8 @@ Tony is currently streaming. The current stream category is {{ game }}. The curr
{% endmacro %} {% endmacro %}
{% macro kallen_night_meds(type,method) %} {% macro kallen_night_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 0 <= state_attr('input_datetime.kallen_bedtime','timestamp') | int <= 7200 %} {% if 0 <= state_attr('input_datetime.kallen_asleep_at','timestamp') | int <= 7200 %}
{% set bedtime = 85440 %} {% set bedtime = 85440 %}
{% else %} {% else %}
{% set bedtime = state_attr('input_datetime.kallen_bedtime','timestamp') | int - 900 %} {% set bedtime = state_attr('input_datetime.kallen_bedtime','timestamp') | int - 900 %}
@ -325,11 +325,13 @@ Tony is currently streaming. The current stream category is {{ game }}. The curr
{% else %} {% else %}
{% if diff <= 3600 %} {% if diff <= 3600 %}
{% if type == 'meds' %}Kallen{% else %}He{% endif %} has not taken his night meds. {% 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.', {{ ['He will be reminded when he goes to bed.',
'I will make sure he is reminded when it is time.', 'I will make sure he is reminded when it is time.',
'All in due time, of course.' 'All in due time, of course.'
] | random }} ] | random }}
{% endif %} {% endif %}
{% endif %}
{% endif %} {% endif %}
{% endmacro %} {% endmacro %}
@ -444,12 +446,12 @@ Tony is currently streaming. The current stream category is {{ game }}. The curr
{% macro kallenSleep(type,method) %} {% macro kallenSleep(type,method) %}
{% set bedtimestamp = state_attr('input_datetime.kallen_bedtime','timestamp') | int %} {% set bedtimestamp = state_attr('input_datetime.kallen_bedtime','timestamp') | int %}
{% if is_state('input_boolean.kallen_sleeping','on') %} {% 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 %} {% if 14400 < ct < bedtimestamp %}
His scheduled wakeup time is {{ input_datetime_read('input_datetime.kallen_wakeup_time') | trim }}. His scheduled wakeup time is {{ input_datetime_read('input_datetime.kallen_wakeup_time') | trim }}.
{% endif %} {% endif %}
{% else %} {% 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 %} {% if ct > 57600 %}
His scheduled bedtime is {{ input_datetime_read('input_datetime.kallen_bedtime') | trim }}. His scheduled bedtime is {{ input_datetime_read('input_datetime.kallen_bedtime') | trim }}.
{% endif %} {% 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') }}. 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') %} {% elif is_state('input_boolean.emma_sleeping','on') %}
{% if is_state('binary_sensor.early_night_mode','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 %} {% 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 %} {% endif %}
{% else %} {% 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 %} {% endif %}
{% endmacro %} {% endmacro %}

View File

@ -4,11 +4,19 @@
{{ (states(input_number)) | int * 60 }} {{ (states(input_number)) | int * 60 }}
{% endmacro %} {% endmacro %}
{% macro current_time(hr) %} {% macro current_time(hr,date) %}
{% if hr == 12 %} {% if hr == 12 %}
{{ now().strftime('%-I:%M %p') }} {{ now().strftime('%-I:%M %p') }}
{% elif hr == 24 %} {% elif hr == 24 %}
{{ now().strftime('%H:%M') }} {% 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 %} {% endif %}
{% endmacro %} {% endmacro %}

View File

@ -31,6 +31,16 @@ input_datetime:
has_date: false has_date: false
has_time: true has_time: true
icon: mdi:fan-off 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: emma_down_for_nap:
name: Emma Down For Nap name: Emma Down For Nap
has_date: true has_date: true
@ -99,7 +109,17 @@ automation:
target: target:
entity_id: input_datetime.emma_down_for_nap entity_id: input_datetime.emma_down_for_nap
data: 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: - delay:
seconds: 1 seconds: 1
- service: script.text_notify - service: script.text_notify
@ -129,7 +149,9 @@ automation:
target: target:
entity_id: input_datetime.emma_up_from_nap entity_id: input_datetime.emma_up_from_nap
data: 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: - delay:
milliseconds: 500 milliseconds: 500
- if: - if:
@ -146,7 +168,7 @@ automation:
target: target:
entity_id: input_datetime.emma_bedtime entity_id: input_datetime.emma_bedtime
data: 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 - service: input_boolean.turn_on
target: target:
entity_id: input_boolean.emma_has_napped entity_id: input_boolean.emma_has_napped
@ -267,7 +289,7 @@ automation:
state: 'off' state: 'off'
- condition: time - condition: time
before: "23:00:00" before: "23:00:00"
after: "04:00:00" after: "07:00:00"
sequence: sequence:
- service: timer.start - service: timer.start
target: target:
@ -318,7 +340,9 @@ automation:
target: target:
entity_id: input_datetime.emma_down_for_nap entity_id: input_datetime.emma_down_for_nap
data: 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: - conditions:
- condition: or - condition: or
conditions: conditions:
@ -331,7 +355,7 @@ automation:
sequence: sequence:
- service: input_datetime.set_datetime - service: input_datetime.set_datetime
target: target:
entity_id: input_datetime.emma_bedtime entity_id: input_datetime.emma_asleep_at
data: data:
datetime: > datetime: >
{% from 'time.jinja' import current_time %} {% from 'time.jinja' import current_time %}
@ -357,7 +381,9 @@ automation:
target: target:
entity_id: input_datetime.emma_down_for_nap entity_id: input_datetime.emma_down_for_nap
data: 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: - conditions:
- condition: trigger - condition: trigger
id: bedtime-timer-finished id: bedtime-timer-finished
@ -377,7 +403,7 @@ automation:
else: else:
- service: input_datetime.set_datetime - service: input_datetime.set_datetime
target: target:
entity_id: input_datetime.emma_bedtime entity_id: input_datetime.emma_asleep_at
data: data:
datetime: > datetime: >
{% from 'time.jinja' import current_time %} {% from 'time.jinja' import current_time %}
@ -857,7 +883,7 @@ script:
then: then:
- service: input_datetime.set_datetime - service: input_datetime.set_datetime
target: target:
entity_id: input_datetime.emma_wakeup entity_id: input_datetime.emma_awake_at
data: data:
time: > time: >
{% from 'time.jinja' import current_time %} {% from 'time.jinja' import current_time %}

View File

@ -37,6 +37,16 @@ input_datetime:
has_date: false has_date: false
has_time: true has_time: true
icon: mdi:bell-alert 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: kallen_fan:
name: Kallen Fan name: Kallen Fan
has_date: false has_date: false