Sleep changes #91
This commit is contained in:
@ -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 %}
|
||||
|
||||
|
@ -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() %}
|
||||
|
@ -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 %}
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user