Skip to content
Permalink
master
Go to file
 
 
Cannot retrieve contributors at this time
executable file 1758 lines (1552 sloc) 46.4 KB
#################################################################
## Roomba Automations
#################################################################
##########################################################
## Pause Main Floor Roomba when Doorbell Rings
##########################################################
- alias: Roomba - Pause Main Floor Roomba when Doorbell Rings
id: 'roomba_pause_main_floor_roomba_when_doorbell_rings'
trigger:
- platform: state
entity_id: binary_sensor.ring_front_door_ding
from: 'off'
to: 'on'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.disable_doorbell
state: 'off'
- condition: state
entity_id: vacuum.main_floor_roomba
state: 'cleaning'
action:
- service: vacuum.pause
entity_id:
- vacuum.main_floor_roomba
- service: homeassistant.turn_on
entity_id:
- input_boolean.main_floor_roomba_pause
##########################################################
## Resume Main Floor Roomba after Doorbell Rings
##########################################################
- alias: Roomba - Resume Main Floor Roomba after Doorbell Rings
id: 'roomba_resume_main_floor_roomba_after_doorbell_rings'
trigger:
- platform: state
entity_id: binary_sensor.ring_front_door_ding
from: 'on'
to: 'off'
for:
hours: 0
minutes: 5
seconds: 0
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.disable_doorbell
state: 'off'
- condition: state
entity_id: input_boolean.main_floor_roomba_pause
state: 'on'
- condition: state
entity_id: vacuum.main_floor_roomba
state: 'paused'
action:
- service: vacuum.start
entity_id:
- vacuum.main_floor_roomba
- service: homeassistant.turn_off
entity_id:
- input_boolean.main_floor_roomba_pause
##########################################################
## Run Main Floor Roomba when Away
##########################################################
- alias: Roomba - Run Main Floor Roomba when Away
id: 'roomba_run_main_floor_roomba_when_away'
trigger:
- platform: state
entity_id: group.household
from: 'home'
to: 'not_home'
for:
hours: 0
minutes: 15
seconds: 0
condition:
- condition: state
entity_id: input_boolean.disable_home_away
state: 'off'
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.main_floor_roomba_ran
state: 'off'
- condition: time
after: '08:00:00'
before: '23:59:00'
- condition: state
entity_id: vacuum.main_floor_roomba
state: 'docked'
- condition: numeric_state
entity_id: sensor.main_floor_roomba_battery_level
above: 99
action:
- service: vacuum.start
entity_id:
- vacuum.main_floor_roomba
##########################################################
## Run Upstairs Roomba when Away
##########################################################
- alias: Roomba - Run Upstairs Roomba when Away
id: 'roomba_run_upstairs_roomba_when_away'
trigger:
- platform: state
entity_id: group.household
from: 'home'
to: 'not_home'
for:
hours: 0
minutes: 15
seconds: 0
condition:
- condition: state
entity_id: input_boolean.disable_home_away
state: 'off'
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.upstairs_roomba_ran
state: 'off'
- condition: time
after: '08:00:00'
before: '23:59:00'
- condition: state
entity_id: vacuum.upstairs_roomba
state: 'docked'
- condition: numeric_state
entity_id: sensor.upstairs_roomba_battery_level
above: 99
action:
- service: vacuum.start
entity_id:
- vacuum.upstairs_roomba
##########################################################
## Shut Off Roombas when Home
##########################################################
- alias: Roomba - Shut Off Roombas when Home
id: 'roomba_shut_off_roombas_when_home'
trigger:
- platform: state
entity_id: group.household
from: 'not_home'
to: 'home'
for:
hours: 0
minutes: 0
seconds: 45
condition:
- condition: state
entity_id: input_boolean.disable_home_away
state: 'off'
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: or
conditions:
- condition: state
entity_id: vacuum.main_floor_roomba
state: 'cleaning'
- condition: state
entity_id: vacuum.upstairs_roomba
state: 'cleaning'
- condition: state
entity_id: vacuum.basement_roomba
state: 'cleaning'
action:
- service: vacuum.return_to_base
entity_id:
- vacuum.main_floor_roomba
- vacuum.upstairs_roomba
- vacuum.basement_roomba
##########################################################
## Run Main Floor Roomba Weekdays
##########################################################
- alias: Roomba - Run Main Floor Roomba Weekdays
id: 'roomba_run_main_floor_roomba_weekdays'
trigger:
- platform: time
at: '10:00:00'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.main_floor_roomba_ran
state: 'off'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: state
entity_id: vacuum.main_floor_roomba
state: 'docked'
- condition: numeric_state
entity_id: sensor.main_floor_roomba_battery_level
above: 99
- condition: not
conditions:
- condition: state
entity_id: group.friends_and_family
state: 'home'
action:
- service: vacuum.start
entity_id:
- vacuum.main_floor_roomba
##########################################################
## Run Upstairs Roomba Weekdays when not Home
##########################################################
- alias: Roomba - Run Upstairs Roomba Weekdays when not Home
id: 'roomba_run_upstairs_roomba_weekdays_when_not_home'
trigger:
- platform: time
at: '10:00:00'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.upstairs_roomba_ran
state: 'off'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: state
entity_id: vacuum.upstairs_roomba
state: 'docked'
- condition: numeric_state
entity_id: sensor.upstairs_roomba_battery_level
above: 99
- condition: not
conditions:
- condition: state
entity_id: group.household
state: 'home'
- condition: not
conditions:
- condition: state
entity_id: group.friends_and_family
state: 'home'
action:
- service: vacuum.start
entity_id:
- vacuum.upstairs_roomba
##########################################################
## Run Main Floor Roomba Weekends
##########################################################
- alias: Roomba - Run Main Floor Roomba Weekends
id: 'roomba_run_main_floor_roomba_weekends'
trigger:
- platform: time
at: '13:00:00'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.main_floor_roomba_ran
state: 'off'
- condition: time
weekday:
- sat
- sun
- condition: state
entity_id: vacuum.main_floor_roomba
state: 'docked'
- condition: numeric_state
entity_id: sensor.main_floor_roomba_battery_level
above: 99
- condition: state
entity_id: input_select.living_room_tv_remote
state: 'PowerOff'
- condition: state
entity_id: binary_sensor.living_room_motion
state: 'off'
- condition: state
entity_id: binary_sensor.dining_room_motion
state: 'off'
- condition: state
entity_id: binary_sensor.kitchen_motion
state: 'off'
- condition: not
conditions:
- condition: state
entity_id: group.friends_and_family
state: 'home'
- condition: not
conditions:
- condition: state
entity_id: person.USER2
state: 'home'
action:
- service: vacuum.start
entity_id:
- vacuum.main_floor_roomba
##########################################################
## Run Upstairs Roomba Weekday Mornings
##########################################################
- alias: Roomba - Run Upstairs Roomba Weekday Mornings
id: 'roomba_run_upstairs_roomba_weekday_mornings'
trigger:
- platform: time
at: '07:00:00'
- platform: time
at: '07:30:00'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.upstairs_roomba_ran
state: 'off'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: state
entity_id: vacuum.upstairs_roomba
state: 'docked'
- condition: numeric_state
entity_id: sensor.upstairs_roomba_battery_level
above: 99
- condition: state
entity_id: group.household
state: 'home'
- condition: state
entity_id: binary_sensor.USER1s_office_motion
state: 'off'
- condition: state
entity_id: binary_sensor.USER2s_office_motion
state: 'off'
- condition: state
entity_id: binary_sensor.stairs_motion
state: 'off'
- condition: state
entity_id: binary_sensor.upstairs_bathroom_motion
state: 'off'
- condition: state
entity_id: person.USER1
state: 'home'
- condition: not
conditions:
- condition: state
entity_id: person.USER2
state: 'home'
- condition: not
conditions:
- condition: state
entity_id: group.friends_and_family
state: 'home'
action:
- service: vacuum.start
entity_id:
- vacuum.upstairs_roomba
##########################################################
## Run Upstairs Roomba Weekdays Evenings
##########################################################
- alias: Roomba - Run Upstairs Roomba Weekdays Evenings
id: 'roomba_run_upstairs_roomba_weekdays_evenings'
trigger:
- platform: time
at: '18:00:00'
- platform: time
at: '18:30:00'
- platform: time
at: '19:00:00'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.upstairs_roomba_ran
state: 'off'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: state
entity_id: vacuum.upstairs_roomba
state: 'docked'
- condition: numeric_state
entity_id: sensor.upstairs_roomba_battery_level
above: 99
- condition: state
entity_id: binary_sensor.USER1s_office_motion
state: 'off'
- condition: state
entity_id: binary_sensor.USER2s_office_motion
state: 'off'
- condition: state
entity_id: binary_sensor.stairs_motion
state: 'off'
- condition: state
entity_id: binary_sensor.upstairs_bathroom_motion
state: 'off'
- condition: state
entity_id: binary_sensor.USER2_office_occupancy
state: 'off'
- condition: not
conditions:
- condition: state
entity_id: group.friends_and_family
state: 'home'
action:
- service: vacuum.start
entity_id:
- vacuum.upstairs_roomba
##########################################################
## Run Upstairs Roomba Weekends
##########################################################
- alias: Roomba - Run Upstairs Roomba Weekends
id: 'roomba_run_upstairs_roomba_weekends'
trigger:
- platform: time
at: '16:00:00'
- platform: time
at: '16:30:00'
- platform: time
at: '17:00:00'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.upstairs_roomba_ran
state: 'off'
- condition: time
weekday:
- sat
- sun
- condition: state
entity_id: vacuum.upstairs_roomba
state: 'docked'
- condition: numeric_state
entity_id: sensor.upstairs_roomba_battery_level
above: 99
- condition: state
entity_id: binary_sensor.USER1s_office_motion
state: 'off'
- condition: state
entity_id: binary_sensor.USER2s_office_motion
state: 'off'
- condition: state
entity_id: binary_sensor.stairs_motion
state: 'off'
- condition: state
entity_id: binary_sensor.upstairs_bathroom_motion
state: 'off'
- condition: not
conditions:
- condition: state
entity_id: group.friends_and_family
state: 'home'
- condition: not
conditions:
- condition: state
entity_id: person.USER2
state: 'home'
action:
- service: vacuum.start
entity_id:
- vacuum.upstairs_roomba
##########################################################
## Run Basement Roomba Weekdays
##########################################################
- alias: Roomba - Run Basement Roomba Weekdays
id: 'roomba_run_basement_roomba_weekdays'
trigger:
- platform: time
at: '10:00:00'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.basement_roomba_ran
state: 'off'
- condition: time
weekday:
- mon
- wed
- fri
- condition: state
entity_id: vacuum.basement_roomba
state: 'docked'
- condition: state
entity_id: binary_sensor.basement_drain_water_sensor_liquid_detected
state: 'off'
- condition: state
entity_id: binary_sensor.basement_door_water_sensor
state: 'off'
- condition: numeric_state
entity_id: sensor.basement_roomba_battery_level
above: 99
- condition: state
entity_id: person.USER1
state: 'home'
- condition: not
conditions:
- condition: state
entity_id: sensor.washer
state: 'on'
- condition: not
conditions:
- condition: state
entity_id: sensor.dryer
state: 'on'
- condition: not
conditions:
- condition: state
entity_id: group.friends_and_family
state: 'home'
action:
- service: vacuum.start
entity_id:
- vacuum.basement_roomba
##########################################################
## Turn On low lights at night for Main Floor Roomba
##########################################################
- alias: Roomba - Turn On low lights at night for Main Floor Roomba
id: 'roomba_turn_on_low_lights_at_night_for_main_floor_roomba'
trigger:
- platform: state
entity_id: vacuum.main_floor_roomba
to: 'cleaning'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: sun
after: sunset
after_offset: "-00:90:00"
- condition: not
conditions:
- condition: state
entity_id: group.household
state: 'home'
- condition: not
conditions:
- condition: state
entity_id: group.friends_and_family
state: 'home'
action:
- service: light.turn_on
entity_id:
- light.bedroom_ceiling
- light.bedroom_closet_ceiling
data:
brightness_pct: 50
color_temp: 447
- service: light.turn_on
entity_id:
- light.living_room_accent_lights
data:
brightness_pct: 50
color_temp: 447
- service: light.turn_on
entity_id:
- light.dining_room_table
- light.bathroom_lights
- light.kitchen_sink
- light.kitchen_cabinets
- light.hallway_light
- light.stairs_light
data:
brightness_pct: 25
- service: homeassistant.turn_on
entity_id:
- input_boolean.disable_occupancy
##########################################################
## Turn On Lights at Sunset if Main Floor Roomba Running
##########################################################
- alias: Roomba - Turn On Lights at Sunset if Main Floor Roomba Running
id: 'roomba_turn_on_lights_at_sunset_if_main_floor_roomba_running'
trigger:
- platform: sun
event: 'sunset'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: vacuum.main_floor_roomba
state: 'cleaning'
- condition: not
conditions:
- condition: state
entity_id: group.household
state: 'home'
- condition: not
conditions:
- condition: state
entity_id: group.friends_and_family
state: 'home'
action:
- service: light.turn_on
entity_id:
- light.bedroom_closet_ceiling
- light.bedroom_ceiling
data:
brightness_pct: 50
color_temp: 447
- service: light.turn_on
entity_id:
- light.living_room_accent_lights
data:
brightness_pct: 75
color_temp: 447
- service: light.turn_on
entity_id:
- light.dining_room_table
- light.bathroom_lights
- light.kitchen_sink
- light.kitchen_cabinets
- light.hallway_light
- light.stairs_light
data:
brightness_pct: 25
- service: homeassistant.turn_on
entity_id:
- input_boolean.disable_occupancy
##########################################################
## Turn On low lights at night for Upstairs Roomba
##########################################################
- alias: Roomba - Turn On low lights at night for Upstairs Roomba
id: 'roomba_turn_on_low_lights_at_night_for_upstairs_roomba'
trigger:
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'cleaning'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: sun
after: sunset
after_offset: "-00:90:00"
action:
- service: light.turn_on
entity_id:
- light.USER1_s_office_ceiling
- light.USER2_s_office_ceiling
- light.guest_bedroom_ceiling
- light.stairs_light
- light.upstairs_bathroom_vanity
data:
brightness_pct: 35
##########################################################
## Turn On low lights morning for Upstairs Roomba
##########################################################
- alias: Roomba - Turn On low lights morning for Upstairs Roomba
id: 'roomba_turn_on_low_lights_morning_for_upstairs_roomba'
trigger:
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'cleaning'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: time
after: '07:00:00'
before: '08:00:00'
action:
- service: light.turn_on
entity_id:
- light.USER1_s_office_ceiling
- light.USER2_s_office_ceiling
- light.guest_bedroom_ceiling
- light.stairs_light
- light.upstairs_bathroom_vanity
data:
brightness_pct: 35
##########################################################
## Turn On Lights at Sunrise if Upstairs Roomba Running
##########################################################
- alias: Roomba - Turn On Lights at Sunrise if Upstairs Roomba Running
id: 'roomba_turn_on_lights_at_sunrise_if_upstairs_roomba_running'
trigger:
- platform: sun
event: 'sunrise'
offset: '+00:45:00'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: vacuum.upstairs_roomba
state: 'cleaning'
- condition: time
after: '07:00:00'
before: '08:30:00'
action:
- service: light.turn_on
entity_id:
- light.USER1_s_office_ceiling
- light.USER2_s_office_ceiling
- light.guest_bedroom_ceiling
- light.stairs_light
- light.upstairs_bathroom_vanity
data:
brightness_pct: 35
##########################################################
## Turn On Lights at Sunset if Upstairs Roomba Running
##########################################################
- alias: Roomba - Turn On Lights at Sunset if Upstairs Roomba Running
id: 'roomba_turn_on_lights_at_sunset_if_upstairs_roomba_running'
trigger:
- platform: sun
event: 'sunset'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: vacuum.upstairs_roomba
state: 'cleaning'
action:
- service: light.turn_on
entity_id:
- light.USER1_s_office_ceiling
- light.USER2_s_office_ceiling
- light.guest_bedroom_ceiling
- light.stairs_light
- light.upstairs_bathroom_vanity
data:
brightness_pct: 35
- service: homeassistant.turn_on
entity_id:
- input_boolean.disable_occupancy
##########################################################
## Turn On lights for Basement Roomba
##########################################################
- alias: Roomba - Turn On lights for Basement Roomba
id: 'roomba_turn_on_lights_for_basement_roomba'
trigger:
- platform: state
entity_id: vacuum.basement_roomba
to: 'cleaning'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
action:
- service: light.turn_on
entity_id:
- light.basement_lighting
data:
brightness_pct: 100
##########################################################
## Turn Off lights when Basement Roomba finished
##########################################################
- alias: Roomba - Turn Off lights when Basement Roomba finished
id: 'roomba_turn_off_lights_when_basement_roomba_finished'
trigger:
- platform: state
entity_id: vacuum.basement_roomba
to: 'docked'
for:
hours: 0
minutes: 5
seconds: 0
- platform: state
entity_id: vacuum.basement_roomba
to: 'paused'
for:
hours: 0
minutes: 5
seconds: 0
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: binary_sensor.basement_motion
state: 'off'
action:
- service: light.turn_off
entity_id:
- light.basement_lighting
##########################################################
## Turn Off lights at night when Main Floor Roomba finished
##########################################################
- alias: Roomba - Turn Off lights at night when Main Floor Roomba finished
id: 'roomba_turn_off_lights_at_night_when_main_floor_roomba_finished'
trigger:
- platform: state
entity_id: vacuum.main_floor_roomba
to: 'docked'
for:
hours: 0
minutes: 2
seconds: 0
- platform: state
entity_id: vacuum.main_floor_roomba
to: 'paused'
for:
hours: 0
minutes: 2
seconds: 0
- platform: state
entity_id: vacuum.main_floor_roomba
to: 'stopped'
for:
hours: 0
minutes: 2
seconds: 0
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: sun
after: sunset
after_offset: "-00:90:00"
- condition: state
entity_id: group.interior_lights
state: 'on'
- condition: not
conditions:
- condition: state
entity_id: group.household
state: 'home'
action:
- service: light.turn_off
entity_id:
- group.interior_lights
##########################################################
## Turn Off lights at night when Upstairs Roomba finished when Home
##########################################################
- alias: Roomba - Turn Off lights at night when Upstairs Roomba finished when Home
id: 'roomba_turn_off_lights_at_night_when_upstairs_roomba_finished_when_home'
trigger:
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'docked'
for:
hours: 0
minutes: 4
seconds: 0
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'paused'
for:
hours: 0
minutes: 2
seconds: 0
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'stopped'
for:
hours: 0
minutes: 2
seconds: 0
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: sun
after: sunset
after_offset: "-00:90:00"
- condition: state
entity_id: binary_sensor.USER1s_office_motion
state: 'off'
- condition: state
entity_id: binary_sensor.USER2s_office_motion
state: 'off'
- condition: state
entity_id: binary_sensor.upstairs_bathroom_motion
state: 'off'
- condition: state
entity_id: binary_sensor.stairs_motion
state: 'off'
- condition: state
entity_id: group.household
state: 'home'
action:
- service: light.turn_off
entity_id:
- light.USER1_office_lights
- light.USER2_office_lights
- light.guest_bedroom_lights
- light.stairs_light
- light.upstairs_bathroom_lights
##########################################################
## Turn Off lights Morning when Upstairs Roomba finished when Home
##########################################################
- alias: Roomba - Turn Off lights Morning when Upstairs Roomba finished when Home
id: 'roomba_turn_off_lighst_morning_when_upstairs_roomba_finished_when_home'
trigger:
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'docked'
for:
hours: 0
minutes: 2
seconds: 0
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'paused'
for:
hours: 0
minutes: 2
seconds: 0
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'stopped'
for:
hours: 0
minutes: 2
seconds: 0
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: binary_sensor.USER1s_office_motion
state: 'off'
- condition: state
entity_id: binary_sensor.USER2s_office_motion
state: 'off'
- condition: state
entity_id: binary_sensor.upstairs_bathroom_motion
state: 'off'
- condition: state
entity_id: binary_sensor.stairs_motion
state: 'off'
- condition: time
after: '07:00:00'
before: '09:00:00'
action:
- service: light.turn_off
entity_id:
- light.USER1_office_lights
- light.USER2_office_lights
- light.guest_bedroom_lights
- light.stairs_light
- light.upstairs_bathroom_lights
##########################################################
## Turn Off lights at night when Upstairs Roomba finished when not Home
##########################################################
- alias: Roomba - Turn Off lights at night when Upstairs Roomba finished when not Home
id: 'roomba_turn_off_lights_at_night_when_upstairs_roomba_finished_when_not_home'
trigger:
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'docked'
for:
hours: 0
minutes: 2
seconds: 0
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'paused'
for:
hours: 0
minutes: 2
seconds: 0
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'stopped'
for:
hours: 0
minutes: 2
seconds: 0
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: sun
after: sunset
after_offset: "-00:90:00"
- condition: not
conditions:
- condition: state
entity_id: group.household
state: 'home'
action:
- service: light.turn_off
entity_id:
- light.USER1_s_office_ceiling
- light.USER2_s_office_ceiling
- light.guest_bedroom_ceiling
- light.stairs_light
- light.upstairs_bathroom_vanity
##########################################################
## Enable Occupancy Automations when Roomba finished
##########################################################
- alias: Roomba - Enable Occupancy Automations when Roomba finished
id: 'roomba_enable_occupancy_automations_when_roomba_finished'
trigger:
- platform: state
entity_id: vacuum.main_floor_roomba
to: 'docked'
- platform: state
entity_id: vacuum.main_floor_roomba
to: 'paused'
- platform: state
entity_id: vacuum.main_floor_roomba
to: 'stopped'
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'docked'
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'paused'
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'stopped'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
action:
- service: homeassistant.turn_off
entity_id:
- input_boolean.disable_occupancy
##########################################################
## Run Main Floor Roomba when USER2 Leaves
##########################################################
- alias: Roomba - Run Main Floor Roomba when USER2 Leaves
id: 'roomba_run_main_floor_roomba_when_USER2_leaves'
trigger:
- platform: state
entity_id: person.USER2
from: 'home'
to: 'not_home'
for:
hours: 0
minutes: 5
seconds: 0
condition:
- condition: state
entity_id: input_boolean.disable_home_away
state: 'off'
- condition: state
entity_id: input_boolean.main_floor_roomba_ran
state: 'off'
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: time
after: '10:01:00'
before: '18:00:00'
- condition: state
entity_id: vacuum.main_floor_roomba
state: 'docked'
- condition: numeric_state
entity_id: sensor.main_floor_roomba_battery_level
above: 99
- condition: state
entity_id: input_boolean.USER1_away
state: 'off'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: not
conditions:
- condition: state
entity_id: group.friends_and_family
state: 'home'
action:
- service: vacuum.start
entity_id:
- vacuum.main_floor_roomba
##########################################################
## Turn Off Roomba when USER2 Home
##########################################################
- alias: Roomba - Turn Off Roomba when USER2 Home
id: 'roomba_turn_off_roomba_when_USER2_home'
trigger:
- platform: state
entity_id: person.USER2
from: 'not_home'
to: 'home'
for:
hours: 0
minutes: 0
seconds: 45
condition:
- condition: state
entity_id: input_boolean.disable_home_away
state: 'off'
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: time
after: '10:01:00'
before: '18:30:00'
- condition: state
entity_id: vacuum.main_floor_roomba
state: 'cleaning'
- condition: state
entity_id: input_boolean.USER1_away
state: 'off'
- condition: state
entity_id: input_boolean.USER2_away
state: 'on'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
action:
- service: vacuum.return_to_base
entity_id:
- vacuum.main_floor_roomba
##########################################################
## Turn Off Roomba when Friends and Family Arrive
##########################################################
- alias: Roomba - Turn Off Roomba when Friends and Family Arrive
id: 'roomba_turn_off_roomba_when_frinds_and_family_arrive'
trigger:
- platform: state
entity_id: group.friends_and_family
from: 'not_home'
to: 'home'
for:
hours: 0
minutes: 0
seconds: 90
condition:
- condition: state
entity_id: input_boolean.disable_home_away
state: 'off'
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: or
conditions:
- condition: state
entity_id: vacuum.main_floor_roomba
state: 'cleaning'
- condition: state
entity_id: vacuum.upstairs_roomba
state: 'cleaning'
- condition: state
entity_id: vacuum.basement_roomba
state: 'cleaning'
action:
- service: vacuum.return_to_base
entity_id:
- vacuum.main_floor_roomba
- vacuum.upstairs_roomba
- vacuum.basement_roomba
##########################################################
## Set Upstairs Roomba has Ran for the Day
##########################################################
- alias: Roomba - Set Upstairs Roomba has Ran for the Day
id: 'roomba_set_upstairs_roomba_has_ran_for_the_day'
trigger:
- platform: state
entity_id: vacuum.upstairs_roomba
to: 'cleaning'
for:
hours: 0
minutes: 35
seconds: 0
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
action:
- service: homeassistant.turn_on
entity_id:
- input_boolean.upstairs_roomba_ran
##########################################################
## Set Main Floor Roomba has Ran for the Day
##########################################################
- alias: Roomba - Set Main Floor Roomba has Ran for the Day
id: 'roomba_set_main_floor_roomba_has_ran_for_the_day'
trigger:
- platform: state
entity_id: vacuum.main_floor_roomba
to: 'cleaning'
for:
hours: 1
minutes: 0
seconds: 0
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
action:
- service: homeassistant.turn_on
entity_id:
- input_boolean.main_floor_roomba_ran
##########################################################
## Set Basement Roomba has Ran for the Day
##########################################################
- alias: Roomba - Set Basement Roomba has Ran for the Day
id: 'roomba_set_basement_roomba_has_ran_for_the_day'
trigger:
- platform: state
entity_id: vacuum.basement_roomba
to: 'cleaning'
for:
hours: 1
minutes: 0
seconds: 0
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
action:
- service: homeassistant.turn_on
entity_id:
- input_boolean.basement_roomba_ran
##########################################################
## Reset Roomba has ran for the day
##########################################################
- alias: Roomba - Reset Roomba has ran for the day
id: 'roomba_reset_roomba_has_ran_for_the_day'
trigger:
- platform: time
at: '00:01:00'
action:
- service: homeassistant.turn_off
entity_id:
- input_boolean.main_floor_roomba_ran
- input_boolean.upstairs_roomba_ran
- input_boolean.basement_roomba_ran
#################################################################
## Notifications
#################################################################
##########################################################
## Main Floor Roomba is Stuck iOS Notification
##########################################################
- alias: Roomba - Main Floor Stuck iOS Notification
id: 'roomba_main_floor_stuck_ios_notification'
trigger:
- platform: template
value_template: "{%if is_state_attr('vacuum.main_floor_roomba', 'status', 'Stuck') %}true{%endif%}"
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
action:
- service: notify.mobile_app_USER1s_iphone
data:
message: Main Floor Roomba is Stuck, Please Help
data:
apns_headers:
'apns-collapse-id': 'main-floor-roomba-stuck'
- service: notify.mobile_app_USER2_s_iphone
data:
message: Main Floor Roomba is Stuck, Please Help
data:
apns_headers:
'apns-collapse-id': 'main-floor-roomba-stuck'
##########################################################
## Upstairs Roomba is Stuck iOS Notification
##########################################################
- alias: Roomba - Upstairs Stuck iOS Notification
id: 'roomba_upstairs_stuck_ios_notification'
trigger:
- platform: template
value_template: "{%if is_state_attr('vacuum.upstairs_roomba', 'status', 'Stuck') %}true{%endif%}"
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
action:
- service: notify.mobile_app_USER1s_iphone
data:
message: Upstairs Roomba is Stuck, Please Help
data:
apns_headers:
'apns-collapse-id': 'upstairs-roomba-stuck'
- service: notify.mobile_app_USER2_s_iphone
data:
message: Upstairs Roomba is Stuck, Please Help
data:
apns_headers:
'apns-collapse-id': 'upstairs-roomba-stuck'
##########################################################
## Basement Roomba is Stuck iOS Notification
##########################################################
- alias: Roomba - Basement Stuck iOS Notification
id: 'roomba_basement_stuck_ios_notification'
trigger:
- platform: template
value_template: "{%if is_state_attr('vacuum.basement_roomba', 'status', 'Stuck') %}true{%endif%}"
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
action:
- service: notify.mobile_app_USER1s_iphone
data:
message: Basement Roomba is Stuck, Please Help
data:
apns_headers:
'apns-collapse-id': 'basement-roomba-stuck'
- service: notify.mobile_app_USER2_s_iphone
data:
message: Basement Roomba is Stuck, Please Help
data:
apns_headers:
'apns-collapse-id': 'basement-roomba-stuck'
##########################################################
## Main Floor Roomba is Full iOS Notification
##########################################################
- alias: Roomba - Main Floor Full iOS Notification
id: 'roomba_main_floor_full_ios_notification'
trigger:
- platform: state
entity_id: binary_sensor.main_floor_roomba_bin_full
to: 'True'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
action:
- service: notify.mobile_app_USER1s_iphone
data:
message: Main Floor Roomba is Full, Empty It
data:
apns_headers:
'apns-collapse-id': 'main-floor-roomba-full'
- service: notify.mobile_app_USER2_s_iphone
data:
message: Main Floor Roomba is Full, Empty It
data:
apns_headers:
'apns-collapse-id': 'main-floor-roomba-full'
##########################################################
## Upstairs Roomba is Full iOS Notification
##########################################################
- alias: Roomba - Upstairs Full iOS Notification
id: 'roomba_upstairs_full_ios_notification'
trigger:
- platform: state
entity_id: binary_sensor.upstairs_roomba_bin_full
to: 'True'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
action:
- service: notify.mobile_app_USER1s_iphone
data:
message: Upstairs Roomba is Full, Empty It
data:
apns_headers:
'apns-collapse-id': 'upstairs-roomba-full'
- service: notify.mobile_app_USER2_s_iphone
data:
message: Upstairs Roomba is Full, Empty It
data:
apns_headers:
'apns-collapse-id': 'upstairs-roomba-full'
##########################################################
## Basement Roomba is Full iOS Notification
##########################################################
- alias: Roomba - Basement Full iOS Notification
id: 'roomba_basement_full_ios_notification'
trigger:
- platform: state
entity_id: binary_sensor.basement_roomba_bin_full
to: 'True'
condition:
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
action:
- service: notify.mobile_app_USER1s_iphone
data:
message: Basement Roomba is Full, Empty It
data:
apns_headers:
'apns-collapse-id': 'basement-roomba-full'
- service: notify.mobile_app_USER2_s_iphone
data:
message: Basement Roomba is Full, Empty It
data:
apns_headers:
'apns-collapse-id': 'basement-roomba-full'
#################################################################
## Temp Notifications for Quarantine
#################################################################
##########################################################
## Main Floor Roomba Weekdays iOS Notification
##########################################################
- alias: Roomba - Main Floor Roomba Weekdays iOS Notification
id: 'roomba_mainfloor_roomba_weekdays_ios_notifications'
trigger:
- platform: time
at: '09:55:00'
condition:
- condition: state
entity_id: person.USER2
state: 'home'
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.main_floor_roomba_ran
state: 'off'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: state
entity_id: vacuum.main_floor_roomba
state: 'docked'
- condition: numeric_state
entity_id: sensor.main_floor_roomba_battery_level
above: 99
- condition: not
conditions:
- condition: state
entity_id: group.friends_and_family
state: 'home'
action:
- service: notify.mobile_app_USER2_s_iphone
data:
message: Main Floor Roomba will Run in 5 Mins
##########################################################
## Upstairs Roomba Weekdays iOS Notification
##########################################################
- alias: Roomba - Upstairs Roomba Weekdays iOS Notification
id: 'roomba_upstairs_roomba_weekdays_ios_notification'
trigger:
- platform: time
at: '17:55:00'
- platform: time
at: '18:25:00'
- platform: time
at: '18:55:00'
condition:
- condition: state
entity_id: person.USER2
state: 'home'
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.upstairs_roomba_ran
state: 'off'
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: state
entity_id: vacuum.upstairs_roomba
state: 'docked'
- condition: numeric_state
entity_id: sensor.upstairs_roomba_battery_level
above: 99
- condition: state
entity_id: group.household
state: 'home'
- condition: state
entity_id: binary_sensor.USER1s_office_motion
state: 'off'
- condition: state
entity_id: binary_sensor.USER2s_office_motion
state: 'off'
- condition: state
entity_id: binary_sensor.stairs_motion
state: 'off'
- condition: state
entity_id: binary_sensor.upstairs_bathroom_motion
state: 'off'
- condition: state
entity_id: binary_sensor.USER2_office_occupancy
state: 'off'
- condition: not
conditions:
- condition: state
entity_id: group.friends_and_family
state: 'home'
action:
- service: notify.mobile_app_USER2_s_iphone
data:
message: Upstairs Roomba will Run in 5 Mins
##########################################################
## Basement Roomba Weekdays iOS Notification
##########################################################
- alias: Roomba - Basement Roomba Weekdays iOS Notification
id: 'roomba_basement_roomba_weekday_ios_notification'
trigger:
- platform: time
at: '09:55:00'
condition:
- condition: state
entity_id: person.USER2
state: 'home'
- condition: state
entity_id: input_boolean.disable_roomba
state: 'off'
- condition: state
entity_id: input_boolean.basement_roomba_ran
state: 'off'
- condition: time
weekday:
- mon
- wed
- fri
- condition: state
entity_id: vacuum.basement_roomba
state: 'docked'
- condition: state
entity_id: binary_sensor.basement_drain_water_sensor_liquid_detected
state: 'off'
- condition: state
entity_id: binary_sensor.basement_door_water_sensor
state: 'off'
- condition: numeric_state
entity_id: sensor.basement_roomba_battery_level
above: 99
- condition: state
entity_id: person.USER1
state: 'home'
- condition: not
conditions:
- condition: state
entity_id: group.friends_and_family
state: 'home'
action:
- service: notify.mobile_app_USER2_s_iphone
data:
message: Basement Roomba will Run in 5 Mins
You can’t perform that action at this time.