- 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