AutomationDataset/mikeodr/mikeodr_automations.yaml

3946 lines
100 KiB
YAML

- alias: Faux device tracker for twins
id: alarm_device_tracker_for_twins
trigger:
- platform: state
entity_id: input_boolean.girls_home_override
to: null
condition:
condition: template
value_template: '{{ trigger.to_state.state in [''off'', ''on''] }}'
action:
- service: device_tracker.see
data_template:
dev_id: faux_girls_home
location_name: '{{ ''home'' if ''on'' == trigger.to_state.state else ''not_home''
}}'
mode: single
max_exceeded: silent
- alias: Guests Present Reminder
id: alarm_guests_present_reminder
trigger:
- platform: state
entity_id: group.presence_home
to: not_home
condition:
- condition: state
entity_id: binary_sensor.guests_present
state: 'on'
actions:
- service: notify.mobile_app_michaels_iphone
data:
message: 🛡️ Guests home, alarm not armed 🛡️
- alias: Reminder to disable guests present
id: 2c36b0b2-3180-40e1-9cc8-f37660cf62e7
trigger:
- platform: state
entity_id: person.mike
to: home
conditions:
- condition: state
entity_id: binary_sensor.guests_present
state: 'on'
actions:
- service: notify.mobile_app_michaels_iphone
data:
title: Guests Present Reminder
message: Need to disable guests present?
data:
url: /dashboard-security/home
clickAction: /dashboard-security/home
- alias: Auto Arm and Disarm System
id: alarm_arm_based_on_presence
triggers:
- platform: state
entity_id:
- group.presence_home
not_to:
- unavailable
- unknown
conditions:
- condition: state
entity_id: binary_sensor.guests_present
state: 'off'
- condition: state
entity_id: device_tracker.faux_girls_home
state: not_home
actions:
- service: calendar.get_events
target:
entity_id: calendar.house_planning
data:
duration:
hours: 8
response_variable: cal
- if:
- condition: template
value_template: '{{ cal[''calendar.house_planning''].events | selectattr(''summary'',
''contains'', ''Cleaners'') | list | length == 0 }}'
then:
- service: alarm_control_panel.alarm_{{ 'disarm' if 'home' == trigger.to_state.state
else 'arm_away' }}
target:
entity_id: alarm_control_panel.master
- if:
- condition: template
value_template: '{{ trigger.to_state.state == ''home'' }}'
then:
- service: select.select_option
entity_id: select.my_ecobee_current_mode
data:
option: home
mode: single
max_exceeded: silent
- alias: Auto Arm Alarm Night
id: alarm_auto_arm_night_mode
triggers:
- platform: time
at: 00:00:00
- platform: time
at: 01:00:00
- platform: event
event_type: goodnight_event
conditions:
- condition: state
entity_id:
- person.mike
- person.tiff
match: any
state: home
- condition: state
entity_id: alarm_control_panel.master
state: disarmed
actions:
- parallel:
- service: light.turn_off
target:
floor_id:
- basement
- main_floor
- service: cover.close_cover
entity_id: cover.garage
- service: lock.lock
entity_id:
- lock.locks
- wait_template: '{{ is_state(''cover.garage'', ''closed'') }}'
- service: homeassistant.turn_off
entity_id: media_player.living_room_tv
- wait_template: '{{ is_state(''binary_sensor.basement_presence'', ''off'') }}'
- service: alarm_control_panel.alarm_arm_night
target:
entity_id: alarm_control_panel.master
- alias: Disable Armed Night on iOS alarm wakeup
id: alarm_disable_armed_night_ios_wakeup
trigger:
- platform: event
event_type: ios_wakeup_event
- platform: time
at: 05:00:00
condition:
- condition: state
entity_id: alarm_control_panel.master
state: armed_night
action:
- service: alarm_control_panel.alarm_disarm
target:
entity_id: alarm_control_panel.master
- alias: Lock all doors when alarm armed
id: alarm_lock_all_doors_armed
trigger:
- platform: state
entity_id: alarm_control_panel.master
to:
- arming
- armed_night
- armed_vacation
- armed_away
action:
- service: lock.lock
entity_id:
- lock.front_door
- lock.side_door
- alias: Alert armed state and garage open
id: alarm_alert_garage_left_open
trigger:
- platform: state
entity_id: alarm_control_panel.master
to:
- arming
- armed_night
- armed_vacation
- armed_away
condition:
- condition: state
entity_id: cover.garage
state: open
action:
- service: camera.snapshot
continue_on_error: true
target:
entity_id: camera.garage_low_resolution_channel
data:
filename: /media/garage/snapshot.jpg
- service: notify.mobile_app_michaels_iphone
data:
message: 🚪 Garage Door Left Open 🚪
data:
image: /media/local/garage/snapshot.jpg
tag: alarmo-garage-open-alert
actions:
- action: CLOSE_GARAGE
title: Close Garage
activationMode: background
authenticationRequired: true
destructive: true
behavior: default
push:
sound:
name: default
critical: 1
volume: 1.0
- alias: Turn on indoor lights when triggered at night
id: alarm_lights_on_triggered_night
trigger:
- platform: state
entity_id: alarm_control_panel.master
from: armed_night
to: triggered
action:
- service: light.turn_on
target:
floor_id:
- basement
- main_floor
- alias: Turn off all indoor lights when armed
id: alarm_turn_off_all_lights
trigger:
- platform: state
entity_id: alarm_control_panel.master
to:
- armed_vacation
- armed_away
action:
- service: light.turn_off
target:
floor_id:
- basement
- main_floor
- top_floor
- alias: Turn off lights at bedtime
id: alarm_turn_off_lights_bedtime
trigger:
- platform: state
entity_id: alarm_control_panel.master
to: armed_night
action:
- service: light.turn_off
target:
floor_id:
- basement
- main_floor
- alias: Set Switch Status LEDs
id: alarm_set_switch_status_leds
mode: queued
max: 10
trigger:
- platform: state
entity_id:
- lock.locks
- cover.garage
- binary_sensor.doors
not_from:
- unknown
- unavailable
not_to:
- unknown
- unavailable
- opening
- closing
- platform: state
entity_id: cover.garage
to: closing
id: closing
- platform: state
entity_id: cover.garage
to: opening
id: opening
condition:
- condition: state
entity_id: group.adults
state: home
- condition: template
value_template: '{{ has_value(''cover.garage'') and has_value(''lock.locks'')
and has_value(''binary_sensor.doors'') }}'
action:
- choose:
- conditions:
- condition: trigger
id: opening
sequence:
- service: script.blue_set_led
data:
color: '0'
effect: fast_rising
level: 40
duration: '15'
entity_id:
- light.front_hall
- light.kitchen_light
- light.back_deck_light
- light.main_stairs
- light.upstairs_hall
- light.main_bath_light
- light.basement_stairs
- light.basement_hall
- conditions:
- condition: trigger
id: closing
sequence:
- service: script.blue_set_led
data:
color: '0'
effect: fast_falling
level: 40
duration: '15'
entity_id:
- light.front_hall
- light.kitchen_light
- light.back_deck_light
- light.main_stairs
- light.upstairs_hall
- light.main_bath_light
- light.basement_stairs
- light.basement_hall
default:
- variables:
duration: "{% if is_state('binary_sensor.doors', 'off') and is_state('cover.garage',\
\ 'closed') and is_state('lock.locks', 'locked') %}\n 30\n{% else %}\n\
\ 255\n{% endif %}"
color: "{# red 0, yellow 20, green 85 #} {% if is_state('cover.garage', 'closed')\
\ and is_state('binary_sensor.doors', 'off') and is_state('lock.locks',\
\ 'locked') %}\n 85\n{% elif is_state('binary_sensor.doors', 'off') and\
\ is_state('cover.garage', 'closed') and is_state('lock.locks', 'unlocked')\
\ %}\n 20\n{% else %}\n 0\n{% endif %}"
- service: script.blue_set_led
data:
color: '{{ color }}'
effect: solid
level: 40
duration: '{{ duration }}'
entity_id:
- light.front_hall
- light.kitchen_light
- light.back_deck_light
- light.main_stairs
- light.upstairs_hall
- light.main_bath_light
- light.basement_stairs
- light.basement_hall
- alias: Notify Water Shutoff Jammed
id: b08f5491-f6f0-4c03-b8a9-14c4a4b68ac5
triggers:
- platform: state
entity_id: binary_sensor.water_shutoff_valve_jammed
to: 'on'
actions:
- service: notify.mobile_app_michaels_iphone
data:
message: 🚰 Water Shutoff Valve Jammed 🚰
data:
tag: water-shutoff-valve-jammed
push:
sound:
name: default
critical: 1
volume: 1.0
- alias: Shut off water when leak detected and not home or overnight
id: 7dad3c90-f96f-4976-878c-0ab3d1a6241a
triggers:
- platform: state
entity_id: alarm_control_panel.water
to:
- triggered
conditions:
not:
- condition: state
entity_id: alarm_control_panel.master
state:
- disarmed
actions:
- service: valve.close_valve
entity_id: valve.water_shutoff
- alias: Alert on Alarm Trigger
id: 3fa42dee-e85e-4787-8bdd-4d0db3dd7e59
triggers:
- platform: state
entity_id: alarm_control_panel.master
to:
- triggered
actions:
- choose:
- conditions:
- condition: template
value_template: "{{ trigger.to_state is defined and\n trigger.to_state.attributes.open_sensors\
\ is defined and\n trigger.to_state.attributes.open_sensors.values()\n\
\ | select('ne', 'unavailable')\n | list\n | count == 0 }}\n"
sequence:
- service: notify.mobile_app_michaels_iphone
data:
message: 'Cause: {%- for k, v in (trigger.to_state.attributes.open_sensors
or {}).items() %} {{ state_attr(k, ''friendly_name'') or k }}: {{ v }}
{%- endfor %}
'
title: 🚨 Alarmo Alert! 🚨
data:
url: /dashboard-security/home
clickAction: /dashboard-security/home
default:
- service: notify.mobile_app_michaels_iphone
data:
message: 'Cause: {%- for k, v in (trigger.to_state.attributes.open_sensors
or {}).items() %} {{ state_attr(k, ''friendly_name'') or k }}: {{ ''wet''
if state_attr(k, ''device_class'') == ''moisture'' else v }} {%- endfor
%}
'
title: 🚨 Alarmo Alert! 🚨
data:
push:
sound:
name: default
critical: 1
url: /dashboard-security/home
clickAction: /dashboard-security/home
- alias: Water Softener Salt Bin Low
id: appliances_water_softener_salt_bin_low
trigger:
- platform: numeric_state
entity_id: sensor.salt_sensor_weight
below: 9
for:
hours: 24
action:
- service: notify.mobile_app_michaels_iphone
data:
message: Water Softener Salt Low! {{ states('sensor.salt_sensor_weight') }}kg
data:
tag: water-softener-salt-low
- id: '1688483068220'
alias: Enable Tesla Wifi When Tag Scanned
description: ''
trigger:
- platform: tag
tag_id: e4c51def-84c8-4349-913d-9c711e814b37
condition: []
action:
- service: homeassistant.turn_on
data: {}
target:
entity_id: switch.tesla
mode: single
max_exceeded: silent
- alias: Basement Light on pir entrance
id: basement_light_on_pir_entrance
triggers:
- platform: state
entity_id: binary_sensor.basement_stairs_motion_occupancy
from: 'off'
to: 'on'
conditions:
- condition: state
entity_id: alarm_control_panel.master
state: disarmed
actions:
- wait_for_trigger:
- platform: state
entity_id: binary_sensor.basement_hall_motion_occupancy
to: 'on'
- platform: state
entity_id: sensor.basement_fp1_presence_event
to:
- enter
- approach
timeout:
minutes: 5
continue_on_timeout: false
- service: light.turn_on
entity_id: light.basement_lights
- alias: Basement Light Presence Control On
id: basement_light_presence_controls_on
mode: restart
trigger:
- platform: state
entity_id: binary_sensor.basement_presence
to: 'on'
id: lights_on
- platform: state
entity_id: sensor.basement_fp1_presence_event
to:
- enter
- approach
id: lights_on
- platform: state
entity_id: binary_sensor.basement_presence
to: 'off'
id: timer_start
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.basement_lights_off
id: timer_lights_off
action:
choose:
- conditions:
- condition: trigger
id: lights_on
- condition: state
entity_id: binary_sensor.workday_sensor
state: 'on'
- condition: state
entity_id: input_boolean.nap_mode
state: 'off'
sequence:
- service: timer.cancel
target:
entity_id: timer.basement_lights_off
- if:
- condition: state
entity_id: light.basement_room_light_dimmer
state: 'off'
then:
- service: light.turn_on
entity_id:
- light.basement_hall
- light.basement_room_light_dimmer
- conditions:
- condition: trigger
id: timer_start
- condition: state
entity_id: light.basement_lights
state: 'on'
sequence:
- service: timer.start
entity_id: timer.basement_lights_off
- conditions:
- condition: trigger
id: timer_lights_off
- condition: state
entity_id: binary_sensor.basement_presence
state: 'off'
sequence:
- service: light.turn_off
entity_id:
- light.basement_lights
- alias: Sync Basement Hall Light to Basement Room Light
id: basement_sync_hall_room_lights
trigger:
- platform: state
to: null
entity_id: light.basement_hall
condition:
- condition: state
entity_id: alarm_control_panel.master
state: disarmed
- condition: template
value_template: '{{ trigger.to_state.state in [''off'', ''on''] }}'
action:
- service: homeassistant.turn_{{ trigger.to_state.state }}
entity_id: light.basement_room_light_dimmer
- alias: Basement Lights off Night
id: basement_night_auto_off
trigger:
- platform: time
at: '23:00:00'
action:
service: homeassistant.turn_off
entity_id:
- light.basement_room_light_dimmer
- light.basement_hall
- alias: Top of basement stairs action control
id: basement_top_of_stairs_action_control
trigger:
- trigger: device
domain: mqtt
device_id: db7cbb2e9f9508cfb87c54e915766ff3
type: action
subtype: up_double
id: turn_on
- trigger: device
domain: mqtt
device_id: db7cbb2e9f9508cfb87c54e915766ff3
type: action
subtype: down_double
id: turn_off
- trigger: device
domain: mqtt
device_id: 2dfe60ede49072748ae1109333546706
type: action
subtype: up_double
id: turn_on
- trigger: device
domain: mqtt
device_id: 2dfe60ede49072748ae1109333546706
type: action
subtype: down_double
id: turn_off
- trigger: device
domain: mqtt
device_id: 4fd03b2b6cc39b1cc034f88e88f749d6
type: action
subtype: up_double
id: turn_on
- trigger: device
domain: mqtt
device_id: 4fd03b2b6cc39b1cc034f88e88f749d6
type: action
subtype: down_double
id: turn_off
action:
- choose:
- conditions:
- condition: trigger
id: turn_on
sequence:
- service: light.turn_on
target:
area_id: basement
- conditions:
- condition: trigger
id: turn_off
sequence:
- service: light.turn_off
target:
floor_id: basement
- service: switch.turn_off
entity_id: switch.basement_space_heater
- alias: Basement Space Heater Control
id: basement_space_heater_control
triggers:
- platform: state
entity_id: binary_sensor.basement_presence
to: 'on'
id: turn_on
- platform: state
entity_id: binary_sensor.basement_presence
to: 'off'
id: turn_off
for:
minutes: 5
- platform: template
value_template: '{{ ''armed_'' in states(''alarm_control_panel.master'') }}'
id: turn_off
condition:
- condition: state
entity_id: sensor.season
state: winter
actions:
- choose:
- conditions:
- condition: trigger
id: turn_on
- condition: state
entity_id: alarm_control_panel.master
state: disarmed
- condition: state
entity_id: binary_sensor.home_grid_status
state: 'on'
sequence:
- service: switch.turn_on
entity_id: switch.basement_space_heater
- conditions:
- condition: trigger
id: turn_off
sequence:
- service: switch.turn_off
entity_id: switch.basement_space_heater
- alias: Basement Stairs Light Motion Control
id: basement_stairs_light_motion_control
triggers:
- platform: state
entity_id: binary_sensor.basement_stairs_motion_occupancy
from: 'off'
to: 'on'
id: turn_on
- platform: state
entity_id: binary_sensor.basement_stairs_motion_occupancy
to: 'off'
for:
minutes: 10
id: turn_off
actions:
- choose:
- conditions:
- condition: state
entity_id: group.adults
state: home
- condition: state
entity_id: alarm_control_panel.master
state: disarmed
- condition: trigger
id: turn_on
- condition: time
after: 07:45:00
sequence:
- service: light.turn_on
entity_id: light.basement_stairs
default:
- service: light.turn_off
entity_id: light.basement_stairs
- alias: Battery Low Notification
id: batteries_change_battery_notification
description: Battery Low Notification with auto dismiss
trigger:
- platform: event
event_type: battery_notes_battery_threshold
event_data:
battery_low: true
id: low
alias: Battery went low
- platform: event
event_type: battery_notes_battery_threshold
event_data:
battery_low: false
id: high
alias: Battery went high
action:
- choose:
- conditions:
- condition: trigger
id:
- low
sequence:
- service: persistent_notification.create
data:
title: '{{ trigger.event.data.device_name }} Battery Low
'
notification_id: '{{ trigger.event.data.device_id }}-{{ trigger.event.data.source_entity_id
}}'
message: 'The device has a battery level of {{ trigger.event.data.battery_level
}}% {{ ''\n'' -}} You need {{ trigger.event.data.battery_quantity }}x
{{ trigger.event.data.battery_type }}
'
- conditions:
- condition: trigger
id:
- high
sequence:
- service: persistent_notification.dismiss
data:
notification_id: '{{ trigger.event.data.device_id }}-{{ trigger.event.data.source_entity_id
}}'
mode: queued
- alias: Bedroom Comfort when arrival past bedtime
id: bedroom_comfort_arrive_past_bedtime
trigger:
platform: state
entity_id: group.adults
from: not_home
to: home
condition:
- condition: time
after: '22:00:00'
before: 07:00:00
action:
service: homeassistant.turn_on
entity_id:
- switch.master_white_noise
- switch.master_humidifier
- alias: Bedroom Humidifier On Early Evenings
id: bedroom_comfort_early_evenings
trigger:
- platform: time
at: '21:30:00'
condition:
- condition: state
entity_id: group.adults
state: home
action:
service: homeassistant.turn_on
entity_id:
- switch.master_humidifier
- alias: Bedroom Comfort On Evenings
id: bedroom_comfort_evenings
trigger:
- platform: time
at: '22:30:00'
condition:
- condition: state
entity_id: group.adults
state: home
action:
service: homeassistant.turn_on
entity_id:
- switch.master_white_noise
- switch.master_humidifier
- alias: Bedroom Comfort if in bed
id: bedroom_comfort_if_in_bed_early
trigger:
- platform: state
entity_id: sensor.tiffanys_iphone_battery_state
from: Not Charging
to: Charging
- platform: state
entity_id: sensor.tiffanys_iphone_battery_state
from: Not Charging
to: Full
- platform: time
at: '22:45:00'
condition:
- condition: time
after: '22:00:00'
- condition: state
entity_id: group.adults
state: home
action:
service: homeassistant.turn_on
entity_id:
- switch.master_white_noise
- switch.master_humidifier
- alias: Bedroom off mornings
id: bedroom_off_mornings_nursery_active
trigger:
- platform: state
entity_id:
- binary_sensor.bedroom_ecobee_motion
- binary_sensor.bedroom_ecobee_occupancy
- light.main_bath_light
to: 'on'
- platform: time
at: 07:30:00
- platform: state
entity_id:
- switch.master_white_noise
to: 'off'
condition:
- condition: state
entity_id: input_boolean.sleeping_in
state: 'off'
- condition: state
entity_id: input_boolean.nap_mode
state: 'off'
- condition: time
after: 07:00:00
- condition: time
before: 08:00:00
action:
service: homeassistant.turn_off
entity_id:
- switch.master_white_noise
- switch.master_humidifier
- alias: Spare Bedroom Fan Toggle
id: spare_bedroom_fan_toggle
trigger:
- platform: event
event_type: ios_bedtime_event
condition:
- condition: state
entity_id: person.mike
state: home
action:
service: homeassistant.turn_on
entity_id:
- switch.spare_bedroom_fan
- alias: Reset Sleeping in
id: bedroom_reset_sleeping_in
trigger:
- platform: time
at: '12:00:00'
condition:
- condition: state
entity_id: input_boolean.sleeping_in
state: 'on'
action:
service: homeassistant.turn_off
entity_id: input_boolean.sleeping_in
- alias: Front Bedroom Morning Wake Up Sequence
id: bedroom_morning_wake_up_sequence
trigger:
- platform: event
event_type: ios_wakeup_event
action:
- service: homeassistant.turn_off
entity_id:
- switch.spare_bedroom_fan
- alias: Exterior Christmas Lights On
id: xmas_exteior_lights_on
triggers:
- platform: numeric_state
entity_id: sun.sun
attribute: elevation
below: 0.25
conditions:
- condition: template
value_template: '{{ now().month in [11, 12, 1, 2] }}'
actions:
service: homeassistant.turn_on
entity_id: light.exterior_christmas_lights
- alias: Exterior Christmas Lights Off
id: xmas_exterior_lights_off
triggers:
- platform: time
at: '23:30:00'
- platform: sun
event: sunrise
actions:
service: homeassistant.turn_off
entity_id: light.exterior_christmas_lights
- alias: Christmas Tree lights on when living room occupied
id: xmas_lights_room_occupied
triggers:
- platform: state
entity_id: binary_sensor.living_room_occupancy
to: 'on'
id: turn_on
- platform: state
entity_id: binary_sensor.living_room_occupancy
to: 'off'
for:
minutes: 30
id: turn_off
- platform: event
event_type: ios_wakeup_event
id: turn_on
- platform: zone
entity_id:
- person.mike
- person.tiff
zone: zone.home
event: enter
id: turn_on
- platform: state
entity_id: alarm_control_panel.master
to:
- armed_night
- armed_vacation
- armed_away
id: turn_off
condition:
- condition: template
value_template: '{{ now().month in [11, 12, 1, 2] }}'
- condition: time
after: 06:00:00
before: '22:30:00'
- condition: state
entity_id: alarm_control_panel.master
state: disarmed
actions:
choose:
- conditions:
- condition: trigger
id: turn_on
sequence:
- service: homeassistant.turn_on
entity_id: light.christmas_tree
- conditions:
- condition: trigger
id: turn_off
sequence:
- service: homeassistant.turn_off
entity_id: light.christmas_tree
- alias: Christmas Tree off at bedtime
id: xmas_tree_lights_off_night
triggers:
platform: time
at: '22:30:00'
actions:
service: homeassistant.turn_off
entity_id: light.christmas_tree
- alias: Exterior Christmas Lights on arriving home
id: external_xmas_lights_on_arrive_home
triggers:
- platform: zone
entity_id:
- person.mike
- person.tiff
zone: zone.home
event: enter
condition:
- condition: template
value_template: '{{ now().month in [11, 12, 1, 2] }}'
- condition: numeric_state
entity_id: sun.sun
attribute: elevation
below: 3.35
- condition: time
after: '15:30:00'
actions:
service: homeassistant.turn_on
entity_id: light.exterior_christmas_lights
- alias: Disable Climate If Door or Window Ajar
id: disable_climate_door_ajar
trigger:
- platform: state
id: notification_door_open
entity_id:
- binary_sensor.doors
- binary_sensor.windows
to: 'on'
for:
minutes: 5
condition:
- not:
- condition: state
entity_id: climate.my_ecobee
state: 'off'
action:
- variables:
climate_restore_state: '{{ states(''climate.my_ecobee'') }}'
- service: notify.adults
data:
title: A Door or window has been left open
message: Disabling thermostat
data:
tag: front-door-open-warning
push:
name: default
critical: 1
- service: climate.turn_off
target:
entity_id: climate.my_ecobee
- wait_for_trigger:
- platform: template
value_template: '{{ is_state(''binary_sensor.doors'', ''off'') and is_state(''binary_sensor.windows'',
''off'') }}
'
- service: climate.set_hvac_mode
target:
entity_id: climate.my_ecobee
data:
hvac_mode: '{{ climate_restore_state }}'
- service: notify.adults
data:
message: clear_notification
data:
tag: front-door-open-warning
- alias: Furnace on if left off and cold forecast
id: furnace_on_if_left_off_cold_forecast
trigger:
- platform: time
at: '22:00:00'
- platform: time
at: 00:00:00
condition:
- condition: state
entity_id: climate.my_ecobee
state:
- 'off'
action:
- service: weather.get_forecasts
target:
entity_id: weather.tomorrow_io_home_nowcast
data:
type: hourly
response_variable: forecast
- condition: template
value_template: '{{ forecast[''weather.tomorrow_io_home_nowcast''].forecast |
map(attribute=''temperature'')| list | min < 10 }}'
- service: notify.mobile_app_michaels_iphone
data:
message: Furnace enabled, cold weather forecast
data:
tag: furnace-enabled-cold-notification
group: furnace-notification
- service: climate.set_hvac_mode
data:
hvac_mode: heat
target:
entity_id: climate.my_ecobee
- alias: CO2 High Notification
id: comfort_co2_high_notification
trigger:
- platform: numeric_state
entity_id: sensor.airthings_wave_111512_carbon_dioxide
above: 950
for:
hours: 1
condition:
- condition: state
entity_id: group.adults
state: home
action:
- service: notify.mobile_app_michaels_iphone
data:
message: CO2 is high, is HRV on?
data:
url: /lovelace/air-quality
clickAction: /lovelace/air-quality
tag: comfort-co2-high-notification
- alias: Set Doorbell Chime State
id: doorbell_set_doorbell_chime_state
mode: single
max_exceeded: silent
triggers:
- platform: state
entity_id:
- input_boolean.nap_mode
- input_boolean.quite_mode
- switch.master_white_noise
- schedule.doorbell_do_not_distrub
not_to:
- unavailable
- unknown
actions:
- choose:
- conditions:
- condition: state
entity_id:
- input_boolean.nap_mode
- input_boolean.quite_mode
- switch.master_white_noise
- schedule.doorbell_do_not_distrub
state: 'off'
sequence:
- service: select.select_option
target:
entity_id: select.front_door_chime_type
data:
option: Mechanical
- delay:
seconds: 10
- wait_template: '{{ is_state(''select.front_door_chime_type'', ''Mechanical'')
}}'
timeout:
minutes: 10
- if:
- '{{ not wait.completed }}'
then:
- service: select.select_option
target:
entity_id: select.front_door_chime_type
data:
option: Mechanical
- service: notify.mobile_app_michaels_iphone
data:
message: Check Doorbell Mechanical State
default:
- service: select.select_option
target:
entity_id: select.front_door_chime_type
data:
option: None
- alias: Doorbell notification Message
id: doorbell_notification_message
mode: single
max_exceeded: silent
triggers:
platform: state
entity_id: binary_sensor.front_door_doorbell
from: 'off'
to: 'on'
actions:
- service: camera.snapshot
continue_on_error: true
target:
entity_id: camera.front_door_low_resolution_channel
data:
filename: /media/doorbell/snapshot.jpg
- service: notify.adults
data:
title: Ding Dong
message: Someone is at the front door
data:
url: /dashboard-doorbell/doorbell
clickAction: dashboard-doorbell/doorbell
image: /media/local/doorbell/snapshot.jpg
tag: doorbell-notification
group: doorbell-group
actions:
- action: NOT_INTERESTED
title: Not interested
activationMode: background
authenticationRequired: true
destructive: true
behavior: default
- alias: Not Interested Message
id: doorbell_not_interested_message
triggers:
- platform: event
event_type: mobile_app_notification_action
event_data:
action: NOT_INTERESTED
- trigger: state
entity_id: input_button.sorry_not_interested
actions:
- service: tts.cloud_say
data:
entity_id: media_player.front_door_speaker
message: Sorry, not interested
cache: true
- delay:
seconds: 1
- action: text.set_value
target:
entity_id: text.front_door_doorbell
data:
value: Not interested
- delay:
seconds: 15
- action: automation.trigger
data:
skip_condition: true
target:
entity_id: automation.set_doorbell_message
- alias: Doorbell activated
id: doorbell_activated
mode: single
max_exceeded: silent
triggers:
- platform: state
entity_id: binary_sensor.front_door_doorbell
from: 'off'
to: 'on'
conditions:
- condition: state
entity_id: group.adults
state: home
- condition: state
entity_id: alarm_control_panel.master
state: disarmed
actions:
- parallel:
- service: media_player.media_pause
entity_id: media_player.living_room_tv
- choose:
- conditions:
- condition: template
value_template: '{{ now().month == 10 and now().day == 31 and now().hour
> 17 }}'
- condition: state
entity_id: input_boolean.nap_mode
state: 'off'
sequence:
- service: script.sonos_say
data:
entity_id:
- media_player.sonos_living_room
message: Trick or treat!
volume: 25
default:
- service: script.sonos_say
data:
entity_id:
- media_player.sonos_basement
- media_player.sonos_living_room
message: Someone is at the door
volume: 30
- service: script.blue_set_led
data:
color: '150'
effect: fast_blink
level: 70
duration: 60
entity_id:
- light.front_hall
- light.living_room_light
- light.back_deck_light
- light.main_stairs
- light.upstairs_hall
- light.main_bath_light
- light.basement_stairs
- delay:
seconds: 30
- alias: Halloween Doorbell Audio
id: doorbell_halloween_audio_message
mode: single
max_exceeded: silent
triggers:
- platform: state
entity_id: binary_sensor.front_door_doorbell
from: 'off'
to: 'on'
conditions:
- condition: time
after: '16:00:00'
before: '21:00:00'
- condition: template
value_template: '{{ now().month == 10 and now().day == 31 }}'
- condition: numeric_state
entity_id: sensor.home_nearest_distance
below: 500
actions:
- service: tts.cloud_say
data:
entity_id: media_player.front_door_speaker
message: Boo! Happy Halloween!
cache: true
- delay:
seconds: 60
- alias: Doorbell package detected
id: doorbell_package_detected
triggers:
- platform: state
entity_id: binary_sensor.front_door_package_detected
to: 'on'
actions:
- service: camera.snapshot
target:
entity_id: camera.front_door_package_camera
data:
filename: /media/doorbell/package.jpg
- service: notify.adults
data:
title: Package Detected
message: Check the front porch
data:
image: /media/local/doorbell/package.jpg
tag: doorbell-package-notification
group: doorbell-package
- alias: Set doorbell message
id: doorbell_set_message
max_exceeded: silent
triggers:
- platform: state
entity_id:
- switch.nap_mode
- input_boolean.quite_mode
- switch.master_white_noise
- schedule.doorbell_do_not_distrub
to:
- 'on'
- 'off'
- platform: time
at: '17:00:00'
actions:
- choose:
- conditions:
- condition: template
value_template: '{{ now().month == 10 and now().day == 31 }}'
- condition: numeric_state
entity_id: sensor.home_nearest_distance
below: 500
- condition: time
after: '17:00:00'
before: '21:00:00'
sequence:
- service: text.set_value
target:
entity_id: text.front_door_doorbell
data:
value: Trick or Treat!
- conditions:
- condition: state
entity_id:
- switch.nap_mode
- input_boolean.quite_mode
- switch.master_white_noise
- schedule.doorbell_do_not_distrub
match: any
state: 'on'
sequence:
- service: select.select_option
data:
option: DO NOT DISTURB
target:
entity_id: select.front_door_doorbell_text
default:
- service: select.select_option
data:
option: Default Message (WELCOME)
target:
entity_id: select.front_door_doorbell_text
- alias: Set doorbell chime on shutdown
id: 080e0639-daa4-4632-adcf-fd4be3b42f4c
triggers:
- platform: homeassistant
event: shutdown
conditions:
- condition: state
entity_id: input_boolean.nap_mode
state: 'off'
- condition: state
entity_id: input_boolean.quite_mode
state: 'off'
- condition: state
entity_id: switch.master_white_noise
state: 'off'
- condition: state
entity_id: schedule.doorbell_do_not_distrub
state: 'off'
actions:
- service: select.select_option
target:
entity_id: select.front_door_chime_type
data:
option: Mechanical
- alias: Save media power when not home
id: media_energy_saver_not_home
trigger:
- platform: state
entity_id: alarm_control_panel.master
to:
- armed_night
- armed_vacation
id: power_off
- platform: state
entity_id: sensor.current_hydro_time_of_use_state
to:
- Mid Peak
- On Peak
from:
- Off Peak
id: power_off
- platform: state
entity_id: alarm_control_panel.master
to:
- armed_away
for:
minutes: 30
id: power_off
- platform: state
entity_id: alarm_control_panel.master
to: disarmed
not_from: triggered
id: power_on
- platform: state
entity_id: sensor.current_hydro_time_of_use_state
to: Off Peak
id: power_on
- platform: time
at: '15:30:00'
id: power_on
- platform: state
entity_id: schedule.tv_power
to: 'on'
id: power_on
action:
choose:
- conditions:
- condition: trigger
id: power_off
- not:
- condition: state
entity_id: media_player.apple_tv_living_room
state: playing
- condition: state
entity_id: media_player.living_room_tv
state: 'on'
sequence:
- service: homeassistant.turn_off
entity_id: switch.entertainment_switch_relay
- conditions:
- condition: trigger
id: power_on
- condition: state
entity_id: alarm_control_panel.master
state: disarmed
- or:
- condition: state
entity_id: schedule.tv_power
state: 'on'
- condition: state
entity_id: calendar.ontario_holidays
state: 'on'
sequence:
- service: homeassistant.turn_on
entity_id: switch.entertainment_switch_relay
- alias: Save powerwall on holidays
id: energy_save_powerwall_on_holidays
triggers:
- platform: state
entity_id: schedule.holiday_powerwall
to: 'on'
id: son
- platform: state
entity_id: schedule.holiday_powerwall
to: 'off'
conditions:
- condition: state
entity_id: calendar.ontario_holidays
state: 'on'
actions:
- choose:
- conditions:
- condition: trigger
id: son
sequence:
- service: number.set_value
target:
entity_id: number.home_backup_reserve
data:
value: 100
- service: notify.mobile_app_michaels_iphone
data:
message: Powerwall set for holidays
data:
tag: powerwall
group: enery
default:
- service: number.set_value
target:
entity_id: number.home_backup_reserve
data:
value: 20
- service: notify.mobile_app_michaels_iphone
data:
message: Powerwall holidays off
data:
tag: powerwall
group: enery
- alias: Save power on grid outage
id: energy_save_power_grid_outage
triggers:
- platform: state
entity_id: binary_sensor.home_grid_status
from: 'on'
to: 'off'
id: power_loss
actions:
- service: homeassistant.turn_off
target:
entity_id:
- switch.basement_space_heater
- alias: Garage Left Open Notification
id: exterior_garage_left_open_notification
trigger:
- platform: state
entity_id: cover.garage
to: open
id: garage_open
- platform: state
entity_id: cover.garage
to: closed
id: garage_closed
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.garage_left_open
id: timer_fired
- platform: event
event_type: mobile_app_notification_action
event_data:
action: ACK_GARAGE
id: ack_garage
- platform: event
event_type: mobile_app_notification_action
event_data:
action: CLOSE_GARAGE
id: close_garage
action:
choose:
- conditions:
- condition: trigger
id: garage_open
sequence:
- service: timer.start
entity_id: timer.garage_left_open
- conditions:
- condition: trigger
id: timer_fired
- condition: state
entity_id: cover.garage
state: open
sequence:
- wait_for_trigger:
- platform: state
entity_id: binary_sensor.garage_motion
to: 'off'
for:
minutes: 10
- if:
- '{{ not wait.completed }}'
then:
- service: timer.start
entity_id: timer.garage_left_open
- stop: Motion in garage not continuing
- condition: state
entity_id: cover.garage
state: open
- service: timer.start
entity_id: timer.garage_left_open
- service: notify.mobile_app_michaels_iphone
data:
message: Garage Door Left Open
data:
tag: garage-door-open-alert
entity_id: camera.garage_low_resolution_channel
actions:
- action: CLOSE_GARAGE
title: Close Garage
activationMode: background
authenticationRequired: true
destructive: false
behavior: default
- action: ACK_GARAGE
title: Acknowledge Garage
activationMode: background
authenticationRequired: true
destructive: true
behavior: default
- conditions:
- or:
- condition: trigger
id: ack_garage
- condition: trigger
id: garage_closed
sequence:
- service: timer.cancel
entity_id: timer.garage_left_open
- service: notify.mobile_app_michaels_iphone
data:
message: clear_notification
data:
tag: garage-door-open-alert
- conditions:
- condition: trigger
id: close_garage
sequence:
- service: timer.cancel
entity_id: timer.garage_left_open
- service: cover.close_cover
entity_id: cover.garage
- alias: Exterior Lights on Evenings
id: exterior_lights_on_evenings
trigger:
- platform: numeric_state
entity_id: sun.sun
attribute: elevation
below: 0.25
- platform: state
entity_id: binary_sensor.front_door_person_detected
to: 'on'
for:
minutes: 2
condition:
- condition: numeric_state
entity_id: sun.sun
attribute: elevation
below: 0.25
action:
service: light.turn_on
entity_id: light.exterior_lights
- alias: Keep Exterior Lights on Evenings
id: exterior_keep_lights_on_evenings
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id:
- switch.front_porch
- switch.side_door
to: 'off'
for:
minutes: 2
condition:
- not:
- condition: template
value_template: '{{ now().month == 10 and now().day == 31 and now().hour > 17
}}'
- condition: numeric_state
entity_id: sun.sun
attribute: elevation
below: 0.25
- condition: time
after: '15:00:00'
before: '23:30:00'
action:
service: light.turn_on
entity_id: light.exterior_lights
- alias: Exterior Lights off Night, or sunrise
id: exterior_lights_off_overnight
trigger:
- platform: time
at: '23:30:00'
- platform: numeric_state
entity_id: sun.sun
attribute: elevation
above: 0.25
action:
- service: light.turn_off
entity_id: light.exterior_lights
- alias: Keep Exterior Lights off overnight if turned on outside normal hours
id: exterior_lights_off_outside_normal_hours
trigger:
- platform: state
entity_id: light.exterior_lights
to: 'on'
for:
hours: 1
condition:
- and:
- condition: time
after: '23:30:00'
before: 06:00:00
- condition: numeric_state
entity_id: sun.sun
attribute: elevation
below: 0.25
action:
- wait_template: '{{ is_state("binary_sensor.front_door_person_detected", "off")
}}'
- service: light.turn_off
entity_id: light.exterior_lights
- alias: Keep Exterior Lights off during daylight
id: exterior_lights_off_daylight
trigger:
- platform: state
entity_id: light.exterior_lights
to: 'on'
for:
minutes: 10
- platform: numeric_state
entity_id: sun.sun
attribute: elevation
above: 0.25
condition:
- condition: numeric_state
entity_id: sun.sun
attribute: elevation
above: 0.25
action:
- service: light.turn_off
entity_id: light.exterior_lights
- alias: Sync Exterior Lights
id: exterior_sync_exterior_lights
mode: single
max_exceeded: silent
trigger:
- platform: state
to: null
entity_id:
- light.front_porch
- light.side_door
condition:
- condition: template
value_template: '{{ trigger.to_state.state in ["off", "on"] }}'
action:
service: light.turn_{{ trigger.to_state.state }}
entity_id: light.exterior_lights
- alias: Turn on external lights, multiple triggers
id: exterior_exterior_lights_on_triggers
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: cover.garage
to: open
- platform: state
entity_id: lock.locks
to: unlocked
- platform: zone
entity_id:
- person.mike
- person.tiff
zone: zone.home
event: enter
- platform: state
entity_id: binary_sensor.doors
to: 'on'
- platform: state
entity_id: binary_sensor.front_door_doorbell
from: 'off'
to: 'on'
condition:
- condition: numeric_state
entity_id: sun.sun
attribute: elevation
below: 0.25
action:
- service: light.turn_on
entity_id: light.exterior_lights
- alias: Lock the side door when forgotten feeding the dog
id: exterior_lock_side_door_dog
trigger:
- platform: state
entity_id: lock.side_door
to: unlocked
for:
minutes: 1
- platform: state
entity_id: binary_sensor.side_door_open
to: 'off'
for:
seconds: 15
condition:
or:
- condition: time
after: 06:30:00
before: 08:00:00
- and:
- condition: time
after: '16:00:00'
before: '17:00:00'
- condition: state
entity_id: binary_sensor.workday_sensor
state: 'on'
action:
- wait_template: '{{ is_state(''binary_sensor.side_door_open'', ''off'') }}'
- service: lock.lock
entity_id: lock.side_door
- alias: Garage below freezeing warning
id: exterior_garage_below_freezing
trigger:
- platform: numeric_state
entity_id: sensor.garage_temperature
below: 2.0
action:
- service: notify.mobile_app_michaels_iphone
data:
message: 🚨 Garage temperature low! 🚨
- alias: Unlock front door when arriving home and opening garage
id: exterior_auto_unlock_front_door_if_garage_opened
mode: single
max_exceeded: silent
trigger:
- platform: zone
entity_id:
- person.mike
- person.tiff
zone: zone.home
event: enter
action:
- wait_for_trigger:
- platform: state
entity_id: cover.garage
to: open
not_from:
- unknown
- unavailable
timeout:
minutes: 15
continue_on_timeout: false
- service: lock.unlock
entity_id: lock.front_door
- alias: Lock Jammed Notification
id: exterior_lock_jammed_notification
mode: queued
max: 5
max_exceeded: silent
trigger:
- platform: state
entity_id:
- binary_sensor.front_door_lock_jammed
- binary_sensor.side_door_lock_jammed
from: 'off'
to: 'on'
for:
minutes: 5
actions:
- service: notify.mobile_app_michaels_iphone
data:
title: 🔓 Lock Jammed 🔓
message: '{{ trigger.to_state.name }}'
data:
tag: exterior-lock-jammed
- alias: Exiting Area with jammed lock
id: exterior_area_with_jammed_lock
triggers:
- platform: state
entity_id:
- device_tracker.sparky_location
- device_tracker.michaels_iphone
- device_tracker.tiffanys_iphone
to: away
conditions:
- condition: state
entity_id:
- binary_sensor.front_door_lock_jammed
- binary_sensor.side_door_lock_jammed
match: any
state: 'on'
actions:
- service: notify.mobile_app_michaels_iphone
data:
title: 🔓 Lock Jammed 🔓
message: '{{ trigger.to_state.name }}'
data:
tag: exterior-lock-jammed
push:
sound:
name: default
critical: 1
volume: 1.0
- alias: Girls Bathroom Night Light Timer Control
id: girls_bathroom_night_light_timer_control
triggers:
- platform: state
entity_id: binary_sensor.bathroom_night_light_occupancy
to:
- 'on'
- platform: state
entity_id: binary_sensor.bathroom_night_light_occupancy
to:
- 'off'
for:
minutes: 5
- platform: state
entity_id: binary_sensor.nursery_door
to: 'off'
for:
minutes: 10
conditions:
- condition: time
after: '22:00:00'
before: 06:00:00
- condition: state
entity_id: input_boolean.nap_mode
state: 'on'
actions:
- if:
- condition: template
value_template: '{{ trigger.to_state.state == ''off'' }}'
then:
- service: timer.start
target:
entity_id: timer.girls_bathroom_nightlight_off
else:
- service: timer.cancel
target:
entity_id: timer.girls_bathroom_nightlight_off
- alias: Girls Bathroom Night Light
id: girls_bathroom_night_light
triggers:
- platform: sun
event: sunset
id: turn_on
- platform: numeric_state
entity_id: sun.sun
attribute: elevation
below: 2.0
id: turn_on
- platform: state
entity_id: group.adults
from: not_home
to: home
id: turn_on
- platform: state
entity_id:
- binary_sensor.nursery_door
- binary_sensor.bathroom_night_light_occupancy
- input_boolean.nap_mode
to: 'on'
id: turn_on
- platform: state
entity_id: input_boolean.nap_mode
to: 'on'
id: turn_on
- platform: numeric_state
entity_id: sun.sun
attribute: elevation
above: 2.0
id: turn_off
- platform: time
at: '22:00:00'
id: turn_off
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.girls_bathroom_nightlight_off
id: turn_off
conditions:
- not:
- condition: state
entity_id: alarm_control_panel.master
state:
- armed_vacation
- armed_away
actions:
- choose:
- conditions:
- condition: numeric_state
entity_id: sun.sun
attribute: elevation
below: 2.0
- condition: trigger
id: turn_on
sequence:
- service: light.turn_on
target:
entity_id: light.bathroom_night_light
data:
brightness_pct: 20
rgb_color:
- 255
- 164
- 8
- conditions:
- condition: trigger
id: turn_off
sequence:
- wait_template: '{{ is_state("binary_sensor.bathroom_night_light_occupancy",
"off") }}'
- service: light.turn_off
target:
entity_id: light.bathroom_night_light
- alias: Faux Motion for Nursery Door Event
id: homekit_faux_event_nursery
trigger:
- platform: state
entity_id: binary_sensor.nursery_door
to: 'on'
condition:
- condition: state
entity_id: input_boolean.nap_mode
state: 'on'
for:
minutes: 5
action:
- event: homekit_faux_camera_event
- alias: Lets Encrypt Cert Refresh
id: infra_le_cert_refresh
trigger:
- platform: time
at: 03:12:00
action:
- service: hassio.addon_restart
data:
addon: core_letsencrypt
- delay:
minutes: 5
- service: hassio.addon_restart
data:
addon: core_nginx_proxy
- alias: Clear Switch LED signals on start
id: inovelli_clear_led_start
trigger:
- platform: homeassistant
event: start
action:
- service: script.blue_set_led
data:
color: '255'
effect: clear_effect
level: 70
duration: 65
entity_id: "{{ states.light\n | map(attribute=\"entity_id\")\n | select('is_device_attr',\
\ 'model', '2-in-1 switch + dimmer (VZM31-SN)')\n | list}}\n"
- alias: Update Complications On Specific State changes
id: update_complications_state_changes
triggers:
- platform: state
entity_id:
- cover.garage
- lock.front_door
- lock.side_door
- input_boolean.nap_mode
to: null
actions:
- service: notify.mobile_app_michaels_iphone
data:
message: update_complications
- alias: Pick up girls reminder
id: pick_up_girls_reminder
mode: single
max_exceeded: silent
trigger:
- platform: zone
entity_id:
- device_tracker.michaels_iphone
- device_tracker.tiffanys_iphone
zone: zone.school
event: enter
id: enter_pickup_zone
- platform: zone
entity_id:
- device_tracker.michaels_iphone
- device_tracker.tiffanys_iphone
zone: zone.camp
event: enter
id: enter_camp_zone
- platform: time
at: input_datetime.pickup_girls_reminder
id: pickup_reminder
condition:
- condition: state
entity_id: binary_sensor.workday_sensor
state: 'on'
- condition: time
after: 06:00:00
before: '16:00:00'
action:
- choose:
- conditions:
- or:
- and:
- condition: trigger
id: enter_pickup_zone
- condition: template
value_template: '{{ now().month >= 9 or now().month <= 6 }}'
- condition: trigger
id: enter_camp_zone
sequence:
if:
- condition: trigger
id: enter_camp_zone
then:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.pickup_girls_reminder
data:
date: '{{ now().strftime(''%Y-%m-%d'') }}'
time: '{{ states(''input_datetime.camp_pickup_time'') }}'
else:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.pickup_girls_reminder
data:
date: '{{ now().strftime(''%Y-%m-%d'') }}'
time: '15:45:00'
- conditions:
- condition: trigger
id: pickup_reminder
sequence:
- service: notify.mobile_app_michaels_iphone
data:
title: Pickup Reminder
message: Pickup the twins!
data:
tag: pickup-reminder
group: pickup-notification
push:
sound:
name: default
critical: 1
volume: 0.5
- alias: Laundry Notification
id: laundry_simple_laundry_notification
mode: queued
max: 5
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.washer_status
from: 'on'
to: 'off'
id: notify_to_move
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.laundry_done
id: notify_to_move
- platform: state
entity_id: group.adults
to: home
for:
minutes: 10
id: arrived_home
- platform: event
event_type: mobile_app_notification_action
event_data:
action: laundry_moved
id: laundry_moved
- platform: state
entity_id: binary_sensor.dryer_status
to: 'on'
for:
minutes: 5
id: laundry_moved
- platform: state
entity_id: binary_sensor.washer_status
from: 'off'
to: 'on'
for:
minutes: 15
id: laundry_moved
action:
- choose:
- conditions:
- condition: trigger
id: notify_to_move
sequence:
- service: timer.start
entity_id: timer.laundry_done
- if:
- condition: state
entity_id: binary_sensor.washer_status
state: 'on'
then:
- stop: Washer is running, likely moved.
- service: notify.adults
data:
message: clear_notification
data:
tag: laundry-done-notification
- repeat:
for_each: '{{ states.person | selectattr(''state'', ''eq'', ''home'') |
map(attribute=''attributes.notifier'') | list}}
'
sequence:
- service: '{{ repeat.item }}'
data:
title: Laundry is done!
message: Laundry cycle complete
data:
tag: laundry-done-notification
url: /dashboard-laundry/home
clickAction: /dashboard-laundry/home
group: laundry-notification-group
actions:
- action: laundry_moved
title: Laundry Moved
authenticationRequired: true
destructive: true
behavior: default
- if:
- condition: state
entity_id: group.adults
state: home
then:
- service: script.blue_set_led
data:
color: '255'
effect: slow_chase
level: 70
duration: 65
entity_id:
- light.front_hall
- light.living_room_light
- light.back_deck_light
- light.main_stairs
- light.upstairs_hall
- light.main_bath_light
- light.basement_stairs
- light.basement_room_light_dimmer
- conditions:
- condition: trigger
id: laundry_moved
sequence:
parallel:
- service: timer.cancel
entity_id: timer.laundry_done
- service: notify.adults
data:
message: clear_notification
data:
tag: laundry-done-notification
- service: script.blue_set_led
data:
color: '255'
effect: clear_effect
level: 70
duration: 65
entity_id:
- light.front_hall
- light.living_room_light
- light.back_deck_light
- light.main_stairs
- light.upstairs_hall
- light.main_bath_light
- light.basement_stairs
- conditions:
- condition: trigger
id: arrived_home
- condition: state
entity_id: timer.laundry_done
state: active
sequence:
- service: timer.finish
entity_id: timer.laundry_done
- alias: Turn living room lights on when dark
id: living_room_lights_on_when_dark
trigger:
- platform: state
entity_id: binary_sensor.living_room_occupancy
to: 'on'
condition:
- condition: state
entity_id: light.kitchen_island
state: 'off'
for:
minutes: 15
- condition: numeric_state
entity_id: sensor.living_room_motion_illuminance
below: 20
- condition: state
entity_id: group.adults
state: home
- condition: state
entity_id: alarm_control_panel.master
state: disarmed
action:
- service: light.turn_on
entity_id: light.kitchen_island
- alias: Front Hall Lock and Garage Control
id: living_front_hall_lock_garage_control
trigger:
- trigger: device
domain: mqtt
device_id: 949dd8fd2c9e4403656fc84e75de9607
type: action
subtype: up_triple
id: lock_unlock
- trigger: device
domain: mqtt
device_id: 949dd8fd2c9e4403656fc84e75de9607
type: action
subtype: up_quadruple
id: garage_up
- trigger: device
domain: mqtt
device_id: 949dd8fd2c9e4403656fc84e75de9607
type: action
subtype: down_triple
id: lock_lock
- trigger: device
domain: mqtt
device_id: 949dd8fd2c9e4403656fc84e75de9607
type: action
subtype: down_quadruple
id: garage_down
action:
- choose:
- conditions:
- condition: trigger
id: lock_unlock
sequence:
- service: lock.unlock
entity_id: lock.front_door
- conditions:
- condition: trigger
id: lock_lock
sequence:
- service: lock.lock
entity_id: lock.front_door
- conditions:
- condition: trigger
id: garage_up
sequence:
- service: cover.open_cover
entity_id: cover.garage
- conditions:
- condition: trigger
id: garage_down
sequence:
- service: cover.close_cover
entity_id: cover.garage
- alias: Garage Control with Kitchen Switch
id: living_garage_control_kitchen_switch
trigger:
- trigger: device
domain: mqtt
device_id: e97867a8181f2b6c5aef264706584f91
type: action
subtype: up_triple
id: garage_up_trigger
- trigger: device
domain: mqtt
device_id: e97867a8181f2b6c5aef264706584f91
type: action
subtype: down_triple
id: garage_down_trigger
action:
- choose:
- conditions:
- condition: trigger
id: garage_up_trigger
sequence:
- service: cover.open_cover
entity_id: cover.garage
- conditions:
- condition: trigger
id: garage_down_trigger
sequence:
- service: cover.close_cover
entity_id: cover.garage
- alias: Lock Control with Living Switch
id: living_front_lock_control_living_switch
trigger:
- trigger: device
domain: mqtt
device_id: c2fce543d85f8ffccd89691a42f784d9
type: action
subtype: up_triple
id: garage_up_trigger
- trigger: device
domain: mqtt
device_id: c2fce543d85f8ffccd89691a42f784d9
type: action
subtype: down_triple
id: garage_down_trigger
action:
- choose:
- conditions:
- condition: trigger
id: door_unlock_trigger
sequence:
- service: lock.unlock
entity_id: lock.front_door
- conditions:
- condition: trigger
id: door_lock_trigger
sequence:
- service: lock.lock
entity_id: lock.front_door
- alias: Living room light group multitap control
id: living_room_light_group_multitap_control
mode: single
max_exceeded: silent
triggers:
- trigger: device
domain: mqtt
device_id: c2fce543d85f8ffccd89691a42f784d9
type: action
subtype: up_double
id: turn_on
- trigger: device
domain: mqtt
device_id: c2fce543d85f8ffccd89691a42f784d9
type: action
subtype: down_double
id: turn_off
- trigger: device
domain: mqtt
device_id: e97867a8181f2b6c5aef264706584f91
type: action
subtype: up_double
id: turn_on
- trigger: device
domain: mqtt
device_id: e97867a8181f2b6c5aef264706584f91
type: action
subtype: down_double
id: turn_off
action:
- choose:
- conditions:
- condition: trigger
id: turn_on
sequence:
- service: light.turn_on
entity_id: light.living_room_light_group
- conditions:
- condition: trigger
id: turn_off
sequence:
- service: light.turn_off
entity_id: light.living_room_light_group
- alias: Turn on lights when arriving home
id: living_room_turn_on_lights_arrival_dark
trigger:
- platform: state
entity_id: group.adults
to: home
condition:
- condition: numeric_state
entity_id: sun.sun
attribute: elevation
below: 2.0
- condition: state
entity_id: binary_sensor.guests_present
state: 'off'
action:
- wait_for_trigger:
- platform: state
entity_id: binary_sensor.front_door
to: 'on'
timeout:
minutes: 30
continue_on_timeout: false
- parallel:
- if:
- not:
- condition: state
entity_id: media_player.apple_tv_living_room
state: playing
then:
- service: light.turn_on
entity_id: light.living_room_light_group
- service: light.turn_on
entity_id: light.front_hall
- alias: Set Main floor Lights default local level
id: main_floor_light_default_local_level
mode: single
max_exceeded: silent
trigger:
- platform: sun
event: sunset
variables:
default_level: 80
- platform: state
entity_id: input_boolean.nap_mode
to: 'on'
variables:
default_level: 80
- platform: sun
event: sunrise
variables:
default_level: 200
- platform: state
entity_id: alarm_control_panel.master
to: armed_night
variables:
default_level: 60
action:
- service: script.blue_set_default_level
data:
default_level: '{{ default_level | default(100) }}'
entity_id:
- light.kitchen_light
- light.living_room_light
- light.front_hall
- alias: Front door open turns on front hall light
id: main_floor_front_door_turn_on_hall_light
mode: single
max_exceeded: silent
triggers:
- platform: state
entity_id: binary_sensor.front_door
to: 'on'
conditions:
- condition: numeric_state
entity_id: sun.sun
attribute: elevation
below: 5.0
- condition: time
before: '21:30:00'
actions:
- service: light.turn_on
entity_id: light.front_hall
- alias: Turn off front hall lights
id: main_floor_front_hall_light_off_high_sun_elevation
triggers:
- platform: numeric_state
entity_id: sun.sun
attribute: elevation
above: 10.0
actions:
- service: light.turn_off
entity_id:
- light.front_hall
- alias: Set Adaptive on Living Room Late Mornings
id: cd72c85e-327a-4958-8e2b-fef856573302
trigger:
- platform: time
at: 09:30:00
condition:
- condition: state
entity_id: light.living_room_light_group
state: 'on'
action:
- service: adaptive_lighting.apply
data:
entity_id: switch.adaptive_lighting_adapt_brightness_living_room
transition: 90
- alias: Lock Status Change
id: lock_status_change
trigger:
- platform: event
event_type: zwave_js_notification
event_data:
command_class: 113
type: 6
event: 6
condition:
- condition: state
entity_id: person.mike
state: not_home
action:
service: notify.mobile_app_michaels_iphone
data:
title: Lock Event
message: '{% set user_slot = trigger.event.data.parameters.userId %} {% if user_slot
== 1 %} {% set user = "Mike" %} {% elif user_slot == 2 %} {% set user = "Dad"
%} {% elif user_slot == 3 %} {% set user = "Brendan" %} {% elif user_slot
== 4 %} {% set user = "Tiff" %} {% elif user_slot == 5 %} {% set user = "Lisa"
%} {% elif user_slot == 15 %} {% set user = "Cleaners" %} {% endif %} Unlocked{%
if user is defined %} by {{user}}{% endif %}
'
- alias: Secure House Evenings
id: lock_secure_house_evenings
trigger:
- platform: time
at: '22:30:00'
- platform: state
entity_id:
- lock.locks
to: unlocked
for:
minutes: 5
condition:
condition: time
after: '22:25:00'
before: 07:00:00
action:
- parallel:
- sequence:
- wait_template: '{{ is_state(''binary_sensor.front_door'', ''off'') }}'
- service: lock.lock
entity_id: lock.front_door
- sequence:
- wait_template: '{{ is_state(''binary_sensor.side_door_open'', ''off'') }}'
- service: lock.lock
entity_id: lock.side_door
- alias: Enable Cleaners Lock Code
id: lock_enable_cleaner_code
mode: queued
trigger:
- platform: calendar
event: start
entity_id: calendar.house_planning
offset: -03:00:00
id: set_lock
- platform: calendar
event: start
entity_id: calendar.house_planning
id: set_lock
- platform: calendar
event: end
entity_id: calendar.house_planning
id: clear_lock
condition:
- condition: template
value_template: '{{ ''Cleaners'' in trigger.calendar_event.summary}}'
action:
choose:
- conditions:
- condition: trigger
id: set_lock
sequence:
- service: zwave_js.set_lock_usercode
data:
code_slot: '15'
usercode: secret cleaners_door_code
entity_id: lock.front_door
- service: notify.mobile_app_michaels_iphone
data:
message: Setting cleaners lock code
data:
tag: cleaners-code
- service: alarm_control_panel.alarm_disarm
target:
entity_id: alarm_control_panel.master
- conditions:
- condition: trigger
id: clear_lock
sequence:
- service: zwave_js.clear_lock_usercode
data:
code_slot: '15'
entity_id: lock.front_door
- service: notify.mobile_app_michaels_iphone
data:
message: Clearing cleaners lock code
data:
tag: cleaners-code
- choose:
- conditions:
- condition: state
entity_id: group.presence_home
state: not_home
sequence:
- if:
- condition: numeric_state
entity_id: sensor.home_nearest_distance
above: 55000
then:
- service: alarm_control_panel.alarm_arm_vacation
target:
entity_id: alarm_control_panel.master
else:
- service: alarm_control_panel.alarm_arm_away
target:
entity_id: alarm_control_panel.master
- alias: Lock doors when nearby but not on wifi
id: lock_secure_house_nearby_but_offline
trigger:
- platform: state
entity_id:
- device_tracker.mikeiphone14_unifi
- device_tracker.tiffanys_iphone_unifi
to: not_home
for:
minutes: 10
condition:
- condition: state
entity_id: group.adults
state: home
- condition: state
entity_id:
- device_tracker.mikeiphone14_unifi
- device_tracker.tiffanys_iphone_unifi
state: not_home
- condition: state
entity_id: lock.locks
state: unlocked
action:
- service: notify.mobile_app_michaels_iphone
data:
message: Wifi Auto Lock Triggered
- service: lock.lock
entity_id: lock.locks
- alias: Set Main Bath Default Local Level for Light
id: main_bath_set_default_local_level
trigger:
- platform: sun
event: sunset
variables:
default_level: 60
- platform: sun
event: sunrise
variables:
default_level: 254
- platform: state
entity_id: alarm_control_panel.master
to: armed_night
variables:
default_level: 20
action:
- service: script.blue_set_default_level
data:
default_level: '{{ default_level | default(100) }}'
entity_id:
- light.main_bath_light
- alias: Dim Main Bath Light for Shower
id: main_bath_time_light_shower
trigger:
- platform: state
entity_id: light.main_bath_light
to: 'on'
- platform: time
at: '21:30:30'
condition:
- condition: state
entity_id: light.main_bath_light
state: 'on'
- condition: time
after: '21:30:00'
action:
- service: light.turn_on
target:
entity_id: light.main_bath_light
data:
brightness_pct: 3
transition: 10
- alias: Main Bath Full Brightness
id: main_bath_full_brightness
triggers:
- trigger: device
domain: mqtt
device_id: e3bc901892c55fbcaa6dd42876632c35
type: action
subtype: up_double
actions:
- service: light.turn_on
target:
entity_id: light.main_bath_light
data:
brightness_pct: 100
- alias: Main Bath Fan on for humidity
id: main_bath_on_humidity
triggers:
- platform: numeric_state
entity_id: sensor.bathroom_humidity_derivative
above: 1
conditions:
- condition: state
entity_id: group.adults
state: home
actions:
- action: notify.mobile_app_michaels_iphone
data:
message: Shower fan should run
- id: monitoring_healthcheck
alias: Healthchecks monitoring outbound call
description: Send a ping to Healthcheck every minute
mode: single
trigger:
platform: time_pattern
minutes: /5
action:
- service: rest_command.healthcheck
- alias: Morning Wake Up Sequence
id: mornings_wake_up_sequence
mode: single
max_exceeded: silent
trigger:
- platform: event
event_type: ios_wakeup_event
- platform: state
entity_id: input_boolean.nap_mode
to: 'off'
- platform: state
entity_id: binary_sensor.living_room_occupancy
to: 'on'
condition:
- condition: state
entity_id: group.adults
state: home
- condition: time
after: 05:00:00
before: 09:00:00
- or:
- condition: numeric_state
entity_id: sun.sun
attribute: elevation
below: 3.0
- condition: numeric_state
entity_id: sensor.tomorrow_io_home_cloud_cover
above: 65
action:
- service: homeassistant.turn_on
entity_id:
- light.kitchen_island
- switch.christmas_tree
- wait_template: '{{ is_state(''binary_sensor.living_room_occupancy'', ''on'') }}'
timeout:
hours: 1
continue_on_timeout: false
- service: light.turn_on
target:
entity_id:
- light.kitchen_light
- light.living_room_light
data:
brightness_pct: 28
transition: 120
- alias: Nap Mode Button Toggle
id: nursery_nap_mode_toggle
mode: single
max_exceeded: silent
triggers:
- trigger: device
domain: mqtt
device_id: 1cb9a601720330d677b308f3d186b9ff
type: action
subtype: single
actions:
- service: homeassistant.toggle
entity_id:
- input_boolean.nap_mode
- delay:
seconds: 1
- alias: Nursery LED On
mode: single
max_exceeded: silent
id: nursery_led_on
triggers:
- trigger: device
domain: mqtt
device_id: 1ccea5c5991d06dc7b15dd83b69832e4
type: action
subtype: 'on'
actions:
- service: homeassistant.turn_on
entity_id: switch.nursery_power_loss_gate
- wait_template: '{{ not is_state("light.nursery_led", "unavailable") }}'
- choose:
- conditions:
- condition: state
entity_id: input_boolean.nap_mode
state: 'off'
sequence:
- service: script.led_strip_on
data:
scene_id: scene.nursery_led_on
- conditions:
- condition: state
entity_id: input_boolean.nap_mode
state: 'on'
sequence:
- service: script.led_strip_on
data:
scene_id: scene.nursery_led_on_low
- alias: Nursery LED Off
id: nursery_led_off
triggers:
- trigger: device
domain: mqtt
device_id: 1ccea5c5991d06dc7b15dd83b69832e4
type: action
subtype: 'off'
- platform: sun
event: sunrise
offset: +02:00:00
actions:
- wait_template: '{{ not is_state("light.nursery_led", "unavailable") }}'
- service: light.turn_off
data:
entity_id:
- light.nursery_led
- alias: Set Nap Accessories
id: nursery_set_nap_accessories
triggers:
platform: state
entity_id: input_boolean.nap_mode
actions:
- choose:
- conditions:
- condition: state
entity_id: input_boolean.nap_mode
state: 'on'
sequence:
- service: scene.turn_on
entity_id: scene.baby_nap_on
- service: media_player.volume_set
data:
volume_level: 0.15
entity_id: media_player.sonos_living_room
- conditions:
- condition: state
entity_id: input_boolean.nap_mode
state: 'off'
sequence:
- choose:
- conditions:
- condition: time
after: '17:00:00'
before: 08:30:00
sequence:
- service: scene.turn_on
entity_id: scene.baby_nap_off
- service: script.led_strip_on
data:
scene_id: scene.nursery_led_on
default:
- service: scene.turn_on
entity_id: scene.baby_nap_off
- service: light.turn_on
entity_id: light.nursery_light
- alias: Nursery Humidifier on evenings
id: nursery_humidifer_evenings
triggers:
- platform: state
entity_id: input_boolean.nap_mode
from: 'off'
to: 'on'
id: manual_on
- platform: time
at: '19:00:00'
id: early_on
conditions:
or:
- condition: trigger
id: manual_on
- and:
- condition: trigger
id: early_on
- condition: state
entity_id: group.adults
state: home
actions:
- service: homeassistant.turn_on
entity_id: fan.nursery_humidifier
- alias: Girls Fan Control
id: girls_fan_control
triggers:
- platform: state
entity_id: input_boolean.nap_mode
to: 'on'
id: nap_on
- platform: state
entity_id: alarm_control_panel.master
from: armed_vacation
not_to:
- unknown
- unavailable
- triggered
variables:
fan_speed_percentage: 33
- platform: numeric_state
entity_id: sensor.girls_room_temperature
above: 22.0
below: 25
variables:
fan_speed_percentage: 33
- platform: numeric_state
entity_id: sensor.girls_room_temperature
above: 24.9
variables:
fan_speed_percentage: 66
- platform: numeric_state
entity_id: sun.sun
attribute: azimuth
above: 150
- platform: numeric_state
entity_id: sensor.girls_room_temperature
below: 22.5
id: force_off
conditions:
- not:
- condition: state
entity_id: sensor.season
state: winter
- condition: state
entity_id: alarm_control_panel.master
state: armed_vacation
- condition: state
entity_id: climate.my_ecobee
state: heat
- condition: time
after: '11:00:00'
actions:
- choose:
- conditions:
- condition: trigger
id: force_off
sequence:
- service: fan.turn_off
target:
entity_id: fan.girls_ceiling_fan
- conditions:
- or:
- condition: numeric_state
entity_id: weather.tomorrow_io_home_nowcast
attribute: temperature
above: 18
- condition: numeric_state
entity_id: sensor.girls_room_temperature
above: 21
sequence:
- if:
- condition: trigger
id: nap_on
- condition: numeric_state
entity_id: sensor.girls_room_temperature
above: 25
then:
- service: fan.turn_on
target:
entity_id: fan.girls_ceiling_fan
data:
percentage: 66
else:
- service: fan.turn_on
target:
entity_id: fan.girls_ceiling_fan
data:
percentage: '{{ fan_speed_percentage | default(33) }}'
- alias: Nursery Temperature Warning
id: nursery_temp_warning
triggers:
- platform: numeric_state
entity_id: sensor.girls_room_temperature
below: 17
for:
minutes: 30
- platform: numeric_state
entity_id: sensor.girls_room_temperature
above: 25
for:
minutes: 10
conditions:
- condition: state
entity_id: input_boolean.nap_mode
state: 'on'
actions:
- repeat:
for_each: '{{ states.person | selectattr(''state'', ''eq'', ''home'') | map(attribute=''attributes.notifier'')
| list}}
'
sequence:
- service: '{{ repeat.item }}'
data:
title: Nursery Temperature Warning
message: 'Temperature {% if trigger.below != None %}Low{% else %}High{%
endif %}: {{ trigger.to_state.state }}
'
data:
url: /lovelace/girls-room
clickAction: /lovelace/girls-room
tag: nursery-temp-warning
group: nursery-notification
- alias: Turn nursery off if forgotten
id: nursery_off_if_forgotten
mode: queued
max: 15
triggers:
- platform: template
value_template: '{{ is_state(''binary_sensor.girls_room_camera_motion'', ''off'')
and is_state(''binary_sensor.girls_room_occupancy'', ''off'') }}'
id: timer_start
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.girls_lights_off
id: timer_finished
- platform: state
entity_id: light.girls_fan
to: 'on'
id: cancel_timer
conditions:
- or:
- condition: state
entity_id: light.nursery_light
state: 'on'
- condition: state
entity_id: light.nursery_led
state: 'on'
- condition: state
entity_id: input_boolean.nap_mode
state: 'off'
- condition: time
before: '19:00:00'
actions:
- choose:
- conditions:
- condition: trigger
id: cancel_timer
sequence:
- service: timer.cancel
entity_id: timer.girls_lights_off
- conditions:
- condition: trigger
id: timer_start
sequence:
- service: timer.start
entity_id: timer.girls_lights_off
- conditions:
- condition: trigger
id: timer_finished
- or:
- condition: state
entity_id: light.nursery_light
state: 'on'
- condition: state
entity_id: light.nursery_led
state: 'on'
sequence:
- service: light.turn_on
entity_id: light.nursery_led
- delay: 10
- service: light.turn_off
entity_id: light.nursery_light
- delay: 30
- service: light.turn_off
entity_id: light.nursery_led
- alias: Turn off nursery accessories if forgotten
id: nursery_turn_off_white_noise_forgotten
triggers:
- platform: state
entity_id:
- switch.nursery_white_noise
- fan.nursery_humidifier
to: 'on'
for:
minutes: 30
conditions:
- condition: time
before: '17:00:00'
- condition: state
entity_id: switch.nap_mode
state: 'off'
actions:
- service: homeassistant.turn_off
target:
entity_id: '{{ trigger.entity_id }}'
- alias: Turn off nap mode via light switch
id: nursery_nap_off_via_lightswitch
triggers:
- platform: state
entity_id: light.nursery_light
from: 'off'
to: 'on'
conditions:
- condition: state
entity_id: input_boolean.nap_mode
state: 'on'
actions:
- service: input_boolean.turn_off
entity_id: input_boolean.nap_mode
- alias: Notify if door left open during nap
id: nursery_nap_on_door_open
triggers:
- platform: state
entity_id: binary_sensor.nursery_door
to: 'on'
for:
minutes: 10
id: left_open
- platform: state
entity_id: binary_sensor.nursery_door
to: 'off'
for:
minutes: 5
conditions:
- condition: state
entity_id: input_boolean.nap_mode
state: 'on'
- not:
- condition: time
after: 01:30:00
before: 07:00:00
actions:
- if:
- condition: trigger
id: left_open
then:
- repeat:
for_each: '{{ states.person | selectattr(''state'', ''eq'', ''home'') | map(attribute=''attributes.notifier'')
| list}}
'
sequence:
- service: '{{ repeat.item }}'
data:
title: Nursery Door Left Open
message: Door is Open
data:
url: /lovelace/girls-room
clickAction: /lovelace/girls-room
tag: nursery-door-open-warning
group: nursery-notification
else:
- service: notify.adults
data:
message: clear_notification
data:
tag: nursery-door-open-warning
- alias: Quiet mode control
id: nursery_quite_mode_control
triggers:
- platform: time
at: '19:00:00'
id: quite_on
- platform: state
entity_id: input_boolean.nap_mode
to: 'on'
id: quite_on
- platform: time
at: 08:00:00
id: quite_off
- platform: state
entity_id: input_boolean.nap_mode
to: 'off'
id: quite_off
- platform: state
entity_id: light.nursery_led
to: null
id: led_control
actions:
- choose:
- conditions:
- condition: trigger
id: quite_on
sequence:
- service: homeassistant.turn_on
entity_id: input_boolean.quite_mode
- conditions:
- condition: trigger
id: quite_off
sequence:
- service: homeassistant.turn_off
entity_id: input_boolean.quite_mode
- conditions:
- condition: trigger
id: led_control
- condition: time
after: '18:30:00'
- condition: template
value_template: '{{ trigger.to_state.state in [''off'', ''on''] }}'
sequence:
- service: homeassistant.turn_{{ trigger.to_state.state }}
entity_id: input_boolean.quite_mode
- alias: Turn on nap mode if forgotten
id: nursery_nap_mode_on_forgotten
triggers:
- platform: state
entity_id: binary_sensor.nursery_door
to: 'off'
for:
minutes: 1
conditions:
- condition: time
after: '19:30:00'
- condition: state
entity_id: light.nursery_light
state: 'off'
actions:
- service: homeassistant.turn_on
entity_id: input_boolean.nap_mode
- alias: Nursey Door Open During Sleep
id: nursery_door_open_during_sleep
mode: single
max_exceeded: silent
triggers:
- platform: state
entity_id: binary_sensor.nursery_door
to: 'on'
conditions:
- condition: state
entity_id: input_boolean.nap_mode
state: 'on'
for:
minutes: 10
- condition: state
entity_id: group.adults
state: home
- not:
- condition: time
after: 01:30:00
before: 07:00:00
actions:
- repeat:
for_each: '{{ states.person | selectattr(''state'', ''eq'', ''home'') | map(attribute=''attributes.notifier'')
| list}}
'
sequence:
- service: '{{ repeat.item }}'
data:
title: Nursery Door Opened!
message: 'Someone has left the nursery
'
data:
url: /lovelace/girls-room
clickAction: /lovelace/girls-room
tag: nursery-escape-warning
group: nursery-notification
- choose:
- conditions:
- condition: state
entity_id: media_player.apple_tv_living_room
state: playing
sequence:
- service: media_player.media_pause
entity_id: media_player.apple_tv_living_room
- delay:
minutes: 3
- alias: Set the girls wakeup time
id: nursery_set_girls_wakeup_time
triggers:
- platform: time
at: 09:00:00
actions:
- service: calendar.get_events
target:
entity_id: calendar.ontario_holidays
data:
duration:
hours: 24
response_variable: holidays
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.girls_wakeup_time
data:
time: "{%- if holidays[\"calendar.ontario_holidays\"][\"events\"]| count > 0\
\ -%}\n 07:30:00\n{%- elif (now() + timedelta(hours=24)).isoweekday() in\
\ [6, 7] -%}\n 07:30:00\n{%- else -%}\n 07:00:00\n{%- endif -%}\n"
- alias: Let the girls out of bed
id: nursery_let_girls_out_of_bed_time_trigger
triggers:
- platform: time
at: input_datetime.girls_wakeup_time
conditions:
- or:
- condition: state
entity_id: group.adults
state: home
- condition: state
entity_id: binary_sensor.guests_present
state: 'on'
actions:
- wait_template: '{{ not is_state("light.nursery_led", "unavailable") }}'
- service: script.led_strip_on
data:
scene_id: scene.nursery_led_on
- alias: Reenable nursery light on power loss
id: nusery_led_strip_reenable
triggers:
- platform: state
entity_id: sensor.ups_status
from: Online
- platform: state
entity_id: input_boolean.nap_mode
to: 'off'
from: 'on'
- platform: time
at:
- input_datetime.girls_wakeup_time
- '18:30:00'
actions:
- wait_template: '{{ not is_state("switch.nursery_power_loss_gate", "unavailable")
}}'
- choose:
- conditions:
- condition: state
entity_id: input_boolean.nap_mode
state: 'off'
sequence:
- service: homeassistant.turn_on
entity_id: switch.nursery_power_loss_gate
- conditions:
- condition: state
entity_id: input_boolean.nap_mode
state: 'on'
- condition: time
after: 07:00:00
before: 08:00:00
sequence:
- service: homeassistant.turn_on
entity_id: switch.nursery_power_loss_gate
- alias: Show Nursery Camera on TV automatically
id: nursery_show_camera_automatically
triggers:
- platform: state
entity_id: input_boolean.nap_mode
to: 'on'
conditions:
not:
- condition: state
entity_id: media_player.apple_tv_living_room
state: playing
actions:
- service: switch.turn_on
entity_id: switch.entertainment_switch_relay
- service: homeassistant.turn_on
entity_id: remote.apple_tv_living_room
- service: remote.send_command
target:
entity_id: remote.apple_tv_living_room
data:
command: wakeup
- delay:
seconds: 30
- event: homekit_faux_camera_event
- delay:
seconds: 5
- service: remote.send_command
target:
entity_id: remote.apple_tv_living_room
data:
command: home
- alias: Set living room lighting when bedtime starts
id: nursery_turn_on_kitchen_lighting
triggers:
- platform: state
entity_id: input_boolean.nap_mode
to: 'on'
conditions:
- condition: time
after: '18:00:00'
actions:
- service: light.turn_on
entity_id:
- light.kitchen_island
- service: light.turn_off
target:
entity_id:
- light.living_room_light
- light.kitchen_light
data:
transition: 90
- alias: Girls Light Control
id: nursery_girls_light_control
mode: single
max_exceeded: silent
triggers:
- trigger: device
domain: mqtt
device_id: 619b1285a00b9c9b050cedb19e02d4c1
type: action
subtype: single
actions:
- choose:
- conditions:
- condition: state
entity_id: input_boolean.nap_mode
state: 'off'
- condition: time
before: '19:15:00'
sequence:
- service: light.toggle
entity_id: light.nursery_light
- service: light.turn_off
data:
entity_id:
- light.nursery_led
default:
- service: light.toggle
data:
entity_id:
- light.nursery_led
- service: light.turn_off
entity_id: light.nursery_light
- delay:
seconds: 5
- alias: Set warmer temperature for LED strip
id: nursery_warmer_temp_led
triggers:
- platform: time
at: '19:00:00'
- platform: state
entity_id: light.nursery_led
to: 'on'
conditions:
- condition: time
after: '18:00:00'
before: '21:00:00'
- condition: state
entity_id: light.nursery_led
state: 'on'
actions:
- service: light.turn_on
target:
entity_id: light.nursery_led
data:
brightness: 254
color_temp_kelvin: 2000
- alias: Turn on LED strip for bedtime routine
id: nursery_led_on_bedtime_routine
triggers:
- platform: state
entity_id: light.nursery_light
to: 'on'
conditions:
- condition: time
after: '18:00:00'
actions:
- service: light.turn_on
data:
entity_id:
- light.nursery_led
- service: scene.turn_on
entity_id: scene.nursery_led_on
- delay:
seconds: 1
- alias: Control hall lights at bedtime
id: girls_control_hall_lights_bedtime
mode: single
max_exceeded: silent
triggers:
- platform: state
entity_id: input_boolean.nap_mode
to: 'on'
actions:
- service: light.turn_off
entity_id: light.upstairs_hall
- if:
- condition: numeric_state
entity_id: sun.sun
attribute: elevation
below: 4.0
then:
- service: light.turn_on
entity_id: light.main_stairs
else:
- service: light.turn_off
entity_id: light.main_stairs
- alias: Turn off hall lights door open
id: girls_hall_lights_off_door_open
mode: restart
trace:
stored_traces: 50
triggers:
- platform: state
entity_id: binary_sensor.nursery_door
to: 'on'
not_from:
- unknown
- unavailable
id: lights_off
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.bedtime_stairs_light_off
id: lights_off
- platform: state
entity_id: binary_sensor.nursery_door
to: 'off'
not_from:
- unknown
- unavailable
id: lights_on
conditions:
- condition: state
entity_id: input_boolean.nap_mode
state: 'on'
actions:
- choose:
- conditions:
- condition: trigger
id: lights_off
sequence:
- service: light.turn_off
entity_id:
- light.main_stairs
- light.upstairs_hall
- service: timer.cancel
entity_id: timer.bedtime_stairs_light_off
- conditions:
- and:
- condition: trigger
id: lights_on
- condition: time
after: '18:30:00'
before: '21:45:00'
sequence:
- delay:
seconds: 5
- service: light.turn_on
entity_id: light.main_stairs
- service: timer.start
entity_id: timer.bedtime_stairs_light_off
- alias: Link Switch LED to light state
id: girls_linked_led_to_light_state
mode: restart
triggers:
- platform: state
entity_id: light.girls_fan
to:
- 'on'
- 'off'
conditions:
- condition: template
value_template: '{{ trigger.to_state.state in ["off", "on"] }}'
actions:
service: light.turn_{{ trigger.to_state.state }}
entity_id: light.girls_room_switch
- alias: Mute Girls Speaker at bedtime
id: girls_mute_speaker_at_bedtime
triggers:
- platform: state
entity_id: input_boolean.nap_mode
to: 'on'
actions:
- service: media_player.volume_set
data:
volume_level: 0.01
entity_id: media_player.girls_room_sonos
- alias: Yoto Player Auto Play at bedtime
id: girls_yoto_player_bedtime
triggers:
- platform: state
entity_id: input_boolean.nap_mode
from: 'off'
to: 'on'
conditions:
not:
- condition: state
entity_id: media_player.bedroom_player
state: playing
actions:
- wait_template: '{{ states(''binary_sensor.bedroom_player_online'') not in [''offline'',
''unknown'', ''unavailable''] }}'
timeout:
minutes: 30
continue_on_timeout: false
- action: media_player.play_media
data:
media_content_id: 7AzCP-01-01
media_content_type: music
target:
entity_id: media_player.bedroom_player
- action: media_player.volume_set
data:
volume_level: 0.5
target:
entity_id: media_player.bedroom_player
- alias: Auto sleep timer for Yotos overnight
id: girls_yoto_auto_sleep_players_overnight
triggers:
- platform: state
entity_id:
- media_player.bedroom_player
- media_player.merry_and_vivs_player
to: playing
conditions:
- condition: time
after: '23:00:00'
before: 06:00:00
actions:
- action: number.set_value
data:
value: 900
target:
entity_id: "{% if trigger.entity_id == \"media_player.bedroom_player\" %}\n\
\ number.bedroom_player_sleep_timer_seconds_remaining\n{% else %}\n number.merry_and_vivs_player_sleep_timer_seconds_remaining\n\
{% endif %}\n"
- alias: Yoto Player Turn off automatically
id: girls_yoto_auto_off
triggers:
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.bedtime_stairs_light_off
actions:
- wait_template: '{{ is_state(''binary_sensor.girls_room_motion'', ''off'') and
is_state(''binary_sensor.girls_room_occupancy'', ''off'') }}'
timeout:
minutes: 90
continue_on_timeout: false
- action: media_player.media_stop
target:
entity_id:
- media_player.bedroom_player
- media_player.merry_and_vivs_player
- alias: Return Home Annoucement
id: return_home_annoucement
trigger:
platform: zone
entity_id:
- device_tracker.michaels_iphone
zone: zone.home
event: enter
condition:
- condition: state
entity_id: person.tiff
state: home
- condition: state
entity_id: input_boolean.nap_mode
state: 'on'
action:
- service: notify.mobile_app_tiffanys_iphone
data:
title: Mike is almost home
message: Keep Stella Quiet
- delay:
minutes: 15
mode: single
max_exceeded: silent
- alias: Tiff Returning Home Notification
id: tiff_return_home_notification
trigger:
platform: zone
entity_id: person.tiff
zone: zone.home
event: enter
condition:
- condition: state
entity_id: person.mike
state: home
for:
minutes: 10
action:
- service: notify.mobile_app_michaels_iphone
data:
title: Tiff is returning home
message: Tiff has entered the home zone
data:
tag: tiff-return-home
group: presence-notification
- alias: Update notification
id: update_notification
trigger:
- platform: state
entity_id: binary_sensor.docker_hub_update_available
to: 'on'
action:
- service: notify.mobile_app_michaels_iphone
data:
message: There is a new Home Assistant release available.
- alias: Presence Arriving
id: general_presence_notification_home
trigger:
- platform: state
entity_id:
- person.bumpa
- person.lisa
from: not_home
to: home
condition:
- condition: state
entity_id: person.mike
state: home
action:
service: notify.mobile_app_michaels_iphone
data:
title: HASS Presence Notification
message: '{{ trigger.to_state.attributes.friendly_name }} is arriving
'
data:
tag: person-presence-notification
group: presence-notification
- alias: Ask if Pupper Home after Dark
id: ask_pupper_home
trigger:
- platform: numeric_state
entity_id: sun.sun
attribute: elevation
below: 5
condition:
- condition: state
entity_id: alarm_control_panel.master
state: armed_away
- not:
- condition: state
entity_id: alarm_control_panel.master
state: armed_vacation
action:
- variables:
action_home: '{{ ''HOME_'' ~ context.id }}'
action_away: '{{ ''AWAY_'' ~ context.id }}'
- service: notify.mobile_app_michaels_iphone
data:
message: Is the pupper home alone?
data:
actions:
- action: '{{ action_home }}'
title: Pupper Home
activationMode: background
authenticationRequired: true
destructive: false
behavior: default
- action: '{{ action_away }}'
title: Not Home
activationMode: background
authenticationRequired: true
destructive: true
behavior: default
- wait_for_trigger:
- platform: event
event_type: mobile_app_notification_action
event_data:
action: '{{ action_home }}'
- platform: event
event_type: mobile_app_notification_action
event_data:
action: '{{ action_away }}'
- choose:
- conditions: '{{ wait.trigger.event.data.action == action_home }}'
sequence:
- service: input_boolean.turn_on
entity_id: input_boolean.pupper_home
- conditions: '{{ wait.trigger.event.data.action == action_away }}'
sequence:
- service: input_boolean.turn_off
entity_id: input_boolean.pupper_home
- alias: Set light on for Pupper at dark
id: set_pupper_light_on
trigger:
- platform: sun
event: sunset
- platform: state
entity_id: alarm_control_panel.master
to: armed_away
condition:
- condition: numeric_state
entity_id: sun.sun
attribute: elevation
below: 2.0
- condition: state
entity_id: input_boolean.pupper_home
state: 'on'
action:
- delay:
minutes: 5
- service: homeassistant.turn_on
entity_id: light.kitchen_island
- alias: Evening Convenience Control
id: upstairs_evening_convenience_control
mode: single
max_exceeded: silent
trigger:
- trigger: device
domain: mqtt
device_id: e3bc901892c55fbcaa6dd42876632c35
type: action
subtype: down_double
- trigger: device
domain: mqtt
device_id: 0d619322f1e8664e17f93285090c18bd
type: action
subtype: down_double
- trigger: device
domain: mqtt
device_id: 67df18469d484ee9d7870f2a5fb692cb
type: action
subtype: down_double
condition:
- condition: time
after: '21:00:00'
actions:
- event: goodnight_event
- alias: Vacation mode
id: vacation_mode_depart
mode: single
max_exceeded: silent
trigger:
- platform: numeric_state
entity_id: sensor.home_nearest_distance
above: 55000
condition:
- condition: state
entity_id: device_tracker.faux_girls_home
state: not_home
- condition: state
entity_id: binary_sensor.guests_present
state: 'off'
action:
- service: select.select_option
entity_id: select.my_ecobee_current_mode
data:
option: away
- service: light.turn_off
continue_on_error: true
target:
floor_id:
- top_floor
- main_floor
- basement
- service: fan.turn_off
target:
floor_id:
- top_floor
- service: cover.close_cover
entity_id: cover.garage
- service: lock.lock
entity_id:
- lock.locks
- service: alarm_control_panel.alarm_arm_vacation
target:
entity_id: alarm_control_panel.master
- alias: Keep Ecobee in Away mode
id: vacaiton_keep_ecobee_away
trigger:
- platform: state
entity_id: select.my_ecobee_current_mode
from: away
not_to:
- unknown
- unavailable
condition:
- condition: state
entity_id: alarm_control_panel.master
state: armed_vacation
action:
- service: notify.mobile_app_michaels_iphone
data:
message: Consider Setting Ecobee Vacation
- service: select.select_option
entity_id: select.my_ecobee_current_mode
data:
option: away
- alias: Returning from vacation
id: vacation_mode_return
mode: single
max_exceeded: silent
trigger:
- platform: numeric_state
entity_id: sensor.home_nearest_distance
below: 55000
condition:
- not:
- condition: state
entity_id: alarm_control_panel.master
state: disarmed
action:
- service: select.select_option
entity_id: select.my_ecobee_current_mode
data:
option: home
- service: alarm_control_panel.alarm_arm_away
target:
entity_id: alarm_control_panel.master
- alias: Vacation Lighting
mode: single
max_exceeded: silent
id: vacation_lighting
trigger:
- platform: state
entity_id: alarm_control_panel.master
to:
- armed_vacation
id: armed
- platform: state
entity_id: alarm_control_panel.master
to: disarmed
action:
- choose:
- conditions:
- condition: trigger
id: armed
sequence:
- service: switch.turn_on
entity_id: switch.simulated_light_presence
default:
- service: switch.turn_off
entity_id: switch.simulated_light_presence