AutomationDataset/HofmaDresu/HofmaDresu_automations.yaml

1989 lines
50 KiB
YAML

- alias: Activate circadian overnight
description: ''
triggers:
- trigger: time
at: 04:00:00
conditions:
- condition: and
conditions:
- condition: device
type: is_off
device_id: 7a00544c97f80dfcc3ba0fab5f0f2b06
entity_id: 6aad29377c9d331661aefb7d3aa9bf6c
domain: light
- condition: device
type: is_off
device_id: 0eec206f3ae8307023fe6e831b9dc8c2
entity_id: 4f504f129d920af05dbfed66e23bcf8f
domain: light
- condition: device
type: is_off
device_id: bad671e7062197c2244063c9ab807b41
entity_id: 570122fb667e2bbf465c4b1eee4cc5b8
domain: light
- condition: device
type: is_off
device_id: 1155e017f2b58ecdf76d69807001a0b9
entity_id: 525207ce60b068d636526e83f993b12a
domain: light
alias: Main lights are off
actions:
- action: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.circadian_lighting_whole_house_circadian_switch
mode: single
- alias: Arming alarm and leaving
description: ''
triggers:
- trigger: conversation
command:
- I'm Leaving
- I am leaving
conditions: []
actions:
- set_conversation_response: ''
- data: {}
action: script.leaving_home
mode: single
- alias: 'Arrive home routine '
description: ''
triggers:
- entity_id: person.hofmadresu
zone: zone.home
event: enter
trigger: zone
conditions:
- condition: device
device_id: 12991409e93a14125e39db65a3b740dc
domain: alarm_control_panel
entity_id: ed8fc83278462fc5ba4f6de76da799ad
type: is_armed_away
actions:
- if:
- condition: state
entity_id: input_boolean.vacation_mode
state: 'on'
then:
- action: input_boolean.turn_off
metadata: {}
data: {}
target:
entity_id: input_boolean.vacation_mode
alias: Turn off vacation mode
- device_id: 12991409e93a14125e39db65a3b740dc
domain: alarm_control_panel
entity_id: ed8fc83278462fc5ba4f6de76da799ad
type: disarm
code: '{{!secret alarm_code}}'
- action: script.turn_on
metadata: {}
data: {}
target:
entity_id: script.unlock_doors
- alias: Lights on if dark
if:
- condition: sun
after: sunset
before: sunrise
then:
- type: turn_on
device_id: 0f1815f6576728547da6fbc3a3b69277
entity_id: d7144b619bd94371cb9c1e6459036229
domain: switch
- type: turn_on
device_id: 8576e7dab40455676993ad9a4bcc5c49
entity_id: f2899e19720f9c1b0f0c164f3eea4069
domain: switch
- type: turn_on
device_id: 7a00544c97f80dfcc3ba0fab5f0f2b06
entity_id: 6aad29377c9d331661aefb7d3aa9bf6c
domain: light
- type: turn_on
device_id: 0eec206f3ae8307023fe6e831b9dc8c2
entity_id: 4f504f129d920af05dbfed66e23bcf8f
domain: light
- delay:
hours: 0
minutes: 10
seconds: 0
milliseconds: 0
- type: turn_off
device_id: 0f1815f6576728547da6fbc3a3b69277
entity_id: d7144b619bd94371cb9c1e6459036229
domain: switch
else:
- if:
- condition: numeric_state
entity_id: sensor.openweathermap_temperature
above: 10
then:
- variables:
action_open_blinds: '{{ ''OPEN_BLINDS_'' ~ context.id }}'
- alias: Ask to open the blinds
action: notify.mobile_app_pixel_8
data:
message: Open the blinds?
data:
actions:
- action: '{{ action_open_blinds }}'
title: Do it!
- alias: Wait for a response
wait_for_trigger:
- event_type: mobile_app_notification_action
event_data:
action: '{{ action_open_blinds }}'
trigger: event
timeout:
hours: 0
minutes: 2
seconds: 0
milliseconds: 0
- choose:
- conditions:
- condition: template
value_template: '{{ wait.trigger.event.data.action == action_open_blinds
}}'
sequence:
- data: {}
action: script.zarathustra
enabled: true
mode: single
- alias: Basement automatic lights
description: ''
trigger:
- platform: state
entity_id:
- binary_sensor.basement_motion_sensor_motion
to: 'on'
condition:
- condition: and
conditions:
- condition: device
type: is_off
device_id: 7ee989242547eb89f3064d90902f0eb7
entity_id: bb00fcbf210a9d5ff50742987089da85
domain: light
action:
- service: light.turn_on
metadata: {}
data: {}
target:
area_id:
- basement
- wait_for_trigger:
- platform: state
entity_id:
- binary_sensor.basement_motion_sensor_motion
from: 'on'
for:
hours: 0
minutes: 5
seconds: 0
- service: light.turn_off
metadata: {}
data: {}
target:
area_id:
- basement
mode: single
- alias: Bedroom light off on shades opened
description: ''
trigger:
- platform: template
value_template: ' {{state_attr(''cover.bedroom_shades'', ''current_position'')
| int == 100 }}'
for:
hours: 0
minutes: 0
seconds: 30
condition:
- condition: sun
before: sunset
action:
- type: turn_off
device_id: d4b4dce9f0f3fcdf3e769a70ff259468
entity_id: 89d5346579b899623f4d4f45014c604a
domain: switch
mode: single
- alias: Change thermostat on window open/close
description: ''
triggers:
- entity_id:
- binary_sensor.bedroom_window_open_state
from: null
to: null
for:
hours: 0
minutes: 1
seconds: 0
trigger: state
conditions: []
actions:
- if:
- alias: Bedroom window is open
condition: state
entity_id: binary_sensor.bedroom_window_open_state
state: 'on'
for:
hours: 0
minutes: 0
seconds: 0
then:
- action: climate.set_fan_mode
metadata: {}
data:
fan_mode: 'off'
target:
device_id: 695ac42995783206896bb51e715e03e1
- metadata: {}
data:
hvac_mode: 'off'
target:
entity_id: climate.family_room
alias: Turn off thermostat
action: climate.set_hvac_mode
else:
- data: {}
action: script.set_temp_based_on_mode
mode: single
- alias: Close all shades before sunruse
description: ''
trigger:
- platform: sun
event: sunrise
offset: '-2:00:00'
condition:
- condition: not
conditions:
- condition: state
entity_id: cover.all_shades
state: closed
action:
- service: cover.close_cover
metadata: {}
data: {}
target:
entity_id: cover.all_shades
mode: single
- alias: Coffee timer
description: ''
triggers:
- trigger: conversation
command: Coffee Timer
conditions: []
actions:
- set_conversation_response: ''
- action: tts.speak
metadata: {}
data:
cache: true
message: Activating coffee timer
media_player_entity_id: media_player.home_assistant_voice_091b0c_media_player
target:
entity_id: tts.home_assistant_cloud
- delay:
hours: 0
minutes: 3
seconds: 30
milliseconds: 0
- action: tts.speak
metadata: {}
data:
cache: true
message: Your coffee is done steeping, plunge away!
media_player_entity_id: media_player.home_assistant_voice_091b0c_media_player
target:
entity_id: tts.home_assistant_cloud
mode: single
- alias: Create chores
description: ''
triggers:
- trigger: time
at: 05:00:00
conditions: []
actions:
- alias: Get completed chores
action: todo.get_items
metadata: {}
data:
status:
- completed
response_variable: completedChores
target:
entity_id: todo.chores
- if:
- condition: template
value_template: "{{\n completedChores['todo.chores']['items']|selectattr('summary','search','Replace\
\ furnace filter')|list|count\n > 0}}"
then:
- alias: 'Add chore: Clean used furnace filter'
action: script.add_unique_chore
metadata: {}
data:
chore: Clean used furnace filter
alias: Clean filter if replacement complete
- if:
- condition: template
value_template: "{{\n completedChores['todo.chores']['items']|selectattr('summary','search','Clean\
\ vacuum sensor')|list|count\n > 0}}"
then:
- action: button.press
metadata: {}
data: {}
target:
entity_id: button.roborock_s7_maxv_reset_sensor_consumable
alias: 'Vacuum: Reset sensor count if complete'
- alias: 'Vacuum: Reset filter count if complete'
if:
- condition: template
value_template: "{{\n completedChores['todo.chores']['items']|selectattr('summary','search','Replace\
\ vacuum filter')|list|count\n > 0}}"
then:
- action: button.press
metadata: {}
data: {}
target:
entity_id: button.roborock_s7_maxv_reset_air_filter_consumable
- alias: 'Vacuum: Reset main brush count if complete'
if:
- condition: template
value_template: "{{\n completedChores['todo.chores']['items']|selectattr('summary','search','Replace\
\ vacuum main brush')|list|count\n > 0}}"
then:
- action: button.press
metadata: {}
data: {}
target:
entity_id: button.roborock_s7_maxv_reset_main_brush_consumable
- alias: 'Vacuum: Reset side brush count if complete'
if:
- condition: template
value_template: "{{\n completedChores['todo.chores']['items']|selectattr('summary','search','Replace\
\ vacuum side brush')|list|count\n > 0}}"
then:
- action: button.press
metadata: {}
data: {}
target:
entity_id: button.roborock_s7_maxv_reset_side_brush_consumable
- alias: 'Shelfy: Reset filter count if complete'
if:
- condition: template
value_template: "{{\n completedChores['todo.chores']['items']|selectattr('summary','search','Clean\
\ Shelfy filter')|list|count\n > 0}}"
then:
- action: button.press
metadata: {}
data: {}
target:
entity_id: button.vitesy_shelfy_i_already_washed_the_filter
- alias: 'Shelfy: Reset filter count if complete'
if:
- condition: template
value_template: "{{\n completedChores['todo.chores']['items']|selectattr('summary','search','Clean\
\ fridge')|list|count\n > 0}}"
then:
- action: button.press
metadata: {}
data: {}
target:
entity_id: button.vitesy_shelfy_i_already_cleaned_my_fridge
- action: todo.remove_completed_items
metadata: {}
data: {}
target:
entity_id: todo.chores
- delay:
hours: 0
minutes: 5
seconds: 0
milliseconds: 0
- action: todo.get_items
metadata: {}
data:
status: needs_action
response_variable: chores
target:
entity_id: todo.chores
- if:
- condition: template
value_template: '{{ now().day == 3 and now().month == 1 }}'
then:
- action: script.add_unique_chore
metadata: {}
data:
chore: Refill emergency water
alias: 'Add chore: refill emergency water'
- alias: Add monthy chores
if:
- condition: template
value_template: '{{ now().day == 1 }}'
then:
- action: script.add_unique_chore
metadata: {}
data:
chore: Set up next month's meals on wheels
alias: 'Add chore: Set up next month''s meals on wheels'
- action: script.add_unique_chore
metadata: {}
data:
chore: Water and feed plant
alias: 'Add chore: Water and feed plant'
- alias: 'Add chore: Pay bills'
action: script.add_unique_chore
metadata: {}
data:
chore: Pay bills
- alias: 'Add chore: Check blood pressure'
action: script.add_unique_chore
metadata: {}
data:
chore: Check blood pressure
- alias: 'Add chore: Empty vacuum bag'
action: script.add_unique_chore
metadata: {}
data:
chore: Empty vacuum bag
- alias: 'Add chore: clean washer'
if:
- condition: numeric_state
entity_id: sensor.washer_tub_clean_counter
above: 29
then:
- action: script.add_unique_chore
metadata: {}
data:
chore: Clean washer
- alias: 'Add chore: Replace furnace filter'
if:
- condition: template
value_template: '{{ now().day == 1 and now().month % 3 == 1}}'
then:
- alias: 'Add chore: Replace furnace filter'
action: script.add_unique_chore
metadata: {}
data:
chore: Replace furnace filter
- if:
- condition: and
conditions:
- condition: time
weekday:
- mon
- thu
- sat
- condition: state
entity_id: input_boolean.hummingbird_feeder_out
state: 'on'
then:
- alias: 'Add chore: Refresh hummingbird liquid'
action: script.add_unique_chore
metadata: {}
data:
chore: Refresh hummingbird liquid
alias: 'Add chore: Refresh hummingbird liquid'
- alias: 'Add chore: Vacuum dock error'
if:
- condition: not
conditions:
- condition: state
entity_id: sensor.roborock_s7_maxv_dock_error
state: ok
- condition: state
entity_id: sensor.roborock_s7_maxv_dock_error
state: unavailable
- condition: state
entity_id: sensor.roborock_s7_maxv_dock_error
state: unknown
then:
- alias: 'Add chore: Vacuum dock error'
action: script.add_unique_chore
metadata: {}
data:
chore: 'vacuum dock error: {{states.sensor.roborock_s7_maxv_dock_error.state}}'
- alias: 'Add chore: Clean vacuum sensor'
if:
- condition: numeric_state
entity_id: sensor.roborock_s7_maxv_sensor_time_left
below: 0
then:
- alias: 'Add chore: Clean vacuum sensor'
action: script.add_unique_chore
metadata: {}
data:
chore: Clean vacuum sensor
- if:
- condition: numeric_state
entity_id: sensor.roborock_s7_maxv_filter_time_left
below: 0
then:
- alias: 'Add chore: Replace vacuum filter'
action: script.add_unique_chore
metadata: {}
data:
chore: Replace vacuum filter
alias: 'Add chore: Replace vacuum filter'
- alias: 'Add chore: Replace vacuum main brush'
if:
- condition: numeric_state
entity_id: sensor.roborock_s7_maxv_main_brush_time_left
below: 0
then:
- alias: 'Add chore: Replace vacuum main brush'
action: script.add_unique_chore
metadata: {}
data:
chore: Replace vacuum main brush
- alias: 'Add chore: Replace vacuum side brush'
if:
- condition: numeric_state
entity_id: sensor.roborock_s7_maxv_side_brush_time_left
below: 0
then:
- alias: 'Add chore: Replace vacuum side brush'
action: script.add_unique_chore
metadata: {}
data:
chore: Replace vacuum side brush
- alias: 'Add chore: Clean basement bathroom'
if:
- condition: template
value_template: '{{ now().day == 1 and now().month % 3 == 1}}'
then:
- action: script.add_unique_chore
metadata: {}
data:
chore: Clean basement bathroom
alias: 'Add chore: Clean basement bathroom'
- alias: 'Add chore: Clean Shelfy filter'
if:
- condition: numeric_state
entity_id: sensor.vitesy_shelfy_remaining_filter_cleaning_days
below: 1
then:
- action: script.add_unique_chore
metadata: {}
data:
chore: Clean Shelfy filter
- alias: 'Add chore: Clean fridge'
if:
- condition: numeric_state
entity_id: sensor.vitesy_shelfy_remaining_fridge_cleaning_days
below: 1
then:
- action: script.add_unique_chore
metadata: {}
data:
chore: Clean fridge
- alias: Low battery chores
sequence:
- variables:
lowPowerBatteries: '{% set batteryList = states.sensor | selectattr(''name'',
''match'', ''.*[Bb]attery.*'') | rejectattr(''name'', ''match'', ''.*[Pp]hone.*'')
| rejectattr(''name'', ''match'', ''.*Roborock .*'') | rejectattr(''name'',
''match'', ''.*Mo99.*'') | rejectattr(''name'', ''match'', ''Front Door
Motion Sensor Battery'') %} {% set emptyBatteryList = batteryList | selectattr(''state'',
''eq'', ''unavailable'') %} {% set lowBatteryList = batteryList | rejectattr(''state'',
''eq'', ''unavailable'') %} {% set data = namespace(batteryData=[]) %} {%-
for lb in emptyBatteryList %} {% set data.batteryData = data.batteryData
+ [{"name": lb.name, "batteryLevel": 0}] %} {% endfor -%} {%- for lb in
lowBatteryList %} {% set data.batteryData = data.batteryData + [{"name":
lb.name, "batteryLevel": lb.state|float}] %} {% endfor -%} {{ data.batteryData
| rejectattr(''batteryLevel'', ''gt'', 80) | map(attribute=''name'') | list
}}'
- repeat:
sequence:
- action: script.add_unique_chore
metadata: {}
data:
chore: Replace {{repeat.item}}
for_each: '{{lowPowerBatteries}}'
mode: single
- alias: Deluminate
description: ''
triggers:
- trigger: conversation
command: Deluminate
conditions: []
actions:
- action: scene.turn_on
metadata: {}
data: {}
target:
entity_id: scene.power_off
mode: single
- alias: Entryway on for motion
description: ''
trigger:
- type: motion
platform: device
device_id: f1a451d00e600cabf0bc652eeb472934
entity_id: 7d28ef5d2c38a911fdaed396414d3e47
domain: binary_sensor
condition:
- condition: and
conditions:
- condition: sun
after: sunset
before: sunrise
- condition: device
type: is_off
device_id: 5bb08e144b56c7704e730b5423bbd866
entity_id: e61c2892bd3b7db050d5212b10ed5230
domain: light
action:
- type: turn_on
device_id: 5bb08e144b56c7704e730b5423bbd866
entity_id: e61c2892bd3b7db050d5212b10ed5230
domain: light
- delay:
hours: 0
minutes: 5
seconds: 0
milliseconds: 0
- type: turn_off
device_id: 5bb08e144b56c7704e730b5423bbd866
entity_id: e61c2892bd3b7db050d5212b10ed5230
domain: light
mode: single
- alias: Holiday lights morning
description: ''
trigger:
- platform: sun
event: sunrise
offset: -01:00:00
condition: []
action:
- action: script.run_holiday_lights
metadata: {}
data: {}
- wait_for_trigger:
- platform: sun
event: sunrise
offset: 01:00:00
- metadata: {}
data: {}
target:
device_id: 957afb69a90840abaf62c497bf3c4185
action: light.turn_off
mode: single
- alias: Holiday lights night
description: ''
trigger:
- platform: sun
event: sunset
offset: -01:00:00
condition: []
action:
- action: script.run_holiday_lights
metadata: {}
data: {}
- wait_for_trigger:
- platform: time
at: '23:59:59'
- metadata: {}
data: {}
target:
device_id: 957afb69a90840abaf62c497bf3c4185
action: light.turn_off
mode: single
- alias: House temp
description: ''
trigger:
- platform: time_pattern
hours: /1
- platform: state
entity_id:
- input_boolean.sick_mode
- input_boolean.pet_mode
condition:
- alias: Not off nor eco
condition: not
conditions:
- condition: or
conditions:
- condition: device
device_id: 695ac42995783206896bb51e715e03e1
domain: climate
entity_id: c6c45aeb39a40b31cfc9e0bd944c67ae
type: is_hvac_mode
hvac_mode: 'off'
- condition: device
device_id: 695ac42995783206896bb51e715e03e1
domain: climate
entity_id: c6c45aeb39a40b31cfc9e0bd944c67ae
type: is_preset_mode
preset_mode: eco
action:
- service: script.turn_on
metadata: {}
data: {}
target:
entity_id: script.set_temp_based_on_mode
mode: single
- alias: Illuminate
description: ''
triggers:
- trigger: conversation
command: Illuminate
conditions: []
actions:
- action: light.turn_on
metadata: {}
data: {}
target:
area_id:
- living_room
- office
- action: switch.turn_on
metadata: {}
data: {}
target:
device_id:
- 8576e7dab40455676993ad9a4bcc5c49
- d4b4dce9f0f3fcdf3e769a70ff259468
mode: single
- alias: 'Fun: Intruder alert'
description: ''
triggers:
- trigger: conversation
command: Intruder alert
conditions: []
actions:
- set_conversation_response: ''
- action: tts.speak
metadata: {}
data:
cache: true
media_player_entity_id: media_player.home_assistant_voice_091b0c_media_player
message: So you have chosen death!
options:
voice: dfjkpJrfkVrmbTFL2WxZ
target:
entity_id: tts.elevenlabs
- wait_template: '{{is_state(''media_player.home_assistant_voice_091b0c_media_player'',
''playing'')}}'
continue_on_timeout: true
- wait_template: '{{is_state(''media_player.home_assistant_voice_091b0c_media_player'',
''idle'')}}'
continue_on_timeout: true
- target:
entity_id: media_player.home_assistant_voice_091b0c_media_player
data:
media_content_id: media-source://media_source/local/doom eternal 22 intro.mp3
media_content_type: audio/mpeg
metadata:
title: doom eternal 22 intro.mp3
thumbnail: null
media_class: music
children_media_class: null
navigateIds:
- {}
- media_content_type: app
media_content_id: media-source://media_source
action: media_player.play_media
- action: scene.turn_on
metadata: {}
data: {}
target:
entity_id: scene.indoor_power_off
- action: script.turn_on
metadata: {}
data: {}
target:
entity_id: script.lock_doors
- action: cover.close_cover
metadata: {}
data: {}
target:
entity_id: cover.all_shades
mode: single
- alias: Keep air good
description: ''
trigger:
- type: carbon_dioxide
platform: device
device_id: d276e61bffda959e361f8b8683b8afd6
entity_id: 070616c02a3b9688b3a97f4023c0b515
domain: sensor
above: 700
condition:
- condition: and
conditions:
- alias: Nest not off
condition: not
conditions:
- condition: device
device_id: 695ac42995783206896bb51e715e03e1
domain: climate
entity_id: c6c45aeb39a40b31cfc9e0bd944c67ae
type: is_hvac_mode
hvac_mode: 'off'
- condition: zone
entity_id: person.hofmadresu
zone: zone.home
action:
- service: climate.set_fan_mode
data:
fan_mode: 'on'
target:
device_id: 695ac42995783206896bb51e715e03e1
- wait_for_trigger:
- type: carbon_dioxide
platform: device
device_id: d276e61bffda959e361f8b8683b8afd6
entity_id: 070616c02a3b9688b3a97f4023c0b515
domain: sensor
below: 600
alias: Wait for good air
- service: climate.set_fan_mode
data:
fan_mode: 'off'
target:
device_id: 695ac42995783206896bb51e715e03e1
mode: restart
- alias: Living room dusk
description: ''
triggers:
- event: sunset
offset: '-1:00:00'
trigger: sun
conditions:
- condition: and
conditions:
- condition: zone
entity_id: person.hofmadresu
zone: zone.home
actions:
- type: turn_on
device_id: 7a00544c97f80dfcc3ba0fab5f0f2b06
entity_id: 6aad29377c9d331661aefb7d3aa9bf6c
domain: light
- type: turn_on
device_id: 0eec206f3ae8307023fe6e831b9dc8c2
entity_id: 4f504f129d920af05dbfed66e23bcf8f
domain: light
mode: single
- alias: Living room lights off on shades opened
description: ''
mode: single
triggers:
- value_template: ' {{state_attr(''cover.living_room_short_shades'', ''current_position'')
| int == 100 }}'
for:
hours: 0
minutes: 0
seconds: 30
trigger: template
- value_template: ' {{state_attr(''cover.living_room_long_shades'', ''current_position'')
| int == 100 }}'
for:
hours: 0
minutes: 0
seconds: 30
trigger: template
conditions:
- condition: sun
before: sunset
actions:
- type: turn_off
device_id: 0eec206f3ae8307023fe6e831b9dc8c2
entity_id: 4f504f129d920af05dbfed66e23bcf8f
domain: light
- type: turn_off
device_id: 7a00544c97f80dfcc3ba0fab5f0f2b06
entity_id: 6aad29377c9d331661aefb7d3aa9bf6c
domain: light
- alias: Make Me Move
description: ''
triggers:
- minutes: '30'
trigger: time_pattern
- minutes: '0'
trigger: time_pattern
conditions:
- condition: time
after: 09:00:00
before: '17:00:00'
weekday:
- fri
- thu
- wed
- tue
- mon
- condition: or
conditions:
- condition: zone
entity_id: person.hofmadresu
zone: zone.home
- condition: zone
entity_id: person.hofmadresu
zone: zone.aunties
- condition: zone
entity_id: person.hofmadresu
zone: zone.parents
- condition: state
entity_id: input_boolean.sick_mode
state: 'off'
actions:
- variables:
anywhereExercises:
- name: Pushups
unit: reps
count: '10'
- name: Situps
unit: reps
count: '10'
- name: Squats
unit: reps
count: '10'
- name: Planks
unit: seconds
count: '30'
- name: Lunges
unit: reps
count: '5'
nonOfficeExercises:
- name: Wall Sits
unit: seconds
count: '30'
- name: Leg Lifts
unit: reps
count: '10'
- name: Superman Pushups
unit: reps
count: '5'
homeEquipmentExercises:
- name: Kettlebell Swings
unit: reps
count: '10'
- name: Kettlebell Halos
unit: reps
count: '2'
- name: Turkish Get Ups
unit: reps
count: '2'
- name: Pullups
unit: reps
count: '10'
- name: Curls
unit: reps
count: '10'
- name: Stair Climbs
unit: reps
count: '16'
- name: Triceps Lifts
unit: reps
count: '10'
- name: Swimmer's Presses
unit: reps
count: '5'
- name: One Footed Swimmer's Presses
unit: reps
count: '2'
- name: Rope Jumps
unit: reps
count: 20
isHome: '{{''person.hofmadresu'' in state_attr(''zone.home'', ''persons'')}}'
isAtAunties: '{{''person.hofmadresu'' in state_attr(''zone.aunties'', ''persons'')}}'
isAtParents: '{{''person.hofmadresu'' in state_attr(''zone.parents'', ''persons'')}}'
availableNonOfficeExercises: '{{nonOfficeExercises if isHome or isAtAunties
or isAtParents else []}}'
availableHomeEquipmentExercises: '{{homeEquipmentExercises if isHome else []}}'
exercises: '{{anywhereExercises + availableNonOfficeExercises + availableHomeEquipmentExercises}}'
activeExercises: '{{exercises}}'
randMax: '{{activeExercises|length}}'
exerciseIndex: '{{range(0, randMax)|random}}'
repsMessage: Do {{activeExercises[exerciseIndex].count}} {{activeExercises[exerciseIndex].name}}
secondsMessage: Do {{activeExercises[exerciseIndex].name}} for {{activeExercises[exerciseIndex].count}}
seconds
message: '{{repsMessage if activeExercises[exerciseIndex].unit == ''reps'' else
secondsMessage}}'
- data:
title: Time To Move
message: '{{message}}'
data:
channel: Make Me Move Priority
priority: high
ttl: 0
notification_icon: mdi:weight-lifter
icon_url: https://raw.githubusercontent.com/HofmaDresu/HomeAssistant/main/icons/MakeMeMoveIcon.png
timeout: '{{30 * 60}}'
action: notify.mobile_app_pixel_8
mode: single
- alias: Monthly full backup
description: ''
trigger:
- platform: time
at: 03:00:00
condition:
- condition: template
value_template: '{{ now().day == 1 }}'
alias: Is first of month
action:
- service: hassio.backup_full
metadata: {}
data:
compressed: true
homeassistant_exclude_database: false
mode: single
- alias: 'Mower: Mow easement on command'
description: ''
triggers:
- trigger: conversation
command:
- Mow the easement
- Mow easement
conditions: []
actions:
- alias: Mowe easement
action: mammotion.start_mow
metadata: {}
data:
is_mow: true
is_dump: false
border_mode: '0'
speed: 0.3
ultra_wave: '10'
channel_mode: '0'
channel_width: 12
rain_tactics: '1'
toward_mode: '2'
mowing_laps: '3'
obstacle_laps: '1'
start_progress: 0
blade_height: 88.9
areas:
- switch.mo99_area_8647782149318140073
target:
entity_id: lawn_mower.mo99
mode: single
- alias: 'Mower: Mow lawn'
description: ''
triggers:
- trigger: time
at: '10:00:00'
conditions: []
actions:
- alias: Mow if needed
if:
- condition: and
conditions:
- condition: state
entity_id: sensor.openweathermap_precipitation_kind
state: None
for:
hours: 2
minutes: 0
seconds: 0
enabled: true
- condition: state
entity_id: binary_sensor.today_is_mow_day
state: 'on'
- condition: numeric_state
entity_id: sensor.openweathermap_temperature
above: 40
then:
- alias: Mow target sections
if:
- condition: zone
entity_id: person.hofmadresu
zone: zone.home
then:
- alias: Mow entire lawn
action: mammotion.start_mow
metadata: {}
data:
is_mow: true
is_dump: false
border_mode: '0'
speed: 0.3
ultra_wave: '10'
channel_mode: '0'
channel_width: 12
rain_tactics: '1'
toward_mode: '2'
mowing_laps: '3'
obstacle_laps: '1'
start_progress: 0
blade_height: 88.9
areas:
- switch.mo99_area_8647782149318140073
- switch.mo99_area_driveway_edge
- switch.mo99_area_3365964821918555184
target:
entity_id: lawn_mower.mo99
else:
- alias: Mow just main lawn
action: mammotion.start_mow
metadata: {}
data:
is_mow: true
is_dump: false
border_mode: '0'
speed: 0.3
ultra_wave: '10'
channel_mode: '0'
channel_width: 12
rain_tactics: '1'
toward_mode: '0'
mowing_laps: '3'
obstacle_laps: '1'
start_progress: 0
blade_height: 88.9
areas:
- switch.mo99_area_3365964821918555184
target:
entity_id: lawn_mower.mo99
- data:
title: Mo
message: Mowing has started
data:
channel: Mo automation
priority: high
ttl: 0
notification_icon: mdi:robot-mower
action: notify.mobile_app_pixel_8
else:
- action: input_number.increment
metadata: {}
data: {}
target:
entity_id: input_number.days_since_last_mow
mode: single
- alias: Notify close windows on high AQI
description: ''
triggers:
- trigger: numeric_state
entity_id:
- sensor.ypsilanti_michigan_usa_air_quality_index
above: 100
conditions:
- condition: state
entity_id: binary_sensor.bedroom_window_open_state
state: 'on'
actions:
- action: notify.mobile_app_pixel_8
metadata: {}
data:
message: High AQI
title: Close windows
mode: single
- alias: 'Mower: Notify complete'
description: ''
triggers:
- trigger: numeric_state
entity_id:
- sensor.mo99_progress
above: 99
conditions: []
actions:
- data:
title: Mo
message: Mowing has finished
data:
channel: Mo automation
priority: high
ttl: 0
notification_icon: mdi:robot-mower
action: notify.mobile_app_pixel_8
- action: input_number.set_value
metadata: {}
data:
value: 0
target:
entity_id: input_number.days_since_last_mow
mode: single
- alias: 'Mower: Notify error'
description: ''
triggers:
- trigger: state
entity_id:
- sensor.mo99_last_error_code
conditions:
- condition: not
conditions:
- condition: time
after: 00:00:00
before: 09:00:00
- condition: state
entity_id: sensor.mo99_last_error_code
state: '1005'
- condition: state
entity_id: sensor.mo99_last_error_code
state: '2701'
- condition: state
entity_id: sensor.mo99_last_error_code
state: '1108'
- condition: state
entity_id: sensor.mo99_last_error_code
state: unavailable
- condition: state
entity_id: sensor.mo99_last_error_code
state: unknown
actions:
- choose:
- conditions:
- condition: or
conditions:
- condition: state
entity_id: sensor.mo99_last_error_code
state: '1105'
alias: Is resumable error
sequence:
- delay:
hours: 0
minutes: 1
seconds: 0
milliseconds: 0
- action: lawn_mower.start_mowing
metadata: {}
data: {}
target:
device_id: c1a6fce56e3605c6ec1e00d22321e2f2
- data:
title: Mo
message: Auto-resume attempted, check if it worked
data:
channel: Mo automation
priority: high
ttl: 0
notification_icon: mdi:robot-mower
action: notify.mobile_app_pixel_8
- conditions:
- condition: state
entity_id: sensor.mo99_last_error_code
state: '1300'
sequence:
- delay:
hours: 0
minutes: 15
seconds: 0
milliseconds: 0
- if:
- condition: state
entity_id: sensor.mo99_activity_mode
state: MODE_PAUSE
then:
- data:
title: Mo
message: Mo has had weak satellite connection for 15 minutes, check its
position
data:
channel: Mo automation
priority: high
ttl: 0
notification_icon: mdi:robot-mower
action: notify.mobile_app_pixel_8
alias: Last error code is 1300 (Poor positioning status)
- conditions:
- condition: state
entity_id: sensor.mo99_last_error_code
state: '1068'
sequence:
- alias: 'Add chore: Clean Mo''s camera'
action: script.add_unique_chore
metadata: {}
data:
chore: Clean Mo's camera
alias: Last error code is 1068 (Clean camera)
default:
- data:
title: Mo encountered an error
message: '{{states.sensor.mo99_last_error_code.state}}: {{states.sensor.mo99_last_error.state}}'
data:
channel: Mo automation
priority: high
ttl: 0
notification_icon: mdi:robot-mower
action: notify.mobile_app_pixel_8
mode: single
- alias: Notify to open windows
description: ''
triggers:
- entity_id:
- sensor.openweathermap_temperature
above: 60
below: 80
trigger: numeric_state
conditions:
- condition: state
entity_id: person.hofmadresu
state: home
- condition: time
after: 07:00:00
before: '22:00:00'
- condition: state
entity_id: binary_sensor.bedroom_window_open_state
state: 'off'
- condition: numeric_state
entity_id: sensor.ypsilanti_michigan_usa_air_quality_index
below: 100
- condition: state
entity_id: sensor.openweathermap_precipitation_kind
state: None
for:
hours: 1
minutes: 0
seconds: 0
actions:
- metadata: {}
data:
message: Temp good to open windows
title: Open Windows
action: notify.mobile_app_pixel_8
mode: single
- alias: Office automatic lights
description: ''
triggers:
- entity_id:
- binary_sensor.office_motion_sensor_motion
to: 'on'
trigger: state
conditions:
- condition: device
type: is_off
device_id: bad671e7062197c2244063c9ab807b41
entity_id: 570122fb667e2bbf465c4b1eee4cc5b8
domain: light
- condition: device
type: is_off
device_id: 1155e017f2b58ecdf76d69807001a0b9
entity_id: 525207ce60b068d636526e83f993b12a
domain: light
- condition: state
entity_id: input_boolean.pet_mode
state: 'off'
- condition: numeric_state
entity_id: cover.office_shades
attribute: current_position
below: 50
actions:
- metadata: {}
data: {}
target:
area_id: office
action: light.turn_on
- wait_for_trigger:
- entity_id:
- binary_sensor.office_motion_sensor_motion
from: 'on'
for:
hours: 0
minutes: 1
seconds: 0
trigger: state
- metadata: {}
data: {}
target:
area_id: office
action: light.turn_off
mode: single
- description: ''
mode: single
triggers:
- value_template: ' {{state_attr(''cover.office_shades'', ''current_position'')
| int == 100 }}'
for:
hours: 0
minutes: 0
seconds: 30
trigger: template
conditions:
- condition: sun
before: sunset
actions:
- type: turn_off
device_id: bad671e7062197c2244063c9ab807b41
entity_id: 570122fb667e2bbf465c4b1eee4cc5b8
domain: light
- type: turn_off
device_id: 1155e017f2b58ecdf76d69807001a0b9
entity_id: 525207ce60b068d636526e83f993b12a
domain: light
- type: turn_off
device_id: 53c67fc630ffb53184d225bbfc7c2fa8
entity_id: df93ec8a60392af9342a2076858609f2
domain: light
alias: Office lights off on shade open
- alias: Office lights off when computer shut down
description: ''
triggers:
- trigger: numeric_state
entity_id:
- sensor.computer_plug_top_power
below: 10
conditions: []
actions:
- action: light.turn_off
metadata: {}
data: {}
target:
area_id: office
mode: single
- alias: 'On Startup: shut off driveway garden watering'
description: ''
triggers:
- trigger: homeassistant
event: start
conditions:
- condition: device
type: is_on
device_id: 1dd1aabd76c1d3600d697e2071897d7a
entity_id: f823727348b8efe0357b3e46bcf0329e
domain: switch
actions:
- action: switch.turn_off
metadata: {}
data: {}
target:
device_id: 1dd1aabd76c1d3600d697e2071897d7a
mode: single
- alias: 'Mower: power control'
description: ''
triggers:
- trigger: time
at: 01:00:00
conditions: []
actions:
- alias: Power on/off as needed
if:
- condition: state
entity_id: binary_sensor.today_is_mow_day
state: 'on'
then:
- action: switch.turn_on
metadata: {}
data: {}
target:
entity_id:
- switch.mower_outlet
- delay:
hours: 0
minutes: 5
seconds: 0
milliseconds: 0
- action: switch.turn_on
metadata: {}
data: {}
target:
entity_id: switch.mo99_turn_updates_on_off
else:
- if:
- condition: state
entity_id: switch.mower_outlet
state: 'on'
then:
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.mo99_turn_updates_on_off
- delay:
hours: 0
minutes: 5
seconds: 0
milliseconds: 0
- action: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.mower_outlet
mode: single
- alias: Protect from heat
description: ''
mode: single
triggers:
- entity_id:
- sensor.openweathermap_feels_like_temperature
above: 89
trigger: numeric_state
- entity_id:
- sensor.openweathermap_temperature
above: 89
trigger: numeric_state
conditions:
- condition: and
conditions:
- condition: or
conditions:
- condition: state
entity_id: cover.south_shades
state: open
- condition: state
entity_id: binary_sensor.bedroom_window_open_state
state: 'on'
- condition: state
entity_id: person.hofmadresu
state: home
actions:
- alias: If shades and windows both open
if:
- condition: and
conditions:
- condition: state
entity_id: binary_sensor.bedroom_window_open_state
state: 'on'
- condition: state
entity_id: cover.south_shades
state: open
then:
- metadata: {}
data:
cache: false
entity_id: media_player.home_assistant_voice_091b0c_media_player
message: Heat index is very high, you should close windows. South shades will
close in 5 minutes
action: tts.cloud_say
- data:
title: Extreme high temperature
message: Heat index is very high, you should close windows. South shades will
close in 5 minutes
action: notify.mobile_app_pixel_8
- delay:
hours: 0
minutes: 5
seconds: 0
milliseconds: 0
- metadata: {}
data: {}
target:
entity_id: cover.south_shades
action: cover.close_cover
- alias: If only shades open
if:
- condition: and
conditions:
- condition: state
entity_id: cover.south_shades
state: open
- condition: not
conditions:
- condition: state
entity_id: binary_sensor.bedroom_window_open_state
state: 'on'
alias: Windows not open
then:
- metadata: {}
data: {}
target:
entity_id: cover.south_shades
action: cover.close_cover
- alias: If only windows open
if:
- condition: and
conditions:
- condition: state
entity_id: binary_sensor.bedroom_window_open_state
state: 'on'
- alias: Shades not open
condition: not
conditions:
- condition: state
entity_id: cover.south_shades
state: open
then:
- metadata: {}
data:
title: Extreme high temperature
message: Heat index is very high, you should close windows
action: notify.persistent_notification
- metadata: {}
data:
cache: false
entity_id: media_player.home_assistant_voice_091b0c_media_player
message: Heat index is very high, you should close windows
action: tts.cloud_say
- alias: Set alarm on command
description: ''
triggers:
- trigger: conversation
command:
- Goodnight
- Good night
conditions: []
actions:
- set_conversation_response: ''
- parallel:
- if:
- condition: template
value_template: '{{true}}'
then:
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
- device_id: 12991409e93a14125e39db65a3b740dc
domain: alarm_control_panel
entity_id: ed8fc83278462fc5ba4f6de76da799ad
type: arm_home
code: '{{!secret alarm_code}}'
- action: script.turn_on
metadata: {}
data: {}
target:
entity_id: script.lock_doors
- delay:
hours: 0
minutes: 0
seconds: 50
milliseconds: 0
- target:
entity_id: scene.power_off
metadata: {}
action: scene.turn_on
data: {}
- alias: Run morning routine if CB off
if:
- condition: state
entity_id: input_boolean.alarm_circuitbreaker
state: 'off'
then:
- action: script.turn_on
metadata: {}
data: {}
target:
entity_id: script.morning_routine
mode: single
- alias: Set morning alarm override
description: ''
triggers:
- trigger: conversation
command:
- Set morning alarm to {time}
conditions: []
actions:
- action: input_datetime.set_datetime
metadata: {}
data:
time: '{{trigger.slots.time}}'
target:
entity_id: input_datetime.alarm_override_time
- action: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.alarm_override_active
mode: single
- alias: Terrible air notification
description: ''
triggers:
- type: carbon_dioxide
device_id: d276e61bffda959e361f8b8683b8afd6
entity_id: 070616c02a3b9688b3a97f4023c0b515
domain: sensor
above: 1000
trigger: device
for:
hours: 0
minutes: 10
seconds: 0
- type: carbon_dioxide
device_id: d276e61bffda959e361f8b8683b8afd6
entity_id: 070616c02a3b9688b3a97f4023c0b515
domain: sensor
above: 800
for:
hours: 1
minutes: 0
seconds: 0
trigger: device
conditions:
- condition: and
conditions:
- condition: zone
entity_id: person.hofmadresu
zone: zone.home
- condition: not
conditions:
- condition: state
entity_id: binary_sensor.bedroom_window_open_state
state: 'on'
alias: Home and window is not open
actions:
- data:
title: Terrible air, maybe you should open a window
message: CO2 is very high
action: notify.mobile_app_pixel_8
mode: single
- alias: Toggle recycling boolean
description: ''
triggers:
- trigger: time
at: '11:00:00'
conditions:
- condition: time
weekday:
- tue
actions:
- action: input_boolean.toggle
metadata: {}
data: {}
target:
entity_id: input_boolean.recycling_at_next_trash
mode: single
- alias: Vacation mode off
description: ''
trigger:
- platform: state
entity_id:
- input_boolean.vacation_mode
from: 'on'
to: 'off'
condition: []
action:
- device_id: 695ac42995783206896bb51e715e03e1
domain: climate
entity_id: c6c45aeb39a40b31cfc9e0bd944c67ae
type: set_preset_mode
preset_mode: none
- target:
entity_id:
- input_boolean.vacation_mode
- input_boolean.vacuum_circuitbreaker
data: {}
action: input_boolean.turn_off
- target:
entity_id: script.set_temp_based_on_mode
data: {}
action: script.turn_on
- metadata: {}
data: {}
target:
entity_id: switch.non_essential_outlets
action: switch.turn_on
mode: single
- alias: Vacation mode on
description: ''
trigger:
- platform: time
at: 04:00:00
condition:
- condition: and
conditions:
- condition: state
entity_id: input_boolean.vacation_mode_circuitbreaker
state: 'off'
- condition: not
conditions:
- condition: zone
entity_id: person.hofmadresu
zone: zone.home
action:
- service: input_boolean.turn_on
metadata: {}
data: {}
target:
entity_id: input_boolean.vacation_mode
- service: script.turn_on
target:
entity_id: script.vacation
data: {}
- device_id: 695ac42995783206896bb51e715e03e1
domain: climate
entity_id: c6c45aeb39a40b31cfc9e0bd944c67ae
type: set_preset_mode
preset_mode: eco
- service: input_boolean.turn_on
target:
entity_id: input_boolean.vacuum_circuitbreaker
data: {}
- service: switch.turn_off
metadata: {}
data: {}
target:
entity_id: switch.non_essential_outlets
mode: single
- alias: Vacuum main floor
description: ''
trigger:
- platform: time
at: '11:00:00'
condition:
- condition: and
conditions:
- condition: state
entity_id: input_boolean.vacuum_circuitbreaker
state: 'off'
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
action:
- if:
- condition: time
weekday:
- sun
then:
- service: vacuum.set_fan_speed
target:
entity_id: vacuum.roborock_s7_maxv
data:
fan_speed: max
- device_id: 76db24d3a176285f3be6d972ee76b37a
domain: select
entity_id: dfbe856fbf9eebc63d793e257ef12970
type: select_option
option: moderate
- service: vacuum.start
target:
entity_id: vacuum.roborock_s7_maxv
data: {}
- stop: ''
- if:
- condition: time
weekday:
- wed
then:
- service: vacuum.set_fan_speed
target:
entity_id: vacuum.roborock_s7_maxv
data:
fan_speed: quiet
- device_id: 76db24d3a176285f3be6d972ee76b37a
domain: select
entity_id: dfbe856fbf9eebc63d793e257ef12970
type: select_option
option: mild
- service: vacuum.start
target:
entity_id: vacuum.roborock_s7_maxv
data: {}
- stop: ''
- if:
- condition: or
conditions:
- condition: time
weekday:
- fri
- condition: state
entity_id: input_boolean.pet_mode
state: 'on'
then:
- service: vacuum.set_fan_speed
target:
entity_id: vacuum.roborock_s7_maxv
data:
fan_speed: quiet
- device_id: 76db24d3a176285f3be6d972ee76b37a
domain: select
entity_id: dfbe856fbf9eebc63d793e257ef12970
type: select_option
option: 'off'
- service: vacuum.start
target:
entity_id: vacuum.roborock_s7_maxv
data: {}
mode: single
- alias: Water driveway garden
description: ''
triggers:
- trigger: sun
event: sunset
offset: -01:00:00
conditions:
- condition: numeric_state
entity_id: sensor.openweathermap_temperature
above: 50
- condition: state
entity_id: sensor.openweathermap_precipitation_kind
state: None
for:
hours: 12
minutes: 0
seconds: 0
actions:
- action: switch.turn_on
metadata: {}
data: {}
target:
device_id: 1dd1aabd76c1d3600d697e2071897d7a
- delay:
hours: 0
minutes: 10
seconds: 0
milliseconds: 0
- action: switch.turn_off
metadata: {}
data: {}
target:
device_id: 1dd1aabd76c1d3600d697e2071897d7a
mode: single
- alias: 'Water leak: basement sink'
description: ''
triggers:
- trigger: state
entity_id:
- binary_sensor.basement_sink_leak_detector_moisture
from: null
to: 'on'
conditions: []
actions:
- action: script.water_leak_notification
metadata: {}
data:
location: basement sink
mode: single
- alias: What's the AQI
description: ''
triggers:
- trigger: conversation
command: What's the AQI
conditions: []
actions:
- set_conversation_response: '{{states.sensor.ypsilanti_michigan_usa_air_quality_index.state}}'
mode: single
- alias: 'Mower: Where is Mo'
description: ''
triggers:
- trigger: conversation
command:
- Where is mo
- Where is moe
- Where is mow
conditions: []
actions:
- if:
- condition: state
entity_id: binary_sensor.mo99_charging
state: 'on'
then:
- set_conversation_response: Moe is charging
else:
- set_conversation_response: Moe is mowing the {{states.sensor.mo99_work_area.state}}
mode: single
- alias: Work run mode ringer volume
description: ''
trigger:
- platform: time
at: '23:00:00'
condition:
- condition: state
entity_id: calendar.on_call_schedule_for_matt_hoffman
state: 'on'
action:
- device_id: 2a4dba515991380dd038caf3d8ffa4e6
domain: mobile_app
type: notify
message: command_volume_level
data:
media_stream: ring_stream
command: 7
alias: Set loud volume
- delay:
hours: 9
minutes: 0
seconds: 0
milliseconds: 0
- device_id: 2a4dba515991380dd038caf3d8ffa4e6
domain: mobile_app
type: notify
message: command_volume_level
data:
media_stream: ring_stream
command: 3
alias: Set normal volume
mode: single