AutomationDataset/heyitsyang/heyitsyang_automations.yaml

5843 lines
188 KiB
YAML

- alias: keymaster_turn_on_access_limit_back_door_1
id: keymaster_turn_on_access_limit_back_door_1
trigger:
platform: state
entity_id: input_number.accesscount_back_door_1
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_back_door_1'') | int >
0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_back_door_1
- alias: keymaster_synchronize_codeslot_back_door_1
id: keymaster_synchronize_codeslot_back_door_1
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_back_door_1
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.back_door_code_slot_1") != "unavailable" }}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_back_door_1'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.back_door_lock
code_slot: '{{ 1 }}'
usercode: '{{ states(''input_text.back_door_pin_1'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_back_door_1'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.back_door_lock
code_slot: '{{ 1 }}'
- alias: keymaster_override_parent_back_door_1_state_change
id: keymaster_override_parent_back_door_1_state_change
trigger:
entity_id: input_boolean.override_parent_back_door_1
platform: state
to: 'off'
action:
- service: script.keymaster_back_door_copy_from_parent_1
- alias: keymaster_copy_front_door_name_back_door_1
id: keymaster_copy_front_door_name_back_door_1
trigger:
entity_id: input_text.front_door_name_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_text.set_value
target:
entity_id: input_text.back_door_name_1
data:
value: '{{ states(''input_text.front_door_name_1'') }}'
- alias: keymaster_copy_front_door_pin_back_door_1
id: keymaster_copy_front_door_pin_back_door_1
trigger:
entity_id: input_text.front_door_pin_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_text.set_value
target:
entity_id: input_text.back_door_pin_1
data:
value: '{{ states(''input_text.front_door_pin_1'') }}'
- alias: keymaster_copy_front_door_enabled_back_door_1
id: keymaster_copy_front_door_enabled_back_door_1
trigger:
entity_id: input_boolean.enabled_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.enabled_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.enabled_back_door_1
- alias: keymaster_copy_front_door_notify_back_door_1
id: keymaster_copy_front_door_notify_back_door_1
trigger:
entity_id: input_boolean.notify_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.notify_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.notify_back_door_1
- alias: keymaster_copy_front_door_reset_back_door_1
id: keymaster_copy_front_door_reset_back_door_1
trigger:
entity_id: input_boolean.reset_codeslot_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.reset_codeslot_front_door_1.state\
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
{% endif %}\n"
entity_id: input_boolean.reset_codeslot_front_door_1
- alias: keymaster_copy_front_door_accesslimit_back_door_1
id: keymaster_copy_front_door_accesslimit_back_door_1
trigger:
entity_id: input_boolean.accesslimit_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.accesslimit_front_door_1.state\
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
{% endif %}\n"
entity_id: input_boolean.accesslimit_back_door_1
- alias: keymaster_copy_front_door_accesscount_back_door_1
id: keymaster_copy_front_door_accesscount_back_door_1
trigger:
entity_id: input_number.accesscount_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_number.set_value
entity_id: input_number.accesscount_back_door_1
data_template:
value: '{{ states.input_number.accesscount_front_door_1.state | int }}'
- alias: keymaster_copy_front_door_daterange_back_door_1
id: keymaster_copy_front_door_daterange_back_door_1
trigger:
entity_id: input_boolean.daterange_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.daterange_front_door_1.state ==\
\ 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
{% endif %}\n"
entity_id: input_boolean.daterange_back_door_1
- alias: keymaster_copy_front_door_start_date_back_door_1
id: keymaster_copy_front_door_start_date_back_door_1
trigger:
entity_id: input_datetime.start_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.start_date_back_door_1
data:
datetime: '{{ states.input_datetime.start_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_end_date_back_door_1
id: keymaster_copy_front_door_end_date_back_door_1
trigger:
entity_id: input_datetime.end_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.end_date_back_door_1
data:
datetime: '{{ states.input_datetime.end_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_sun_back_door_1
trigger:
entity_id: input_boolean.sun_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sun_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sun_back_door_1
- alias: keymaster_copy_front_door_sun_inc_back_door_1
trigger:
entity_id: input_boolean.sun_inc_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sun_inc_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sun_inc_back_door_1
- alias: keymaster_copy_front_door_sun_start_date_back_door_1
trigger:
entity_id: input_datetime.sun_start_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sun_start_date_back_door_1
data:
time: '{{ states.input_datetime.sun_start_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_sun_end_date_back_door_1
trigger:
entity_id: input_datetime.sun_end_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sun_end_date_back_door_1
data:
time: '{{ states.input_datetime.sun_end_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_mon_back_door_1
trigger:
entity_id: input_boolean.mon_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.mon_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.mon_back_door_1
- alias: keymaster_copy_front_door_mon_inc_back_door_1
trigger:
entity_id: input_boolean.mon_inc_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.mon_inc_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.mon_inc_back_door_1
- alias: keymaster_copy_front_door_mon_start_date_back_door_1
trigger:
entity_id: input_datetime.mon_start_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.mon_start_date_back_door_1
data:
time: '{{ states.input_datetime.mon_start_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_mon_end_date_back_door_1
trigger:
entity_id: input_datetime.mon_end_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.mon_end_date_back_door_1
data:
time: '{{ states.input_datetime.mon_end_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_tue_back_door_1
trigger:
entity_id: input_boolean.tue_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.tue_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.tue_back_door_1
- alias: keymaster_copy_front_door_tue_inc_back_door_1
trigger:
entity_id: input_boolean.tue_inc_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.tue_inc_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.tue_inc_back_door_1
- alias: keymaster_copy_front_door_tue_start_date_back_door_1
trigger:
entity_id: input_datetime.tue_start_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tue_start_date_back_door_1
data:
time: '{{ states.input_datetime.tue_start_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_tue_end_date_back_door_1
trigger:
entity_id: input_datetime.tue_end_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tue_end_date_back_door_1
data:
time: '{{ states.input_datetime.tue_end_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_wed_back_door_1
trigger:
entity_id: input_boolean.wed_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.wed_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.wed_back_door_1
- alias: keymaster_copy_front_door_wed_inc_back_door_1
trigger:
entity_id: input_boolean.wed_inc_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.wed_inc_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.wed_inc_back_door_1
- alias: keymaster_copy_front_door_wed_start_date_back_door_1
trigger:
entity_id: input_datetime.wed_start_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.wed_start_date_back_door_1
data:
time: '{{ states.input_datetime.wed_start_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_wed_end_date_back_door_1
trigger:
entity_id: input_datetime.wed_end_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.wed_end_date_back_door_1
data:
time: '{{ states.input_datetime.wed_end_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_thu_back_door_1
trigger:
entity_id: input_boolean.thu_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.thu_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.thu_back_door_1
- alias: keymaster_copy_front_door_thu_inc_back_door_1
trigger:
entity_id: input_boolean.thu_inc_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.thu_inc_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.thu_inc_back_door_1
- alias: keymaster_copy_front_door_thu_start_date_back_door_1
trigger:
entity_id: input_datetime.thu_start_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.thu_start_date_back_door_1
data:
time: '{{ states.input_datetime.thu_start_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_thu_end_date_back_door_1
trigger:
entity_id: input_datetime.thu_end_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.thu_end_date_back_door_1
data:
time: '{{ states.input_datetime.thu_end_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_fri_back_door_1
trigger:
entity_id: input_boolean.fri_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.fri_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.fri_back_door_1
- alias: keymaster_copy_front_door_fri_inc_back_door_1
trigger:
entity_id: input_boolean.fri_inc_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.fri_inc_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.fri_inc_back_door_1
- alias: keymaster_copy_front_door_fri_start_date_back_door_1
trigger:
entity_id: input_datetime.fri_start_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.fri_start_date_back_door_1
data:
time: '{{ states.input_datetime.fri_start_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_fri_end_date_back_door_1
trigger:
entity_id: input_datetime.fri_end_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.fri_end_date_back_door_1
data:
time: '{{ states.input_datetime.fri_end_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_sat_back_door_1
trigger:
entity_id: input_boolean.sat_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sat_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sat_back_door_1
- alias: keymaster_copy_front_door_sat_inc_back_door_1
trigger:
entity_id: input_boolean.sat_inc_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sat_inc_front_door_1.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sat_inc_back_door_1
- alias: keymaster_copy_front_door_sat_start_date_back_door_1
trigger:
entity_id: input_datetime.sat_start_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sat_start_date_back_door_1
data:
time: '{{ states.input_datetime.sat_start_date_front_door_1.state }}'
- alias: keymaster_copy_front_door_sat_end_date_back_door_1
trigger:
entity_id: input_datetime.sat_end_date_front_door_1
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_1
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sat_end_date_back_door_1
data:
time: '{{ states.input_datetime.sat_end_date_front_door_1.state }}'
- alias: keymaster_turn_on_access_limit_back_door_2
id: keymaster_turn_on_access_limit_back_door_2
trigger:
platform: state
entity_id: input_number.accesscount_back_door_2
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_back_door_2'') | int >
0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_back_door_2
- alias: keymaster_synchronize_codeslot_back_door_2
id: keymaster_synchronize_codeslot_back_door_2
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_back_door_2
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.back_door_code_slot_2") != "unavailable" }}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_back_door_2'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.back_door_lock
code_slot: '{{ 2 }}'
usercode: '{{ states(''input_text.back_door_pin_2'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_back_door_2'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.back_door_lock
code_slot: '{{ 2 }}'
- alias: keymaster_override_parent_back_door_2_state_change
id: keymaster_override_parent_back_door_2_state_change
trigger:
entity_id: input_boolean.override_parent_back_door_2
platform: state
to: 'off'
action:
- service: script.keymaster_back_door_copy_from_parent_2
- alias: keymaster_copy_front_door_name_back_door_2
id: keymaster_copy_front_door_name_back_door_2
trigger:
entity_id: input_text.front_door_name_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_text.set_value
target:
entity_id: input_text.back_door_name_2
data:
value: '{{ states(''input_text.front_door_name_2'') }}'
- alias: keymaster_copy_front_door_pin_back_door_2
id: keymaster_copy_front_door_pin_back_door_2
trigger:
entity_id: input_text.front_door_pin_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_text.set_value
target:
entity_id: input_text.back_door_pin_2
data:
value: '{{ states(''input_text.front_door_pin_2'') }}'
- alias: keymaster_copy_front_door_enabled_back_door_2
id: keymaster_copy_front_door_enabled_back_door_2
trigger:
entity_id: input_boolean.enabled_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.enabled_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.enabled_back_door_2
- alias: keymaster_copy_front_door_notify_back_door_2
id: keymaster_copy_front_door_notify_back_door_2
trigger:
entity_id: input_boolean.notify_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.notify_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.notify_back_door_2
- alias: keymaster_copy_front_door_reset_back_door_2
id: keymaster_copy_front_door_reset_back_door_2
trigger:
entity_id: input_boolean.reset_codeslot_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.reset_codeslot_front_door_2.state\
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
{% endif %}\n"
entity_id: input_boolean.reset_codeslot_front_door_2
- alias: keymaster_copy_front_door_accesslimit_back_door_2
id: keymaster_copy_front_door_accesslimit_back_door_2
trigger:
entity_id: input_boolean.accesslimit_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.accesslimit_front_door_2.state\
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
{% endif %}\n"
entity_id: input_boolean.accesslimit_back_door_2
- alias: keymaster_copy_front_door_accesscount_back_door_2
id: keymaster_copy_front_door_accesscount_back_door_2
trigger:
entity_id: input_number.accesscount_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_number.set_value
entity_id: input_number.accesscount_back_door_2
data_template:
value: '{{ states.input_number.accesscount_front_door_2.state | int }}'
- alias: keymaster_copy_front_door_daterange_back_door_2
id: keymaster_copy_front_door_daterange_back_door_2
trigger:
entity_id: input_boolean.daterange_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.daterange_front_door_2.state ==\
\ 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
{% endif %}\n"
entity_id: input_boolean.daterange_back_door_2
- alias: keymaster_copy_front_door_start_date_back_door_2
id: keymaster_copy_front_door_start_date_back_door_2
trigger:
entity_id: input_datetime.start_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.start_date_back_door_2
data:
datetime: '{{ states.input_datetime.start_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_end_date_back_door_2
id: keymaster_copy_front_door_end_date_back_door_2
trigger:
entity_id: input_datetime.end_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.end_date_back_door_2
data:
datetime: '{{ states.input_datetime.end_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_sun_back_door_2
trigger:
entity_id: input_boolean.sun_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sun_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sun_back_door_2
- alias: keymaster_copy_front_door_sun_inc_back_door_2
trigger:
entity_id: input_boolean.sun_inc_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sun_inc_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sun_inc_back_door_2
- alias: keymaster_copy_front_door_sun_start_date_back_door_2
trigger:
entity_id: input_datetime.sun_start_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sun_start_date_back_door_2
data:
time: '{{ states.input_datetime.sun_start_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_sun_end_date_back_door_2
trigger:
entity_id: input_datetime.sun_end_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sun_end_date_back_door_2
data:
time: '{{ states.input_datetime.sun_end_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_mon_back_door_2
trigger:
entity_id: input_boolean.mon_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.mon_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.mon_back_door_2
- alias: keymaster_copy_front_door_mon_inc_back_door_2
trigger:
entity_id: input_boolean.mon_inc_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.mon_inc_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.mon_inc_back_door_2
- alias: keymaster_copy_front_door_mon_start_date_back_door_2
trigger:
entity_id: input_datetime.mon_start_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.mon_start_date_back_door_2
data:
time: '{{ states.input_datetime.mon_start_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_mon_end_date_back_door_2
trigger:
entity_id: input_datetime.mon_end_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.mon_end_date_back_door_2
data:
time: '{{ states.input_datetime.mon_end_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_tue_back_door_2
trigger:
entity_id: input_boolean.tue_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.tue_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.tue_back_door_2
- alias: keymaster_copy_front_door_tue_inc_back_door_2
trigger:
entity_id: input_boolean.tue_inc_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.tue_inc_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.tue_inc_back_door_2
- alias: keymaster_copy_front_door_tue_start_date_back_door_2
trigger:
entity_id: input_datetime.tue_start_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tue_start_date_back_door_2
data:
time: '{{ states.input_datetime.tue_start_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_tue_end_date_back_door_2
trigger:
entity_id: input_datetime.tue_end_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tue_end_date_back_door_2
data:
time: '{{ states.input_datetime.tue_end_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_wed_back_door_2
trigger:
entity_id: input_boolean.wed_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.wed_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.wed_back_door_2
- alias: keymaster_copy_front_door_wed_inc_back_door_2
trigger:
entity_id: input_boolean.wed_inc_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.wed_inc_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.wed_inc_back_door_2
- alias: keymaster_copy_front_door_wed_start_date_back_door_2
trigger:
entity_id: input_datetime.wed_start_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.wed_start_date_back_door_2
data:
time: '{{ states.input_datetime.wed_start_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_wed_end_date_back_door_2
trigger:
entity_id: input_datetime.wed_end_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.wed_end_date_back_door_2
data:
time: '{{ states.input_datetime.wed_end_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_thu_back_door_2
trigger:
entity_id: input_boolean.thu_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.thu_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.thu_back_door_2
- alias: keymaster_copy_front_door_thu_inc_back_door_2
trigger:
entity_id: input_boolean.thu_inc_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.thu_inc_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.thu_inc_back_door_2
- alias: keymaster_copy_front_door_thu_start_date_back_door_2
trigger:
entity_id: input_datetime.thu_start_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.thu_start_date_back_door_2
data:
time: '{{ states.input_datetime.thu_start_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_thu_end_date_back_door_2
trigger:
entity_id: input_datetime.thu_end_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.thu_end_date_back_door_2
data:
time: '{{ states.input_datetime.thu_end_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_fri_back_door_2
trigger:
entity_id: input_boolean.fri_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.fri_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.fri_back_door_2
- alias: keymaster_copy_front_door_fri_inc_back_door_2
trigger:
entity_id: input_boolean.fri_inc_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.fri_inc_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.fri_inc_back_door_2
- alias: keymaster_copy_front_door_fri_start_date_back_door_2
trigger:
entity_id: input_datetime.fri_start_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.fri_start_date_back_door_2
data:
time: '{{ states.input_datetime.fri_start_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_fri_end_date_back_door_2
trigger:
entity_id: input_datetime.fri_end_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.fri_end_date_back_door_2
data:
time: '{{ states.input_datetime.fri_end_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_sat_back_door_2
trigger:
entity_id: input_boolean.sat_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sat_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sat_back_door_2
- alias: keymaster_copy_front_door_sat_inc_back_door_2
trigger:
entity_id: input_boolean.sat_inc_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sat_inc_front_door_2.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sat_inc_back_door_2
- alias: keymaster_copy_front_door_sat_start_date_back_door_2
trigger:
entity_id: input_datetime.sat_start_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sat_start_date_back_door_2
data:
time: '{{ states.input_datetime.sat_start_date_front_door_2.state }}'
- alias: keymaster_copy_front_door_sat_end_date_back_door_2
trigger:
entity_id: input_datetime.sat_end_date_front_door_2
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_2
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sat_end_date_back_door_2
data:
time: '{{ states.input_datetime.sat_end_date_front_door_2.state }}'
- alias: keymaster_turn_on_access_limit_back_door_3
id: keymaster_turn_on_access_limit_back_door_3
trigger:
platform: state
entity_id: input_number.accesscount_back_door_3
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_back_door_3'') | int >
0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_back_door_3
- alias: keymaster_synchronize_codeslot_back_door_3
id: keymaster_synchronize_codeslot_back_door_3
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_back_door_3
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.back_door_code_slot_3") != "unavailable" }}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_back_door_3'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.back_door_lock
code_slot: '{{ 3 }}'
usercode: '{{ states(''input_text.back_door_pin_3'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_back_door_3'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.back_door_lock
code_slot: '{{ 3 }}'
- alias: keymaster_override_parent_back_door_3_state_change
id: keymaster_override_parent_back_door_3_state_change
trigger:
entity_id: input_boolean.override_parent_back_door_3
platform: state
to: 'off'
action:
- service: script.keymaster_back_door_copy_from_parent_3
- alias: keymaster_copy_front_door_name_back_door_3
id: keymaster_copy_front_door_name_back_door_3
trigger:
entity_id: input_text.front_door_name_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_text.set_value
target:
entity_id: input_text.back_door_name_3
data:
value: '{{ states(''input_text.front_door_name_3'') }}'
- alias: keymaster_copy_front_door_pin_back_door_3
id: keymaster_copy_front_door_pin_back_door_3
trigger:
entity_id: input_text.front_door_pin_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_text.set_value
target:
entity_id: input_text.back_door_pin_3
data:
value: '{{ states(''input_text.front_door_pin_3'') }}'
- alias: keymaster_copy_front_door_enabled_back_door_3
id: keymaster_copy_front_door_enabled_back_door_3
trigger:
entity_id: input_boolean.enabled_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.enabled_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.enabled_back_door_3
- alias: keymaster_copy_front_door_notify_back_door_3
id: keymaster_copy_front_door_notify_back_door_3
trigger:
entity_id: input_boolean.notify_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.notify_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.notify_back_door_3
- alias: keymaster_copy_front_door_reset_back_door_3
id: keymaster_copy_front_door_reset_back_door_3
trigger:
entity_id: input_boolean.reset_codeslot_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.reset_codeslot_front_door_3.state\
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
{% endif %}\n"
entity_id: input_boolean.reset_codeslot_front_door_3
- alias: keymaster_copy_front_door_accesslimit_back_door_3
id: keymaster_copy_front_door_accesslimit_back_door_3
trigger:
entity_id: input_boolean.accesslimit_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.accesslimit_front_door_3.state\
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
{% endif %}\n"
entity_id: input_boolean.accesslimit_back_door_3
- alias: keymaster_copy_front_door_accesscount_back_door_3
id: keymaster_copy_front_door_accesscount_back_door_3
trigger:
entity_id: input_number.accesscount_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_number.set_value
entity_id: input_number.accesscount_back_door_3
data_template:
value: '{{ states.input_number.accesscount_front_door_3.state | int }}'
- alias: keymaster_copy_front_door_daterange_back_door_3
id: keymaster_copy_front_door_daterange_back_door_3
trigger:
entity_id: input_boolean.daterange_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.daterange_front_door_3.state ==\
\ 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
{% endif %}\n"
entity_id: input_boolean.daterange_back_door_3
- alias: keymaster_copy_front_door_start_date_back_door_3
id: keymaster_copy_front_door_start_date_back_door_3
trigger:
entity_id: input_datetime.start_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.start_date_back_door_3
data:
datetime: '{{ states.input_datetime.start_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_end_date_back_door_3
id: keymaster_copy_front_door_end_date_back_door_3
trigger:
entity_id: input_datetime.end_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.end_date_back_door_3
data:
datetime: '{{ states.input_datetime.end_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_sun_back_door_3
trigger:
entity_id: input_boolean.sun_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sun_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sun_back_door_3
- alias: keymaster_copy_front_door_sun_inc_back_door_3
trigger:
entity_id: input_boolean.sun_inc_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sun_inc_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sun_inc_back_door_3
- alias: keymaster_copy_front_door_sun_start_date_back_door_3
trigger:
entity_id: input_datetime.sun_start_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sun_start_date_back_door_3
data:
time: '{{ states.input_datetime.sun_start_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_sun_end_date_back_door_3
trigger:
entity_id: input_datetime.sun_end_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sun_end_date_back_door_3
data:
time: '{{ states.input_datetime.sun_end_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_mon_back_door_3
trigger:
entity_id: input_boolean.mon_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.mon_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.mon_back_door_3
- alias: keymaster_copy_front_door_mon_inc_back_door_3
trigger:
entity_id: input_boolean.mon_inc_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.mon_inc_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.mon_inc_back_door_3
- alias: keymaster_copy_front_door_mon_start_date_back_door_3
trigger:
entity_id: input_datetime.mon_start_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.mon_start_date_back_door_3
data:
time: '{{ states.input_datetime.mon_start_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_mon_end_date_back_door_3
trigger:
entity_id: input_datetime.mon_end_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.mon_end_date_back_door_3
data:
time: '{{ states.input_datetime.mon_end_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_tue_back_door_3
trigger:
entity_id: input_boolean.tue_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.tue_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.tue_back_door_3
- alias: keymaster_copy_front_door_tue_inc_back_door_3
trigger:
entity_id: input_boolean.tue_inc_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.tue_inc_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.tue_inc_back_door_3
- alias: keymaster_copy_front_door_tue_start_date_back_door_3
trigger:
entity_id: input_datetime.tue_start_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tue_start_date_back_door_3
data:
time: '{{ states.input_datetime.tue_start_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_tue_end_date_back_door_3
trigger:
entity_id: input_datetime.tue_end_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tue_end_date_back_door_3
data:
time: '{{ states.input_datetime.tue_end_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_wed_back_door_3
trigger:
entity_id: input_boolean.wed_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.wed_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.wed_back_door_3
- alias: keymaster_copy_front_door_wed_inc_back_door_3
trigger:
entity_id: input_boolean.wed_inc_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.wed_inc_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.wed_inc_back_door_3
- alias: keymaster_copy_front_door_wed_start_date_back_door_3
trigger:
entity_id: input_datetime.wed_start_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.wed_start_date_back_door_3
data:
time: '{{ states.input_datetime.wed_start_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_wed_end_date_back_door_3
trigger:
entity_id: input_datetime.wed_end_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.wed_end_date_back_door_3
data:
time: '{{ states.input_datetime.wed_end_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_thu_back_door_3
trigger:
entity_id: input_boolean.thu_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.thu_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.thu_back_door_3
- alias: keymaster_copy_front_door_thu_inc_back_door_3
trigger:
entity_id: input_boolean.thu_inc_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.thu_inc_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.thu_inc_back_door_3
- alias: keymaster_copy_front_door_thu_start_date_back_door_3
trigger:
entity_id: input_datetime.thu_start_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.thu_start_date_back_door_3
data:
time: '{{ states.input_datetime.thu_start_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_thu_end_date_back_door_3
trigger:
entity_id: input_datetime.thu_end_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.thu_end_date_back_door_3
data:
time: '{{ states.input_datetime.thu_end_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_fri_back_door_3
trigger:
entity_id: input_boolean.fri_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.fri_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.fri_back_door_3
- alias: keymaster_copy_front_door_fri_inc_back_door_3
trigger:
entity_id: input_boolean.fri_inc_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.fri_inc_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.fri_inc_back_door_3
- alias: keymaster_copy_front_door_fri_start_date_back_door_3
trigger:
entity_id: input_datetime.fri_start_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.fri_start_date_back_door_3
data:
time: '{{ states.input_datetime.fri_start_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_fri_end_date_back_door_3
trigger:
entity_id: input_datetime.fri_end_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.fri_end_date_back_door_3
data:
time: '{{ states.input_datetime.fri_end_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_sat_back_door_3
trigger:
entity_id: input_boolean.sat_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sat_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sat_back_door_3
- alias: keymaster_copy_front_door_sat_inc_back_door_3
trigger:
entity_id: input_boolean.sat_inc_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sat_inc_front_door_3.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sat_inc_back_door_3
- alias: keymaster_copy_front_door_sat_start_date_back_door_3
trigger:
entity_id: input_datetime.sat_start_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sat_start_date_back_door_3
data:
time: '{{ states.input_datetime.sat_start_date_front_door_3.state }}'
- alias: keymaster_copy_front_door_sat_end_date_back_door_3
trigger:
entity_id: input_datetime.sat_end_date_front_door_3
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_3
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sat_end_date_back_door_3
data:
time: '{{ states.input_datetime.sat_end_date_front_door_3.state }}'
- alias: keymaster_turn_on_access_limit_back_door_4
id: keymaster_turn_on_access_limit_back_door_4
trigger:
platform: state
entity_id: input_number.accesscount_back_door_4
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_back_door_4'') | int >
0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_back_door_4
- alias: keymaster_synchronize_codeslot_back_door_4
id: keymaster_synchronize_codeslot_back_door_4
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_back_door_4
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.back_door_code_slot_4") != "unavailable" }}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_back_door_4'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.back_door_lock
code_slot: '{{ 4 }}'
usercode: '{{ states(''input_text.back_door_pin_4'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_back_door_4'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.back_door_lock
code_slot: '{{ 4 }}'
- alias: keymaster_override_parent_back_door_4_state_change
id: keymaster_override_parent_back_door_4_state_change
trigger:
entity_id: input_boolean.override_parent_back_door_4
platform: state
to: 'off'
action:
- service: script.keymaster_back_door_copy_from_parent_4
- alias: keymaster_copy_front_door_name_back_door_4
id: keymaster_copy_front_door_name_back_door_4
trigger:
entity_id: input_text.front_door_name_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_text.set_value
target:
entity_id: input_text.back_door_name_4
data:
value: '{{ states(''input_text.front_door_name_4'') }}'
- alias: keymaster_copy_front_door_pin_back_door_4
id: keymaster_copy_front_door_pin_back_door_4
trigger:
entity_id: input_text.front_door_pin_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_text.set_value
target:
entity_id: input_text.back_door_pin_4
data:
value: '{{ states(''input_text.front_door_pin_4'') }}'
- alias: keymaster_copy_front_door_enabled_back_door_4
id: keymaster_copy_front_door_enabled_back_door_4
trigger:
entity_id: input_boolean.enabled_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.enabled_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.enabled_back_door_4
- alias: keymaster_copy_front_door_notify_back_door_4
id: keymaster_copy_front_door_notify_back_door_4
trigger:
entity_id: input_boolean.notify_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.notify_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.notify_back_door_4
- alias: keymaster_copy_front_door_reset_back_door_4
id: keymaster_copy_front_door_reset_back_door_4
trigger:
entity_id: input_boolean.reset_codeslot_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.reset_codeslot_front_door_4.state\
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
{% endif %}\n"
entity_id: input_boolean.reset_codeslot_front_door_4
- alias: keymaster_copy_front_door_accesslimit_back_door_4
id: keymaster_copy_front_door_accesslimit_back_door_4
trigger:
entity_id: input_boolean.accesslimit_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.accesslimit_front_door_4.state\
\ == 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
{% endif %}\n"
entity_id: input_boolean.accesslimit_back_door_4
- alias: keymaster_copy_front_door_accesscount_back_door_4
id: keymaster_copy_front_door_accesscount_back_door_4
trigger:
entity_id: input_number.accesscount_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_number.set_value
entity_id: input_number.accesscount_back_door_4
data_template:
value: '{{ states.input_number.accesscount_front_door_4.state | int }}'
- alias: keymaster_copy_front_door_daterange_back_door_4
id: keymaster_copy_front_door_daterange_back_door_4
trigger:
entity_id: input_boolean.daterange_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.daterange_front_door_4.state ==\
\ 'on') %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n\
{% endif %}\n"
entity_id: input_boolean.daterange_back_door_4
- alias: keymaster_copy_front_door_start_date_back_door_4
id: keymaster_copy_front_door_start_date_back_door_4
trigger:
entity_id: input_datetime.start_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.start_date_back_door_4
data:
datetime: '{{ states.input_datetime.start_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_end_date_back_door_4
id: keymaster_copy_front_door_end_date_back_door_4
trigger:
entity_id: input_datetime.end_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.end_date_back_door_4
data:
datetime: '{{ states.input_datetime.end_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_sun_back_door_4
trigger:
entity_id: input_boolean.sun_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sun_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sun_back_door_4
- alias: keymaster_copy_front_door_sun_inc_back_door_4
trigger:
entity_id: input_boolean.sun_inc_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sun_inc_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sun_inc_back_door_4
- alias: keymaster_copy_front_door_sun_start_date_back_door_4
trigger:
entity_id: input_datetime.sun_start_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sun_start_date_back_door_4
data:
time: '{{ states.input_datetime.sun_start_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_sun_end_date_back_door_4
trigger:
entity_id: input_datetime.sun_end_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sun_end_date_back_door_4
data:
time: '{{ states.input_datetime.sun_end_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_mon_back_door_4
trigger:
entity_id: input_boolean.mon_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.mon_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.mon_back_door_4
- alias: keymaster_copy_front_door_mon_inc_back_door_4
trigger:
entity_id: input_boolean.mon_inc_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.mon_inc_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.mon_inc_back_door_4
- alias: keymaster_copy_front_door_mon_start_date_back_door_4
trigger:
entity_id: input_datetime.mon_start_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.mon_start_date_back_door_4
data:
time: '{{ states.input_datetime.mon_start_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_mon_end_date_back_door_4
trigger:
entity_id: input_datetime.mon_end_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.mon_end_date_back_door_4
data:
time: '{{ states.input_datetime.mon_end_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_tue_back_door_4
trigger:
entity_id: input_boolean.tue_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.tue_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.tue_back_door_4
- alias: keymaster_copy_front_door_tue_inc_back_door_4
trigger:
entity_id: input_boolean.tue_inc_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.tue_inc_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.tue_inc_back_door_4
- alias: keymaster_copy_front_door_tue_start_date_back_door_4
trigger:
entity_id: input_datetime.tue_start_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tue_start_date_back_door_4
data:
time: '{{ states.input_datetime.tue_start_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_tue_end_date_back_door_4
trigger:
entity_id: input_datetime.tue_end_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.tue_end_date_back_door_4
data:
time: '{{ states.input_datetime.tue_end_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_wed_back_door_4
trigger:
entity_id: input_boolean.wed_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.wed_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.wed_back_door_4
- alias: keymaster_copy_front_door_wed_inc_back_door_4
trigger:
entity_id: input_boolean.wed_inc_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.wed_inc_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.wed_inc_back_door_4
- alias: keymaster_copy_front_door_wed_start_date_back_door_4
trigger:
entity_id: input_datetime.wed_start_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.wed_start_date_back_door_4
data:
time: '{{ states.input_datetime.wed_start_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_wed_end_date_back_door_4
trigger:
entity_id: input_datetime.wed_end_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.wed_end_date_back_door_4
data:
time: '{{ states.input_datetime.wed_end_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_thu_back_door_4
trigger:
entity_id: input_boolean.thu_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.thu_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.thu_back_door_4
- alias: keymaster_copy_front_door_thu_inc_back_door_4
trigger:
entity_id: input_boolean.thu_inc_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.thu_inc_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.thu_inc_back_door_4
- alias: keymaster_copy_front_door_thu_start_date_back_door_4
trigger:
entity_id: input_datetime.thu_start_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.thu_start_date_back_door_4
data:
time: '{{ states.input_datetime.thu_start_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_thu_end_date_back_door_4
trigger:
entity_id: input_datetime.thu_end_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.thu_end_date_back_door_4
data:
time: '{{ states.input_datetime.thu_end_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_fri_back_door_4
trigger:
entity_id: input_boolean.fri_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.fri_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.fri_back_door_4
- alias: keymaster_copy_front_door_fri_inc_back_door_4
trigger:
entity_id: input_boolean.fri_inc_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.fri_inc_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.fri_inc_back_door_4
- alias: keymaster_copy_front_door_fri_start_date_back_door_4
trigger:
entity_id: input_datetime.fri_start_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.fri_start_date_back_door_4
data:
time: '{{ states.input_datetime.fri_start_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_fri_end_date_back_door_4
trigger:
entity_id: input_datetime.fri_end_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.fri_end_date_back_door_4
data:
time: '{{ states.input_datetime.fri_end_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_sat_back_door_4
trigger:
entity_id: input_boolean.sat_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sat_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sat_back_door_4
- alias: keymaster_copy_front_door_sat_inc_back_door_4
trigger:
entity_id: input_boolean.sat_inc_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service_template: "{% if (states.input_boolean.sat_inc_front_door_4.state == 'on')\
\ %}\n input_boolean.turn_on\n{% else %}\n input_boolean.turn_off\n{% endif\
\ %}\n"
entity_id: input_boolean.sat_inc_back_door_4
- alias: keymaster_copy_front_door_sat_start_date_back_door_4
trigger:
entity_id: input_datetime.sat_start_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sat_start_date_back_door_4
data:
time: '{{ states.input_datetime.sat_start_date_front_door_4.state }}'
- alias: keymaster_copy_front_door_sat_end_date_back_door_4
trigger:
entity_id: input_datetime.sat_end_date_front_door_4
platform: state
condition:
- condition: state
entity_id: input_boolean.override_parent_back_door_4
state: 'off'
action:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.sat_end_date_back_door_4
data:
time: '{{ states.input_datetime.sat_end_date_front_door_4.state }}'
- alias: keymaster_back_door Reset Code Slot
id: keymaster_back_door Reset Code Slot
trigger:
entity_id: input_boolean.reset_codeslot_back_door_1,input_boolean.reset_codeslot_back_door_2,input_boolean.reset_codeslot_back_door_3,input_boolean.reset_codeslot_back_door_4
platform: state
to: 'on'
action:
- service: script.keymaster_back_door_reset_codeslot
data_template:
code_slot: '{{ trigger.entity_id.split(''_'')[-1] }}'
- alias: keymaster_back_door Lock Notifications
id: keymaster_back_door Lock Notifications
trigger:
platform: event
event_type: keymaster_lock_state_changed
event_data:
lockname: back_door
condition:
- condition: state
entity_id: input_boolean.back_door_lock_notifications
state: 'on'
action:
- service: script.keymaster_back_door_manual_notify
data_template:
title: back_door
message: '{{ trigger.event.data.action_text }} {% if trigger.event.data.code_slot
> 0 %}({{ trigger.event.data.code_slot_name }}){% endif %}'
- alias: keymaster_back_door User Notifications
id: keymaster_back_door User Notifications
trigger:
platform: event
event_type: keymaster_lock_state_changed
event_data:
lockname: back_door
condition:
- condition: template
value_template: '{{ trigger.event.data.code_slot > 0 }}'
- condition: template
value_template: '{{ is_state(''input_boolean.notify_back_door_'' + trigger.event.data.code_slot
| string, ''on'') }}'
- condition: state
entity_id: input_boolean.back_door_lock_notifications
state: 'off'
action:
- service: script.keymaster_back_door_manual_notify
data_template:
title: back_door
message: '{{ trigger.event.data.action_text }} ({{ trigger.event.data.code_slot_name
}})'
- alias: keymaster_back_door Door Open and Close
id: keymaster_back_door Door Open and Close
trigger:
entity_id: binary_sensor.back_door_window_door_is_open
platform: state
condition:
- condition: state
entity_id: input_boolean.back_door_dooraccess_notifications
state: 'on'
- condition: template
value_template: '{{ trigger.from_state.state in (''on'', ''off'') and trigger.to_state.state
in (''on'', ''off'') }}'
action:
- service: script.keymaster_back_door_manual_notify
data_template:
title: back_door
message: '{% if trigger.to_state.state == ''on'' %}Door Opened{% else %}Door
Closed{% endif %}'
- alias: keymaster_back_door Changed Code
id: keymaster_back_door Changed Code
trigger:
entity_id: input_text.back_door_pin_1,input_text.back_door_pin_2,input_text.back_door_pin_3,input_text.back_door_pin_4
platform: state
condition:
- condition: template
value_template: "{{\n is_state('input_boolean.enabled_back_door_' + trigger.entity_id.split('_')[-1],\
\ 'on')\n and\n (trigger.from_state.state != trigger.to_state.state)\n}}"
action:
- service: persistent_notification.create
data_template:
title: back_door LOCK MANAGER
message: '{{ ''You changed the PIN for back_door code slot '' + trigger.entity_id.split(''_'')[-1]
+ ''. Please enable it in order to make it active.''}}'
- service: input_boolean.turn_off
data_template:
entity_id: '{{ ''input_boolean.enabled_back_door_'' + trigger.entity_id.split(''_'')[-1]
}}'
- alias: keymaster_back_door Reset
id: keymaster_back_door Reset
trigger:
entity_id: input_boolean.back_door_reset_lock
platform: state
from: 'off'
to: 'on'
action:
- service: script.keymaster_back_door_reset_lock
- service: input_boolean.turn_off
entity_id: input_boolean.back_door_reset_lock
- alias: keymaster_back_door Decrement Access Count
id: keymaster_back_door Decrement Access Count
trigger:
platform: event
event_type: keymaster_lock_state_changed
event_data:
lockname: back_door
condition:
- condition: template
value_template: '{{ is_state(''input_boolean.accesslimit_back_door_'' + trigger.event.data.code_slot
| string, ''on'') }}'
- condition: template
value_template: "{{\n trigger.event.data.code_slot > 0\n and\n (trigger.event.data.action_code\
\ is undefined or trigger.event.data.action_code in (6, 19))\n}}"
action:
- service: input_number.decrement
data_template:
entity_id: '{{ ''input_number.accesscount_back_door_'' + trigger.event.data.code_slot
| string }}'
- alias: keymaster_back_door_locked
id: keymaster_back_door_locked
trigger:
entity_id: lock.back_door_lock
platform: state
to: locked
action:
- service: timer.cancel
entity_id: timer.keymaster_back_door_autolock
- alias: keymaster_turn_off_retry_back_door
id: keymaster_turn_off_retry_back_door
trigger:
entity_id: lock.back_door_lock
platform: state
to: locked
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.keymaster_back_door_retry
- alias: keymaster_retry_bolt_closed_back_door
id: keymaster_retry_bolt_closed_back_door
trigger:
platform: state
entity_id: binary_sensor.back_door_window_door_is_open
to: 'off'
condition:
- condition: state
entity_id: input_boolean.keymaster_back_door_retry
state: 'on'
- condition: state
entity_id: input_boolean.keymaster_back_door_autolock
state: 'on'
action:
- service: persistent_notification.create
data_template:
title: back_door is closed
message: '{{ ''The back_door sensor indicates the door has been closed, re-attempting
to lock.''}}'
- service: lock.lock
entity_id: lock.boltchecked_back_door
- alias: keymaster_back_door_opened
id: keymaster_back_door_opened
trigger:
platform: state
entity_id: binary_sensor.back_door_window_door_is_open
to: 'on'
condition:
- condition: state
entity_id: input_boolean.keymaster_back_door_autolock
state: 'on'
action:
- service: timer.start
data_template:
entity_id: timer.keymaster_back_door_autolock
duration: "{% if (((as_timestamp(states.sun.sun.attributes.next_dusk)) > (as_timestamp(states.sun.sun.attributes.next_dawn))))\
\ %}\n {{ states('input_text.keymaster_back_door_autolock_door_time_night')}}\n\
{% else %}\n {{ states('input_text.keymaster_back_door_autolock_door_time_day')}}\n\
{% endif %}\n"
- alias: keymaster_back_door_unlocked_start_autolock
id: keymaster_back_door_unlocked_ start_autolock
trigger:
entity_id: lock.back_door_lock
platform: state
to: unlocked
condition:
- condition: state
entity_id: input_boolean.keymaster_back_door_autolock
state: 'on'
action:
- service: script.turn_on
entity_id: script.keymaster_back_door_start_timer
- service: input_boolean.turn_off
target:
entity_id: input_boolean.keymaster_back_door_retry
- alias: keymaster_back_door_timer_finished
id: keymaster_back_door_timer_finished
condition:
- condition: state
entity_id: input_boolean.keymaster_back_door_autolock
state: 'on'
trigger:
platform: event
event_type: timer.finished
event_data:
entity_id: timer.keymaster_back_door_autolock
action:
- service: lock.lock
entity_id: lock.boltchecked_back_door
- alias: keymaster_back_door_timer_canceled
id: keymaster_back_door_timer_canceled
trigger:
platform: event
event_type: timer.cancelled
event_data:
entity_id: timer.keymaster_back_door_autolock
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.keymaster_back_door_retry
- alias: keymaster_back_door_disable_auto_lock
id: keymaster_back_door_disable_auto_lock
trigger:
entity_id: input_boolean.keymaster_back_door_autolock
platform: state
to: 'off'
action:
- service: timer.cancel
entity_id:
- timer.keymaster_back_door_autolock
- service: input_boolean.turn_off
target:
entity_id: input_boolean.keymaster_back_door_retry
- alias: keymaster_back_door_enable_auto_lock
id: keymaster_back_door_enable_auto_lock
trigger:
entity_id: input_boolean.keymaster_back_door_autolock
platform: state
to: 'on'
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.keymaster_back_door_retry
- service: timer.cancel
entity_id:
- timer.keymaster_back_door_autolock
- service: script.turn_on
entity_id: script.keymaster_back_door_start_timer
- alias: keymaster_back_door_initialize
id: keymaster_back_door_initialize
trigger:
platform: homeassistant
event: start
action:
- service: input_text.set_value
entity_id: input_text.keymaster_back_door_autolock_door_time_day
data:
value: '{%- set current_value=states(''input_text.keymaster_back_door_autolock_door_time_day'')
-%} {{ iif(current_value in ['''', ''unknown''], "02:00:00", current_value)}}
'
- service: input_text.set_value
entity_id: input_text.keymaster_back_door_autolock_door_time_night
data:
value: '{%- set current_value=states(''input_text.keymaster_back_door_autolock_door_time_night'')
-%} {{ iif(current_value in ['''', ''unknown''], "00:05:00", current_value)}}
'
- alias: keymaster_turn_on_access_limit_front_door_1
id: keymaster_turn_on_access_limit_front_door_1
trigger:
platform: state
entity_id: input_number.accesscount_front_door_1
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_front_door_1'') | int >
0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_front_door_1
- alias: keymaster_synchronize_codeslot_front_door_1
id: keymaster_synchronize_codeslot_front_door_1
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_front_door_1
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.front_door_code_slot_1") != "unavailable" }}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_1'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 1 }}'
usercode: '{{ states(''input_text.front_door_pin_1'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_1'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 1 }}'
- alias: keymaster_turn_on_access_limit_front_door_10
id: keymaster_turn_on_access_limit_front_door_10
trigger:
platform: state
entity_id: input_number.accesscount_front_door_10
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_front_door_10'') | int
> 0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_front_door_10
- alias: keymaster_synchronize_codeslot_front_door_10
id: keymaster_synchronize_codeslot_front_door_10
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_front_door_10
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.front_door_code_slot_10") != "unavailable"
}}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_10'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 10 }}'
usercode: '{{ states(''input_text.front_door_pin_10'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_10'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 10 }}'
- alias: keymaster_turn_on_access_limit_front_door_2
id: keymaster_turn_on_access_limit_front_door_2
trigger:
platform: state
entity_id: input_number.accesscount_front_door_2
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_front_door_2'') | int >
0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_front_door_2
- alias: keymaster_synchronize_codeslot_front_door_2
id: keymaster_synchronize_codeslot_front_door_2
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_front_door_2
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.front_door_code_slot_2") != "unavailable" }}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_2'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 2 }}'
usercode: '{{ states(''input_text.front_door_pin_2'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_2'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 2 }}'
- alias: keymaster_turn_on_access_limit_front_door_3
id: keymaster_turn_on_access_limit_front_door_3
trigger:
platform: state
entity_id: input_number.accesscount_front_door_3
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_front_door_3'') | int >
0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_front_door_3
- alias: keymaster_synchronize_codeslot_front_door_3
id: keymaster_synchronize_codeslot_front_door_3
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_front_door_3
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.front_door_code_slot_3") != "unavailable" }}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_3'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 3 }}'
usercode: '{{ states(''input_text.front_door_pin_3'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_3'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 3 }}'
- alias: keymaster_turn_on_access_limit_front_door_4
id: keymaster_turn_on_access_limit_front_door_4
trigger:
platform: state
entity_id: input_number.accesscount_front_door_4
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_front_door_4'') | int >
0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_front_door_4
- alias: keymaster_synchronize_codeslot_front_door_4
id: keymaster_synchronize_codeslot_front_door_4
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_front_door_4
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.front_door_code_slot_4") != "unavailable" }}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_4'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 4 }}'
usercode: '{{ states(''input_text.front_door_pin_4'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_4'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 4 }}'
- alias: keymaster_turn_on_access_limit_front_door_5
id: keymaster_turn_on_access_limit_front_door_5
trigger:
platform: state
entity_id: input_number.accesscount_front_door_5
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_front_door_5'') | int >
0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_front_door_5
- alias: keymaster_synchronize_codeslot_front_door_5
id: keymaster_synchronize_codeslot_front_door_5
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_front_door_5
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.front_door_code_slot_5") != "unavailable" }}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_5'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 5 }}'
usercode: '{{ states(''input_text.front_door_pin_5'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_5'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 5 }}'
- alias: keymaster_turn_on_access_limit_front_door_6
id: keymaster_turn_on_access_limit_front_door_6
trigger:
platform: state
entity_id: input_number.accesscount_front_door_6
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_front_door_6'') | int >
0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_front_door_6
- alias: keymaster_synchronize_codeslot_front_door_6
id: keymaster_synchronize_codeslot_front_door_6
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_front_door_6
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.front_door_code_slot_6") != "unavailable" }}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_6'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 6 }}'
usercode: '{{ states(''input_text.front_door_pin_6'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_6'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 6 }}'
- alias: keymaster_turn_on_access_limit_front_door_7
id: keymaster_turn_on_access_limit_front_door_7
trigger:
platform: state
entity_id: input_number.accesscount_front_door_7
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_front_door_7'') | int >
0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_front_door_7
- alias: keymaster_synchronize_codeslot_front_door_7
id: keymaster_synchronize_codeslot_front_door_7
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_front_door_7
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.front_door_code_slot_7") != "unavailable" }}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_7'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 7 }}'
usercode: '{{ states(''input_text.front_door_pin_7'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_7'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 7 }}'
- alias: keymaster_turn_on_access_limit_front_door_8
id: keymaster_turn_on_access_limit_front_door_8
trigger:
platform: state
entity_id: input_number.accesscount_front_door_8
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_front_door_8'') | int >
0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_front_door_8
- alias: keymaster_synchronize_codeslot_front_door_8
id: keymaster_synchronize_codeslot_front_door_8
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_front_door_8
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.front_door_code_slot_8") != "unavailable" }}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_8'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 8 }}'
usercode: '{{ states(''input_text.front_door_pin_8'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_8'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 8 }}'
- alias: keymaster_turn_on_access_limit_front_door_9
id: keymaster_turn_on_access_limit_front_door_9
trigger:
platform: state
entity_id: input_number.accesscount_front_door_9
condition:
- condition: template
value_template: '{{ (states(''input_number.accesscount_front_door_9'') | int >
0) }}'
action:
service: input_boolean.turn_on
target:
entity_id: input_boolean.accesslimit_front_door_9
- alias: keymaster_synchronize_codeslot_front_door_9
id: keymaster_synchronize_codeslot_front_door_9
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.pin_synched_front_door_9
from: 'on'
to: 'off'
condition:
- condition: template
value_template: '{{ states("sensor.front_door_code_slot_9") != "unavailable" }}'
action:
- choose:
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_9'',''on'')
}}'
sequence:
- service: keymaster.add_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 9 }}'
usercode: '{{ states(''input_text.front_door_pin_9'').strip() }}'
- conditions:
- condition: template
value_template: '{{ is_state(''binary_sensor.active_front_door_9'',''off'')
}}'
sequence:
- service: keymaster.clear_code
data_template:
entity_id: lock.front_door_lock
code_slot: '{{ 9 }}'
- alias: keymaster_front_door Reset Code Slot
id: keymaster_front_door Reset Code Slot
trigger:
entity_id: input_boolean.reset_codeslot_front_door_1,input_boolean.reset_codeslot_front_door_2,input_boolean.reset_codeslot_front_door_3,input_boolean.reset_codeslot_front_door_4,input_boolean.reset_codeslot_front_door_5,input_boolean.reset_codeslot_front_door_6,input_boolean.reset_codeslot_front_door_7,input_boolean.reset_codeslot_front_door_8,input_boolean.reset_codeslot_front_door_9,input_boolean.reset_codeslot_front_door_10
platform: state
to: 'on'
action:
- service: script.keymaster_front_door_reset_codeslot
data_template:
code_slot: '{{ trigger.entity_id.split(''_'')[-1] }}'
- alias: keymaster_front_door Lock Notifications
id: keymaster_front_door Lock Notifications
trigger:
platform: event
event_type: keymaster_lock_state_changed
event_data:
lockname: front_door
condition:
- condition: state
entity_id: input_boolean.front_door_lock_notifications
state: 'on'
action:
- service: script.keymaster_front_door_manual_notify
data_template:
title: front_door
message: '{{ trigger.event.data.action_text }} {% if trigger.event.data.code_slot
> 0 %}({{ trigger.event.data.code_slot_name }}){% endif %}'
- alias: keymaster_front_door User Notifications
id: keymaster_front_door User Notifications
trigger:
platform: event
event_type: keymaster_lock_state_changed
event_data:
lockname: front_door
condition:
- condition: template
value_template: '{{ trigger.event.data.code_slot > 0 }}'
- condition: template
value_template: '{{ is_state(''input_boolean.notify_front_door_'' + trigger.event.data.code_slot
| string, ''on'') }}'
- condition: state
entity_id: input_boolean.front_door_lock_notifications
state: 'off'
action:
- service: script.keymaster_front_door_manual_notify
data_template:
title: front_door
message: '{{ trigger.event.data.action_text }} ({{ trigger.event.data.code_slot_name
}})'
- alias: keymaster_front_door Door Open and Close
id: keymaster_front_door Door Open and Close
trigger:
entity_id: binary_sensor.front_door_window_door_is_open
platform: state
condition:
- condition: state
entity_id: input_boolean.front_door_dooraccess_notifications
state: 'on'
- condition: template
value_template: '{{ trigger.from_state.state in (''on'', ''off'') and trigger.to_state.state
in (''on'', ''off'') }}'
action:
- service: script.keymaster_front_door_manual_notify
data_template:
title: front_door
message: '{% if trigger.to_state.state == ''on'' %}Door Opened{% else %}Door
Closed{% endif %}'
- alias: keymaster_front_door Changed Code
id: keymaster_front_door Changed Code
trigger:
entity_id: input_text.front_door_pin_1,input_text.front_door_pin_2,input_text.front_door_pin_3,input_text.front_door_pin_4,input_text.front_door_pin_5,input_text.front_door_pin_6,input_text.front_door_pin_7,input_text.front_door_pin_8,input_text.front_door_pin_9,input_text.front_door_pin_10
platform: state
condition:
- condition: template
value_template: "{{\n is_state('input_boolean.enabled_front_door_' + trigger.entity_id.split('_')[-1],\
\ 'on')\n and\n (trigger.from_state.state != trigger.to_state.state)\n}}"
action:
- service: persistent_notification.create
data_template:
title: front_door LOCK MANAGER
message: '{{ ''You changed the PIN for front_door code slot '' + trigger.entity_id.split(''_'')[-1]
+ ''. Please enable it in order to make it active.''}}'
- service: input_boolean.turn_off
data_template:
entity_id: '{{ ''input_boolean.enabled_front_door_'' + trigger.entity_id.split(''_'')[-1]
}}'
- alias: keymaster_front_door Reset
id: keymaster_front_door Reset
trigger:
entity_id: input_boolean.front_door_reset_lock
platform: state
from: 'off'
to: 'on'
action:
- service: script.keymaster_front_door_reset_lock
- service: input_boolean.turn_off
entity_id: input_boolean.front_door_reset_lock
- alias: keymaster_front_door Decrement Access Count
id: keymaster_front_door Decrement Access Count
trigger:
platform: event
event_type: keymaster_lock_state_changed
event_data:
lockname: front_door
condition:
- condition: template
value_template: '{{ is_state(''input_boolean.accesslimit_front_door_'' + trigger.event.data.code_slot
| string, ''on'') }}'
- condition: template
value_template: "{{\n trigger.event.data.code_slot > 0\n and\n (trigger.event.data.action_code\
\ is undefined or trigger.event.data.action_code in (6, 19))\n}}"
action:
- service: input_number.decrement
data_template:
entity_id: '{{ ''input_number.accesscount_front_door_'' + trigger.event.data.code_slot
| string }}'
- alias: keymaster_front_door_locked
id: keymaster_front_door_locked
trigger:
entity_id: lock.front_door_lock
platform: state
to: locked
action:
- service: timer.cancel
entity_id: timer.keymaster_front_door_autolock
- alias: keymaster_turn_off_retry_front_door
id: keymaster_turn_off_retry_front_door
trigger:
entity_id: lock.front_door_lock
platform: state
to: locked
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.keymaster_front_door_retry
- alias: keymaster_retry_bolt_closed_front_door
id: keymaster_retry_bolt_closed_front_door
trigger:
platform: state
entity_id: binary_sensor.front_door_window_door_is_open
to: 'off'
condition:
- condition: state
entity_id: input_boolean.keymaster_front_door_retry
state: 'on'
- condition: state
entity_id: input_boolean.keymaster_front_door_autolock
state: 'on'
action:
- service: persistent_notification.create
data_template:
title: front_door is closed
message: '{{ ''The front_door sensor indicates the door has been closed, re-attempting
to lock.''}}'
- service: lock.lock
entity_id: lock.boltchecked_front_door
- alias: keymaster_front_door_opened
id: keymaster_front_door_opened
trigger:
platform: state
entity_id: binary_sensor.front_door_window_door_is_open
to: 'on'
condition:
- condition: state
entity_id: input_boolean.keymaster_front_door_autolock
state: 'on'
action:
- service: timer.start
data_template:
entity_id: timer.keymaster_front_door_autolock
duration: "{% if (((as_timestamp(states.sun.sun.attributes.next_dusk)) > (as_timestamp(states.sun.sun.attributes.next_dawn))))\
\ %}\n {{ states('input_text.keymaster_front_door_autolock_door_time_night')}}\n\
{% else %}\n {{ states('input_text.keymaster_front_door_autolock_door_time_day')}}\n\
{% endif %}\n"
- alias: keymaster_front_door_unlocked_start_autolock
id: keymaster_front_door_unlocked_start_autolock
trigger:
entity_id: lock.front_door_lock
platform: state
to: unlocked
condition:
- condition: state
entity_id: input_boolean.keymaster_front_door_autolock
state: 'on'
action:
- service: script.turn_on
entity_id: script.keymaster_front_door_start_timer
- service: input_boolean.turn_off
target:
entity_id: input_boolean.keymaster_front_door_retry
- alias: keymaster_front_door_timer_finished
id: keymaster_front_door_timer_finished
condition:
- condition: state
entity_id: input_boolean.keymaster_front_door_autolock
state: 'on'
trigger:
platform: event
event_type: timer.finished
event_data:
entity_id: timer.keymaster_front_door_autolock
action:
- service: lock.lock
entity_id: lock.boltchecked_front_door
- alias: keymaster_front_door_timer_canceled
id: keymaster_front_door_timer_canceled
trigger:
platform: event
event_type: timer.cancelled
event_data:
entity_id: timer.keymaster_front_door_autolock
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.keymaster_front_door_retry
- alias: keymaster_front_door_disable_auto_lock
id: keymaster_front_door_disable_auto_lock
trigger:
entity_id: input_boolean.keymaster_front_door_autolock
platform: state
to: 'off'
action:
- service: timer.cancel
entity_id:
- timer.keymaster_front_door_autolock
- service: input_boolean.turn_off
target:
entity_id: input_boolean.keymaster_front_door_retry
- alias: keymaster_front_door_enable_auto_lock
id: keymaster_front_door_enable_auto_lock
trigger:
entity_id: input_boolean.keymaster_front_door_autolock
platform: state
to: 'on'
action:
- service: input_boolean.turn_off
target:
entity_id: input_boolean.keymaster_front_door_retry
- service: timer.cancel
entity_id:
- timer.keymaster_front_door_autolock
- service: script.turn_on
entity_id: script.keymaster_front_door_start_timer
- alias: keymaster_front_door_initialize
id: keymaster_front_door_initialize
trigger:
platform: homeassistant
event: start
action:
- service: input_text.set_value
entity_id: input_text.keymaster_front_door_autolock_door_time_day
data:
value: '{%- set current_value=states(''input_text.keymaster_front_door_autolock_door_time_day'')
-%} {{ iif(current_value in ['''', ''unknown''], "02:00:00", current_value)}}
'
- service: input_text.set_value
entity_id: input_text.keymaster_front_door_autolock_door_time_night
data:
value: '{%- set current_value=states(''input_text.keymaster_front_door_autolock_door_time_night'')
-%} {{ iif(current_value in ['''', ''unknown''], "00:05:00", current_value)}}
'
- id: aut_ha_startup
alias: aut ha startup
initial_state: true
trigger:
- platform: homeassistant
event: start
actions:
- action: script.scr_ha_startup
- id: aut_masterbdrm_shades_mid_morning
alias: aut masterbdrm shades mid morning
initial_state: true
trigger:
- platform: time
at: '10:00:00'
conditions:
- condition: state
entity_id: input_boolean.semaphore_good_morning_was_used
state: 'on'
- condition: state
entity_id: input_boolean.inp_bool_extended_absence_mode
state: 'off'
- condition: state
entity_id: input_boolean.inp_bool_sleeping
state: 'off'
actions:
- action: cover.set_cover_position
target:
entity_id: cover.master_bedroom_outer_shades
data:
position: 29
- id: aut_start_spt_leak_test
alias: aut start spt leak test
initial_state: true
trigger:
- platform: time
at: input_datetime.daily_start_spt
- platform: template
value_template: '{{ (states(''sensor.home_ys_cell_gps_distance'') | float(default=0)
> 2) and (states(''sensor.home_kt_cell_gps_distance'') | float(default=0) >
2) and (state_attr(" script.scr_spt_start","last_triggered") != none) }}'
for:
minutes: 15
conditions:
- condition: state
entity_id: input_boolean.inp_bool_guest_mode
state: 'off'
- condition: state
entity_id: input_boolean.inp_bool_extended_absence_mode
state: 'off'
- condition: state
entity_id: binary_sensor.dishwasher_on_or_off
state: 'off'
- condition: state
entity_id: sensor.top_load_washer
state: 'off'
- condition: template
value_template: "{{ (as_timestamp(now(),'') | int(default=0)) - (as_timestamp(state_attr('automation.aut_start_spt_leak_test',\
\ 'last_triggered'),'') | int(default=0) )\n > (4 * 60 * 60) }}"
actions:
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.water_heater
state: 'on'
sequence:
- wait_for_trigger:
- platform: state
entity_id: binary_sensor.water_heater
from: 'on'
to: 'off'
for:
minutes: 5
- action: script.scr_spt_start
- id: delayed_spt_leak_test
alias: aut delayed spt leak test
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: sensor.spt_data_status
from: in_process
to: aborted
conditions:
- condition: state
entity_id: input_boolean.inp_bool_guest_mode
state: 'off'
- condition: state
entity_id: input_boolean.inp_bool_extended_absence_mode
state: 'off'
- condition: state
entity_id: binary_sensor.dishwasher_on_or_off
state: 'off'
- condition: state
entity_id: sensor.top_load_washer
state: 'off'
actions:
- delay:
minutes: 15
- choose:
- conditions:
- condition: state
entity_id: binary_sensor.water_heater
state: 'on'
sequence:
- wait_for_trigger:
- platform: state
entity_id: binary_sensor.water_heater
from: 'on'
to: 'off'
for:
minutes: 5
- action: script.scr_spt_start
- id: spt_max_aborts_exceeded_error
alias: aut spt max aborts exceeded error
initial_state: true
trigger:
- platform: template
value_template: '{{ (state_attr(''sensor.spt_data_status'', ''consec_aborts'')
| int(default=0)) > 3 }}'
actions:
- action: notify.gmail_to_yang
data:
title: SPT consecutive aborts exceeds threshold
message: 'SPT consecutive aborts: {{ state_attr(''sensor.spt_data_status'',
''consec_aborts'') }}'
- id: aut_start_vacuum
alias: aut start vacuum
initial_state: true
trigger:
- platform: time
at: 07:35:00
conditions:
- condition: time
weekday:
- sun
- condition: state
entity_id: input_boolean.inp_bool_vacuum_every_sunday
state: 'on'
- condition: state
entity_id: input_boolean.inp_bool_extended_absence_mode
state: 'off'
- condition: state
entity_id: input_boolean.inp_bool_guest_mode
state: 'off'
- condition: template
value_template: '{{ states(''person.yang'') != ''home'' }}'
- condition: template
value_template: '{{ states(''person.karen'') != ''home'' }}'
actions:
- action: script.scr_vacuum_start_custom_cleaning
- id: aut_assume_awake
alias: aut assume awake
initial_state: true
trigger:
- platform: template
value_template: '{{ ( states(''sensor.time'') == (state_attr(''input_datetime.assume_awake'',
''timestamp'') | int(default=0) | timestamp_custom(''%H:%M'', false, ''''))
) }}
'
actions:
- action: input_boolean.turn_off
data:
entity_id:
- input_boolean.inp_bool_sleeping
- input_boolean.inp_bool_visitor_while_sleeping_flag
- id: aut_assume_asleep
alias: aut assume asleep
initial_state: true
trigger:
- platform: template
value_template: '{{ ( states(''sensor.time'') == (state_attr(''input_datetime.assume_asleep'',
''timestamp'') | int(default=0) | timestamp_custom(''%H:%M'', false, ''''))
) }}
'
actions:
- action: input_boolean.turn_on
target:
entity_id: input_boolean.inp_bool_sleeping
- id: aut_datetime_announcements_on
alias: aut datetime announcements on
initial_state: true
trigger:
- platform: time
at: input_datetime.announcements_enable
actions:
- action: input_boolean.turn_on
target:
entity_id: input_boolean.inp_bool_announcements
- id: aut_datetime_announcements_off
alias: aut datetime announcements off
initial_state: true
trigger:
- platform: time
at: input_datetime.announcements_disable
actions:
- action: input_boolean.turn_off
target:
entity_id: input_boolean.inp_bool_announcements
- id: aut_hourly_announcement
alias: aut hourly announcement
initial_state: true
trigger:
- platform: time_pattern
minutes: 0
actions:
- action: script.scr_say_phrase
data:
message: '''The time is {{ now().time().strftime("%-I:%M") | replace(":00",
" o''clock") | regex_replace(":0(\\d)", " oh \\1") }}'''
- id: aut_mood_lights_daily_off
alias: aut mood lights daily off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.inp_bool_sleeping
to: 'on'
actions:
- action: script.scr_reset_mood_lights_to_default
- action: homeassistant.turn_off
target:
entity_id:
- light.sun_room_uplights
- switch.candles
- light.kitchen_leds_upper_master
- switch.christmas_tree
- id: aut_good_morning_used_semphore_reset
alias: aut good morning used semaphore reset
initial_state: true
trigger:
- platform: time
at: '23:59:00'
actions:
- action: input_boolean.turn_off
target:
entity_id: input_boolean.semaphore_good_morning_was_used
- id: aut_outdoor_lights_failsafe
alias: aut outdoor lights failsafe
initial_state: true
trigger:
- platform: time
at: 01:05:00
- platform: state
entity_id: group.outdoor_lights
to: 'on'
for:
minutes: 120
actions:
- action: homeassistant.turn_off
target:
entity_id: group.outdoor_lights
- id: aut_indoor_lights_failsafe
alias: aut indoor lights failsafe
initial_state: true
trigger:
- platform: time
at: 02:30:00
actions:
- action: homeassistant.turn_off
target:
entity_id: group.indoor_lights
- id: aut_party_mode_on
alias: party mode on
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.party_mode
from: 'off'
to: 'on'
actions:
- action: light.turn_on
data:
entity_id: light.living_room_lights
brightness_pct: 30
- action: light.turn_on
target:
entity_id:
- light.track_lights
- group.kitchen_lights
- light.sun_room_lights
- light.eating_area_lights
- light.entryway_lights
- id: aut_party_mode_off
alias: party mode off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.party_mode
from: 'on'
to: 'off'
actions:
- action: light.turn_off
target:
entity_id:
- light.track_lights
- light.sun_room_lights
- light.eating_area_lights
- light.entryway_lights
- action: lock.lock
target:
entity_id:
- lock.front_door_lock
- lock.back_door_lock
- id: aut_datetime_party_mode_on
alias: aut datetime extended absence on
initial_state: true
trigger:
- platform: time
at: input_datetime.party_mode_start
conditions:
- condition: state
entity_id: input_boolean.party_mode
state: 'off'
actions:
- action: input_boolean.turn_on
target:
entity_id: input_boolean.party_mode
- id: aut_datetime_party_mode_off
alias: aut datetime extended absence off
initial_state: true
trigger:
- platform: time
at: input_datetime.party_mode_end
conditions:
- condition: state
entity_id: input_boolean.party_mode
state: 'on'
actions:
- action: input_boolean.turn_off
target:
entity_id: input_boolean.party_mode
- id: auto_adj_lvrm_brightness
alias: auto adj lvrm brightness
initial_state: true
trigger:
- platform: state
entity_id: sensor.lv_rm_suggested_brightness
to: null
conditions:
- condition: state
entity_id: input_boolean.party_mode
state: 'off'
- condition: or
conditions:
- condition: state
entity_id: light.living_room_lights
state: 'on'
- condition: state
entity_id: media_player.tv_livingrm
state: 'on'
actions:
- action: light.turn_on
data:
entity_id: light.living_room_lights
brightness_pct: '{{ states(''sensor.lv_rm_suggested_brightness'') | int(default=0)
}}'
- id: aut_lum_outdoor_lights_solar_trig_on
alias: aut lum outdoor lights solar trig on
initial_state: true
trigger:
- platform: template
value_template: '{{ (states(''sensor.kflwildw56_backed_up_local_solar_rad_lx'')
| int(default=0) <= states(''input_number.inp_num_outdoor_lights_on_solar_trig'')
| int(default=0) ) }}'
actions:
action: input_boolean.turn_on
target:
entity_id: input_boolean.inp_bool_lum_outdoor_lights_solar_trig
- id: aut_lum_outdoor_lights_solar_trig_off
alias: aut lum outdoor lights solar trig off
initial_state: true
trigger:
- platform: template
value_template: '{{ (states(''sensor.kflwildw56_backed_up_local_solar_rad_lx'')
| int(default=0) >= states(''input_number.inp_num_outdoor_lights_off_solar_trig'')
| int(default=0) ) }}'
actions:
action: input_boolean.turn_off
target:
entity_id: input_boolean.inp_bool_lum_outdoor_lights_solar_trig
- id: aut_lum_mood_lights_f_solar_trig_on
alias: aut lum mood lights f_solar trig on
initial_state: true
trigger:
- platform: template
value_template: '{{ ( (states(''sensor.filtered_kflwildw56_bu_local_rad_lx'')
| int(default=0)) <= (states(''input_number.inp_num_mood_lights_on_f_solar_trig'')
| int(default=0)) ) }}'
actions:
action: input_boolean.turn_on
target:
entity_id: input_boolean.inp_bool_lum_mood_lights_f_solar_trig
- id: aut_lum_mood_lights_f_solar_trig_off
alias: aut lum mood lights f_solar trig off
initial_state: true
trigger:
- platform: template
value_template: '{{ ( (states(''sensor.filtered_kflwildw56_bu_local_rad_lx'')
| int(default=0)) >= (states(''input_number.inp_num_mood_lights_off_f_solar_trig'')
| int(default=0)) ) }}'
actions:
action: input_boolean.turn_off
target:
entity_id: input_boolean.inp_bool_lum_mood_lights_f_solar_trig
- id: aut_lum_sunrm_shades_trig_on
alias: aut lum sunrm shades trig on
initial_state: true
trigger:
- platform: template
value_template: '{{ ( (states(''sensor.kflwildw56_backed_up_local_solar_rad_lx'')
| int(default=0)) >= (states(''input_number.inp_num_sunrm_shades_open_trig'')
| int(default=0)) ) }}'
actions:
action: input_boolean.turn_on
target:
entity_id: input_boolean.inp_bool_lum_sunrm_shades_trig
- id: aut_lum_sunrm_shades_trig_off
alias: aut lum sunrm shades trig off
initial_state: true
trigger:
- platform: template
value_template: '{{ ( (states(''sensor.kflwildw56_backed_up_local_solar_rad_lx'')
| int(default=0)) <= (states(''input_number.inp_num_sunrm_shades_close_low_lux_trig'')
| int(default=0)) ) }}'
for:
minutes: '{{ states(''input_number.inp_num_sunrm_shades_close_low_lux_trig_delay'')
| int(default=0) }}'
actions:
action: input_boolean.turn_off
target:
entity_id: input_boolean.inp_bool_lum_sunrm_shades_trig
- id: aut_office_mood_lights_auto_on
alias: aut office mood lights auto on
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.ys_desktop_availability
from: 'off'
to: 'on'
- platform: template
value_template: '{{ ( ( as_timestamp(now(), '''') - (as_timestamp(states(''sensor.ys_desktop_lastactive''),
'''')| float(default=0)) ) | int(default=0) ) < 15 }}'
conditions:
- condition: state
entity_id: group.office_mood_lights
state: 'off'
- condition: state
entity_id: input_boolean.inp_bool_lum_outdoor_lights_solar_trig
state: 'on'
actions:
- action: light.turn_on
target:
entity_id: light.office_monitor_leds
- action: select.select_option
entity_id: select.office_cabinet_leds_preset
data:
option: Upper Blu-Org
- id: aut_office_mood_lights_auto_off
alias: aut office mood lights auto off
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: binary_sensor.ys_desktop_availability
to: 'off'
- platform: template
value_template: '{{ ( ( as_timestamp(now(), '''') - (as_timestamp(states(''sensor.ys_desktop_lastactive''),
'''')| float(default=0)) ) | int(default=0) ) > 3600 }}'
- platform: state
entity_id: input_boolean.inp_bool_lum_outdoor_lights_solar_trig
to: 'off'
actions:
- action: light.turn_off
target:
entity_id:
- group.office_mood_lights
- id: aut_update_ys_cell_ble_tracker
alias: aut update ys cell ble tracker
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: sensor.ys_cell_ble_room
to: null
- platform: homeassistant
event: start
actions:
- data:
dev_id: ys_cell_ble
location_name: "{% if states('sensor.ys_cell_ble_room') != 'not_home' -%}\n\
\ home\n{%- else -%}\n not_home\n{%- endif %}\n"
action: device_tracker.see
- id: aut_update_kt_cell_ble_tracker
alias: aut update kt cell ble tracker
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: sensor.kt_cell_ble_room
to: null
- platform: homeassistant
event: start
actions:
- data:
dev_id: kt_cell_ble
location_name: "{% if states('sensor.kt_cell_ble_room') != 'not_home' -%}\n\
\ home\n{%- else -%}\n not_home\n{%- endif %}\n"
action: device_tracker.see
- id: aut_ups_on_battery_mode
alias: aut ups on battery mode
initial_state: true
trigger:
- platform: template
value_template: '{{ (states(''sensor.rackups_input_voltage'') | float(default=0))
<= (states(''sensor.rackups_low_voltage_transfer'') | float(default=0)) }}'
- platform: template
value_template: '{{ (states(''sensor.rackups_input_voltage'') | float(default=0))
>= (states(''sensor.rackups_high_voltage_transfer'') | float(default=0)) }}'
conditions:
condition: template
value_template: '{{ states(''sensor.rackups_status'') != ''unavailable'' }}'
actions:
- action: notify.gmail_to_yang
data:
title: HA UPS on battery power
message: 'HA UPS on battery mode: {{ states(''sensor.rackups_status'') }}'
- id: aut_ups_on_ac_mode
alias: aut ups on ac mode
initial_state: true
trigger:
- platform: template
value_template: "{{ ((states('sensor.rackups_input_voltage') | float(default=0))\
\ > (states('sensor.rackups_low_voltage_transfer') | float(default=0)))\n and\
\ ((states('sensor.rackups_input_voltage') | float(default=0)) < (states('sensor.rackups_high_voltage_transfer')\
\ | float(default=0))) }}"
conditions:
condition: template
value_template: '{{ states(''sensor.rackups_status'') != ''unavailable'' }}'
actions:
- action: notify.gmail_to_yang
data:
title: HA grid power restored
message: 'HA UPS on AC mode: {{ states(''sensor.rackups_status'') }}'
- action: homeassistant.turn_on
target:
entity_id: group.ceiling_fans
- id: aut_ups_emergency_shutdown
alias: auto ups emergency shutdown
trigger:
- platform: numeric_state
entity_id: sensor.rackups_battery_runtime
below: 600
condition:
condition: template
value_template: '{{ states(''sensor.rackups_status'') != ''unavailable'' }}'
actions:
- action: notify.gmail_to_yang
data:
title: HA UPS emergency shutdown
message: 'UPS emergency shutdown: {{ states(''sensor.rackups_battery_runtime'')
}} seconds remaining'
- action: notify.mobile_app_ys_cell
data:
title: HA UPS emergency shutdown
message: 'UPS emergency shutdown: {{ states(''sensor.rackups_battery_runtime'')
}} seconds remaining'
data:
car_ui: true
- action: hassio.host_shutdown
- id: irrig_leak_while_valves_off
alias: irrig leak while valves off
initial_state: true
trigger:
- platform: template
value_template: '{{ (states(''sensor.irrig_report_avg_gpm_zone_0'') | float(default=0))
> 0 }}'
condition:
- condition: template
value_template: "{{ ( ( as_timestamp(now(), '') - (as_timestamp(states('sensor.uptime'),\
\ '')\n | float(default=0)) ) | int(default=0) ) > 10 }}"
actions:
- action: notify.mobile_app_yskt_cell
data:
title: 'Irrig leak detected while all valves off: {{ states(''sensor.irrig_report_avg_gpm_zone_0'')
}} GPM'
message: 'Irrig leak detected while all valves off: {{ states(''sensor.irrig_report_avg_gpm_zone_0'')
}} GPM'
data:
car_ui: true
- action: notify.gmail_to_yang
data:
title: 'Irrig leak detected while valves all off: {{ states(''sensor.irrig_report_avg_gpm_zone_0'')
}} GPM'
message: 'Irrig leak detected while valves all off: {{ states(''sensor.irrig_report_avg_gpm_zone_0'')
}} GPM'
- id: irrig_leak_zone_1_front
alias: irrig leak zone 1 front
initial_state: true
trigger:
- platform: template
value_template: '{{ (states(''sensor.irrig_report_avg_gpm_zone_1'') | float(default=0))
> states(''input_number.irrig_z1_front_yd_gpm_limit'') | float(default=7) }}'
actions:
- action: notify.mobile_app_yskt_cell
data:
title: 'Irrig leak detected in zone 1 (front): {{ states(''sensor.irrig_report_avg_gpm_zone_1'')
}} GPM'
message: 'Irrig leak detected in zone 1 (front): {{ states(''sensor.irrig_report_avg_gpm_zone_1'')
}} GPM'
data:
car_ui: true
- action: notify.gmail_to_yang
data:
title: 'Irrig leak detected in zone 1 (front): {{ states(''sensor.irrig_report_avg_gpm_zone_1'')
}} GPM'
message: 'Irrig leak detected in zone 1 (front): {{ states(''sensor.irrig_report_avg_gpm_zone_1'')
}} GPM'
- id: irrig_leak_zone_2_drip
alias: irrig leak zone 2 drip
initial_state: true
trigger:
- platform: template
value_template: '{{ (states(''sensor.irrig_report_avg_gpm_zone_2'') | float(default=0))
> states(''input_number.irrig_z2_drip_gpm_limit'') | float(default=5) }}'
actions:
- action: notify.mobile_app_yskt_cell
data:
title: 'Irrig leak detected in zone 2 (drip): {{ states(''sensor.irrig_report_avg_gpm_zone_2'')
}} GPM'
message: 'Irrig leak detected in zone 2 (drip): {{ states(''sensor.irrig_report_avg_gpm_zone_2'')
}} GPM'
data:
car_ui: true
- action: notify.gmail_to_yang
data:
title: 'Irrig leak detected in zone 2 (drip): {{ states(''sensor.irrig_report_avg_gpm_zone_2'')
}} GPM'
message: 'Irrig leak detected in zone 2 (drip): {{ states(''sensor.irrig_report_avg_gpm_zone_2'')
}} GPM'
- id: irrig_leak_zone_3_right
alias: irrig leak zone 3 right
initial_state: true
trigger:
- platform: template
value_template: '{{ (states(''sensor.irrig_report_avg_gpm_zone_3'') | float(default=0))
> states(''input_number.irrig_z3_right_yd_gpm_limit'') | float(default=10) }}'
actions:
- action: notify.mobile_app_yskt_cell
data:
title: 'Irrig leak detected in zone 3 (right): {{ states(''sensor.irrig_report_avg_gpm_zone_3'')
}} GPM'
message: 'Irrig leak detected in zone 3 (right): {{ states(''sensor.irrig_report_avg_gpm_zone_3'')
}} GPM'
data:
car_ui: true
- action: notify.gmail_to_yang
data:
title: 'Irrig leak detected in zone 3 (right): {{ states(''sensor.irrig_report_avg_gpm_zone_3'')
}} GPM'
message: 'Irrig leak detected in zone 3 (right): {{ states(''sensor.irrig_report_avg_gpm_zone_3'')
}} GPM'
- id: irrig_leak_zone_4_left
alias: irrig leak zone 4 left
initial_state: true
trigger:
- platform: template
value_template: '{{ (states(''sensor.irrig_report_avg_gpm_zone_4'') | float(default=0))
> states(''input_number.irrig_z4_left_yd_gpm_limit'') | float(default=13) }}'
actions:
- action: notify.mobile_app_yskt_cell
data:
title: 'Irrig leak detected in zone 4 (left): {{ states(''sensor.irrig_report_avg_gpm_zone_4'')
}} GPM'
message: 'Irrig leak detected in zone 4 (left): {{ states(''sensor.irrig_report_avg_gpm_zone_4'')
}} GPM'
data:
car_ui: true
- action: notify.gmail_to_yang
data:
title: 'Irrig leak detected in zone 4 (left): {{ states(''sensor.irrig_report_avg_gpm_zone_4'')
}} GPM'
message: 'Irrig leak detected in zone 4 (left): {{ states(''sensor.irrig_report_avg_gpm_zone_4'')
}} GPM'
- id: aut_drybox_humidity_above_tolerance
alias: aut drybox humidity above tolerance
initial_state: true
trigger:
- platform: numeric_state
entity_id: sensor.drybox_relative_humidity
above: input_number.inp_num_drybox_relative_humidity_threshold
for:
hours: 12
actions:
- action: notify.persistent_notification
data:
title: 'Drybox humidity out of tolerance: {{ states(''sensor.drybox_relative_humidity'')
}} percent'
message: 'Drybox humidity out of tolerance: {{ states(''sensor.drybox_relative_humidity'')
}} percent'
- action: notify.gmail_to_yang
data:
title: 'Drybox humidity out of tolerance: {{ states(''sensor.drybox_relative_humidity'')
}} percent'
message: 'Drybox humidity out of tolerance: {{ states(''sensor.drybox_relative_humidity'')
}} percent'
- id: aut_expansion_tank_fault
alias: aut expansion tank fault
initial_state: true
trigger:
- platform: numeric_state
entity_id:
- sensor.water_pressure
above: 85
actions:
- action: notify.mobile_app_yskt_cell
data:
title: 'Water expansion tank fault: {{ states(''sensor.water_pressure'') }}
PSI'
message: 'Water expansion tank fault: {{ states(''sensor.water_pressure'') }}
PSI'
data:
car_ui: true
- action: notify.gmail_to_yang
data:
title: 'Water expansion tank fault: {{ states(''sensor.water_pressure'') }}
PSI'
message: 'Water expansion tank fault: {{ states(''sensor.water_pressure'') }}
PSI'
- id: aut_freezer_fault
alias: aut freezer fault
initial_state: true
trigger:
- platform: numeric_state
entity_id:
- sensor.freezer_sensor_temperature
above: 7
for:
minutes: 90
actions:
- action: notify.mobile_app_yskt_cell
data:
title: Freezer temperature too high
message: Freezer temperature is {{ states('sensor.freezer_sensor_temperature')
}} F
data:
clickAction: lovelace/graphs
- action: notify.mobile_app_yskt_cell
data:
title: Freezer temperature too high
message: TTS
data:
tts_text: Freezer temperature problem detected. Currently {{ states('sensor.freezer_sensor_temperature')
}} degrees
data:
car_ui: true
- id: aut_irrig_valve_leak_notify
alias: aut irrig valve leak notify
initial_state: true
trigger:
- platform: numeric_state
entity_id:
- sensor.irrig_report_valve_leak_gallons
above: 0
condition:
- condition: template
value_template: "{{ ( ( as_timestamp(now(), '') - (as_timestamp(states('sensor.uptime'),\
\ '')\n | float(default=0)) ) | int(default=0) ) > 10 }}"
actions:
- action: notify.mobile_app_yskt_cell
data:
title: 'Leaky irrigation valve detected: {{ states(''sensor.irrig_report_valve_leak_gallons'')
}} gallons'
message: 'Leaky irrigation valve detected: {{ states(''sensor.irrig_report_valve_leak_gallons'')
}} gallons
were measured between watering cycles or when the valves should have been
off.
'
data:
car_ui: true
- action: notify.gmail_to_yang
data:
title: 'Leaky irrigation valve detected: {{ states(''sensor.irrig_report_valve_leak_gallons'')
}} gallons'
message: 'Leaky irrigation valve detected: {{ states(''sensor.irrig_report_valve_leak_gallons'')
}} gallons
were measured between watering cycles or when the valves should have been
off.
'
- id: aut_spt_leak_notify
alias: aut spt leak notify
initial_state: true
triggers:
- trigger: state
entity_id: sensor.spt_data_status
from: in_process
to: valid
for: 00:00:10
conditions:
- condition: template
value_template: '{{ (states(''sensor.validated_water_static_pressure_test_result'')
| float(default=0)) <= 0 }}
'
- condition: template
value_template: "{{ (states('sensor.validated_water_static_pressure_test_result')\
\ | float(default=0)) < \n ((states('input_number.loss_per_minute_alarm_threshold')\
\ | float(default=0)) \n * (states('input_number.inp_num_spt_duration') |\
\ float(default=0))) }}\n"
actions:
- action: notify.mobile_app_yskt_cell
data:
title: SPT water leak detected
message: 'Leak detected during Static Pressure Test!
Test ended: {{ as_timestamp(states.sensor.spt_data_status.last_changed) |
timestamp_custom(''%d-%b-%Y, %I:%M:%S %p'') }}
Total pressure drop: {{ states(''sensor.validated_water_static_pressure_test_result'')
| float(default=0) }}
Drop per minute: {{ states(''sensor.water_static_pressure_loss_per_minute'')
}}
'
- action: notify.gmail_to_yang
data:
title: SPT water leak detected
message: 'Leak detected during Static Pressure Test!
Test ended: {{ as_timestamp(states.sensor.spt_data_status.last_changed) |
timestamp_custom(''%d-%b-%Y, %I:%M:%S %p'') }}
Total pressure drop: {{ states(''sensor.validated_water_static_pressure_test_result'')
| float(default=0) }}
Drop per minute: {{ states(''sensor.water_static_pressure_loss_per_minute'')
}}
'
- action: notify.persistent_notification
data:
title: SPT water leak detected
message: 'Leak detected during Static Pressure Test!
Test ended: {{ as_timestamp(states.sensor.spt_data_status.last_changed) |
timestamp_custom(''%d-%b-%Y, %I:%M:%S %p'') }}
Total pressure drop: {{ states(''sensor.validated_water_static_pressure_test_result'')
| float(default=0) }}
Drop per minute: {{ states(''sensor.water_static_pressure_loss_per_minute'')
}}
'
- id: aut_leak_detected
alias: aut leak detected
mode: single
initial_state: true
trigger:
- platform: state
entity_id:
- binary_sensor.leak_refrigerator
- binary_sensor.leak_dishwasher
- binary_sensor.leak_kitchen_sink
- binary_sensor.leak_kitchen_sink_rear
- binary_sensor.leak_water_heater
- binary_sensor.leak_karens_sink_water_leak
- binary_sensor.leak_yangs_sink_water_leak
- binary_sensor.leak_guest_sink_water_leak
- binary_sensor.leak_master_toilet_water_leak
- binary_sensor.leak_guest_toilet_water_leak
- binary_sensor.leak_washer_contact
- binary_sensor.leak_laundry
from: 'off'
to: 'on'
actions:
- action: switch.turn_off
target:
entity_id: switch.water_valve
- action: script.scr_say_phrase
data:
priority: high
message: Water Leak detected at the {{ trigger.entity_id|replace('binary_sensor.leak_',
'') | replace('_', '') }}
- action: script.scr_say_phrase
data:
priority: high
message: House water has been turned off. Leak detected at {{ trigger.entity_id
}}. Turn on manually when leak is resolved.
- action: notify.mobile_app_yskt_cell
data:
title: House water turned OFF. Leak detected at {{ trigger.entity_id }}.
message: House water is OFF. Turn on manually when leak is resolved.
data:
car_ui: true
- action: notify.alexa_yellow_ring
data:
message: House water is OFF. Leak detected at {{ trigger.entity_id }}. Turn
on manually when leak is resolved.
- action: notify.mobile_app_yskt_cell
data:
message: TTS
data:
tts_text: House water turned OFF. Leak detected at {{ trigger.entity_id }}
priority: high
ttl: 0
media_stream: alarm_stream
data:
car_ui: true
- action: notify.mobile_app_yskt_cell
data:
title: Water leak detected at the {{ trigger.entity_id|replace('binary_sensor.leak_',
'') | replace('_', '') }}
message: Water leak detected at the {{ trigger.entity_id|replace('binary_sensor.leak_',
'') | replace('_', '') }}
data:
channel: Urgent
importance: high
vibrationPattern: 100, 1000, 100, 1000, 100, 1000
persistent: 'true'
tag: persistent
priority: high
ttl: 0
data:
car_ui: true
- action: notify.gmail_to_yang
data:
message: Water leak detected at the {{ trigger.entity_id|replace('binary_sensor.leak_',
'') | replace('_', '') }}
- repeat:
while:
- condition: template
value_template: '{{ repeat.index <= 4 }}'
- condition: state
entity_id: switch.water_valve
state: 'off'
sequence:
- action: script.scr_say_phrase
data:
priority: high
message: Water Leak detected at the {{ trigger.entity_id|replace('binary_sensor.leak_',
'') | replace('_', '') }}
- delay:
seconds: 30
- id: aut_washer_done_announce
alias: aut washer done
initial_state: true
trigger:
- platform: state
entity_id: binary_sensor.top_load_washer_run_completed
from: 'off'
to: 'on'
actions:
- action: script.scr_say_phrase
data:
message: "{% if state_attr('sensor.dryer', 'remain_time') == '0:00:00' %}\n\
\ The washer cycle has finished and the dryer is available\n{% else %}\n\
\ {% if (state_attr('sensor.dryer', 'remain_time').split(':')[0]) == '0'\
\ %}\n The washer cycle has finished. The dryer will be available in {{\
\ (state_attr('sensor.dryer', 'remain_time').split(':')[1] | int(default=0))\
\ }}\n minutes\n {% else %}\n The washer cycle has fnished, The dryer\
\ will be available in {{ (state_attr('sensor.dryer', 'remain_time').split(':')[0]\
\ | int(default=0)) }}\n hours and {{ (state_attr('sensor.dryer', 'remain_time').split(':')[1]\
\ | int(default=0)) }} minutes\n {% endif %}\n{% endif %}\n"
- action: notify.alexa_yellow_ring
data:
message: The washer cycle has finished
- id: aut_dryer_done_announce
alias: aut dryer done
initial_state: true
trigger:
- platform: state
entity_id: binary_sensor.dryer_run_completed
from: 'off'
to: 'on'
actions:
- action: script.scr_say_phrase
data:
message: The dryer cycle has finished
- action: notify.alexa_yellow_ring
data:
message: The dryer cycle has finished
- id: aut_vacuum_done_announce
alias: aut vacuum done
initial_state: true
trigger:
- platform: state
entity_id: vacuum.rosie
from: cleaning
to: docked
actions:
- action: notify.alexa_yellow_ring
data:
message: Rosie is a dirty girl
- alias: Probe 1 Target Temp
initial_state: 'off'
trigger:
- platform: state
entity_id: sensor.target_alert_temp_probe_1
to: Alert
actions:
- action: script.scr_say_phrase
data:
message: Probe 1 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_1')
}} °F
- action: notify.mobile_app_ys_cell
data:
message: TTS
data:
tts_text: Probe 1 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_1')
}} °F
data:
car_ui: true
- alias: Probe 2 Target Temp
initial_state: 'off'
trigger:
- platform: state
entity_id: sensor.target_alert_temp_probe_2
to: Alert
actions:
- action: script.scr_say_phrase
data:
message: Probe 2 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_2')
}} °F
- action: notify.mobile_app_ys_cell
data:
message: TTS
data:
tts_text: Probe 2 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_2')
}} °F
data:
car_ui: true
- alias: Probe 3 Target Temp
initial_state: 'off'
trigger:
- platform: state
entity_id: sensor.target_alert_temp_probe_3
to: Alert
actions:
- action: script.scr_say_phrase
data:
message: Probe 3 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_3')
}} °F
- action: notify.mobile_app_ys_cell
data:
message: TTS
data:
tts_text: Probe 3 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_3')
}} °F
data:
car_ui: true
- alias: Probe 4 Target Temp
initial_state: 'off'
trigger:
- platform: state
entity_id: sensor.target_alert_temp_probe_4
to: Alert
actions:
- action: script.scr_say_phrase
data:
message: Probe 4 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_4')
}} °F
- action: notify.mobile_app_ys_cell
data:
message: TTS
data:
tts_text: Probe 4 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_4')
}} °F
data:
car_ui: true
- alias: Monitor iGrill Device Connectivity
initial_state: 'on'
trigger:
- platform: state
entity_id: binary_sensor.igrill_70918f19e8d1_connectivity
from: 'on'
to: 'off'
for:
minutes: 5
- platform: state
entity_id: binary_sensor.igrill_70918f19e8d1_sensor
from: 'on'
to: 'off'
for:
minutes: 5
actions:
- action: script.scr_say_phrase
data:
message: I Grill Device Disconnected
- id: aut_auto_living_area_motion
alias: aut auto living area motion
initial_state: true
trigger:
- platform: state
entity_id: binary_sensor.living_area_motion
to: 'on'
actions:
- action: script.scr_check_if_suspicious
- choose:
- alias: Turn on pathway lighting if sleeping
conditions:
- condition: or
conditions:
- condition: state
entity_id: input_boolean.inp_bool_sleeping
state: 'on'
- condition: time
after: 00:01
before: 07:00
sequence:
- action: script.scr_pathway_motion_lighting_on
default:
- action: script.scr_motion_lighting_on
- id: aut_auto_on_living_area_luminosity
alias: aut auto on living area luminosity
initial_state: true
trigger:
- platform: numeric_state
entity_id: sensor.lv_rm_suggested_brightness
above: 0
for:
minutes: '{{ states(''input_number.inp_num_lvrm_lights_on_delay'') | int(default=0)
}}'
conditions:
- condition: and
conditions:
- condition: template
value_template: '{{ states(''sensor.filtered_living_rm_visible_light'') != ''unknown''
}}'
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.living_area_motion
state: 'on'
- condition: state
entity_id: media_player.tv_livingrm
state: 'on'
- condition: state
entity_id: media_player.tv_livingrm
state: unknown
actions:
- action: script.scr_motion_lighting_on
- id: aut_auto_off_living_area_luminosity
alias: aut auto off living area luminosity
initial_state: true
trigger:
- platform: numeric_state
entity_id: sensor.lv_rm_suggested_brightness
below: 1
for:
minutes: '{{ states(''input_number.inp_num_lvrm_lights_off_delay'') | int(default=0)
}}'
condition:
- condition: state
entity_id: input_boolean.party_mode
state: 'off'
- condition: numeric_state
entity_id: sun.sun
value_template: '{{ state_attr(''sun.sun'', ''elevation'') }}'
above: 14.0
actions:
- action: light.turn_off
target:
entity_id: light.living_room_lights
- id: aut_living_area_lights_motion_timeout
alias: aut living area lights motion timeout
initial_state: true
trigger:
- platform: state
entity_id: binary_sensor.living_area_motion
to: 'off'
for:
minutes: 30
conditions:
- condition: state
entity_id: media_player.tv_livingrm
state: 'off'
- condition: state
entity_id: light.eating_area_lights
state: 'off'
actions:
- action: script.scr_great_room_motion_lighting_off
- id: aut_living_area_pathway_motion_inactive
alias: aut living area pathway motion inactive
initial_state: true
trigger:
- platform: state
entity_id: binary_sensor.living_area_motion
to: 'off'
for:
minutes: 5
actions:
- action: script.scr_pathway_motion_lighting_off
- id: aut_masterbdrm_outer_shades_down_solar_noon
alias: aut masterbdrm outer shades down solar noon
initial_state: true
trigger:
- platform: template
value_template: '{{ state_attr(''sun.sun'', ''rising'') == false }}'
actions:
- action: cover.close_cover
target:
entity_id: cover.master_bedroom_outer_shades
- id: aut_sunrm_shades_down_afternoon
alias: aut sunroom shades down afternoon
initial_state: true
trigger:
- platform: numeric_state
entity_id: sun.sun
value_template: '{{ state_attr(''sun.sun'', ''elevation'') }}'
above: 14.1
below: 32.5
conditions:
condition: and
conditions:
- condition: state
entity_id: input_boolean.inp_bool_inhibit_shades
state: 'off'
- condition: state
entity_id: input_boolean.inp_bool_extended_absence_mode
state: 'off'
- condition: template
value_template: '{{ states(''sensor.filtered_kflwildw56_bu_local_rad_lx'') |
int(default=0) > (states(''input_number.inp_num_sunrm_shades_part_close_min_reqd_trig_lux'')
| int(default=0)) }}
'
- condition: numeric_state
entity_id: sun.sun
value_template: '{{ state_attr(''sun.sun'', ''azimuth'') }}'
above: 199
below: 280
actions:
- action: script.scr_check_sunrm_windows
- action: script.scr_partial_close_sunrm_shades
data:
position: '40'
- id: aut_sunrm_shades_up_afternoon
alias: aut sunroom shades up afternoon
initial_state: true
trigger:
- platform: numeric_state
entity_id: sun.sun
value_template: '{{ state_attr(''sun.sun'', ''elevation'') }}'
above: 0
below: 14.0
- platform: numeric_state
entity_id: sun.sun
value_template: '{{ state_attr(''sun.sun'', ''azimuth'') }}'
above: 204
below: 267
conditions:
condition: and
conditions:
- condition: state
entity_id: input_boolean.inp_bool_inhibit_shades
state: 'off'
- condition: state
entity_id: input_boolean.inp_bool_extended_absence_mode
state: 'off'
- condition: time
after: '12:00:00'
- condition: state
entity_id: binary_sensor.lum_sunrm_shades_trig
state: 'on'
actions:
- action: cover.open_cover
target:
entity_id: cover.sun_room_shades
- id: aut_sunrm_shades_down_evening
alias: aut sunroom shades down evening
initial_state: true
trigger:
- platform: sun
event: sunset
offset: -00:10:00
- platform: state
entity_id: binary_sensor.lum_sunrm_shades_trig
to: 'off'
for:
minutes: '{{ states(''input_number.inp_num_sunrm_shades_close_low_lux_trig_delay'')
| int(default=0) }}'
conditions:
- condition: state
entity_id: input_boolean.inp_bool_inhibit_shades
state: 'off'
actions:
- action: script.scr_check_sunrm_windows
- action: script.scr_close_sunrm_shades
- id: aut_masterbdrm_shades_down_evening
alias: aut masterbdrm shades down evening
initial_state: true
trigger:
- platform: sun
event: sunset
actions:
- action: cover.close_cover
target:
entity_id: cover.master_bedroom_shades
- id: aut_sunrm_shades_up_morningorbright
alias: aut sunroom shades up morningorbright
initial_state: true
trigger:
- platform: sun
event: sunrise
- platform: state
entity_id: binary_sensor.lum_sunrm_shades_trig
to: 'on'
for:
minutes: '{{ states(''input_number.inp_num_sunrm_shades_open_delay'') | int(default=0)
}}'
conditions:
condition: and
conditions:
- condition: state
entity_id: input_boolean.inp_bool_inhibit_shades
state: 'off'
- condition: state
entity_id: input_boolean.inp_bool_extended_absence_mode
state: 'off'
- condition: state
entity_id: input_boolean.inp_bool_guest_in_sunroom
state: 'off'
actions:
- action: cover.open_cover
entity_id: cover.sun_room_shades
- id: aut_arrival_proximity
alias: aut arrival proximity
mode: single
max_exceeded: silent
initial_state: true
trigger:
- platform: template
value_template: '{{ ((states( ''sensor.home_ys_cell_gps_distance'') | float(default=99))
<= 0.2) and ((states( ''sensor.home_ys_cell_gps_distance'') | float(default=99))
> 0) and (states(''sensor.home_yang_direction_of_travel'') == ''towards'')}}'
- platform: template
value_template: '{{ ((states( ''sensor.home_kt_cell_gps_distance'') | float(default=99))
<= 0.2) and ((states( ''sensor.home_kt_cell_gps_distance'') | float(default=99))
> 0) and (states(''sensor.home_karen_direction_of_travel'') == ''towards'')}}'
actions:
- action: script.scr_front_door_lights_on
- action: script.scr_say_phrase
data:
message: Someone special will be home soon
- id: aut_large_garage_door_opening
alias: aut large garage door opening
initial_state: true
trigger:
- platform: state
entity_id: cover.large_garage_door
to: open
conditions:
- condition: template
value_template: "{{ ( ( as_timestamp(now(), '') - (as_timestamp(states('sensor.uptime'),\
\ '')\n | float(default=0)) ) | int(default=0) ) > 10 }}"
actions:
- action: script.scr_say_phrase
data:
message: The large garage door has opened
- action: timer.start
target:
entity_id: timer.timer_lg_garage_door
- action: script.scr_front_door_lights_on
- action: script.scr_check_if_suspicious
- id: aut_small_garage_door_opening
alias: aut small garage door opening
initial_state: true
trigger:
- platform: state
entity_id: cover.small_garage_door
to: open
conditions:
- condition: template
value_template: "{{ ( ( as_timestamp(now(), '') - (as_timestamp(states('sensor.uptime'),\
\ '')\n | float(default=0)) ) | int(default=0) ) > 10 }}"
actions:
- action: script.scr_say_phrase
data:
message: The small garage door has opened
- action: timer.start
target:
entity_id: timer.timer_sm_garage_door
- action: script.scr_front_door_lights_on
- action: script.scr_check_if_suspicious
- id: aut_large_garage_door_closed
alias: aut large garage door closed
initial_state: true
trigger:
- platform: state
entity_id: cover.large_garage_door
to: closed
actions:
- action: timer.cancel
target:
entity_id: timer.timer_lg_garage_door
- id: aut_small_garage_door_closed
alias: aut small garage door closed
initial_state: true
trigger:
- platform: state
entity_id: cover.small_garage_door
to: closed
actions:
- action: timer.cancel
target:
entity_id: timer.timer_sm_garage_door
- id: aut_front_door_opening
alias: aut front door opening
initial_state: true
trigger:
- platform: state
entity_id: binary_sensor.front_door_window_door_is_open
from: 'off'
to: 'on'
actions:
- action: script.scr_front_door_lights_on
- id: aut_back_door_opening
alias: aut back door opening
initial_state: true
trigger:
- platform: state
entity_id: binary_sensor.back_door_window_door_is_open
from: 'off'
to: 'on'
actions:
- action: script.scr_back_door_lights_on
- id: aut_driveway_camera_zone_activity
alias: aut driveway camera zone activity
mode: single
max_exceeded: silent
initial_state: true
trigger:
- platform: state
entity_id:
- binary_sensor.driveway_zone_person_occupancy
- binary_sensor.driveway_zone_car_occupancy
to: 'on'
actions:
- action: script.scr_front_door_lights_on
- id: aut_frontporch_camera_zone_actvity
alias: aut frontporch camera zone activity
mode: single
max_exceeded: silent
initial_state: true
trigger:
- platform: state
entity_id: binary_sensor.frontporch_zone_book_occupancy
to: 'on'
- platform: state
entity_id: binary_sensor.frontporch_zone_suitcase_occupancy
to: 'on'
- platform: state
entity_id: binary_sensor.frontporch_zone_handbag_occupancy
to: 'on'
actions:
- action: script.scr_say_phrase
data:
message: You have a package at the front door
- action: notify.alexa_yellow_ring
data:
message: You have a package at the front door
- id: aut_frontporch_activity
alias: aut frontporch activity
mode: single
max_exceeded: silent
initial_state: true
trigger:
- platform: template
value_template: '{{ (is_state(''binary_sensor.doorbell_zone_person_occupancy'',
''on'')) and (is_state(''binary_sensor.front_ent_soffit_uwave'', ''on'')) }}'
- platform: template
value_template: '{{ (is_state(''binary_sensor.frontporch_motion'', ''on'')) and
(is_state(''binary_sensor.doorbell_zone_person_occupancy'', ''on'')) }}'
conditions:
- condition: state
entity_id: binary_sensor.front_door_window_door_is_open
state: 'off'
for: 00:02:00
- condition: template
value_template: '{{ ( ( as_timestamp(now(), '''') - (as_timestamp(state_attr(''automation.aut_frontporch_activity'', ''last_triggered''),
'''') | float(default=0)) ) | int(default=0) ) > 14 }}'
actions:
- action: script.scr_front_door_lights_on
- action: script.scr_frontporch_activity
- id: aut_front_door_lights_timeout
alias: aut front door light timeout
initial_state: true
mode: restart
trigger:
- platform: state
entity_id: binary_sensor.driveway_zone_car_occupancy
to: 'off'
for:
minutes: '{{ states(''input_number.inp_num_front_door_lights_off_delay'') |
int(default=0) }}'
- platform: state
entity_id: binary_sensor.driveway_zone_person_occupancy
to: 'off'
for:
minutes: '{{ states(''input_number.inp_num_front_door_lights_off_delay'') |
int(default=0) }}'
- platform: state
entity_id: binary_sensor.front_ent_attic_uwave
to: 'off'
for:
minutes: '{{ states(''input_number.inp_num_front_door_lights_off_delay'') |
int(default=0) }}'
- platform: state
entity_id: cover.large_garage_door
to: closed
for:
minutes: '{{ states(''input_number.inp_num_front_door_lights_off_delay'') |
int(default=0) }}'
- platform: state
entity_id: cover.small_garage_door
to: closed
for:
minutes: '{{ states(''input_number.inp_num_front_door_lights_off_delay'') |
int(default=0) }}'
- platform: state
entity_id: lock.front_door_lock
to: locked
for:
minutes: '{{ states(''input_number.inp_num_front_door_lights_off_delay'') |
int(default=0) }}'
- platform: state
entity_id: person.yang
to: home
for:
minutes: '{{ (states(''input_number.inp_num_front_door_lights_off_delay'') |
int(default=0) + 5) | int(default=0) }}'
- platform: state
entity_id: person.karen
to: home
for:
minutes: '{{ (states(''input_number.inp_num_front_door_lights_off_delay'') |
int(default=0) + 5) | int(default=0) }}'
actions:
- action: light.turn_off
target:
entity_id: light.front_door_lights
- id: aut_back_door_lights_timeout
alias: aut back door light timeout
initial_state: true
trigger:
- platform: state
entity_id: lock.back_door_lock
to: locked
for:
minutes: '{{ states(''input_number.inp_num_back_door_lights_off_delay'') | int(default=0)
}}'
actions:
- action: light.turn_off
target:
entity_id: light.back_door_lights
- id: aut_outdoor_lighting_auto_off
alias: aut outdoor lighting auto off
initial_state: true
trigger:
- platform: sun
event: sunrise
offset: +00:10:00
- platform: state
entity_id: binary_sensor.lum_outdoor_lights_solar_trig
to: 'off'
actions:
- action: homeassistant.turn_off
target:
entity_id: group.outdoor_lights
- id: aut_mood_lights_luminosity_auto_on
alias: aut mood lights luminosity auto on
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: sun
event: sunset
offset: -00:30:00
- platform: state
entity_id: binary_sensor.lum_mood_lights_f_solar_trig
to: 'on'
for:
minutes: 10
conditions:
- condition: or
conditions:
- condition: template
value_template: '{{ states(''sensor.kflwildw56_backed_up_local_solar_rad_lx'')
!= ''unknown'' }}'
- condition: state
entity_id: input_boolean.inp_bool_extended_absence_mode
state: 'off'
actions:
- action: script.scr_mood_lighting_on
- id: aut_mood_lighting_luminosity_auto_off
alias: aut mood lighting luminosity auto off
initial_state: true
trigger:
- platform: state
entity_id: binary_sensor.lum_mood_lights_f_solar_trig
to: 'off'
for:
minutes: 10
actions:
- action: script.scr_reset_mood_lights_to_default
- action: homeassistant.turn_off
target:
entity_id:
- light.sun_room_uplights
- switch.candles
- light.kitchen_leds_upper_master
- switch.christmas_tree
- id: aut_garage_left_open_while_home
alias: aut garage door left open while home
initial_state: true
trigger:
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.timer_lg_garage_door
- platform: event
event_type: timer.finished
event_data:
entity_id: timer.timer_sm_garage_door
actions:
- action: script.scr_repeat_say_garage_open
- id: aut_reset_garage_timers
alias: aut reset garage timers
initial_state: true
trigger:
- platform: state
entity_id: device_tracker.ys_cell_ble
from: garage
- platform: state
entity_id: device_tracker.kt_cell_ble
from: garage
conditions:
condition: or
conditions:
- condition: state
entity_id: cover.large_garage_door
state: open
- condition: state
entity_id: cover.small_garage_door
state: open
actions:
- action: timer.start
target:
entity_id:
- timer.timer_lg_garage_door
- timer.timer_sm_garage_door
- id: aut_auto_front_door_lock
alias: aut auto front door lock
initial_state: true
trigger:
- platform: template
value_template: '{{ ( (((as_timestamp(strptime(states(''sensor.date_time''),''%Y-%m-%d,
%H:%M''), '''') | int(default=0)) - (as_timestamp(as_timestamp(state_attr(''binary_sensor.front_door_window_door_is_open'',
''last_tripped_time''), '''') | timestamp_local(''''), '''') | int(default=0)))/60)
| int(default=0) ) > (states(''input_number.inp_num_auto_front_door_lock_trig_delay'')
| int(default=0)) }}
'
- platform: state
entity_id: lock.front_door_lock
to: unlocked
for:
minutes: '{{ (states(''input_number.inp_num_auto_front_door_lock_trig_delay'')
| int(default=0)) + 30 }}'
conditions:
- condition: state
entity_id: input_boolean.party_mode
state: 'off'
- condition: state
entity_id: lock.front_door_lock
state: unlocked
for:
minutes: 2
- condition: state
entity_id: binary_sensor.front_door_window_door_is_open
state: 'off'
actions:
- action: lock.lock
target:
entity_id: lock.front_door_lock
- action: notify.mobile_app_yskt_cell
data:
title: Front door automatically locked
message: Oops. Someone left it unlocked!
data:
car_ui: true
- id: aut_auto_front_door_lock_party_mode
alias: aut auto front door lock party mode
initial_state: true
trigger:
- platform: template
value_template: '{{ ( (((as_timestamp(strptime(states(''sensor.date_time''),''%Y-%m-%d,
%H:%M''), '''') | int(default=0)) - (as_timestamp(as_timestamp(state_attr(''binary_sensor.front_door_window_door_is_open'',
''last_tripped_time''), '''') | timestamp_local(''''), '''') | int(default=0)))/60)
| int(default=0) ) > (states(''input_number.inp_num_auto_front_door_lock_trig_party_delay'')
| int(default=0)) }}
'
- platform: state
entity_id: lock.front_door_lock
to: unlocked
for:
minutes: '{{ (states(''input_number.inp_num_auto_front_door_lock_trig_party_delay'')
| int(default=0)) + 30 }}'
conditions:
- condition: state
entity_id: input_boolean.party_mode
state: 'on'
- condition: state
entity_id: lock.front_door_lock
state: unlocked
for:
minutes: 2
- condition: state
entity_id: binary_sensor.front_door_window_door_is_open
state: 'off'
actions:
- action: lock.lock
target:
entity_id: lock.front_door_lock
- action: notify.mobile_app_yskt_cell
data:
title: Front door automatically locked
message: The party's over!
data:
car_ui: true
- id: aut_auto_back_door_lock
alias: aut auto back door lock
initial_state: true
trigger:
- platform: template
value_template: '{{ ( (((as_timestamp(strptime(states(''sensor.date_time''),''%Y-%m-%d,
%H:%M''), '''') | int(default=0)) - (as_timestamp(as_timestamp(state_attr(''binary_sensor.back_door_window_door_is_open'',
''last_tripped_time''), '''') | timestamp_local(''''), '''') | int(default=0)))/60)
| int(default=0) ) > (states(''input_number.inp_num_auto_back_door_lock_trig_delay'')
| int(default=0)) }}
'
- platform: state
entity_id: lock.back_door_lock
to: unlocked
for:
minutes: '{{ (states(''input_number.inp_num_auto_back_door_lock_trig_delay'')
| int(default=0)) + 30 }}'
conditions:
- condition: state
entity_id: lock.back_door_lock
state: unlocked
for:
minutes: 2
- condition: state
entity_id: binary_sensor.back_door_window_door_is_open
state: 'off'
actions:
- action: lock.lock
target:
entity_id: lock.back_door_lock
- action: notify.mobile_app_yskt_cell
data:
title: Back door automatically locked
message: Oops. Someone left it unlocked!
data:
car_ui: true
- id: aut_any_window_open
alias: aut_any_window_open
initial_state: true
trigger:
- platform: state
entity_id: group.window_sensors
to: 'on'
for:
minutes: 2
actions:
- action: climate.turn_off
target:
entity_id: climate.local_ecobee
- action: input_select.select_option
entity_id: input_select.inp_sel_saved_sunroom_hvac
data:
option: '{{ states(''climate.sunroom_ac'') }}'
- action: climate.turn_off
target:
entity_id: climate.sunroom_ac
- action: script.scr_say_phrase
data:
message: A window is open. Climate control is now turned off
- id: aut_all_windows_closed
alias: aut_all_windows_closed
initial_state: true
trigger:
- platform: state
entity_id: group.window_sensors
to: 'off'
for:
minutes: 2
actions:
- action: climate.turn_on
target:
entity_id: climate.local_ecobee
- action: climate.set_hvac_mode
entity_id: climate.sunroom_ac
data:
hvac_mode: '{{ states(''input_select.inp_sel_saved_sunroom_hvac'') }}'
- action: script.scr_say_phrase
data:
message: Windows are all closed. Climate control is restored
- id: aut_master_bedroom_fan_trig_on
alias: aut master bedroom fan trig on
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: numeric_state
entity_id: sensor.espresense_masterbdrm_ds18b20_temperature
above: input_number.inp_num_masterbdrmfan_on_temp
for:
minutes: 10
conditions:
condition: state
entity_id: fan.master_bedroom_fan
state: 'off'
actions:
action: fan.set_percentage
target:
entity_id: fan.master_bedroom_fan
data:
percentage: 30
- id: aut_master_bedroom_fan_trig_off
alias: aut master bedroom fan trig off
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: numeric_state
entity_id: sensor.espresense_masterbdrm_ds18b20_temperature
below: input_number.inp_num_masterbdrmfan_off_temp
for:
minutes: 10
conditions:
condition: state
entity_id: fan.master_bedroom_fan
state: 'on'
actions:
action: fan.turn_off
target:
entity_id: fan.master_bedroom_fan
- id: aut_office_fan_trig_50pct
alias: aut office fan trig 50pct
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: numeric_state
entity_id: sensor.espresense_office_ds18b20_temperature
above: input_number.inp_num_officefan_50pct_temp
for:
minutes: 5
conditions:
condition: state
entity_id: input_boolean.inp_bool_guest_mode
state: 'off'
actions:
action: fan.set_percentage
target:
entity_id: fan.office_fan
data:
percentage: 50
- id: aut_office_fan_trig_25pct
alias: aut office fan trig 25pct
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: numeric_state
entity_id: sensor.espresense_office_ds18b20_temperature
above: input_number.inp_num_officefan_25pct_temp
for:
minutes: 5
- platform: numeric_state
entity_id: sensor.espresense_office_ds18b20_temperature
below: input_number.inp_num_officefan_50pct_temp
for:
minutes: 5
conditions:
condition: state
entity_id: input_boolean.inp_bool_guest_mode
state: 'off'
actions:
action: fan.set_percentage
target:
entity_id: fan.office_fan
data:
percentage: 25
- id: aut_office_fan_trig_off
alias: aut office fan trig off
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: numeric_state
entity_id: sensor.espresense_office_ds18b20_temperature
below: input_number.inp_num_officefan_off_temp
for:
minutes: 5
conditions:
condition: state
entity_id: input_boolean.inp_bool_guest_mode
state: 'off'
actions:
action: fan.turn_off
target:
entity_id: fan.office_fan
- id: aut_departure_security_check
alias: aut departure security check
mode: single
max_exceeded: silent
initial_state: true
trigger:
- platform: template
value_template: "{{ (states('person.yang') == 'not_home') and (states('person.karen')\
\ == 'not_home')\n and ((states( 'sensor.home_ys_cell_gps_distance') | float(default=99))\
\ >= 0.2) \n and ((states( 'sensor.home_kt_cell_gps_distance') | float(default=99))\
\ >= 0.2) }}"
actions:
- action: script.scr_check_garage_open
- action: script.scr_nobody_home
- id: aut_arrival_announcement
alias: aut arrival announcement
initial_state: true
mode: queued
trigger:
- platform: state
entity_id: person.yang
id: yang
to: home
- platform: state
entity_id: person.karen
id: karen
to: home
condition:
- condition: template
value_template: "{{ ( ( as_timestamp(now(), '') - (as_timestamp(states('sensor.uptime'),\
\ '')\n | float(default=0)) ) | int(default=0) ) > 10 }}"
actions:
- wait_for_trigger:
- platform: state
entity_id: sensor.kt_cell_ble_room
to: kitchen
for: 00:00:05
- platform: state
entity_id: sensor.kt_cell_ble_room
to: greatrm
for: 00:00:05
- platform: state
entity_id: sensor.ys_cell_ble_room
to: kitchen
for: 00:00:05
- platform: state
entity_id: sensor.ys_cell_ble_room
to: greatrm
for: 00:00:05
timeout:
seconds: 60
- action: script.scr_arrival_announcement
data:
person: '{{ trigger.id }}'
- id: aut_departure_announcement
alias: aut departure announcement
initial_state: true
mode: queued
trigger:
- platform: state
entity_id: person.yang
from: home
for: 00:01:00
- platform: state
entity_id: person.karen
from: home
for: 00:01:00
conditions:
- condition: state
entity_id: input_boolean.inhibit_presence_announcements
state: 'off'
actions:
- action: script.scr_say_phrase
data:
message: "{% if (trigger.entity_id|replace('person.', '')) == \"karen\" %}\n\
\ \"Mistress Karen is away\"\n{% else %}\n \"Master Yang is away\"\n{% endif\
\ %}\n"
- id: aut_hvac_fault
alias: aut hvac fault
initial_state: true
trigger:
- platform: state
entity_id: binary_sensor.main_hvac_fault
from: 'off'
to: 'on'
- platform: state
entity_id: binary_sensor.sunroom_hvac_fault
from: 'off'
to: 'on'
actions:
- action: notify.alexa_yellow_ring
data:
message: "\"{{ (trigger.entity_id) | replace('climate.sunroom_ac', 'sun room')\
\ \n | replace('binary_sensor.main_hvac_fault', 'main house')\n | replace('binary_sensor.sunroom_hvac_fault',\
\ 'sun room')\n }} temperature is outside of tolerance!\""
- action: notify.mobile_app_yskt_cell
data:
title: HVAC system fault detected
message: "\"{{ (trigger.entity_id) | replace('climate.sunroom_ac', 'sun room')\
\ \n | replace('binary_sensor.main_hvac_fault', 'main house')\n | replace('binary_sensor.sunroom_hvac_fault',\
\ 'sun room')\n }} temperature is outside of tolerance!\""
data:
car_ui: true
- action: script.scr_say_phrase
data:
message: "\"{{ (trigger.entity_id) | replace('climate.sunroom_ac', 'sun room')\
\ \n | replace('binary_sensor.main_hvac_fault', 'main house')\n | replace('binary_sensor.sunroom_hvac_fault',\
\ 'sun room')\n }} temperature is outside of tolerance!\""
- id: aut_lab_rack_fan_fault
alias: aut rack fan fault
initial_state: true
trigger:
- platform: numeric_state
entity_id: sensor.lab_rack_fan1_speed
below: 550
for: 00:10:00
- platform: numeric_state
entity_id: sensor.lab_rack_fan2_speed
below: 550
for: 00:10:00
actions:
- action: notify.gmail_to_yang
data:
title: '{{ trigger.entity_id | replace(''sensor.'', '''') }} fault'
message: "{{ trigger.entity_id | replace('sensor.', '') }} fault: \n currently\
\ {{ states('{{trigger.entity_id}}') }} RPM\n"
- id: aut_low_battery_notification
alias: aut low battery notification
initial_state: true
trigger:
- platform: numeric_state
entity_id: sensor.irrig_battery_percent
below: 30
- platform: numeric_state
entity_id: sensor.drybox_battery_percent
below: 30
- platform: numeric_state
entity_id: sensor.govee_display_battery
below: 25
for: 00:30:00
- platform: numeric_state
entity_id: sensor.freezer_sensor_battery
below: 30
for: 00:30:00
- platform: numeric_state
entity_id: sensor.front_door_lock_battery_level
below: 30
for: 00:30:00
- platform: numeric_state
entity_id: sensor.back_door_lock_battery_level
below: 30
for: 00:30:00
- platform: numeric_state
entity_id: sensor.living_area_motion_battery_level
below: 30
for: 00:30:00
- platform: numeric_state
entity_id: sensor.sun_room_window_1_battery_level
below: 30
for: 00:30:00
- platform: numeric_state
entity_id: sensor.sun_room_window_2_battery_level
below: 30
for: 00:30:00
- platform: numeric_state
entity_id: sensor.sun_room_window_3_battery_level
below: 30
for: 00:30:00
- platform: numeric_state
entity_id: sensor.sun_room_window_4_battery_level
below: 30
for: 00:30:00
- platform: numeric_state
entity_id: sensor.sun_room_window_5_battery_level
below: 30
for: 00:30:00
- platform: numeric_state
entity_id: sensor.sun_room_window_6_battery_level
below: 30
for: 00:30:00
- platform: numeric_state
entity_id: sensor.front_door_battery_level
below: 30
for: 00:30:00
- platform: numeric_state
entity_id: sensor.back_door_battery_level
below: 30
for: 00:30:00
- platform: numeric_state
entity_id: sensor.garagehouse_door_battery_level
below: 30
for: 00:30:00
- platform: numeric_state
entity_id: sensor.guest_suite_display_battery_percent
below: 20
for: 02:00:00
- platform: numeric_state
entity_id: sensor.leak_karens_sink_battery
below: 15
for: 00:30:00
- platform: numeric_state
entity_id: sensor.leak_yangs_sink_battery
below: 15
for: 00:30:00
- platform: numeric_state
entity_id: sensor.leak_guest_sink_battery
below: 15
for: 00:30:00
- platform: numeric_state
entity_id: sensor.leak_guest_toilet_battery
below: 15
for: 00:30:00
- platform: numeric_state
entity_id: sensor.leak_master_toilet_battery
below: 15
for: 00:30:00
- platform: numeric_state
entity_id: sensor.leak_kitchen_sink_battery
below: 15
for: 00:30:00
- platform: numeric_state
entity_id: sensor.leak_laundry_sink_battery
below: 15
for: 00:30:00
- platform: numeric_state
entity_id: sensor.leak_washer_battery
below: 15
for: 00:30:00
- platform: numeric_state
entity_id: sensor.sun_room_remote_1_battery_level
below: 10
for: 00:30:00
- platform: numeric_state
entity_id: sensor.sun_room_remote_2_battery_level
below: 10
for: 00:30:00
- platform: numeric_state
entity_id: sensor.sun_room_remote_3_battery_level
below: 10
for: 00:30:00
- platform: numeric_state
entity_id: sensor.sun_room_remote_4_battery_level
below: 10
for: 00:30:00
- platform: numeric_state
entity_id: sensor.master_bedroom_shade_1_inner_battery
below: 20
- platform: numeric_state
entity_id: sensor.master_bedroom_shade_1_outer_battery
below: 20
- platform: numeric_state
entity_id: sensor.master_bedroom_shade_2_inner_battery
below: 20
- platform: numeric_state
entity_id: sensor.master_bedroom_shade_2_outer_battery
below: 20
- platform: numeric_state
entity_id: sensor.master_bedroom_shade_3_inner_battery
below: 20
- platform: numeric_state
entity_id: sensor.master_bedroom_shade_3_outer_battery
below: 20
- platform: numeric_state
entity_id: sensor.master_bedroom_shade_4_inner_battery
below: 20
- platform: numeric_state
entity_id: sensor.master_bedroom_shade_4_outer_battery
below: 20
actions:
- action: notify.gmail_to_yang
data:
title: 'Low batteries: {{ trigger.entity_id }}'
message: 'Low batteries: {{ trigger.entity_id }} {{ states(trigger.entity_id)
}}%'
- id: aut_software_update_available
alias: aut software update available
initial_state: true
trigger:
- platform: state
entity_id: binary_sensor.home_assistant_website_update_available
from: 'off'
to: 'on'
for: 00:10:00
actions:
- action: notify.gmail_to_yang
data:
message: "Home Assistant {{states(\"sensor.home_assistant_website\")}} is now\
\ available.\n Your current version is {{states(\"sensor.current_version\"\
)}}.\n See https://github.com/home-assistant/home-assistant/releases\n"
- id: aut_guest_mode_on
alias: aut guest mode on
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.inp_bool_guest_mode
from: 'off'
to: 'on'
actions:
- action: script.scr_common_guest_mode_on
- id: aut_guest_mode_off
alias: aut guest mode off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.inp_bool_guest_mode
from: 'on'
to: 'off'
actions:
- action: script.scr_common_guest_mode_off
- id: aut_datetime_guest_mode_on
alias: aut datetime guest mode on
initial_state: true
trigger:
- platform: time
at: input_datetime.guest_arrives
conditions:
- condition: state
entity_id: input_boolean.inp_bool_guest_mode
state: 'off'
actions:
- action: input_boolean.turn_on
target:
entity_id: input_boolean.inp_bool_guest_mode
- action: script.scr_common_guest_mode_on
- id: aut_datetime_guest_mode_off
alias: aut datetime guest mode off
initial_state: true
trigger:
- platform: time
at: input_datetime.guest_departs
conditions:
- condition: state
entity_id: input_boolean.inp_bool_guest_mode
state: 'on'
actions:
- action: input_boolean.turn_off
target:
entity_id: input_boolean.inp_bool_guest_mode
- action: script.scr_common_guest_mode_off
- id: aut_extended_absence_on
alias: aut extended absence on
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.inp_bool_extended_absence_mode
from: 'off'
to: 'on'
conditions:
- condition: state
entity_id: input_boolean.inp_bool_guest_mode
state: 'off'
actions:
- action: script.scr_say_phrase
data:
message: Extended absence mode enabled
- action: notify.mobile_app_yskt_cell
data:
title: Extended absence mode has been enabled
message: 'Home Assistant: Extended absence mode enabled'
data:
car_ui: true
- action: notify.gmail_to_yang
data:
title: Extended absence mode has been enabled
message: Extended absence mode enabled
- action: script.scr_common_extended_absence_on
- id: aut_extended_absence_off
alias: aut extended absence off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.inp_bool_extended_absence_mode
from: 'on'
to: 'off'
actions:
- action: script.scr_common_extended_absence_off
- action: script.scr_say_phrase
data:
message: Extended absence mode disabled
- action: notify.gmail_to_yang
data:
title: 'Home Assistant: Extended Absence Mode disabled'
message: Extended absence mode disabled
- action: notify.mobile_app_yskt_cell
data:
title: Extended absence mode has been disabled
message: 'Home Assistant: Extended absence mode disabled'
data:
car_ui: true
- id: aut_extended_absence_auto_on
alias: aut extended absence auto on
initial_state: true
trigger:
- platform: template
value_template: '{{ (states(''sensor.home_ys_cell_gps_distance'') | float(default=0)
> 100) and (states(''sensor.home_kt_cell_gps_distance'') | float(default=0)
> 100) }}
'
for: 00:30:00
conditions:
condition: and
conditions:
- condition: state
entity_id: input_boolean.inp_bool_extended_absence_mode
state: 'off'
- condition: state
entity_id: input_boolean.inp_bool_guest_mode
state: 'off'
actions:
- action: input_boolean.turn_on
target:
entity_id: input_boolean.inp_bool_extended_absence_mode
- id: aut_extended_absence_auto_off
alias: aut extended absence auto off
initial_state: true
trigger:
- platform: numeric_state
entity_id: sensor.home_ys_cell_gps_distance
value_template: '{{ states(''sensor.home_ys_cell_gps_distance'') | float(default=0)
}}'
below: 30
for:
minutes: 10
- platform: numeric_state
entity_id: sensor.home_kt_cell_gps_distance
value_template: '{{ states(''sensor.home_kt_cell_gps_distance'') | float(default=0)
}}'
below: 30
for:
minutes: 10
- platform: state
entity_id: group.whereis_kt
to: home
- platform: state
entity_id: group.whereis_ys
to: home
conditions:
- condition: state
entity_id: input_boolean.inp_bool_extended_absence_mode
state: 'on'
actions:
- action: input_boolean.turn_off
entity_id: input_boolean.inp_bool_extended_absence_mode
- id: aut_datetime_extended_absence_on
alias: aut datetime extended absence on
initial_state: true
trigger:
- platform: time
at: input_datetime.extended_absence_start
conditions:
- condition: state
entity_id: input_boolean.inp_bool_extended_absence_mode
state: 'off'
actions:
- action: input_boolean.turn_on
target:
entity_id: input_boolean.inp_bool_extended_absence_mode
- id: aut_datetime_extended_absence_off
alias: aut datetime extended absence off
initial_state: true
trigger:
- platform: time
at: input_datetime.extended_absence_end
conditions:
- condition: state
entity_id: input_boolean.inp_bool_extended_absence_mode
state: 'on'
actions:
- action: input_boolean.turn_off
target:
entity_id: input_boolean.inp_bool_extended_absence_mode
- id: aut_security_occupied_sim
alias: aut security occupied sim
initial_state: true
trigger:
- platform: sun
event: sunset
conditions:
- condition: state
entity_id: input_boolean.inp_bool_extended_absence_mode
state: 'on'
actions:
- action: script.scr_occupied_sim
- id: aut_theater_mode_on
alias: aut theater mode on
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.inp_bool_theater_mode
from: 'off'
to: 'on'
actions:
- action: scene.turn_on
target:
entity_id: scene.living_room_theater_mode
- id: aut_theater_mode_off
alias: aut theater mode off
initial_state: true
trigger:
- platform: state
entity_id: input_boolean.inp_bool_theater_mode
from: 'on'
to: 'off'
actions:
- action: scene.turn_on
target:
entity_id: scene.living_room_normal_mode
- id: aut_kitchen_mood_100_bright_white
alias: aut kitchen mood 100 bright white
initial_state: true
trigger:
- platform: template
value_template: '{{ is_state(''light.island_lights'', ''on'') and is_state(''light.kitchen_cabinet_lights'',
''on'') and is_state(''light.kitchen_leds_lower'', ''on'') }}'
actions:
- action: light.turn_on
target:
entity_id: light.kitchen_leds_upper_master
- action: light.turn_on
target:
entity_id: light.kitchen_leds_upper
- action: select.select_option
target:
entity_id: select.kitchen_leds_upper_preset
data:
option: All Seg Bright Wht 100%
- id: aut_kitchen_mood_normal
alias: aut kitchen mood normal
initial_state: true
mode: single
max_exceeded: silent
trigger:
- platform: state
entity_id: light.island_lights
to: 'off'
- platform: state
entity_id: light.kitchen_cabinet_lights
to: 'off'
- platform: state
entity_id:
- light.kitchen_leds_lower
to: 'off'
actions:
- if:
- condition: state
entity_id: input_boolean.inp_bool_lum_mood_lights_f_solar_trig
state: 'on'
then:
- action: script.scr_turn_on_kitchen_leds_upper
else:
- action: light.turn_off
target:
entity_id:
- light.kitchen_leds_upper
- light.kitchen_leds_upper_master
- id: hvac_closet_auto_off
alias: hvac_closet_auto_off
initial_state: true
trigger:
- platform: state
entity_id: light.hvac_closet_lights
to: 'on'
actions:
- delay: 02:00:00
- action: light.turn_off
target:
entity_id: light.hvac_closet_lights
- id: kitchen_wled_reset
alias: kitchen wled reset
initial_state: true
trigger:
- platform: state
entity_id:
- light.kitchen_leds_upper_master
- light.kitchen_leds_lower
to: unavailable
for: 00:00:10
actions:
- action: switch.turn_off
target:
entity_id: switch.kitchen_wled_reset
- delay: 00:00:10
- action: switch.turn_on
target:
entity_id: switch.kitchen_wled_reset
- id: aut_half_mile_departure
alias: aut half mile departure
initial_state: true
trigger:
- platform: template
value_template: '{{ (states(''sensor.home_ys_cell_gps_distance'') | float(default=0)
> 0.5) }}
'
conditions:
- condition: state
entity_id: input_boolean.inp_bool_half_mi_trig_test
state: 'on'
- condition: state
entity_id: sensor.home_ys_cell_gps_direction_of_travel
state: away_from
actions:
- action: notify.mobile_app_ys_cell
data:
message: TTS
data:
tts_text: Half mile exceeded
data:
car_ui: true