start_netflix: alias: Start Netflix (Living Room) sequence: - service: media_player.select_source target: entity_id: media_player.living_room_tv data: source: com.netflix.ninja mode: single icon: mdi:netflix stop_netflix: alias: Stop Netflix (Living Room) sequence: - service: media_player.select_source target: entity_id: media_player.living_room_tv data: source: '!com.netflix.ninja' mode: single icon: mdi:netflix 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 - if: - condition: state entity_id: input_boolean.guest_mode state: 'off' then: - if: - condition: template value_template: '{{ is_state(''person.tony_stork'',''home'') and is_state(''person.christina_stork'',''home'') }}' alias: Both adults are home then: - service: script.activate_alexa_actionable_notification data: text: Would you like me to arm the security system? event_id: actionable_notification_night_security_arm alexa_device: '{{ states(''sensor.last_alexa_entity_id'') }}' alias: Ask to arm security alias: Ask to arm security if both adults are home alias: If guest mode is off - wait_template: '{{ is_state(''input_boolean.give_me_darkness'',''on'') }}' continue_on_timeout: true timeout: seconds: 5 - 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' mode: single icon: mdi:weather-night start_youtube: alias: Start Youtube (Living Room) sequence: - service: media_player.select_source target: entity_id: media_player.living_room_tv data: source: com.google.android.youtube.tv mode: single icon: mdi:youtube stop_youtube: alias: Stop Youtube (Living Room) sequence: - service: media_player.select_source target: entity_id: media_player.living_room_tv data: source: '!com.google.android.youtube.tv' mode: single icon: mdi:youtube start_twitch: alias: Start Twitch (Living Room) sequence: - service: media_player.select_source target: entity_id: media_player.living_room_tv data: source: tv.twitch.android.app mode: single icon: mdi:twitch stop_twitch: alias: Stop Twitch (Living Room) sequence: - service: media_player.select_source data: source: '!tv.twitch.android.app' target: entity_id: media_player.living_room_tv mode: single icon: mdi:twitch start_spotify: alias: Start Spotify (Living Room) sequence: - service: media_player.select_source target: entity_id: media_player.living_room_tv data: source: com.spotify.tv.android mode: single icon: mdi:spotify stop_spotify: alias: Stop Spotify (Living Room) sequence: - service: media_player.select_source target: entity_id: media_player.living_room_tv data: source: '!com.spotify.tv.android' mode: single icon: mdi:spotify 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 - service: switch.turn_off target: entity_id: - switch.adaptive_lighting_basement_studio - switch.adaptive_lighting_kallen_bedroom - switch.adaptive_lighting_living_room - switch.adaptive_lighting_master_bedroom - switch.adaptive_lighting_mud_room - switch.adaptive_lighting_emma_bedroom - switch.adaptive_lighting_upstairs_hallway - switch.adaptive_lighting_dining_room_lamp - switch.adaptive_lighting_upstairs_bathroom - switch.adaptive_lighting_downstairs_bathroom - switch.adaptive_lighting_tina_lamp data: {} alias: Turn off Adaptive Lighting - delay: hours: 0 minutes: 0 seconds: 1 milliseconds: 0 - service: input_boolean.turn_on data: {} target: entity_id: input_boolean.shower_mode alias: Turn on Shower Mode - service: automation.turn_off data: stop_actions: true target: entity_id: automation.living_room_night_lighting alias: Turn off Living Room night automation - 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.upstairs_hallway_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 - service: input_boolean.turn_off data: {} target: entity_id: input_boolean.studio_quiet alias: Turn off Studio Quiet - 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 - service: script.asus_laptop_shutdown data: {} alias: Shut down laptop - 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: Would you like me to shut down your computer? 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: Would you like me to shut down your computer? 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: Would you like me to shut down your computer? 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 - service: automation.turn_on data: {} target: entity_id: automation.living_room_night_lighting alias: Turn on motion lighting in living room - 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: '{{ wait.trigger.id == ''shutdown-yes'' }}' sequence: - service: script.tony_desktop_shutdown data: {} - conditions: '{{ 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: '{{ wait.trigger.id == ''bathroom'' }}' sequence: - service: input_select.select_option data: option: Side Nightlight target: entity_id: input_select.master_bedroom_scenes - conditions: '{{ 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 start_youtube_basement: alias: Start Youtube (Basement) sequence: - service: media_player.select_source data: source: com.google.android.youtube.tv target: entity_id: media_player.basement_tv mode: single icon: mdi:youtube stop_youtube_basement: alias: Stop Youtube (Basement) sequence: - service: media_player.select_source data: source: '!com.google.android.youtube.tv' target: entity_id: media_player.basement_tv mode: single icon: mdi:youtube start_netflix_basement: alias: Start Netflix (Basement) sequence: - service: media_player.select_source data: source: com.netflix.ninja target: entity_id: media_player.basement_tv mode: single icon: mdi:netflix stop_netflix_basement: alias: Stop Netflix (Basement) sequence: - service: media_player.select_source data: source: '!com.netflix.ninja' target: entity_id: media_player.basement_tv mode: single icon: mdi:netflix start_twitch_basement: alias: Start Twitch (Basement) sequence: - service: media_player.select_source data: source: tv.twitch.android.app target: entity_id: media_player.basement_tv mode: single icon: mdi:twitch stop_twitch_basement: alias: Stop Twitch (Basement) sequence: - service: media_player.select_source data: source: '!tv.twitch.android.app' target: entity_id: media_player.basement_tv mode: single icon: mdi:twitch start_spotify_basement: alias: Start Spotify (Basement) sequence: - service: media_player.select_source data: source: com.spotify.tv.android target: entity_id: media_player.basement_tv mode: single icon: mdi:spotify stop_spotify_basement: alias: Stop Spotify (Basement) sequence: - service: media_player.select_source data: source: '!com.spotify.tv.android' target: entity_id: media_player.basement_tv mode: single icon: mdi:spotify max_brightness_cleanup: alias: Max Brightness Cleanup sequence: - service: input_boolean.turn_off data: {} target: entity_id: - input_boolean.shower_mode alias: Turn off Shower Mode - service: input_boolean.turn_on data: {} target: entity_id: input_boolean.front_porch_light_on alias: Turn on Front Porch automation - service: automation.turn_on data: {} target: entity_id: automation.living_room_night_lighting alias: Turn on Living Room night automation - service: script.adaptive_on_first_floor data: {} - service: script.adaptive_on_second_floor data: {} 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_dining_room_lamp - 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 - input_text.dining_room_lamp_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: - service: input_boolean.turn_off data: {} target: entity_id: - input_boolean.studio_quiet - input_boolean.recliner_mode alias: Turn off any active modes - 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 - service: script.turn_on data: {} target: entity_id: - script.asus_laptop_shutdown alias: Shut down the laptop - 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