Move K's med handlers to UI config

This commit is contained in:
2024-03-18 18:39:57 -04:00
parent db5b710d2c
commit a5f1e04250
3 changed files with 290 additions and 256 deletions

View File

@ -4713,3 +4713,93 @@
target:
entity_id: input_boolean.kallen_has_phone
mode: restart
- id: '1710611198911'
alias: Kallen Meds Handler
description: Make sure Kallen has taken his meds in the morning and at night
trigger:
- platform: time
at: input_datetime.kallen_morning_meds_notify
id: wakeup
alias: Morning Notify
- platform: time
at: input_datetime.kallen_night_meds_notify
id: sleep
alias: Night Notify
- platform: state
entity_id: input_boolean.kallen_morning_meds_taken
to: 'on'
id: boolean-morning
alias: Morning Taken
- platform: state
entity_id: input_boolean.kallen_night_meds_taken
to: 'on'
id: boolean-night
alias: Night Taken
condition:
- condition: state
entity_id: input_boolean.kallen_overnight
state: 'off'
alias: Kallen is not staying the night elsewhere
action:
- alias: Routing
choose:
- conditions:
- condition: and
conditions:
- condition: trigger
id: wakeup
- condition: state
entity_id: input_boolean.kallen_morning_meds_taken
state: 'off'
alias: Morning Notify
sequence:
- service: script.turn_on
target:
entity_id: script.kallen_morning_meds
data: {}
alias: Run morning meds script
- conditions:
- condition: and
conditions:
- condition: trigger
id: sleep
- condition: state
entity_id: input_boolean.kallen_night_meds_taken
state: 'off'
alias: Night Notify
sequence:
- service: script.turn_on
target:
entity_id: script.kallen_night_meds
data: {}
alias: Run night meds script
- conditions:
- condition: trigger
id: boolean-morning
alias: Morning Taken
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_morning_meds_taken
data:
datetime: '{% from ''time.jinja'' import current_time %} {{ current_time(''datetime'',24)
}}
'
alias: Set time morning meds were taken
- conditions:
- condition: trigger
id: boolean-night
alias: Night Taken
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_night_meds_taken
data:
datetime: '{% from ''time.jinja'' import current_time %} {{ current_time(''datetime'',24)
}}
'
alias: Set time night meds were taken
mode: parallel
max: 4

View File

