Files
Home-Assistant-Configs/scripts.yaml

3161 lines
90 KiB
YAML

give_me_darkness:
alias: Give Me Darkness
sequence:
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.give_me_darkness
alias: Turn on input boolean
- delay:
hours: 0
minutes: 0
seconds: 1
milliseconds: 0
- service: script.volume_reset
data: {}
- service: script.evening_on_first_floor
data:
give_me_darkness: 1
- service: script.evening_on_second_floor
data: {}
- service: mqtt.publish
data:
qos: '2'
retain: true
topic: house/time/give_me_darkness
payload: 'on'
- alias: Security decision
if:
- condition: and
conditions:
- condition: state
entity_id: person.tony_stork
state: home
- condition: state
entity_id: person.christina_stork
state: home
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
- condition: state
entity_id: alarm_control_panel.nerdhome_alarm_panel
state: disarmed
alias: Both adults are home, guest mode off, security disarmed
then:
- alias: Auto or manual trigger?
if:
- condition: template
value_template: '{{ auto == 1 }}'
alias: Triggered by automation
then:
- service: alarm_control_panel.alarm_arm_home
data: {}
target:
entity_id: alarm_control_panel.nerdhome_alarm_panel
alias: Arm security
else:
- service: script.activate_alexa_actionable_notification
data:
text: <voice name='Joanna'><prosody rate='150%'>Would you like me to arm
the security system?</prosody></voice>
event_id: actionable_notification_night_security_arm
alexa_device: media_player.living_room_echo_dot
alias: Ask to arm security
mode: single
icon: mdi:weather-night
alexa_tts_test:
alias: Alexa TTS Test
sequence:
- service: notify.alexa_media
data:
data:
method: all
type: announce
target: Living Room Echo Dot
message: I farted
mode: single
icon: mdi:test-tube
kallen_timer_cancel:
sequence:
- service: timer.cancel
target:
entity_id: timer.kallen_timer
mode: single
alias: Kallen Timer - Cancel
icon: mdi:cancel
global_off:
alias: Global Off
sequence:
- service: light.turn_off
data: {}
target:
entity_id: all
- service: fan.turn_off
data: {}
target:
entity_id: all
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.tina_desk_lights
mode: single
icon: mdi:earth-off
global_on:
alias: Global On
sequence:
- service: light.turn_on
data: {}
target:
entity_id: all
mode: single
icon: mdi:earth
max_brightness:
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.tina_desk_lights
data: {}
alias: Turn on Tina Desk Lights
- alias: Turn off Adaptive Lighting and Motion Lighting
service: switch.turn_off
data: {}
target:
label_id:
- adaptive_lighting
- motion_lighting
- delay:
hours: 0
minutes: 0
seconds: 1
milliseconds: 0
- alias: Cancel motion timers
service: timer.cancel
data: {}
target:
label_id: motion_lighting
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.front_porch_light_on
alias: Turn off Front Porch automation
- service: light.turn_on
data:
kelvin: 5000
brightness_pct: 100
target:
entity_id: all
alias: Turn on ALL LIGHTS to maximum brightness
mode: single
alias: Max Brightness
icon: mdi:brightness-7
going_upstairs:
alias: Going Upstairs
sequence:
- service: mqtt.publish
data:
qos: '2'
retain: true
topic: house/time/night_mode
payload: 'on'
alias: Tell MQTT that it is night mode now
- service: input_select.select_option
data:
option: Adaptive
target:
entity_id:
- input_select.basement_studio_scenes
- input_select.tina_lamp_scenes
- input_select.mud_room_scenes
- input_select.living_room_scenes
alias: Set scenes
- service: input_boolean.turn_on
entity_id: input_boolean.night_mode
alias: Turn on Night Mode
- alias: Turn off Studio Quiet and Gaming Mode
service: input_boolean.turn_off
data: {}
target:
entity_id:
- input_boolean.studio_quiet
- input_boolean.gaming_mode
- alias: Thermostat reminder
if:
- alias: If triggered from basement
condition: state
entity_id: sensor.last_alexa_name
state: Basement Echo Dot
then:
- alias: Remind in basement
service: script.speech_engine
data:
who: basement
message: Remember to set the thermostat for the night
type: alert
else:
- alias: Remind in living room
service: script.speech_engine
data:
who: living_room
message: Remember to set the thermostat for the night
type: alert
enabled: false
- if:
- condition: not
conditions:
- condition: state
entity_id: media_player.basement_tv
state: playing
then:
- service: media_player.turn_off
target:
entity_id: media_player.basement_tv
data: {}
alias: Turn basement TV off, unless something is playing
- if:
- condition: state
entity_id: input_boolean.kallen_computer_updates
state: 'off'
then:
- service: script.kallen_desktop_shutdown
data: {}
alias: Shut down Kallen desktop
alias: Shutdown Kallen Desktop, unless it is updating
- choose:
- conditions:
- condition: state
entity_id: sensor.last_alexa_name
state: Living Room Echo Dot
alias: If triggered from living room
sequence:
- service: script.activate_alexa_actionable_notification
data:
text: <voice name='Joanna'><prosody rate='150%'>Would you like me to shut
down your computer?</prosody></voice>
event_id: actionable_notification_shutdown_computer
alexa_device: media_player.living_room_echo_dot
response_variable: shutdown
alias: Ask in living room
- conditions:
- condition: state
entity_id: sensor.last_alexa_name
state: Master Bedroom Echo Dot
alias: If triggered from master bedroom
sequence:
- service: script.activate_alexa_actionable_notification
data:
text: <voice name='Joanna'><prosody rate='150%'>Would you like me to shut
down your computer?</prosody></voice>
event_id: actionable_notification_shutdown_computer
alexa_device: media_player.master_bedroom_echo_dot
response_variable: shutdown
alias: Ask in master bedroom
default:
- service: script.activate_alexa_actionable_notification
data:
text: <voice name='Joanna'><prosody rate='150%'>Would you like me to shut
down your computer?</prosody></voice>
event_id: actionable_notification_shutdown_computer
alexa_device: media_player.basement_echo_dot
response_variable: shutdown
alias: Ask in basement
alias: Ask about shutting down main computer
- wait_for_trigger:
- platform: state
entity_id:
- binary_sensor.basement_studio_door
from: 'off'
to: 'on'
id: door
- platform: state
entity_id:
- input_boolean.goodnight
from: 'off'
to: 'on'
id: goodnight
- platform: state
entity_id: light.master_bedroom_lights
to: 'on'
id: lights
timeout:
hours: 0
minutes: 30
seconds: 0
milliseconds: 0
alias: Figure out where I am
- service: light.turn_off
data: {}
target:
entity_id: light.basement_studio_lights
alias: Turn off the lights
- service: input_datetime.set_datetime
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0,2)
}}
'
target:
entity_id: input_datetime.tony_night_meds_notify
alias: Schedule the night meds notification
- if:
- condition: template
value_template: '{{ wait.trigger.id in [''goodnight'',''lights''] }}'
then:
- service: script.text_notify
data:
type: alert
who: tony
title: Basement Shutdown
message: Would you like me to shut down your computer?
tag: going-upstairs-pc-shutdown
actions:
- action: GU_PC_SHUTDOWN_YES
title: Shutdown
- action: GU_PC_SHUTDOWN_LOCK
title: Lock
- action: GU_PC_SHUTDOWN_NOTHING
title: Do Nothing
alias: Send an actionable notification
- wait_for_trigger:
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: GU_PC_SHUTDOWN_YES
id: shutdown-yes
alias: Shutdown Yes
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: GU_PC_SHUTDOWN_LOCK
id: shutdown-lock
alias: Shutdown Lock
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: GU_PC_SHUTDOWN_NOTHING
alias: Shutdown Nothing
id: shutdown-nothing
timeout:
hours: 0
minutes: 20
seconds: 0
milliseconds: 0
alias: Wait for response to notification
- choose:
- conditions:
- condition: template
value_template: '{{ wait.trigger.id == ''shutdown-yes'' }}'
sequence:
- service: script.tony_desktop_shutdown
data: {}
- conditions:
- condition: template
value_template: '{{ wait.trigger.id == ''shutdown-lock'' }}'
sequence:
- service: script.tony_desktop_lock
data: {}
alias: Run the desired action
- service: script.text_notify
data:
type: alert
who: tony
message: clear_notification
tag: going-upstairs-pc-shutdown
alias: Clear the notification
- stop: Automation steps skipped
alias: If I was not in the basement, ask about shutdown via text and then skip
the rest
- wait_for_trigger:
- platform: state
entity_id:
- binary_sensor.upstairs_bathroom_motion
to: 'on'
id: bathroom
- platform: state
entity_id:
- input_boolean.goodnight
to: 'on'
id: goodnight
- platform: state
entity_id:
- light.master_bedroom_lights
to: 'on'
id: lights
continue_on_timeout: false
timeout:
hours: 0
minutes: 20
seconds: 0
milliseconds: 0
alias: Wait until I am in the bathroom, or in bed, or the lights are manually
turned on
- choose:
- conditions:
- condition: template
value_template: '{{ wait.trigger.id == ''bathroom'' }}'
sequence:
- service: input_select.select_option
data:
option: Side Nightlight
target:
entity_id: input_select.master_bedroom_scenes
- conditions:
- condition: template
value_template: '{{ wait.trigger.id in [''lights'',''goodnight''] }}'
sequence:
- variables:
stop_reason: '{{ wait.trigger.id }}'
- stop: Bedroom lighting not needed
response_variable: stop_reason
alias: Turn on lights, or not
mode: single
icon: hue:room-stairs
max_brightness_cleanup:
alias: Max Brightness Cleanup
sequence:
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.front_porch_light_on
alias: Turn on Front Porch automation
- alias: Turn on Adaptive Lighting on front porch
service: switch.turn_on
target:
entity_id:
- switch.adaptive_lighting_front_porch
data: {}
- service: script.adaptive_on_first_floor
data: {}
alias: Adaptive on first floor
- service: script.adaptive_on_second_floor
data: {}
alias: Adaptive on second floor
- service: input_select.select_option
data:
option: Adaptive
target:
entity_id: input_select.basement_studio_scenes
alias: Set basement lights to adaptive
- service: switch.turn_on
metadata: {}
data: {}
target:
label_id: motion_lighting
alias: Turn on motion lighting
mode: single
icon: mdi:broom
cleanup_crash:
alias: Cleanup Crash
sequence:
- service: switch.turn_off
data: {}
target:
entity_id:
- switch.presence_simulation
- switch.basement_echo_dot_do_not_disturb_switch
- switch.living_room_echo_dot_do_not_disturb_switch
- switch.master_bedroom_echo_dot_do_not_disturb_switch
alias: Turn off switches
- if:
- condition: time
after: input_datetime.master_bedroom_wakeup
before: input_datetime.master_bedroom_cooling
then:
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.master_bedroom_cooling_on
- service: button.press
data: {}
target:
entity_id: button.master_bedroom_day_mode
else:
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.master_bedroom_cooling_on
- service: button.press
data: {}
target:
entity_id: button.master_bedroom_night_mode
alias: Set climate state
- if:
- condition: state
entity_id: sensor.twitch_ironnerd24
state: online
then:
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.studio_quiet
else:
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.studio_quiet
alias: Set studio quiet if Twitch stream is live
- if:
- condition: state
entity_id: calendar.family_tinawork
state: 'on'
- condition: time
before: input_datetime.tina_workday_end
after: input_datetime.tina_workday_start
then:
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.work_today
else:
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.work_today
alias: Set Tina Work booleans
- if:
- condition: state
entity_id: calendar.kallen_school_days
state: 'on'
- condition: time
before: input_datetime.kallen_school_day_end
after: input_datetime.kallen_school_day_start
then:
- service: input_boolean.turn_on
data: {}
target:
entity_id:
- input_boolean.kallen_school_today
- input_boolean.kallen_school_today_extended
- input_boolean.kallen_at_school
else:
- service: input_boolean.turn_off
data: {}
target:
entity_id:
- input_boolean.kallen_school_today
- input_boolean.kallen_school_today_extended
- input_boolean.kallen_at_school
alias: Set Kallen School booleans
- if:
- condition: time
before: input_datetime.audible_notification_on
after: input_datetime.audible_notification_off
then:
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.audible_notifications
else:
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.audible_notifications
alias: Set audible notifications
- service: switch.turn_on
data: {}
target:
entity_id:
- switch.adaptive_lighting_basement_studio
- switch.adaptive_lighting_downstairs_bathroom
- switch.adaptive_lighting_front_porch
- switch.adaptive_lighting_kallen_bedroom
- switch.adaptive_lighting_living_room
- switch.adaptive_lighting_master_bedroom
- switch.adaptive_lighting_mud_room
- switch.adaptive_lighting_tina_lamp
- switch.adaptive_lighting_emma_bedroom
- switch.adaptive_lighting_upstairs_bathroom
- switch.adaptive_lighting_upstairs_hallway
alias: Turn on all adaptive lighting
- service: input_text.set_value
data:
value: Adaptive
target:
entity_id:
- input_text.basement_studio_selected_scene
- input_text.downstairs_bathroom_selected_scene
- input_text.front_porch_selected_scene
- input_text.kallen_bedroom_selected_scene
- input_text.living_room_selected_scene
- input_text.master_bedroom_selected_scene
- input_text.mud_room_selected_scene
- input_text.emma_bedroom_selected_scene
- input_text.tina_lamp_selected_scene
- input_text.upstairs_bathroom_selected_scene
- input_text.upstairs_hallway_selected_scene
alias: Reset input texts to adaptive
- service: script.volume_reset
data: {}
alias: Reset all speaker volumes
- service: button.press
data: {}
target:
entity_id: button.cleanup
alias: Run Node-RED cleanup flow
mode: single
icon: mdi:truck-snowflake
basement_shutdown:
alias: Basement Shutdown
sequence:
- alias: Turn off any active modes
service: input_boolean.turn_off
data: {}
target:
entity_id:
- input_boolean.studio_quiet
- input_boolean.recliner_mode
- input_boolean.gaming_mode
- if:
- condition: not
conditions:
- condition: state
entity_id: media_player.basement_tv
state:
- playing
then:
- service: media_player.turn_off
data: {}
target:
entity_id: media_player.basement_tv
alias: If TV is not being used, turn it off
- if:
- condition: state
entity_id: input_boolean.kallen_computer_updates
state: 'off'
then:
- service: script.kallen_desktop_shutdown
data: {}
else:
- service: script.kallen_desktop_lock
data: {}
- service: input_boolean.turn_off
data: {}
target:
entity_id: input_boolean.kallen_computer_updates
alias: Turn off Kallen Desktop unless updates are scheduled
- service: script.text_notify
data:
type: alert
who: tony
title: Basement Shutting Down
message: Would you like to shut down your computer?
tag: tony-pc-shutdown
actions:
- action: TONY_COMPUTER_SHUTDOWN
title: Shutdown
- action: TONY_COMPUTER_LOCK
title: Lock
- action: TONY_COMPUTER_IGNORE
title: Do Nothing
alias: Ask about shutting down main computer
response_variable: tony_computer
- wait_for_trigger:
- platform: state
entity_id:
- binary_sensor.basement_studio_door
to: 'on'
timeout:
hours: 0
minutes: 5
seconds: 0
milliseconds: 0
alias: Wait for the door to open
- service: fan.turn_off
data: {}
target:
entity_id: fan.basement_fan
- service: light.turn_off
data: {}
target:
entity_id: light.basement_lights
alias: Turn off the lights
- wait_for_trigger:
- platform: state
entity_id:
- binary_sensor.basement_studio_door
to: 'off'
for:
hours: 0
minutes: 0
seconds: 10
timeout:
hours: 0
minutes: 1
seconds: 0
milliseconds: 0
alias: Wait for the door to close
- service: timer.cancel
data: {}
target:
entity_id: timer.basement_studio_door_timer
alias: Cancel the door timer since the lights are already off
mode: restart
icon: mdi:power
adaptive_on_first_floor:
alias: Adaptive on First Floor
sequence:
- if:
- condition: state
entity_id: light.living_room_lights
state: 'on'
then:
- service: input_select.select_option
target:
entity_id: input_select.living_room_scenes
data:
option: Adaptive
alias: Set adaptive
else:
- service: switch.turn_on
target:
entity_id: switch.adaptive_lighting_living_room
data: {}
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_sleep_mode_living_room
data: {}
- service: input_text.set_value
target:
entity_id: input_text.living_room_selected_scene
data:
value: Adaptive
alias: If living room lights are on
- if:
- condition: or
conditions:
- condition: state
entity_id: light.tina_lamp
state: 'on'
- condition: state
entity_id: light.tina_desk_strip
state: 'on'
then:
- service: input_select.select_option
target:
entity_id: input_select.tina_desk_scenes
data:
option: Reset
alias: Set Adaptive
else:
- service: switch.turn_on
target:
entity_id: switch.adaptive_lighting_tina_lamp
data: {}
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_sleep_mode_tina_lamp
data: {}
alias: If Tina's desk lights are on
- if:
- condition: state
entity_id: light.downstairs_bathroom_lights
state: 'on'
then:
- service: input_select.select_option
target:
entity_id: input_select.downstairs_bathroom_scenes
data:
option: Adaptive
alias: Set adaptive
else:
- service: switch.turn_on
target:
entity_id: switch.adaptive_lighting_downstairs_bathroom
data: {}
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_sleep_mode_downstairs_bathroom
data: {}
- service: input_text.set_value
target:
entity_id: input_text.downstairs_bathroom_selected_scene
data:
value: Adaptive
alias: If downstairs bathroom lights are on
- if:
- condition: state
entity_id: light.mud_room_overhead
state: 'on'
then:
- service: input_select.select_option
target:
entity_id: input_select.mud_room_scenes
data:
option: Adaptive
alias: Set adaptive
else:
- service: switch.turn_on
target:
entity_id: switch.adaptive_lighting_mud_room
data: {}
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_sleep_mode_mud_room
data: {}
- service: input_text.set_value
target:
entity_id: input_text.mud_room_selected_scene
data:
value: Adaptive
alias: If mud room light is on
mode: single
adaptive_on_second_floor:
alias: Adaptive on Second Floor
sequence:
- if:
- condition: state
entity_id: light.hallway_overhead
state: 'on'
then:
- service: input_select.select_option
target:
entity_id: input_select.upstairs_hallway_scenes
data:
option: Adaptive
alias: Set adaptive
else:
- service: switch.turn_on
target:
entity_id: switch.adaptive_lighting_upstairs_hallway
data: {}
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_sleep_mode_upstairs_hallway
data: {}
- service: input_text.set_value
target:
entity_id: input_text.upstairs_hallway_selected_scene
data:
value: Adaptive
alias: If hallway light is on
- if:
- condition: state
entity_id: light.master_bedroom_lights
state: 'on'
then:
- service: input_select.select_option
target:
entity_id: input_select.master_bedroom_scenes
data:
option: Adaptive
alias: Set adaptive
else:
- service: switch.turn_on
target:
entity_id: switch.adaptive_lighting_master_bedroom
data: {}
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_sleep_mode_master_bedroom
data: {}
- service: input_text.set_value
target:
entity_id: input_text.master_bedroom_selected_scene
data:
value: Adaptive
alias: If master bedroom lights are on
- if:
- condition: state
entity_id: light.kallen_bedroom_lights
state: 'on'
then:
- service: input_select.select_option
target:
entity_id: input_select.kallen_bedroom_scenes
data:
option: Adaptive
alias: Set adaptive
else:
- service: switch.turn_on
target:
entity_id: switch.adaptive_lighting_kallen_bedroom
data: {}
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_sleep_mode_kallen_bedroom
data: {}
- service: input_text.set_value
target:
entity_id: input_text.kallen_bedroom_selected_scene
data:
value: Adaptive
alias: If Kallen's bedroom lights are on
- if:
- condition: state
entity_id: light.emma_bedroom_light
state: 'on'
then:
- service: input_select.select_option
target:
entity_id: input_select.emma_bedroom_scenes
data:
option: Adaptive
alias: Set adaptive
else:
- service: switch.turn_on
target:
entity_id: switch.adaptive_lighting_emma_bedroom
data: {}
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_sleep_mode_emma_bedroom
data: {}
- service: input_text.set_value
target:
entity_id: input_text.emma_bedroom_selected_scene
data:
value: Adaptive
alias: If Emma's bedroom light is on
- if:
- condition: state
entity_id: input_boolean.shower_mode
state: 'off'
then:
- if:
- condition: state
entity_id: binary_sensor.upstairs_bathroom_occupied
state: 'on'
then:
- service: input_select.select_option
target:
entity_id: input_select.upstairs_bathroom_scenes
data:
option: Adaptive
else:
- if:
- condition: state
entity_id: binary_sensor.early_night_mode
state: 'on'
then:
- service: input_select.select_option
target:
entity_id: input_select.upstairs_bathroom_scenes
data:
option: Nightlight
else:
- service: light.turn_off
target:
entity_id: light.upstairs_bathroom_lights
data: {}
- service: switch.turn_on
target:
entity_id: switch.adaptive_lighting_upstairs_bathroom
data: {}
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_sleep_mode_upstairs_bathroom
data: {}
- service: input_text.set_value
target:
entity_id: input_text.upstairs_bathroom_selected_scene
data:
value: Adaptive
alias: Upstairs bathroom handling
bright_on_first_floor:
alias: Bright on First Floor
sequence:
- service: light.turn_on
target:
entity_id:
- light.living_room_lights
- light.downstairs_bathroom_lights
- light.mud_room_overhead
data: {}
- service: input_boolean.turn_on
target:
entity_id: input_boolean.tina_desk_lights
data: {}
- delay:
seconds: 1
- service: input_select.select_option
target:
entity_id:
- input_select.living_room_scenes
- input_select.downstairs_bathroom_scenes
- input_select.mud_room_scenes
data:
option: Bright
- service: light.turn_on
target:
entity_id:
- light.tina_desk_strip
- light.tina_lamp
data:
color_temp_kelvin: 2700
- service: light.turn_on
target:
entity_id:
- light.tina_lamp
- light.tina_desk_strip
data:
brightness: 255
bright_on_second_floor:
alias: Bright on Second Floor
sequence:
- service: light.turn_on
target:
entity_id:
- light.hallway_overhead
- light.master_bedroom_lights
data: {}
- if:
- condition: state
entity_id: input_boolean.shower_mode
state: 'off'
then:
- service: input_select.select_option
target:
entity_id: input_select.upstairs_bathroom_scenes
data:
option: Bright
- if:
- condition: state
entity_id: input_boolean.kallen_sleeping
state: 'off'
then:
- service: light.turn_on
target:
entity_id: light.kallen_bedroom_lights
data: {}
- if:
- condition: state
entity_id: input_boolean.emma_sleeping
state: 'off'
then:
- service: light.turn_on
target:
entity_id: light.emma_bedroom_light
data: {}
- delay:
seconds: 1
- service: input_select.select_option
target:
entity_id:
- input_select.upstairs_hallway_scenes
- input_select.master_bedroom_scenes
data:
option: Bright
- if:
- condition: state
entity_id: input_boolean.shower_mode
state: 'off'
then:
- service: input_select.select_option
target:
entity_id: input_select.upstairs_bathroom_scenes
data:
option: Bright
- if:
- condition: template
value_template: '{{ is_state(''input_boolean.kallen_sleeping'',''off'') or (is_state(''input_boolean.kallen_sleeping'',''on'')
and is_state(''light.kallen_bedroom_lights'',''on'')) }}'
then:
- service: input_select.select_option
target:
entity_id: input_select.kallen_bedroom_scenes
data:
option: Bright
- if:
- condition: template
value_template: '{{ is_state(''input_boolean.emma_sleeping'',''off'') or (is_state(''input_boolean.emma_sleeping'',''on'')
and is_state(''light.emma_bedroom_light'',''on'')) }}'
then:
- service: input_select.select_option
target:
entity_id: input_select.emma_bedroom_scenes
data:
option: Bright
evening_on_first_floor:
alias: Evening on First Floor
sequence:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.early_night_mode
state: 'off'
sequence:
- stop: This scene does nothing during daytime
alias: Early Night Mode off
- conditions:
- condition: state
entity_id: input_boolean.give_me_darkness
state: 'on'
sequence:
- if:
- condition: state
entity_id: person.christina_stork
state: home
then:
- service: input_select.select_option
target:
entity_id: input_select.tina_desk_scenes
data:
option: Night Mode
alias: If Tina is home, turn on desk lights
- alias: Check if script is being called by Give Me Darkness automation
if:
- condition: template
value_template: '{{ give_me_darkness == 1 }}'
alias: If give_me_darkness = 1
then:
- alias: Set mud room light to nightlight
if:
- condition: state
entity_id: timer.mud_room_motion_timer
state: idle
then:
- service: light.turn_on
metadata: {}
data: {}
target:
entity_id: light.mud_room_overhead
- service: input_select.select_option
target:
entity_id:
- input_select.mud_room_scenes
data:
option: Nightlight
else:
- service: light.turn_off
target:
entity_id:
- light.living_room_lights
data: {}
- alias: Set mud room light to nightlight
if:
- condition: state
entity_id: timer.mud_room_motion_timer
state: idle
then:
- service: light.turn_on
metadata: {}
data: {}
target:
entity_id: light.mud_room_overhead
- service: input_select.select_option
target:
entity_id:
- input_select.mud_room_scenes
data:
option: Nightlight
alias: Give Me Darkness on
- conditions:
- condition: state
entity_id: input_boolean.give_me_darkness
state: 'off'
sequence:
- alias: Check if script is being run by Sunset Lights flow
if:
- condition: template
value_template: '{{ sunset_lights == 1 }}'
alias: If sunset_lights = 1
then:
- service: light.turn_on
target:
entity_id:
- light.living_room_lights
- light.mud_room_overhead
data: {}
- service: input_select.select_option
target:
entity_id:
- input_select.living_room_scenes
data:
option: Adaptive
- alias: Set mud room light to nightlight
if:
- condition: state
entity_id: timer.mud_room_motion_timer
state: idle
then:
- service: light.turn_on
metadata: {}
data: {}
target:
entity_id: light.mud_room_overhead
- service: input_select.select_option
target:
entity_id:
- input_select.mud_room_scenes
data:
option: Nightlight
else:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.tina_desk_lights
data: {}
- service: light.turn_on
target:
entity_id:
- light.living_room_lights
- light.mud_room_overhead
data: {}
- service: input_select.select_option
target:
entity_id:
- input_select.living_room_scenes
data:
option: Adaptive
- alias: Set mud room light to nightlight
if:
- condition: state
entity_id: timer.mud_room_motion_timer
state: idle
then:
- service: light.turn_on
metadata: {}
data: {}
target:
entity_id: light.mud_room_overhead
- service: input_select.select_option
target:
entity_id:
- input_select.mud_room_scenes
data:
option: Nightlight
alias: Give Me Darkness off
evening_on_second_floor:
alias: Evening on Second Floor
sequence:
- condition: state
entity_id: binary_sensor.early_night_mode
state: 'on'
- choose:
- conditions:
- condition: state
entity_id: input_boolean.give_me_darkness
state: 'on'
sequence:
- alias: Set hallway light to nightlight
if:
- condition: and
conditions:
- condition: state
entity_id: timer.upstairs_hallway_motion_timer
state: idle
- condition: state
entity_id: timer.stairwell_motion_timer
state: idle
alias: If hallway and stairwell motion timers are both idle
then:
- service: input_select.select_option
target:
entity_id:
- input_select.upstairs_hallway_scenes
data:
option: Nightlight
alias: Set hallway light to nightlight
- if:
- condition: state
entity_id: input_boolean.shower_mode
state: 'off'
then:
- service: input_select.select_option
target:
entity_id: input_select.upstairs_bathroom_scenes
data:
option: "{% if is_state('binary_sensor.upstairs_bathroom_occupied','on')
%}\n Adaptive\n{% else %}\n Nightlight\n{% endif %}\n"
alias: Set upstairs bathroom scene
- service: light.turn_off
target:
area_id:
- kallen_bedroom
- emma_bedroom
data: {}
alias: Turn off kids' bedroom lights
- alias: Turn off Master Bedroom Lights
if:
- condition: state
entity_id: timer.master_bedroom_motion_timer
state: idle
then:
- service: light.turn_off
metadata: {}
data: {}
target:
area_id:
- master_bedroom
- master_bedroom_closet
- delay:
seconds: 1
- service: switch.turn_on
target:
entity_id:
- switch.adaptive_lighting_kallen_bedroom
- switch.adaptive_lighting_master_bedroom
- switch.adaptive_lighting_emma_bedroom
data: {}
alias: Re-enable adaptive lighting in bedrooms
- service: switch.turn_off
target:
entity_id:
- switch.adaptive_lighting_sleep_mode_kallen_bedroom
- switch.adaptive_lighting_sleep_mode_master_bedroom
- switch.adaptive_lighting_sleep_mode_emma_bedroom
data: {}
alias: Turn off adaptive lighting sleep mode in bedrooms
- service: input_text.set_value
target:
entity_id:
- input_text.kallen_bedroom_selected_scene
- input_text.master_bedroom_selected_scene
- input_text.emma_bedroom_selected_scene
data:
value: Adaptive
alias: Set input texts for bedroom scenes back to Adaptive
alias: Give Me Darkness on
- conditions:
- condition: state
entity_id: input_boolean.give_me_darkness
state: 'off'
sequence:
- alias: Set hallway light to nightlight
if:
- condition: and
conditions:
- condition: state
entity_id: timer.upstairs_hallway_motion_timer
state: idle
- condition: state
entity_id: timer.stairwell_motion_timer
state: idle
alias: If hallway and stairwell motion timers are both idle
then:
- service: input_select.select_option
target:
entity_id:
- input_select.upstairs_hallway_scenes
data:
option: Nightlight
alias: Set hallway light to nightlight
- if:
- condition: state
entity_id: input_boolean.shower_mode
state: 'off'
then:
- service: input_select.select_option
target:
entity_id: input_select.upstairs_bathroom_scenes
data:
option: "{% if is_state('binary_sensor.upstairs_bathroom_occupied','on')
%}\n Adaptive\n{% else %}\n Nightlight\n{% endif %}\n"
alias: Set upstairs bathroom scene
- alias: Check if script is being run by Sunset Lights flow
if:
- condition: template
value_template: '{{ sunset_lights == 1 }}'
alias: If sunset_lights = 1
then:
- stop: Sunset lights don't mess with bedroom light states before bedtime
else:
- service: light.turn_off
target:
area_id:
- kallen_bedroom
- emma_bedroom
data: {}
alias: Turn off kids' bedroom lights
- alias: Turn off Master Bedroom Lights
if:
- condition: state
entity_id: timer.master_bedroom_motion_timer
state: idle
then:
- service: light.turn_off
metadata: {}
data: {}
target:
area_id:
- master_bedroom
- master_bedroom_closet
- delay:
seconds: 1
- service: switch.turn_on
target:
entity_id:
- switch.adaptive_lighting_kallen_bedroom
- switch.adaptive_lighting_master_bedroom
- switch.adaptive_lighting_emma_bedroom
data: {}
alias: Re-enable adaptive lighting in bedrooms
- service: switch.turn_off
target:
entity_id:
- switch.adaptive_lighting_sleep_mode_kallen_bedroom
- switch.adaptive_lighting_sleep_mode_master_bedroom
- switch.adaptive_lighting_sleep_mode_emma_bedroom
data: {}
alias: Turn off adaptive lighting sleep mode in bedrooms
- service: input_text.set_value
target:
entity_id:
- input_text.kallen_bedroom_selected_scene
- input_text.master_bedroom_selected_scene
- input_text.emma_bedroom_selected_scene
data:
value: Adaptive
alias: Set input texts for bedroom scenes back to Adaptive
alias: Give Me Darkness off
goodnight_in_basement:
alias: Goodnight in Basement
sequence:
- service: light.turn_off
target:
area_id:
- basement_studio
- furnace_room
data: {}
- service: fan.turn_off
target:
entity_id: fan.basement_fan
data: {}
goodnight_on_first_floor:
alias: Goodnight on First Floor
sequence:
- if:
- condition: state
entity_id: input_boolean.guest_mode
state: 'on'
then:
- service: light.turn_off
target:
area_id:
- downstairs_bathroom
- tina_desk
entity_id: light.living_room_lights
data: {}
- service: input_select.select_option
target:
entity_id: input_select.mud_room_scenes
data:
option: Nightlight
else:
- service: light.turn_off
target:
area_id:
- downstairs_bathroom
- mud_room
- tina_desk
entity_id: light.living_room_lights
data: {}
goodnight_on_second_floor:
alias: Goodnight on Second Floor
sequence:
- service: light.turn_off
target:
area_id:
- emma_bedroom
- kallen_bedroom
- master_bedroom
- master_bedroom_closet
- upstairs_hallway
data: {}
- if:
- condition: state
entity_id: input_boolean.kallen_overnight
state: 'on'
then:
- service: light.turn_off
target:
area_id: upstairs_bathroom
data: {}
else:
- service: input_select.select_option
target:
entity_id: input_select.upstairs_bathroom_scenes
data:
option: Single Nightlight
morning_scene:
alias: Morning Scene
sequence:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.master_bedroom_sleeping
data: {}
- if:
- condition: template
value_template: '{% set weather = states(''weather.iron_nerd_weather_station'')
%} {{ weather in [''cloudy'',''partlycloudy'',''rainy'',''snowy'',''hail'',''lightning'',''lightning-rainy'',''pouring'',''snowy-rainy'']
}}
'
then:
- if:
- condition: template
value_template: '{{ is_state(''input_boolean.kallen_sleeping'',''off'') and
is_state(''person.kallen_stork'',''home'') }}'
then:
- service: light.turn_on
target:
entity_id: light.kallen_bedroom_lights
data: {}
- if:
- condition: state
entity_id: input_boolean.emma_sleeping
state: 'off'
then:
- service: light.turn_on
target:
entity_id: light.emma_bedroom_light
data: {}
day_mode_in_tina_desk:
alias: Day Mode in Tina Desk
sequence:
- parallel:
- service: light.turn_on
target:
entity_id: light.tina_lamp_top
data: {}
- service: light.turn_off
target:
entity_id: light.tina_lamp_side
data: {}
- service: light.turn_on
target:
entity_id: light.tina_desk_strip
data:
rgb_color:
- 0
- 255
- 255
brightness: 89
- wait_template: '{{ is_state(''light.tina_lamp_side'',''off'') }}'
timeout:
seconds: 15
continue_on_timeout: true
- alias: Apply adaptive lighting to lamp
if:
- condition: state
entity_id: switch.adaptive_lighting_tina_lamp
state: 'off'
alias: If switch is off
then:
- service: switch.turn_on
data: {}
target:
entity_id: switch.adaptive_lighting_tina_lamp
alias: Turn on the switch
else:
- alias: Apply adaptive lighting
service: adaptive_lighting.apply
data:
entity_id: switch.adaptive_lighting_tina_lamp
adapt_brightness: true
adapt_color: true
mode: restart
icon: mdi:palette
evening_mode_in_tina_desk:
alias: Evening Mode in Tina Desk
sequence:
- alias: Turn on all lights
parallel:
- service: light.turn_on
data: {}
target:
entity_id:
- light.tina_lamp_top
- light.tina_lamp_side
- service: light.turn_on
target:
entity_id: light.tina_desk_strip
data:
rgb_color:
- 127
- 0
- 255
brightness: 128
- alias: Apply adaptive lighting to lamp
if:
- condition: state
entity_id: switch.adaptive_lighting_tina_lamp
state: 'off'
alias: If switch is off
then:
- service: switch.turn_on
data: {}
target:
entity_id: switch.adaptive_lighting_tina_lamp
alias: Turn on the switch
else:
- service: adaptive_lighting.apply
data:
entity_id: switch.adaptive_lighting_tina_lamp
adapt_brightness: true
adapt_color: true
turn_on_lights: true
alias: Apply adaptive lighting
mode: restart
icon: mdi:palette
night_mode_in_tina_desk:
alias: Night Mode in Tina Desk
sequence:
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_tina_lamp
data: {}
- parallel:
- service: light.turn_on
target:
entity_id: light.tina_lamp
data:
rgb_color:
- 127
- 0
- 255
brightness: 128
- service: light.turn_on
target:
entity_id: light.tina_desk_strip
data:
rgb_color:
- 127
- 0
- 255
brightness: 128
mode: restart
icon: mdi:palette
bright_mode_in_tina_desk:
alias: Bright Mode in Tina Desk
sequence:
- service: switch.turn_off
target:
entity_id: switch.adaptive_lighting_tina_lamp
data: {}
- parallel:
- service: light.turn_on
target:
entity_id: light.tina_lamp
data:
rgb_color:
- 255
- 210
- 175
brightness: 255
- service: light.turn_on
target:
entity_id: light.tina_desk_strip
data:
rgb_color:
- 255
- 210
- 175
brightness: 255
mode: restart
icon: mdi:palette
tony_morning_meds:
alias: Tony Morning Meds
icon: mdi:medication
mode: restart
sequence:
- service: counter.increment
metadata: {}
data: {}
target:
entity_id: counter.tony_morning_meds_reminder_count
alias: Increment morning reminder counter
- service: script.text_notify
data:
type: alert
who: tony
message: clear_notification
tag: tony-morning-meds
alias: Clear previous morning notification
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- alias: Send morning notifications via text, and TTS if needed
parallel:
- alias: Send text notification
service: script.text_notify
data:
who: tony
type: alert
title: Morning Meds
message: You need to take your morning meds
tag: tony-morning-meds
actions:
- action: TONY_MORNING_MEDS_TAKEN
title: Taken
- action: TONY_MORNING_MEDS_SKIPPED
title: Skip
- alias: Send TTS if reminders > 2
if:
- condition: numeric_state
entity_id: counter.tony_morning_meds_reminder_count
above: 2
alias: When reminder count > 2
then:
- service: script.speech_engine
data:
who: common_areas
type: alert
message: Tony, you need to take your morning meds. This is reminder number
{{ states('counter.tony_morning_meds_reminder_count') }} for today.
alias: Send TTS notification
tony_night_meds:
alias: Tony Night Meds
icon: mdi:medication
mode: restart
sequence:
- service: counter.increment
metadata: {}
data: {}
target:
entity_id: counter.tony_night_meds_reminder_count
alias: Increment night reminder counter
- service: script.text_notify
data:
type: alert
who: tony
message: clear_notification
tag: tony-night-meds
alias: Clear previous night notification
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- alias: Send night notifications via text, and TTS if needed
parallel:
- alias: Send text notification
service: script.text_notify
data:
who: tony
type: alert
title: Night Meds
message: You need to take your night meds
tag: tony-night-meds
actions:
- action: TONY_NIGHT_MEDS_TAKEN
title: Taken
- action: TONY_NIGHT_MEDS_SKIPPED
title: Skip
- alias: Send TTS if reminders > 2
if:
- condition: numeric_state
entity_id: counter.tony_night_meds_reminder_count
above: 2
alias: When reminder count > 2
then:
- service: script.speech_engine
data:
who: common_areas
type: alert
message: Tony, you need to take your night meds. This is reminder number
{{ states('counter.tony_night_meds_reminder_count') }} for today.
alias: Send TTS notification
tony_stream_today:
alias: Tony Stream Today
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_streaming_start_time
data:
time: '{% from ''time.jinja'' import time_from_calendar %} {{ time_from_calendar(''calendar.tony_s_twitch_schedule'',''start_time'',''set'')
}}
'
- service: input_boolean.turn_on
entity_id: input_boolean.tony_streaming_today
mode: single
timer_modify:
alias: Timer Modify
description: For adding/subtracting time from a running timer
mode: restart
sequence:
- service: timer.pause
target:
entity_id: '{{ timer }}'
- delay:
seconds: 1
- variables:
modify: '{% set x = state_attr(timer, ''remaining'') ~ ''-0000'' %} {% set y
= strptime(x, ''%H:%M:%S%z'') %} {{ (as_timestamp(y) + change) | timestamp_custom(''%H:%M:%S'',
false) }}
'
- service: timer.start
target:
entity_id: '{{ timer }}'
data:
duration: '{{ modify }}'
tony_custom_meds:
alias: Tony Custom Meds
sequence:
- variables:
reason: '{{ reason }}'
num: '{{ num }}'
active: '{{ ''input_boolean.tony_custom_meds_tracker_'' + num }}'
taken: '{{ ''input_boolean.tony_custom_meds_taken_'' + num }}'
taken_at: '{{ ''input_datetime.tony_custom_meds_taken_'' + num }}'
notify_at: '{{ ''input_datetime.tony_custom_meds_notify_'' + num }}'
type: '{{ states(''input_select.tony_custom_meds_type_'' + num) }}'
name: '{{ states(''input_text.tony_custom_med_name_'' + num) }}'
interval: '{{ states(''input_number.tony_custom_meds_interval_'' + num) }}'
tag: '{{ ''tony-custom-meds-'' + num }}'
alias: Set Variables
- choose:
- conditions:
- condition: template
value_template: '{{ reason == ''notify'' }}'
alias: Notify
sequence:
- service: script.text_notify
data:
who: tony
type: alert
title: '{{ name + '' Tracker'' }}'
message: You need to take your {{ name }}
tag: '{{ tag }}'
alias: Send text notification
- wait_for_trigger:
- platform: state
entity_id:
- person.tony_stork
id: left
alias: Left
from: home
- platform: template
value_template: '{{ is_state(taken,''on'') }}'
alias: Manual
id: manual
timeout: 00:30:00
continue_on_timeout: true
- choose:
- conditions:
- condition: template
value_template: '{{ wait.trigger.id in [''manual'',''left''] }}'
alias: Manual or Left
sequence:
- stop: Automation cancelled
- conditions:
- condition: template
value_template: '{{ wait.trigger == ''none'' or wait.trigger.idx is undefined
}}'
alias: None or undefined
sequence:
- service: script.text_notify
data:
who: tony
type: alert
message: clear_notification
tag: '{{ tag }}'
alias: Clear Notification
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_custom_meds_notify_p1
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0,1)
}}
'
alias: Reset notification time
alias: Choose depending on the wait trigger
- conditions:
- condition: template
value_template: '{{ reason == ''taken'' }}'
alias: Taken
sequence:
- service: input_datetime.set_datetime
target:
entity_id: '{{ taken_at }}'
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0)
}}
'
alias: Set time the meds were taken
- if:
- condition: template
value_template: '{{ type == ''Interval'' }}'
alias: Is it an interval med?
then:
- service: input_datetime.set_datetime
target:
entity_id: '{{ notify_at }}'
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(interval)
}}
'
alias: Set notification for next dose
alias: If an interval med, then set time for next dose
- service: script.text_notify
data:
who: tony
type: alert
message: clear_notification
tag: '{{ tag }}'
alias: Clear Notification
alias: Routing
icon: mdi:medication
mode: parallel
tony_afternoon_meds:
alias: Tony Afternoon Meds
icon: mdi:medication
mode: restart
sequence:
- service: counter.increment
metadata: {}
data: {}
target:
entity_id: counter.tony_afternoon_meds_reminder_count
alias: Increment afternoon reminder counter
- service: script.text_notify
data:
type: alert
who: tony
message: clear_notification
tag: tony-afternoon-meds
alias: Clear previous afternoon notification
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- alias: Send afternoon notifications via text, and TTS if needed
parallel:
- alias: Send text notification
service: script.text_notify
data:
who: tony
type: alert
title: Afternoon Meds
message: You need to take your afternoon meds
tag: tony-afternoon-meds
actions:
- action: TONY_AFTERNOON_MEDS_TAKEN
title: Taken
- action: TONY_AFTERNOON_MEDS_SKIPPED
title: Skip
- alias: Send TTS if reminders > 2
if:
- condition: numeric_state
entity_id: counter.tony_afternoon_meds_reminder_count
above: 2
alias: When reminder count > 2
then:
- service: script.speech_engine
data:
who: common_areas
type: alert
message: Tony, you need to take your afternoon meds. This is reminder number
{{ states('counter.tony_afternoon_meds_reminder_count') }} for today.
alias: Send TTS notification
tony_ibuprofen:
alias: Tony Ibuprofen
sequence:
- alias: Turn off boolean if this is a notification
if:
- condition: template
value_template: '{{ reason != ''ibuprofen-taken'' }}'
alias: If reason is not ibuprofen-taken
then:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.tony_ibuprofen_taken
data: {}
alias: Turn off boolean
- alias: Routing
choose:
- conditions:
- condition: template
value_template: '{{ reason == ''ibuprofen-notify'' }}'
alias: Ibuprofen Notify
sequence:
- service: script.text_notify
data:
type: alert
who: tony
title: Tony Ibuprofen Time
message: It is time to take your next dose of Ibuprofen
tag: tony-ibuprofen
actions:
- action: TONY_IBUPROFEN_TAKEN
title: Taken
- action: TONY_IBUPROFEN_SKIPPED
title: Skipped
- action: TONY_IBUPROFEN_ASK_LATER
title: Ask Later
alias: Send actionable text notification
- wait_for_trigger:
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: TONY_IBUPROFEN_TAKEN
id: ibuprofen-taken
alias: Ibuprofen Taken
- alias: Ibuprofen Skipped
platform: event
event_type: ios.notification_action_fired
event_data:
actionName: TONY_IBUPROFEN_SKIPPED
id: ibuprofen-skipped
- alias: Ibuprofen Ask Later
platform: event
event_type: ios.notification_action_fired
event_data:
actionName: TONY_IBUPROFEN_ASK_LATER
id: ibuprofen-ask-later
- platform: state
entity_id:
- input_boolean.tony_ibuprofen_taken
from: 'off'
to: 'on'
id: ibuprofen-manual
alias: Manual
- platform: state
entity_id:
- input_boolean.tony_ibuprofen_active
from: 'on'
to: 'off'
id: cancel
timeout:
hours: 0
minutes: 30
seconds: 0
milliseconds: 0
continue_on_timeout: true
- choose:
- conditions:
- condition: template
value_template: '{{ wait.trigger.id == ''ibuprofen-taken'' }}'
alias: Ibuprofen Taken
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.tony_ibuprofen_taken
data: {}
alias: Turn on boolean
- conditions:
- alias: Ibuprofen Skipped
condition: template
value_template: '{{ wait.trigger.id == ''ibuprofen-skipped'' }}'
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_ibuprofen_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(8)
}}
'
alias: Set notification time
- conditions:
- alias: Ibuprofen Ask Later
condition: template
value_template: '{{ wait.trigger.id == ''ibuprofen-ask-later'' }}'
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_ibuprofen_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0,30)
}}
'
alias: Set ibuprofen notification time
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_ibuprofen_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(4,30)
}}
'
alias: Set ibuprofen notification time
- conditions:
- condition: template
value_template: '{{ wait.trigger == ''none'' or wait.trigger.idx is undefined
}}'
alias: No response
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_ibuprofen_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0,30)
}}
'
alias: Set notification time
alias: Act on wait triggers
- service: script.text_notify
data:
type: alert
who: tony
message: clear_notification
tag: tony-ibuprofen
alias: Clear actionable text notification
- conditions:
- condition: template
value_template: '{{ reason == ''ibuprofen-taken'' }}'
alias: Ibuprofen Taken
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_ibuprofen_taken
data:
datetime: '{% from ''time.jinja'' import current_time %} {{ current_time(''datetime'',24)
}}
'
alias: Set time taken
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_ibuprofen_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(8)
}}
'
alias: Set ibuprofen notification time
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_tylenol_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(4)
}}
'
alias: Set tylenol notification time
mode: queued
icon: mdi:medication
max: 10
tony_tylenol:
alias: Tony Tylenol
sequence:
- alias: Turn off boolean if this is a notification
if:
- condition: template
value_template: '{{ reason != ''tylenol-taken'' }}'
alias: If reason is not tylenol-taken
then:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.tony_tylenol_taken
data: {}
alias: Turn off boolean
- alias: Routing
choose:
- conditions:
- condition: template
value_template: '{{ reason == ''tylenol-notify'' }}'
alias: Tylenol Notify
sequence:
- service: script.text_notify
data:
type: alert
who: tony
title: Tony Tylenol Time
message: It is time to take your next dose of Tylenol
tag: tony-tylenol
actions:
- action: TONY_TYLENOL_TAKEN
title: Taken
- action: TONY_TYLENOL_SKIPPED
title: Skipped
- action: TONY_TYLENOL_ASK_LATER
title: Ask Later
alias: Send actionable text notification
- wait_for_trigger:
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: TONY_TYLENOL_TAKEN
id: tylenol-taken
alias: Tylenol Taken
- alias: Tylenol Skipped
platform: event
event_type: ios.notification_action_fired
event_data:
actionName: TONY_TYLENOL_SKIPPED
id: tylenol-skipped
- alias: Tylenol Ask Later
platform: event
event_type: ios.notification_action_fired
event_data:
actionName: TONY_TYLENOL_ASK_LATER
id: tylenol-ask-later
- platform: state
entity_id:
- input_boolean.tony_tylenol_taken
from: 'off'
to: 'on'
id: tylenol-manual
alias: Manual
- platform: state
entity_id:
- input_boolean.tony_tylenol_active
from: 'on'
to: 'off'
id: cancel
timeout:
hours: 0
minutes: 30
seconds: 0
milliseconds: 0
continue_on_timeout: true
- choose:
- conditions:
- condition: template
value_template: '{{ wait.trigger.id == ''tylenol-taken'' }}'
alias: Tylenol Taken
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.tony_tylenol_taken
data: {}
alias: Turn on boolean
- conditions:
- alias: Tylenol Skipped
condition: template
value_template: '{{ wait.trigger.id == ''tylenol-skipped'' }}'
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_tylenol_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(8)
}}
'
alias: Set notification time
- conditions:
- alias: Tylenol Ask Later
condition: template
value_template: '{{ wait.trigger.id == ''tylenol-ask-later'' }}'
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_tylenol_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0,30)
}}
'
alias: Set tylenol notification time
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_tylenol_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(4,30)
}}
'
alias: Set tylenol notification time
- conditions:
- condition: template
value_template: '{{ wait.trigger == ''none'' or wait.trigger.idx is undefined
}}'
alias: No response
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_tylenol_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0,30)
}}
'
alias: Set notification time
alias: Act on wait triggers
- service: script.text_notify
data:
type: alert
who: tony
message: clear_notification
tag: tony-tylenol
alias: Clear actionable text notification
- conditions:
- condition: template
value_template: '{{ reason == ''tylenol-taken'' }}'
alias: Tylenol Taken
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_tylenol_taken
data:
datetime: '{% from ''time.jinja'' import current_time %} {{ current_time(''datetime'',24)
}}
'
alias: Set time taken
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_tylenol_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(8)
}}
'
alias: Set tylenol notification time
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tony_ibuprofen_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(4)
}}
'
alias: Set ibuprofen notification time
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
reset_annc_switches:
alias: Reset Announcement Switches
sequence:
- service: input_boolean.turn_off
target:
entity_id:
- input_boolean.good_morning
- input_boolean.daily_briefing
- input_boolean.nightly_briefing
- input_boolean.kallen_morning_briefing
- input_boolean.kallen_nightly_briefing
- input_boolean.basement_briefing
data: {}
mode: single
icon: mdi:bullhorn-outline
emma_rainbow_lights:
alias: Emma Rainbow Lights
sequence:
- service: switch.turn_off
metadata: {}
data: {}
target:
entity_id:
- switch.adaptive_lighting_living_room
- switch.adaptive_lighting_sleep_mode_living_room
alias: Turn off adaptive lighting
- service: lifx.effect_stop
metadata: {}
data: {}
target:
entity_id: light.living_room_led_strip
alias: Stop any current light strip effects
- alias: Choose Effect
choose:
- conditions:
- condition: template
value_template: '{{ effect in [''Rainbow'',null] }}'
alias: Rainbow
sequence:
- service: light.turn_on
metadata: {}
data:
effect: prism
target:
entity_id: light.living_room_overhead
alias: Turn on living room overhead in prism effect
- service: lifx.effect_move
metadata: {}
data:
speed: 8
direction: right
theme: exciting
power_on: true
target:
entity_id: light.living_room_led_strip
alias: Turn on living room LED strip in exciting theme with move effect
- conditions:
- condition: template
value_template: '{{ effect == ''Blue'' }}'
alias: Blue
sequence:
- service: light.turn_on
metadata: {}
data:
rgb_color:
- 0
- 0
- 255
brightness_pct: 100
target:
entity_id: light.living_room_lights
alias: Turn on living room lights, set to blue
- conditions:
- condition: template
value_template: '{{ effect == ''Purple'' }}'
alias: Purple
sequence:
- service: light.turn_on
metadata: {}
data:
rgb_color:
- 134
- 0
- 211
brightness_pct: 100
target:
entity_id: light.living_room_lights
alias: Turn on living room lights, set to purple
- conditions:
- alias: Green
condition: template
value_template: '{{ effect == ''Green'' }}'
sequence:
- alias: Turn on living room lights, set to green
service: light.turn_on
metadata: {}
data:
rgb_color:
- 0
- 255
- 0
brightness_pct: 100
target:
entity_id: light.living_room_lights
- conditions:
- condition: template
value_template: '{{ effect == ''Tokyo'' }}'
alias: Tokyo
sequence:
- service: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.living_room_dynamic_scenes
alias: Turn on dynamic scenes
- service: input_select.select_option
metadata: {}
data:
option: Tokyo
target:
entity_id: input_select.living_room_scenes
alias: Activate Tokyo scene in Living Room
- alias: Turn on living room LED strip in intense theme with move effect
service: lifx.effect_move
metadata: {}
data:
speed: 8
direction: right
theme: intense
power_on: true
target:
entity_id: light.living_room_led_strip
mode: restart
icon: fas:rainbow
fields:
effect:
selector:
select:
options:
- Rainbow
- Blue
- Purple
- Green
- Tokyo
multiple: false
name: Effect
description: What type of effect would you like to run?
default: Rainbow
required: true
rabbit_feeding:
alias: Rabbit Feeding
sequence:
- alias: Send notifications
parallel:
- alias: Play TTS if this is the 3rd or higher reminder
if:
- condition: numeric_state
entity_id: counter.rabbit_feeding_reminder_count
above: 2
then:
- service: script.speech_engine
data:
who: common_areas
type: alert
message: Zeus needs to be fed. This is reminder number {{ states('counter.rabbit_feeding_reminder_count')
}} for today.
alias: Play TTS announcement
- alias: Send phone notifications
service: script.text_notify
metadata: {}
data:
type: alert
who: all
title: Rabbit Feeding
message: Zeus needs to be fed, please do this ASAP!
tag: rabbit-feeding
actions:
- action: RABBIT_FEEDING_DONE
title: Fed
- action: RABBIT_FEEDING_SKIPPED
title: Skip
- action: RABBIT_FEEDING_ASK_LATER
title: Ask Later
- wait_for_trigger:
- platform: event
event_type: ios.notification_action_fired
event_data:
actionName: RABBIT_FEEDING_DONE
alias: Done
id: done
- alias: Skipped
platform: event
event_type: ios.notification_action_fired
event_data:
actionName: RABBIT_FEEDING_SKIPPED
id: skipped
- alias: Ask Later
platform: event
event_type: ios.notification_action_fired
event_data:
actionName: RABBIT_FEEDING_ASK_LATER
id: ask-later
- platform: state
entity_id:
- binary_sensor.parents_home
from: 'on'
to: 'off'
id: left
alias: Left
- platform: state
entity_id:
- input_boolean.rabbit_fed
from: 'off'
to: 'on'
alias: Manual
id: manual
timeout:
hours: 1
minutes: 0
seconds: 0
milliseconds: 0
alias: Triggers
- alias: Routing
choose:
- conditions:
- condition: template
value_template: '{{ wait.trigger.id in [''done'',''manual''] }}'
alias: Feeding done
sequence:
- service: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.rabbit_fed
alias: Turn on input boolean
- alias: Clear critical notification, if it was sent
service: script.text_notify
metadata: {}
data:
type: alert
who: all
message: clear_notification
tag: rabbit-feeding-critical
- conditions:
- condition: template
value_template: '{{ wait.trigger.id == ''ask-later'' }}'
alias: Ask later
sequence:
- service: input_datetime.set_datetime
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(1)
}}
'
target:
entity_id: input_datetime.rabbit_feeding_notify
alias: Bump feeding notification by an hour
- conditions:
- condition: template
value_template: '{{ wait.trigger.id == ''left'' }}'
alias: Left
sequence:
- service: script.text_notify
metadata: {}
data:
type: critical
who: parents
title: YOU DICK
message: YOU FORGOT TO FEED THE RABBIT!
tag: rabbit-feeding-critical
alias: Send critical text notification
- conditions:
- condition: template
value_template: '{{ wait.trigger == ''none'' or wait.trigger.idx is undefined
}}'
alias: None or undefined
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.rabbit_feeding_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0,1)
}}
'
alias: Notify again
- alias: Clear notification
service: script.text_notify
metadata: {}
data:
type: alert
who: all
message: clear_notification
tag: rabbit-feeding
mode: restart
icon: mdi:rabbit
rabbit_hutch_cleaning:
alias: Rabbit Hutch Cleaning
sequence:
- alias: Send notifications
parallel:
- alias: Play TTS if this is the 3rd or higher reminder
if:
- condition: numeric_state
entity_id: counter.rabbit_hutch_cleaning_reminder_count
above: 2
then:
- service: script.speech_engine
data:
who: common_areas
type: normal
message: The rabbit hutch is in need of cleaning. This is reminder number
{{ states('counter.rabbit_hutch_cleaning_reminder_count') }} for today.
alias: Play TTS announcement
- alias: Send phone notifications
service: script.text_notify
metadata: {}
data:
type: alert
who: parents
title: Rabbit Hutch Cleaning
message: The rabbit hutch is in need of cleaning. For the sake of smell, please
do this ASAP!
tag: rabbit-hutch-cleaning
actions:
- action: RABBIT_HUTCH_CLEANING_DONE
title: Cleaned
- action: RABBIT_HUTCH_CLEANING_SKIPPED
title: Skip
- action: RABBIT_HUTCH_CLEANING_ASK_LATER
title: Ask Later
- alias: Triggers
wait_for_trigger:
- alias: Done
platform: event
event_type: ios.notification_action_fired
event_data:
actionName: RABBIT_HUTCH_CLEANING_DONE
id: done
- alias: Skipped
platform: event
event_type: ios.notification_action_fired
event_data:
actionName: RABBIT_HUTCH_CLEANING_SKIPPED
id: skipped
- alias: Ask Later
platform: event
event_type: ios.notification_action_fired
event_data:
actionName: RABBIT_HUTCH_CLEANING_ASK_LATER
id: ask-later
- alias: Manual
platform: state
entity_id:
- input_boolean.rabbit_hutch_cleaned
from: 'off'
to: 'on'
id: manual
timeout:
hours: 1
minutes: 0
seconds: 0
milliseconds: 0
- alias: Routing
choose:
- conditions:
- condition: template
value_template: '{{ wait.trigger.id in [''done'',''manual''] }}'
alias: Cleaning done
sequence:
- alias: Turn on input boolean
service: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.rabbit_hutch_cleaned
- conditions:
- condition: template
value_template: '{{ wait.trigger.id == ''ask-later'' }}'
alias: Ask later
sequence:
- service: input_datetime.set_datetime
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(1)
}}
'
target:
entity_id: input_datetime.rabbit_hutch_cleaning_notify
alias: Bump cleaning notification by an hour
- conditions:
- condition: template
value_template: '{{ wait.trigger == ''none'' or wait.trigger.idx is undefined
}}'
alias: None or undefined
sequence:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.rabbit_hutch_cleaning_notify
data:
datetime: '{% from ''time.jinja'' import set_datetime %} {{ set_datetime(0,1)
}}
'
alias: Notify again
- alias: Clear notification
service: script.text_notify
metadata: {}
data:
type: alert
who: parents
message: clear_notification
tag: rabbit-hutch-cleaning
mode: restart
icon: mdi:rabbit
emma_sleep:
alias: Emma Sleep
sequence:
- if:
- condition: time
after: 04:00:00
before: '17:00:00'
then:
- service: script.emma_bedroom_scheduling_evening
data: {}
alias: Run scheduling if it hasn't already been run
- service: script.turn_off
target:
entity_id:
- script.emma_ibuprofen
- script.emma_tylenol
- script.emma_cough_meds
data: {}
alias: Reset med trackers
- service: light.turn_on
target:
entity_id:
- light.emma_bedroom_light
data: {}
alias: Turn on light
- delay:
seconds: 1
- service: input_select.select_option
target:
entity_id:
- input_select.emma_bedroom_scenes
data:
option: Adaptive
alias: Set lights to adaptive
- alias: Climate Controls
choose:
- conditions:
- alias: If Emma has napped or it is clearly bedtime
condition: or
conditions:
- condition: state
entity_id: input_boolean.emma_has_napped
state: 'on'
alias: Emma has napped
- condition: time
after: '23:00:00'
before: 04:00:00
alias: It is definitely bedtime
sequence:
- alias: Select climate mode
choose:
- conditions:
- alias: AC
condition: and
conditions:
- condition: state
entity_id: input_select.scheduled_climate_mode_emma_aircon
state: AC
alias: Scheduled mode is AC
- condition: state
entity_id: fan.emma_air_conditioner
state: 'off'
alias: Air conditioner is not already on
sequence:
- service: fan.turn_on
target:
entity_id: fan.emma_air_conditioner
data: {}
alias: Turn on air conditioner
- service: script.text_notify
data:
who: parents
title: Emma Climate Schedule
message: The air conditioner in Emma's Bedroom has been activated.
type: normal
tag: emma-climate
alias: Send AC notification
- conditions:
- alias: White Noise
condition: and
conditions:
- condition: state
entity_id: input_select.scheduled_climate_mode_emma_aircon
state: White Noise
alias: Scheduled mode is White Noise
- condition: state
entity_id: input_boolean.white_noise_emma_bedroom
state: 'off'
alias: White Noise is not already on
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.white_noise_emma_bedroom
data: {}
alias: Turn on white noise
- service: script.text_notify
data:
who: parents
title: Emma Climate Schedule
message: White noise has been activated in Emma's Bedroom.
type: normal
tag: emma-climate
alias: Send white noise notification
default:
- service: script.text_notify
data:
who: parents
title: Emma Climate Schedule
message: No option selected for Emma's climate mode. No devices will be
activated.
type: normal
tag: emma-climate
alias: Send notification that no climate mode is selected
- conditions:
- alias: If Emma has NOT napped and the time is appropriate
condition: and
conditions:
- condition: state
entity_id: input_boolean.emma_has_napped
state: 'off'
alias: Emma has not napped
- condition: time
before: '23:00:00'
after: 04:00:00
alias: It is not bedtime
sequence:
- alias: Select naptime climate mode
choose:
- conditions:
- alias: AC
condition: and
conditions:
- condition: state
entity_id: input_select.naptime_climate_mode_emma_aircon
state: AC
alias: Scheduled naptime mode is AC
- condition: state
entity_id: fan.emma_air_conditioner
state: 'off'
alias: Air conditioner is not already on
sequence:
- service: fan.turn_on
target:
entity_id: fan.emma_air_conditioner
data: {}
alias: Turn on AC
- conditions:
- alias: White Noise
condition: and
conditions:
- condition: state
entity_id: input_select.naptime_climate_mode_emma_aircon
state: White Noise
alias: Scheduled naptime mode is White Noise
- condition: state
entity_id: input_boolean.white_noise_emma_bedroom
state: 'off'
alias: White Noise is not already on
sequence:
- service: input_boolean.turn_on
target:
entity_id: input_boolean.white_noise_emma_bedroom
data: {}
alias: Turn on white noise
icon: mdi:lightbulb-night
mode: restart
tina_morning_meds:
alias: Tina Morning Meds
icon: mdi:medication
mode: restart
sequence:
- service: counter.increment
metadata: {}
data: {}
target:
entity_id: counter.tina_morning_meds_reminder_count
alias: Increment morning reminder counter
- service: script.text_notify
data:
type: alert
who: tina
message: clear_notification
tag: tina-morning-meds
alias: Clear previous morning notification
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- alias: Send text notification
service: script.text_notify
data:
who: tina
type: alert
title: Morning Meds
message: You need to take your morning meds
tag: tina-morning-meds
actions:
- action: TINA_MORNING_MEDS_TAKEN
title: Taken
- action: TINA_MORNING_MEDS_SKIPPED
title: Skip
description: ''
tina_night_meds:
alias: Tina Night Meds
icon: mdi:medication
mode: restart
sequence:
- service: counter.increment
metadata: {}
data: {}
target:
entity_id: counter.tina_night_meds_reminder_count
alias: Increment night reminder counter
- service: script.text_notify
data:
type: alert
who: tina
message: clear_notification
tag: tina-night-meds
alias: Clear previous night notification
- delay:
hours: 0
minutes: 0
seconds: 5
milliseconds: 0
- alias: Send text notification
service: script.text_notify
data:
who: tina
type: alert
title: Night Meds
message: You need to take your night meds
tag: tina-night-meds
actions:
- action: TINA_NIGHT_MEDS_TAKEN
title: Taken
- action: TINA_NIGHT_MEDS_SKIPPED
title: Skip
description: ''