AutomationDataset/samuelkadolph/samuelkadolph_automations.yaml

630 lines
20 KiB
YAML

- id: alert_laundry_dryer_finished
alias: Alert (Laundry) - Dryer Finished
mode: single
triggers:
- platform: state
entity_id: sensor.dryer_job_state
to: finished
actions:
- action: notify.notify
data:
title: Dryer
message: Cycle complete
- id: alert_laundry_washer_finished
alias: Alert (Laundry) - Washer Finished
mode: single
triggers:
- platform: state
entity_id: sensor.washer_job_state
to: finish
actions:
- action: notify.notify
data:
title: Washer
message: Cycle complete
- id: alert_garage_door_closing_failed
alias: Alert (Garage) - Closing Failed
mode: single
triggers:
- trigger: state
entity_id: cover.garage_door
from: closing
to: opening
conditions:
- '{{ trigger.from_state and trigger.to_state and trigger.from_state.attributes.current_position
< 5 }}'
- '{{ is_state("binary_sensor.garage_door_obstruction", "off") }}'
- '{{ is_state("input_boolean.garage_door_closing_failed_alert", "on") }}'
actions:
- action: notify.notify
data:
title: Garage Door
message: Failed to close
- action: notify.alexa_media
data:
data:
type: announce
message: Garage Door failed to close
target:
- media_player.garage_echo
- media_player.kitchen_echo
- media_player.living_room_echo
title: Garage Door
- id: alert_garage_door_left_open
alias: Alert (Garage) - Door Left Open
mode: single
triggers:
- trigger: state
entity_id: cover.garage_door
to: open
for:
minutes: '{{ states("input_number.garage_door_open_alert_time") }}'
- trigger: state
entity_id:
- binary_sensor.garage_door_motion
- binary_sensor.garage_door_obstruction
to: 'off'
for:
minutes: '{{ states("input_number.garage_door_open_alert_time") }}'
conditions:
- condition: state
entity_id: cover.garage_door
state: open
for:
minutes: '{{ states("input_number.garage_door_open_alert_time") }}'
- condition: state
entity_id:
- binary_sensor.garage_door_motion
- binary_sensor.garage_door_obstruction
state: 'off'
for:
minutes: '{{ states("input_number.garage_door_open_alert_time") }}'
actions:
- action: notify.notify
data:
title: Garage Door
message: Left open
- id: basement_guest_staying_over_changed
alias: Basement - Guest Staying Over Changed
mode: single
triggers:
- trigger: state
entity_id: input_boolean.basement_guest_staying_over
actions:
- if:
- '{{ is_state("input_boolean.basement_guest_staying_over", "on") }}'
then:
- parallel:
- action: script.basement_bathroom_disable_motion
else:
- parallel:
- action: script.basement_bathroom_enable_motion
- id: basement_shades_open
alias: Basement Shades - Open
use_blueprint:
path: samuelkadolph/automaton.yaml
input:
first_trigger: none
second_trigger: time
second_time_helper: input_datetime.basement_shades_open
second_conditions:
- '{{ is_state("input_boolean.basement_guest_staying_over", "on") }}'
- '{{ is_state("input_boolean.basement_shades_open", "on") }}'
- '{{ state_attr("cover.basement_shades", "current_position") < float(states("input_number.basement_shades_open_percent"))
}}'
second_actions:
- action: cover.set_cover_position
data:
position: '{{ states("input_number.basement_shades_open_percent") }}'
target:
entity_id: cover.basement_shades
third_trigger: time
third_time_helper: sensor.shades_open_time
third_conditions:
- '{{ is_state("input_boolean.basement_guest_staying_over", "off") }}'
third_actions:
- action: cover.open_cover
target:
entity_id: cover.basement_shades
- id: theatre_remote_on_off
alias: Theatre Remote - On & Off
use_blueprint:
path: samuelkadolph/remote_automation.yaml
input:
remote: remote.theatre
on_actions:
- parallel: []
off_actions:
- parallel:
- if:
- '{{ is_state("input_boolean.basement_guest_staying_over", "off") }}'
then:
- action: fan.turn_off
target:
entity_id: fan.theatre_dyson
activity_changed_actions:
- parallel:
- if:
- '{{ is_state("input_boolean.basement_guest_staying_over", "off") }}'
- '{{ is_state("input_boolean.theatre_projector_disables_bathroom_occupancy",
"on") }}'
then:
- action: zwave_js.set_config_parameter
data:
parameter: 3
value: '{{ state_attr("remote.theatre", "current_activity") is search("w/P$")
and 2 or 3 }}'
target:
entity_id: switch.basement_bathroom_lights
- if:
- '{{ is_state("input_boolean.theatre_projector_closes_shades", "on") }}'
then:
- if:
- '{{ state_attr("remote.theatre", "current_activity") is search("w/P$")
}}'
then:
- if:
- '{{ state_attr("sun.sun", "elevation") > float(states("input_number.theatre_projector_closes_shades_sun_elevation"))
}}'
then:
- action: cover.close_cover
target:
entity_id: cover.basement_shades
else:
- if:
- '{{ is_state("input_boolean.basement_guest_staying_over", "off") }}'
then:
- action: cover.open_cover
target:
entity_id: cover.basement_shades
- id: family_room_shades_close_open
alias: Family Room Shades - Close & Open
use_blueprint:
path: samuelkadolph/automaton.yaml
input:
first_trigger: elevation_below
first_elevation_helper: input_number.shades_close_sun_elevation
first_conditions:
- '{{ int(states("zone.home")) > 0 }}'
first_actions:
- action: script.family_room_close_shades
second_trigger: time
second_time_helper: sensor.shades_open_time
second_actions:
- action: cover.open_cover
target:
entity_id: cover.family_room_shades
- id: family_room_shades_close_w_arrival
alias: Family Room Shades - Close w/ Arrival
mode: single
triggers:
- trigger: state
entity_id: zone.home
from: '0'
conditions:
- '{{ trigger.from_state and trigger.to_state and (int(trigger.from_state.state)
< int(trigger.to_state.state)) }}'
- '{{ state_attr("sun.sun", "elevation") < float(states("input_number.shades_close_sun_elevation"))
}}'
actions:
- action: script.family_room_close_shades
- id: garage_off_22_00
alias: Garage - Off @ 22:00
mode: single
triggers:
- trigger: time
at: '22:00:00'
actions:
- action: script.garage_turn_off
- id: garage_door_garage_lights_switch_triple
alias: Garage Door - Garage Lights Switch (Triple)
use_blueprint:
path: samuelkadolph/zooz_zen7677_covers.yaml
input:
switch: 4e1a97e407a9f5d6ee3717abbfafc4b8
paddle_taps: KeyPressed3x
paddle_hold: false
state_variable: input_number.garage_door_control_state
covers: cover.garage_door
- id: garage_door_lights_garage_door_opened
alias: Garage Door Lights - Garage Door Opened
mode: single
max_exceeded: silent
triggers:
- platform: state
entity_id: binary_sensor.garage_door
to: 'on'
actions:
- if:
- '{{ is_state("light.garage_door_lights", "off") }}'
then:
- action: light.turn_on
target:
entity_id: light.garage_door_lights
- repeat:
until:
- condition: state
entity_id:
- binary_sensor.garage_door
state: 'off'
for:
seconds: 30
- condition: state
entity_id:
- binary_sensor.garage_door_motion
- binary_sensor.garage_door_obstruction
state: 'off'
for:
seconds: 120
sequence:
- delay:
seconds: 5
- action: light.turn_off
target:
entity_id: light.garage_door_lights
- id: bookshelf_lights_nook_switch_triple
alias: Bookshelf Lights - Nook Switch (Triple)
use_blueprint:
path: samuelkadolph/zooz_zen7677_lights.yaml
input:
switch: dd3384ec26ab7f0a6b263cbaa2819949
double_tap: true
paddle_hold: true
subjects: light.bookshelf_lights
- id: bookshelf_lights_on_off
alias: Bookshelf Lights - On & Off
use_blueprint:
path: samuelkadolph/automaton.yaml
input:
first_elevation_helper: input_number.outside_lights_on_sun_elevation
first_conditions:
- '{{ int(states("zone.home")) > 0 }}'
first_actions:
- action: light.turn_on
target:
entity_id: light.bookshelf_lights
second_time_helper: input_datetime.bookshelf_lights_off_time
second_actions:
- action: light.turn_off
target:
entity_id: light.bookshelf_lights
- id: bookshelf_lights_on_w_arrival
alias: Bookshelf Lights - On w/ Arrival
mode: single
triggers:
- trigger: state
entity_id: zone.home
from: '0'
conditions:
- condition: time
before: input_datetime.bookshelf_lights_off_time
after: '12:00:00'
- '{{ trigger.from_state and trigger.to_state and (int(trigger.from_state.state)
< int(trigger.to_state.state)) }}'
- '{{ state_attr("sun.sun", "elevation") < float(states("input_number.outside_lights_on_sun_elevation"))
}}'
actions:
- action: light.turn_on
target:
entity_id: light.bookshelf_lights
- id: nook_shade_close_open
alias: Nook Shade - Close & Open
use_blueprint:
path: samuelkadolph/automaton.yaml
input:
first_elevation_helper: input_number.shades_close_sun_elevation
first_actions:
- action: script.nook_close_shade
second_time_helper: sensor.shades_open_time
second_actions:
- action: cover.open_cover
target:
entity_id: cover.nook_shade
- id: nook_shade_nook_switch_single
alias: Nook Shade - Nook Switch (Single)
use_blueprint:
path: samuelkadolph/zooz_zen7677_covers.yaml
input:
switch: dd3384ec26ab7f0a6b263cbaa2819949
paddle_taps: KeyPressed3x
state_variable: input_number.nook_shade_control_state
covers: cover.nook_shade
- id: ktichen_fountain_on_04_00
alias: Kitchen Fountain - On @ 04:00
mode: single
triggers:
- trigger: time
at: 04:00:00
actions:
- action: switch.turn_on
target:
entity_id: switch.kitchen_fountain
- id: kitchen_shades_counter_lights_switch_triple
alias: Kitchen Shades - Counter Lights Switch (Triple)
use_blueprint:
path: samuelkadolph/homeseer_wx300_covers.yaml
input:
switch: 3712c852fbe82c0af857879df3fa1ce0
paddle_taps: KeyPressed3x
paddle_hold: false
state_variable: input_number.kitchen_shades_control_state
covers: cover.kitchen_shades
- id: toaster_oven_off_04_00
alias: Toaster Oven - Off @ 04:00
mode: single
triggers:
- trigger: time
at: 04:00:00
actions:
- action: switch.turn_off
target:
entity_id: switch.toaster_oven
- id: laundry_room_fountain_on_04_00
alias: Laundry Room Fountain - On @ 04:00
mode: single
triggers:
- trigger: time
at: 04:00:00
actions:
- action: switch.turn_on
target:
entity_id: switch.laundry_room_fountain
- id: laundry_room_lights_motion
alias: Laundry Room Lights - Motion
use_blueprint:
path: homeassistant/motion_light.yaml
input:
motion_entity: binary_sensor.laundry_room_sensor_motion_detection
light_target:
entity_id: light.laundry_room_lights
no_motion_wait: 0
- id: laundry_roomy_shade_lights_switch_triple
alias: Laundry Room Shade - Lights Switch (Triple)
use_blueprint:
path: samuelkadolph/homeseer_wx300_covers.yaml
input:
switch: aae6adcd021b82caa28dd808ef3ecf20
paddle_taps: KeyPressed3x
paddle_hold: false
state_variable: input_number.laundry_room_shade_control_state
covers: cover.laundry_room_shade
- id: laundry_room_shade_open
alias: Laundry Room Shade - Open
use_blueprint:
path: samuelkadolph/automaton.yaml
input:
first_trigger: none
second_time_helper: sensor.shades_open_time
second_actions:
- action: cover.open_cover
target:
entity_id: cover.laundry_room_shade
- id: master_bedroom_air_night_day
alias: Master Bedroom Air - Night & Day
use_blueprint:
path: samuelkadolph/automaton.yaml
input:
first_trigger: time
first_time_helper: sensor.master_bedroom_air_night_time
first_actions:
- action: script.master_bedroom_air_night
second_trigger: time
second_time_helper: input_datetime.master_bedroom_air_day
second_actions:
- action: script.master_bedroom_air_day
- id: master_bedroom_air_night_w_sam_arrival
alias: Master Bedroom Air - Night w/ Sam Arrival
mode: single
triggers:
- trigger: state
entity_id: person.samuel_kadolph
to: home
conditions:
- condition: time
after: sensor.master_bedroom_air_night_time
before: input_datetime.master_bedroom_air_day
actions:
- action: script.master_bedroom_air_night
- id: master_bedroom_shades_close_open
alias: Master Bedroom Shades - Close & Open
use_blueprint:
path: samuelkadolph/automaton.yaml
input:
first_trigger: elevation_below
first_elevation_helper: input_number.shades_close_sun_elevation
first_conditions:
- '{{ state_attr("cover.master_bedroom_shades", "current_position") > float(states("sensor.shades_close_percent"))
}}'
first_actions:
- action: cover.set_cover_position
data:
position: '{{ states("sensor.shades_close_percent") }}'
target:
entity_id: cover.master_bedroom_shades
second_trigger: time
second_time_helper: input_datetime.master_bedroom_shades_first_open
second_conditions:
- '{{ is_state("input_boolean.master_bedroom_shades_first_open", "on") }}'
- '{{ is_state("person.sasha_keller", "home") }}'
- '{{ now().weekday() < 5 }}'
- '{{ state_attr("cover.master_bedroom_shades", "current_position") < float(states("input_number.master_bedroom_shades_first_open_percent"))
}}'
second_actions:
- action: cover.set_cover_position
data:
position: '{{ states("input_number.master_bedroom_shades_first_open_percent")
}}'
target:
entity_id: cover.master_bedroom_shades
third_trigger: time
third_time_helper: input_datetime.master_bedroom_shades_second_open
third_conditions:
- '{{ is_state("input_boolean.master_bedroom_shades_second_open", "on") }}'
- '{{ state_attr("cover.master_bedroom_shades", "current_position") < float(states("input_number.master_bedroom_shades_second_open_percent"))
}}'
third_actions:
- action: cover.set_cover_position
data:
position: '{{ states("input_number.master_bedroom_shades_second_open_percent")
}}'
target:
entity_id: cover.master_bedroom_shades
- id: office_on_w_motion
alias: Office On w/ Motion
mode: single
triggers:
- trigger: state
entity_id:
- binary_sensor.office_sensor_motion_detection
- binary_sensor.office_fan_occupancy
to: 'on'
conditions:
- condition: time
after: 07:00:00
before: '22:00:00'
- '{{ is_state("media_player.office_receiver_main_zone", "off") }}'
- '{{ is_state("person.samuel_kadolph", "home") }}'
actions:
- action: script.office_turn_on
- id: office_shade_a_shade_switch_double
alias: Office Shade A - Shade Switch (Double)
use_blueprint:
path: samuelkadolph/zooz_zen7677_covers.yaml
input:
switch: 377491888ebce3477efd3943614694b6
paddle_taps: KeyPressed2x
paddle_hold: false
state_variable: input_number.office_shade_a_control_state
covers: cover.office_shade_a
- id: office_shade_b_shade_switch_triple
alias: Office Shade B - Shade Switch (Triple)
use_blueprint:
path: samuelkadolph/zooz_zen7677_covers.yaml
input:
switch: 377491888ebce3477efd3943614694b6
paddle_taps: KeyPressed3x
paddle_hold: false
state_variable: input_number.office_shade_b_control_state
covers: cover.office_shade_b
- id: office_shades_close_open
alias: Office Shades - Close & Open
use_blueprint:
path: samuelkadolph/automaton.yaml
input:
first_elevation_helper: input_number.shades_close_sun_elevation
first_conditions:
- condition: state
entity_id:
- binary_sensor.office_fan_occupancy
- binary_sensor.office_sensor_motion_detection
match: any
state: 'on'
first_actions:
- action: script.office_lockdown
second_time_helper: sensor.shades_open_time
second_actions:
- action: cover.open_cover
target:
entity_id: cover.office_shades
- id: office_shades_shade_switch_single
alias: Office Shades - Shade Switch (Single)
use_blueprint:
path: samuelkadolph/zooz_zen7677_covers.yaml
input:
switch: 377491888ebce3477efd3943614694b6
state_variable: input_number.office_shades_control_state
covers: cover.office_shades
- id: outside_lights_on_off
alias: Outside Lights - On & Off
use_blueprint:
path: samuelkadolph/automaton.yaml
input:
first_elevation_helper: input_number.outside_lights_on_sun_elevation
first_conditions:
- '{{ is_state("input_boolean.seasonal_lights", "off") }}'
first_actions:
- action: light.turn_on
target:
entity_id: light.soffit_lights
second_time_helper: sensor.outside_lights_off_time
second_actions:
- action: light.turn_off
target:
entity_id: light.outside_lights
- id: outside_lights_on_w_arrival
alias: Outside Lights - On w/ Arrival
mode: single
triggers:
- trigger: state
entity_id: zone.home
conditions:
- '{{ is_state("input_boolean.outside_lights_on_with_arrival", "on") }}'
- '{{ trigger.from_state and trigger.to_state and (int(trigger.from_state.state)
< int(trigger.to_state.state)) }}'
- '{{ state_attr("sun.sun", "elevation") < float(states("input_number.outside_lights_on_sun_elevation"))
}}'
actions:
- parallel:
- if:
- '{{ is_state("light.porch_lights", "off") }}'
then:
- action: light.turn_on
target:
entity_id: light.porch_lights
- delay:
minutes: '{{ states("input_number.outside_lights_arrival_on_time") }}'
- action: light.turn_off
target:
entity_id: light.porch_lights
- if:
- '{{ is_state("light.side_door_lights", "off") }}'
then:
- action: light.turn_on
target:
entity_id: light.side_door_lights
- delay:
minutes: '{{ states("input_number.outside_lights_arrival_on_time") }}'
- action: light.turn_off
target:
entity_id: light.side_door_lights
- if:
- '{{ is_state("light.soffit_lights", "off") }}'
then:
- action: light.turn_on
target:
entity_id: light.soffit_lights
- delay:
minutes: '{{ states("input_number.outside_lights_arrival_on_time") }}'
- action: light.turn_off
target:
entity_id: light.soffit_lights
- id: dead_zwave_nodes_ping
alias: Dead ZWave Nodes Ping
mode: restart
triggers:
- trigger: state
entity_id: sensor.dead_zwave_nodes
for:
minutes: 5
actions:
- repeat:
while:
- '{{ int(states("sensor.dead_zwave_nodes")) > 0 }}'
sequence:
- delay:
minutes: 15
- repeat:
for_each: '{{ state_attr("sensor.dead_zwave_nodes", "nodes") }}'
sequence:
- delay:
seconds: 30
- action: system_log.write
data:
level: info
message: Z-Wave node '{{ device_attr(device_id("sensor." + repeat.item),
"name") }}' is dead, sending a ping
- action: button.press
target:
entity_id: button.{{ repeat.item | replace("_node_status", "_ping")
}}