@ -97,75 +97,6 @@ sensor:
scan_interval: 30
automation:
- id: 67fbdb66-b94b-4351-86de-a388d601e93c
alias: Kallen Meds Handler
description: Make sure Kallen has taken his meds in the morning and at night
mode: parallel
max: 4
trigger:
- platform: time
at: input_datetime.kallen_morning_meds_notify
id: wakeup
- platform: time
at: input_datetime.kallen_night_meds_notify
id: sleep
- platform: state
entity_id: input_boolean.kallen_morning_meds_taken
to: 'on'
id: boolean-morning
- platform: state
entity_id: input_boolean.kallen_night_meds_taken
to: 'on'
id: boolean-night
action:
- choose:
- conditions:
- condition: and
conditions:
- condition: trigger
id: wakeup
- condition: state
entity_id: input_boolean.kallen_morning_meds_taken
state: 'off'
sequence:
- service: script.turn_on
target:
entity_id: script.kallen_morning_meds
- conditions:
- condition: and
conditions:
- condition: trigger
id: sleep
- condition: state
entity_id: input_boolean.kallen_night_meds_taken
state: 'off'
sequence:
- service: script.turn_on
target:
entity_id: script.kallen_night_meds
- conditions:
- condition: trigger
id: boolean-morning
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_morning_meds_taken
data:
datetime: >
{% from 'time.jinja' import current_time %}
{{ current_time('datetime',24) }}
- conditions:
- condition: trigger
id: boolean-night
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_night_meds_taken
data:
datetime: >
{% from 'time.jinja' import current_time %}
{{ current_time('datetime',24) }}
- id: 94b57d79-efe0-4f34-b5e3-baeaa5eea9f4
alias: Kallen Asleep
trigger:
@ -173,190 +104,4 @@ automation:
at: input_datetime.kallen_bedtime
action:
- service: input_boolean.turn_off
entity_id: input_boolean.kallen_awake
script:
kallen_morning_meds:
alias: 'Kallen Morning Meds'
icon: mdi:medication
mode: restart
sequence:
- service: script.text_notify
data:
who: kallen
type: alert
title: Morning Meds
message: You need to take your morning meds. Go to mom or dad to confirm.
tag: kallen-morning-meds-self
- service: script.text_notify
data:
who: parents
type: alert
title: Morning Meds
message: Kallen needs to take his morning meds
tag: kallen-morning-meds-parents
actions:
- action: "KALLEN_MORNING_MEDS_TAKEN"
title: Taken
- action: "KALLEN_MORNING_MEDS_SKIPPED"
title: Skip
- action: "KALLEN_MORNING_MEDS_ASK_LATER"
title: Ask Later
- wait_for_trigger:
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: "KALLEN_MORNING_MEDS_TAKEN"
id: taken
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: "KALLEN_MORNING_MEDS_SKIPPED"
id: skipped
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: "KALLEN_MORNING_MEDS_ASK_LATER"
id: ask-later
- platform: state
entity_id: person.kallen_stork
from: 'home'
id: left
- platform: state
entity_id: input_boolean.kallen_morning_meds_taken
to: 'on'
id: manual
timeout: "00:10:00"
continue_on_timeout: true
- choose:
- conditions: "{{ wait.trigger.id in ['taken','manual'] }}"
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.kallen_morning_meds_taken
- conditions: "{{ wait.trigger.id == 'ask-later' }}"
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_morning_meds_notify
data:
datetime: >
{% from 'time.jinja' import set_datetime %}
{{ set_datetime(0,5) }}
- conditions: "{{ wait.trigger.id == 'left' or wait.trigger == 'none' or wait.trigger.idx is undefined }}"
sequence:
- if:
- condition: state
entity_id: person.kallen_stork
state: 'home'
then:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_morning_meds_notify
data:
datetime: >
{% from 'time.jinja' import set_datetime %}
{{ set_datetime(0,1) }}
- service: script.text_notify
data:
type: alert
who: kallen
message: clear_notification
tag: kallen-morning-meds-parents
- service: script.text_notify
data:
type: alert
who: kallen
message: clear_notification
tag: kallen-morning-meds-self
kallen_night_meds:
alias: 'Kallen Night Meds'
icon: mdi:medication
mode: restart
sequence:
- service: script.text_notify
data:
who: kallen
type: alert
title: Night Meds
message: You need to take your night meds (melatonin)
tag: kallen-night-meds
actions:
- action: "KALLEN_NIGHT_MEDS_TAKEN"
title: Taken
- action: "KALLEN_NIGHT_MEDS_SKIPPED"
title: Skip
- action: "KALLEN_NIGHT_MEDS_ASK_LATER"
title: Ask Later
- service: script.text_notify
data:
who: >
{% if states('person.christina_stork') in ['Bob Evans','BobEvans'] %}
tony
{% else %}
parents
{% endif %}
type: alert
title: Night Meds
message: Kallen needs to take his night meds (melatonin)
tag: kallen-night-meds
actions:
- action: "KALLEN_NIGHT_MEDS_TAKEN"
title: Taken
- action: "KALLEN_NIGHT_MEDS_SKIPPED"
title: Skip
- action: "KALLEN_NIGHT_MEDS_ASK_LATER"
title: Ask Later
- wait_for_trigger:
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: "KALLEN_NIGHT_MEDS_TAKEN"
id: taken
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: "KALLEN_NIGHT_MEDS_SKIPPED"
id: skipped
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: "KALLEN_NIGHT_MEDS_ASK_LATER"
id: ask-later
- platform: state
entity_id: input_boolean.kallen_night_meds_taken
to: 'on'
id: manual
timeout: "00:05:00"
continue_on_timeout: true
- choose:
- conditions: "{{ wait.trigger.id in ['taken','manual'] }}"
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.kallen_night_meds_taken
- conditions: "{{ wait.trigger.id == 'ask-later' }}"
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_night_meds_notify
data:
datetime: >
{% from 'time.jinja' import set_datetime %}
{{ set_datetime(0,15) }}
- conditions: "{{ wait.trigger == 'none' or wait.trigger.idx is undefined }}"
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_night_meds_notify
data:
datetime: >
{% from 'time.jinja' import set_datetime %}
{{ set_datetime(0,1) }}
- service: script.text_notify
data:
type: alert
who: all
message: clear_notification
tag: kallen-night-meds
entity_id: input_boolean.kallen_awake

