diff --git a/custom_templates/status.jinja b/custom_templates/status.jinja index 9ff13b5..327f967 100644 --- a/custom_templates/status.jinja +++ b/custom_templates/status.jinja @@ -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,10 +325,12 @@ 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 %} @@ -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 %} diff --git a/custom_templates/time.jinja b/custom_templates/time.jinja index 6959aa0..d1674ef 100644 --- a/custom_templates/time.jinja +++ b/custom_templates/time.jinja @@ -4,11 +4,19 @@ {{ (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 %} -{{ 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 %} {% endmacro %} diff --git a/packages/emmalynn.yaml b/packages/emmalynn.yaml index abf3124..8baad26 100644 --- a/packages/emmalynn.yaml +++ b/packages/emmalynn.yaml @@ -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 %} diff --git a/packages/kallen.yaml b/packages/kallen.yaml index 5044e34..b2fce43 100644 --- a/packages/kallen.yaml +++ b/packages/kallen.yaml @@ -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