View File

@ -2700,3 +2700,202 @@ tony_tylenol:
mode: queued
icon: mdi:medication
max: 10
'1710612011154':
alias: Kallen Morning Meds
sequence:
- service: script.text_notify
data:
who: kallen
type: alert
title: Morning Meds
message: You need to take your morning meds. Go to mom or dad to confirm.
tag: kallen-morning-meds-self
- service: script.text_notify
data:
who: parents
type: alert
title: Morning Meds
message: Kallen needs to take his morning meds
tag: kallen-morning-meds-parents
actions:
- action: KALLEN_MORNING_MEDS_TAKEN
title: Taken
- action: KALLEN_MORNING_MEDS_SKIPPED
title: Skip
- action: KALLEN_MORNING_MEDS_ASK_LATER
title: Ask Later
- wait_for_trigger:
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: KALLEN_MORNING_MEDS_TAKEN
id: taken
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: KALLEN_MORNING_MEDS_SKIPPED
id: skipped
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: KALLEN_MORNING_MEDS_ASK_LATER
id: ask-later
- platform: state
entity_id: person.kallen_stork
from: home
id: left
- platform: state
entity_id: input_boolean.kallen_morning_meds_taken
to: 'on'
id: manual
timeout: 00:10:00
continue_on_timeout: true
- choose:
- conditions:
- condition: template
value_template: '{{ wait.trigger.id in [''taken'',''manual''] }}'
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.kallen_morning_meds_taken
data: {}
- conditions:
- condition: template
value_template: '{{ wait.trigger.id == ''ask-later'' }}'
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_morning_meds_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0,5)
}}
'
- conditions:
- condition: template
value_template: '{{ wait.trigger.id == ''left'' or wait.trigger == ''none''
or wait.trigger.idx is undefined }}'
sequence:
- if:
- condition: state
entity_id: person.kallen_stork
state: home
then:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_morning_meds_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0,1)
}}
'
- service: script.text_notify
data:
type: alert
who: kallen
message: clear_notification
tag: kallen-morning-meds-parents
- service: script.text_notify
data:
type: alert
who: kallen
message: clear_notification
tag: kallen-morning-meds-self
icon: mdi:medication
mode: restart
'1710612164315':
alias: Kallen Night Meds
sequence:
- service: script.text_notify
data:
who: kallen
type: alert
title: Night Meds
message: You need to take your night meds (melatonin)
tag: kallen-night-meds
actions:
- action: KALLEN_NIGHT_MEDS_TAKEN
title: Taken
- action: KALLEN_NIGHT_MEDS_SKIPPED
title: Skip
- action: KALLEN_NIGHT_MEDS_ASK_LATER
title: Ask Later
- service: script.text_notify
data:
who: "{% if states('person.christina_stork') in ['Bob Evans','BobEvans'] %}\n
\ tony\n{% else %}\n parents\n{% endif %}\n"
type: alert
title: Night Meds
message: Kallen needs to take his night meds (melatonin)
tag: kallen-night-meds
actions:
- action: KALLEN_NIGHT_MEDS_TAKEN
title: Taken
- action: KALLEN_NIGHT_MEDS_SKIPPED
title: Skip
- action: KALLEN_NIGHT_MEDS_ASK_LATER
title: Ask Later
- wait_for_trigger:
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: KALLEN_NIGHT_MEDS_TAKEN
id: taken
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: KALLEN_NIGHT_MEDS_SKIPPED
id: skipped
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: KALLEN_NIGHT_MEDS_ASK_LATER
id: ask-later
- platform: state
entity_id: input_boolean.kallen_night_meds_taken
to: 'on'
id: manual
timeout: 00:05:00
continue_on_timeout: true
- choose:
- conditions:
- condition: template
value_template: '{{ wait.trigger.id in [''taken'',''manual''] }}'
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.kallen_night_meds_taken
data: {}
- conditions:
- condition: template
value_template: '{{ wait.trigger.id == ''ask-later'' }}'
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_night_meds_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0,15)
}}
'
- conditions:
- condition: template
value_template: '{{ wait.trigger == ''none'' or wait.trigger.idx is undefined
}}'
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_night_meds_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0,1)
}}
'
- service: script.text_notify
data:
type: alert
who: all
message: clear_notification
tag: kallen-night-meds
icon: mdi:medication
mode: restart