[ { "id": "keymaster_turn_on_access_limit_back_door_1", "result": { "structured": "TRIGGER: When access count back door 1 [input_number.accesscount_back_door_1] changes state. CONDITIONS: The numeric value of access count back door 1 [input_number.accesscount_back_door_1] is greater than 0. ACTIONS: Turn on access limit back door 1 [input_boolean.accesslimit_back_door_1].", "natural_language": { "trigger": "Whenever the value of the access count back door 1 [input_number.accesscount_back_door_1] changes.", "conditions": "The access count back door 1 [input_number.accesscount_back_door_1] must have a numeric value greater than zero.", "action": "Activates the access limit by turning on the input boolean access limit back door 1 [input_boolean.accesslimit_back_door_1]." }, "human_like": "Enables the access limit for the back door whenever the access count is positive.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_back_door_1", "result": { "structured": "TRIGGER: When pin synched back door 1 [binary_sensor.pin_synched_back_door_1] changes from on to off. CONDITIONS: back door code slot 1 [sensor.back_door_code_slot_1] is not unavailable. ACTIONS: IF active back door 1 [binary_sensor.active_back_door_1] is on THEN add a code to back door lock [lock.back_door_lock] in slot 1 using the value from back door pin 1 [input_text.back_door_pin_1] (stripped). ELSE IF active back door 1 [binary_sensor.active_back_door_1] is off THEN clear the code in slot 1 of back door lock [lock.back_door_lock].", "natural_language": { "trigger": "When the pin synched back door 1 [binary_sensor.pin_synched_back_door_1] changes from being on to off.", "conditions": "The automation only runs if the back door code slot 1 [sensor.back_door_code_slot_1] is available (its state is not 'unavailable').", "action": "Depending on the state of the active back door 1 [binary_sensor.active_back_door_1], the automation will either add or clear a PIN code on the lock. If the active back door 1 sensor is on, it adds a new code to slot 1 of the back door lock [lock.back_door_lock], using the PIN stored in back door pin 1 [input_text.back_door_pin_1]. If the active back door 1 sensor is off, it clears the code currently stored in slot 1 of the lock." }, "human_like": "Synchronizes the PIN code for slot 1 on the back door lock when a sync signal is received, either adding a new code or clearing the slot based on whether the code is marked as active.", "complexity": "medium" } }, { "id": "keymaster_override_parent_back_door_1_state_change", "result": { "structured": "TRIGGER: When override parent back door 1 [input_boolean.override_parent_back_door_1] changes to off. CONDITIONS: None. ACTIONS: Execute script keymaster back door copy from parent 1 [script.keymaster_back_door_copy_from_parent_1].", "natural_language": { "trigger": "When the override parent back door 1 [input_boolean.override_parent_back_door_1] is turned off.", "conditions": "There are no additional conditions.", "action": "Runs the script named keymaster back door copy from parent 1 [script.keymaster_back_door_copy_from_parent_1]." }, "human_like": "When the back door override is disabled, it runs a script to restore the door's keymaster settings.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_name_back_door_1", "result": { "structured": "TRIGGER: When front door name 1 [input_text.front_door_name_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set the value of back door name 1 [input_text.back_door_name_1] to the current state value of front door name 1 [input_text.front_door_name_1].", "natural_language": { "trigger": "Whenever the text value of front door name 1 [input_text.front_door_name_1] is updated.", "conditions": "The automation only runs if the override parent back door 1 [input_boolean.override_parent_back_door_1] is turned off.", "action": "Copies the current text from front door name 1 [input_text.front_door_name_1] to back door name 1 [input_text.back_door_name_1]." }, "human_like": "Automatically copies the name from the front door to the back door unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_pin_back_door_1", "result": { "structured": "TRIGGER: When front door pin 1 [input_text.front_door_pin_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set the value of back door pin 1 [input_text.back_door_pin_1] to the current state of front door pin 1 [input_text.front_door_pin_1].", "natural_language": { "trigger": "Whenever the value of the front door pin 1 [input_text.front_door_pin_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be turned off.", "action": "Copies the current PIN code from front door pin 1 [input_text.front_door_pin_1] to back door pin 1 [input_text.back_door_pin_1]." }, "human_like": "Automatically copies the PIN code from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_enabled_back_door_1", "result": { "structured": "TRIGGER: When enabled front door 1 [input_boolean.enabled_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If enabled front door 1 [input_boolean.enabled_front_door_1] is on, turn on enabled back door 1 [input_boolean.enabled_back_door_1]; otherwise, turn off enabled back door 1 [input_boolean.enabled_back_door_1].", "natural_language": { "trigger": "Whenever the state of the enabled front door 1 [input_boolean.enabled_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "If enabled front door 1 [input_boolean.enabled_front_door_1] is turned on, then turn on enabled back door 1 [input_boolean.enabled_back_door_1]; if it is turned off, then turn off enabled back door 1 [input_boolean.enabled_back_door_1]." }, "human_like": "This automation synchronizes the enabled state of the back door with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_notify_back_door_1", "result": { "structured": "TRIGGER: When notify front door 1 [input_boolean.notify_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back door_1] is off. ACTIONS: If notify front door 1 [input_boolean.notify_front_door_1] is on, turn on notify back door 1 [input_boolean.notify_back_door_1]; otherwise, turn off notify back door 1 [input_boolean.notify_back_door_1].", "natural_language": { "trigger": "Whenever the state of notify front door 1 [input_boolean.notify_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "If notify front door 1 [input_boolean.notify_front_door_1] is turned on, then turn on notify back door 1 [input_boolean.notify_back_door_1]. If notify front door 1 [input_boolean.notify_front_door_1] is turned off, then turn off notify back door 1 [input_boolean.notify_back_door_1]." }, "human_like": "This automation synchronizes the notification state for the back door with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_reset_back_door_1", "result": { "structured": "TRIGGER: When reset codeslot front door 1 [input_boolean.reset_codeslot_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If reset codeslot front door 1 [input_boolean.reset_codeslot_front_door_1] is on, turn it on; otherwise, turn it off.", "natural_language": { "trigger": "Whenever the state of reset codeslot front door 1 [input_boolean.reset_codeslot_front_door_1] changes.", "conditions": "The automation only runs if override parent back door 1 [input_boolean.override_parent_back_door_1] is currently off.", "action": "The automation sets the state of reset codeslot front door 1 [input_boolean.reset_codeslot_front_door_1] to match its current state, effectively toggling it to the same value it already has." }, "human_like": "This automation ensures the reset codeslot for the front door is synchronized with its own state when the override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_accesslimit_back_door_1", "result": { "structured": "TRIGGER: When accesslimit front door 1 [input_boolean.accesslimit_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If accesslimit front door 1 [input_boolean.accesslimit_front_door_1] is on, then turn on access limit back door 1 [input_boolean.accesslimit_back_door_1]; otherwise, turn off access limit back door 1 [input_boolean.accesslimit_back_door_1].", "natural_language": { "trigger": "Whenever the state of the accesslimit front door 1 [input_boolean.accesslimit_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "If the accesslimit front door 1 [input_boolean.accesslimit_front_door_1] is on, turn on the access limit back door 1 [input_boolean.accesslimit_back_door_1]. If it is off, turn off the access limit back door 1 [input_boolean.accesslimit_back_door_1]." }, "human_like": "This automation synchronizes the access limit status from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_accesscount_back_door_1", "result": { "structured": "TRIGGER: When accesscount front door 1 [input_number.accesscount_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set the value of access count back door 1 [input_number.accesscount_back_door_1] to the integer value of accesscount front door 1 [input_number.accesscount_front_door_1].", "natural_language": { "trigger": "Whenever the value of accesscount front door 1 [input_number.accesscount_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be turned off.", "action": "Copies the numeric value from accesscount front door 1 [input_number.accesscount_front_door_1] and sets it as the new value for access count back door 1 [input_number.accesscount_back_door_1]." }, "human_like": "Synchronizes the access count for back door 1 with the count from front door 1, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_daterange_back_door_1", "result": { "structured": "TRIGGER: When daterange front door 1 [input_boolean.daterange_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If daterange front door 1 [input_boolean.daterange_front_door_1] is on, turn on daterange back door 1 [input_boolean.daterange_back_door_1]; otherwise, turn off daterange back door 1 [input_boolean.daterange_back_door_1].", "natural_language": { "trigger": "Whenever the state of the daterange front door 1 [input_boolean.daterange_front_door_1] changes.", "conditions": "The automation only runs if the override parent back door 1 [input_boolean.override_parent_back_door_1] is currently turned off.", "action": "It copies the state of the front door date range to the back door date range. If the front door date range is on, it turns on the back door date range; if it's off, it turns off the back door date range." }, "human_like": "This automation synchronizes the date range setting from the front door to the back door, unless an override for the back door is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_start_date_back_door_1", "result": { "structured": "TRIGGER: When start date front door 1 [input_datetime.start_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set the datetime of start date back door 1 [input_datetime.start_date_back_door_1] to the current state value of start date front door 1 [input_datetime.start_date_front_door_1].", "natural_language": { "trigger": "Whenever the start date front door 1 [input_datetime.start_date_front_door_1] is updated.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be turned off.", "action": "Copies the date and time value from start date front door 1 [input_datetime.start_date_front_door_1] to start date back door 1 [input_datetime.start_date_back_door_1]." }, "human_like": "Synchronizes the start date for the back door lock with the front door's start date, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_end_date_back_door_1", "result": { "structured": "TRIGGER: When end date front door 1 [input_datetime.end_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set the datetime of end date back door 1 [input_datetime.end_date_back_door_1] to the current state value of end date front door 1 [input_datetime.end_date_front_door_1].", "natural_language": { "trigger": "Whenever the date and time value for end date front door 1 [input_datetime.end_date_front_door_1] is updated.", "conditions": "The automation only runs if the override parent back door 1 [input_boolean.override_parent_back_door_1] is turned off.", "action": "Copies the date and time from end date front door 1 [input_datetime.end_date_front_door_1] to end date back door 1 [input_datetime.end_date_back_door_1]." }, "human_like": "Synchronizes the end date for back door slot 1 with the front door slot 1, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_back_door_1", "result": { "structured": "TRIGGER: When sun front door 1 [input_boolean.sun_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If sun front door 1 [input_boolean.sun_front_door_1] is on, turn on sun back door 1 [input_boolean.sun_back_door_1]; otherwise, turn off sun back door 1 [input_boolean.sun_back_door_1].", "natural_language": { "trigger": "Whenever the state of sun front door 1 [input_boolean.sun_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "If sun front door 1 [input_boolean.sun_front_door_1] is on, turn on sun back door 1 [input_boolean.sun_back_door_1]; if it is off, turn off sun back door 1 [input_boolean.sun_back_door_1]." }, "human_like": "This automation synchronizes the back door's sun state with the front door's sun state, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_inc_back_door_1", "result": { "structured": "TRIGGER: When sun inc front door 1 [input_boolean.sun_inc_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If sun inc front door 1 [input_boolean.sun_inc_front_door_1] is on, turn on sun inc back door 1 [input_boolean.sun_inc_back_door_1]; otherwise, turn off sun inc back door 1 [input_boolean.sun_inc_back_door_1].", "natural_language": { "trigger": "Whenever the state of the sun inc front door 1 [input_boolean.sun_inc_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "If the sun inc front door 1 [input_boolean.sun_inc_front_door_1] is on, turn on the sun inc back door 1 [input_boolean.sun_inc_back_door_1]. If it is off, turn off the sun inc back door 1 [input_boolean.sun_inc_back_door_1]." }, "human_like": "Copies the state of the front door sun inclusion to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_start_date_back_door_1", "result": { "structured": "TRIGGER: When sun start date front door 1 [input_datetime.sun_start_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set sun start date back door 1 [input_datetime.sun_start_date_back_door_1] to the time value from sun start date front door 1 [input_datetime.sun_start_date_front_door_1].", "natural_language": { "trigger": "Whenever the sun start date front door 1 [input_datetime.sun_start_date_front_door_1] is updated.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be turned off.", "action": "Copy the time value from sun start date front door 1 [input_datetime.sun_start_date_front_door_1] to sun start date back door 1 [input_datetime.sun_start_date_back_door_1]." }, "human_like": "Synchronizes the sunrise start time for the back door lock to match the front door's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_end_date_back_door_1", "result": { "structured": "TRIGGER: When sun end date front door 1 [input_datetime.sun_end_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set sun end date back door 1 [input_datetime.sun_end_date_back_door_1] to the current time value of sun end date front door 1 [input_datetime.sun_end_date_front_door_1].", "natural_language": { "trigger": "Whenever the sun end date front door 1 [input_datetime.sun_end_date_front_door_1] is updated.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be turned off.", "action": "Copies the time value from sun end date front door 1 [input_datetime.sun_end_date_front_door_1] to sun end date back door 1 [input_datetime.sun_end_date_back_door_1]." }, "human_like": "Synchronizes the sunset end date for the back door to match the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_back_door_1", "result": { "structured": "TRIGGER: When mon front door 1 [input_boolean.mon_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If mon front door 1 [input_boolean.mon_front_door_1] is on, turn on mon back door 1 [input_boolean.mon_back_door_1]; otherwise, turn off mon back door 1 [input_boolean.mon_back_door_1].", "natural_language": { "trigger": "Whenever the state of mon front door 1 [input_boolean.mon_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "If mon front door 1 [input_boolean.mon_front_door_1] is on, turn on mon back door 1 [input_boolean.mon_back_door_1]; if it is off, turn off mon back door 1 [input_boolean.mon_back_door_1]." }, "human_like": "Copies the state of the front door monitoring switch to the back door monitoring switch, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_inc_back_door_1", "result": { "structured": "TRIGGER: When mon inc front door 1 [input_boolean.mon_inc_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If mon inc front door 1 [input_boolean.mon_inc_front_door_1] is on, then turn on mon inc back door 1 [input_boolean.mon_inc_back_door_1]; otherwise turn off mon inc back door 1 [input_boolean.mon_inc_back_door_1].", "natural_language": { "trigger": "Whenever the state of mon inc front door 1 [input_boolean.mon_inc_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "If mon inc front door 1 [input_boolean.mon_inc_front_door_1] is on, turn on mon inc back door 1 [input_boolean.mon_inc_back_door_1]; if it is off, turn off mon inc back door 1 [input_boolean.mon_inc_back_door_1]." }, "human_like": "Mirrors the state of the front door monitor to the back door monitor, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_start_date_back_door_1", "result": { "structured": "TRIGGER: When mon start date front door 1 [input_datetime.mon_start_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set the time of mon start date back door 1 [input_datetime.mon_start_date_back_door_1] to the current state of mon start date front door 1 [input_datetime.mon_start_date_front_door_1].", "natural_language": { "trigger": "Whenever the date or time value of mon start date front door 1 [input_datetime.mon_start_date_front_door_1] is updated.", "conditions": "The automation only runs if the override parent back door 1 [input_boolean.override_parent_back_door_1] is turned off.", "action": "Copies the time value from mon start date front door 1 [input_datetime.mon_start_date_front_door_1] to mon start date back door 1 [input_datetime.mon_start_date_back_door_1]." }, "human_like": "Synchronizes the start date for the back door lock with the front door lock, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_end_date_back_door_1", "result": { "structured": "TRIGGER: When mon end date front door 1 [input_datetime.mon_end_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set mon end date back door 1 [input_datetime.mon_end_date_back_door_1] to the current time value of mon end date front door 1 [input_datetime.mon_end_date_front_door_1].", "natural_language": { "trigger": "Whenever the date or time value of mon end date front door 1 [input_datetime.mon_end_date_front_door_1] changes.", "conditions": "The automation only runs if the override parent back door 1 [input_boolean.override_parent_back_door_1] is turned off.", "action": "Copies the current time value from mon end date front door 1 [input_datetime.mon_end_date_front_door_1] and sets it as the new value for mon end date back door 1 [input_datetime.mon_end_date_back_door_1]." }, "human_like": "Synchronizes the end date for the back door lock with the front door lock, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_back_door_1", "result": { "structured": "TRIGGER: When tue front door 1 [input_boolean.tue_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If tue front door 1 [input_boolean.tue_front_door_1] is on, turn on tue back door 1 [input_boolean.tue_back_door_1]; otherwise, turn off tue back door 1 [input_boolean.tue_back_door_1].", "natural_language": { "trigger": "Whenever the state of the input boolean tue front door 1 [input_boolean.tue_front_door_1] changes.", "conditions": "The override for this automation, override parent back door 1 [input_boolean.override_parent_back_door_1], must be off.", "action": "The automation copies the state from tue front door 1 [input_boolean.tue_front_door_1] to tue back door 1 [input_boolean.tue_back_door_1]. If the front door boolean is on, it turns on the back door boolean; if it is off, it turns the back door boolean off." }, "human_like": "This automation synchronizes the state of the back door lock with the front door lock, but only when the override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_inc_back_door_1", "result": { "structured": "TRIGGER: When tue inc front door 1 [input_boolean.tue_inc_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If tue inc front door 1 [input_boolean.tue_inc_front_door_1] is on, turn on tue inc back door 1 [input_boolean.tue_inc_back_door_1]; otherwise, turn off tue inc back door 1 [input_boolean.tue_inc_back_door_1].", "natural_language": { "trigger": "Whenever the state of tue inc front door 1 [input_boolean.tue_inc_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "The automation copies the state of tue inc front door 1 [input_boolean.tue_inc_front_door_1] to tue inc back door 1 [input_boolean.tue_inc_back_door_1]. If the front door input is on, the back door input is turned on; if it's off, the back door input is turned off." }, "human_like": "This automation synchronizes the state of the back door input with the front door input, but only when the override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_start_date_back_door_1", "result": { "structured": "TRIGGER: When tue start date front door 1 [input_datetime.tue_start_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set tue start date back door 1 [input_datetime.tue_start_date_back_door_1] to the time value from tue start date front door 1 [input_datetime.tue_start_date_front_door_1].", "natural_language": { "trigger": "Whenever the date or time value of tue start date front door 1 [input_datetime.tue_start_date_front_door_1] is updated.", "conditions": "The automation only runs if the override parent back door 1 [input_boolean.override_parent_back_door_1] is turned off.", "action": "Copies the time value from tue start date front door 1 [input_datetime.tue_start_date_front_door_1] and sets it on tue start date back door 1 [input_datetime.tue_start_date_back_door_1]." }, "human_like": "Synchronizes the Tuesday start time for the back door with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_end_date_back_door_1", "result": { "structured": "TRIGGER: When tue end date front door 1 [input_datetime.tue_end_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set the time of tue end date back door 1 [input_datetime.tue_end_date_back_door_1] to the current state value of tue end date front door 1 [input_datetime.tue_end_date_front_door_1].", "natural_language": { "trigger": "Whenever the value of the date/time input for tue end date front door 1 [input_datetime.tue_end_date_front_door_1] changes.", "conditions": "The automation only runs if the override toggle for the back door, override parent back door 1 [input_boolean.override_parent_back_door_1], is turned off.", "action": "Copies the time value from the front door's date/time input to the corresponding back door date/time input, tue end date back door 1 [input_datetime.tue_end_date_back_door_1]." }, "human_like": "Synchronizes the Tuesday end date for back door 1 with the value set for front door 1, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_back_door_1", "result": { "structured": "TRIGGER: When wed front door 1 [input_boolean.wed_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If wed front door 1 [input_boolean.wed_front_door_1] is on, turn on wed back door 1 [input_boolean.wed_back_door_1]; otherwise, turn off wed back door 1 [input_boolean.wed_back_door_1].", "natural_language": { "trigger": "Whenever the state of wed front door 1 [input_boolean.wed_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "If wed front door 1 [input_boolean.wed_front_door_1] is on, turn on wed back door 1 [input_boolean.wed_back_door_1]; if it is off, turn off wed back door 1 [input_boolean.wed_back_door_1]." }, "human_like": "Synchronizes the back door lock state with the front door lock state, unless an override is active.", "complexity": "medium" } }, { "id": "keymaster_copy_front_door_wed_inc_back_door_1", "result": { "structured": "TRIGGER: When wed inc front door 1 [input_boolean.wed_inc_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If wed inc front door 1 [input_boolean.wed_inc_front_door_1] is on, turn on wed inc back door 1 [input_boolean.wed_inc_back_door_1]; otherwise, turn off wed inc back door 1 [input_boolean.wed_inc_back_door_1].", "natural_language": { "trigger": "Whenever the state of wed inc front door 1 [input_boolean.wed_inc_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "It copies the state of wed inc front door 1 [input_boolean.wed_inc_front_door_1] to wed inc back door 1 [input_boolean.wed_inc_back_door_1]. If the front door boolean is on, the back door boolean is turned on; if it is off, the back door boolean is turned off." }, "human_like": "Copies the state of the front door 'include' toggle to the back door, unless an override for the back door is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_start_date_back_door_1", "result": { "structured": "TRIGGER: When wed start date front door 1 [input_datetime.wed_start_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set wed start date back door 1 [input_datetime.wed_start_date_back_door_1] to the current time value of wed start date front door 1 [input_datetime.wed_start_date_front_door_1].", "natural_language": { "trigger": "Whenever the date or time value of wed start date front door 1 [input_datetime.wed_start_date_front_door_1] is updated.", "conditions": "The automation only runs if the override parent back door 1 [input_boolean.override_parent_back_door_1] is turned off.", "action": "Copies the time value from wed start date front door 1 [input_datetime.wed_start_date_front_door_1] and sets it as the new value for wed start date back door 1 [input_datetime.wed_start_date_back_door_1]." }, "human_like": "Synchronizes the start date for the back door lock with the front door lock, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_end_date_back_door_1", "result": { "structured": "TRIGGER: When wed end date front door 1 [input_datetime.wed_end_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set wed end date back door 1 [input_datetime.wed_end_date_back_door_1] to the time value of wed end date front door 1 [input_datetime.wed_end_date_front_door_1].", "natural_language": { "trigger": "Whenever the date or time value of wed end date front door 1 [input_datetime.wed_end_date_front_door_1] changes.", "conditions": "The automation only runs if the override parent back door 1 [input_boolean.override_parent_back_door_1] is turned off.", "action": "Copies the time value from wed end date front door 1 [input_datetime.wed_end_date_front_door_1] and sets it as the new value for wed end date back door 1 [input_datetime.wed_end_date_back_door_1]." }, "human_like": "Synchronizes the end date for the back door lock with the front door, but only when the back door's override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_back_door_1", "result": { "structured": "TRIGGER: When thu front door 1 [input_boolean.thu_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If thu front door 1 [input_boolean.thu_front_door_1] is on, turn on thu back door 1 [input_boolean.thu_back_door_1]; otherwise, turn off thu back door 1 [input_boolean.thu_back_door_1].", "natural_language": { "trigger": "Whenever the state of thu front door 1 [input_boolean.thu_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "If thu front door 1 [input_boolean.thu_front_door_1] is on, turn on thu back door 1 [input_boolean.thu_back_door_1]; if it is off, turn off thu back door 1 [input_boolean.thu_back_door_1]." }, "human_like": "Copies the state of the front door lock to the back door lock, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_inc_back_door_1", "result": { "structured": "TRIGGER: When thu inc front door 1 [input_boolean.thu_inc_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If thu inc front door 1 [input_boolean.thu_inc_front_door_1] is on, turn on thu inc back door 1 [input_boolean.thu_inc_back_door_1]; otherwise, turn off thu inc back door 1 [input_boolean.thu_inc_back_door_1].", "natural_language": { "trigger": "Whenever the state of the input boolean 'thu inc front door 1' [input_boolean.thu_inc_front_door_1] changes.", "conditions": "The automation only runs if the 'override parent back door 1' [input_boolean.override_parent_back_door_1] is turned off.", "action": "It copies the state of the 'thu inc front door 1' [input_boolean.thu_inc_front_door_1] to the 'thu inc back door 1' [input_boolean.thu_inc_back_door_1]. If the front door boolean is on, the back door boolean is turned on; if it's off, the back door boolean is turned off." }, "human_like": "This automation synchronizes the state of the back door boolean with the front door boolean, but only when the override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_start_date_back_door_1", "result": { "structured": "TRIGGER: When thu start date front door 1 [input_datetime.thu_start_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set the time of thu start date back door 1 [input_datetime.thu_start_date_back_door_1] to the current state value of thu start date front door 1 [input_datetime.thu_start_date_front_door_1].", "natural_language": { "trigger": "Whenever the date or time value for thu start date front door 1 [input_datetime.thu_start_date_front_door_1] is updated.", "conditions": "The automation only runs if the override parent back door 1 [input_boolean.override_parent_back_door_1] is turned off.", "action": "Copies the time value from thu start date front door 1 [input_datetime.thu_start_date_front_door_1] and sets it as the time for thu start date back door 1 [input_datetime.thu_start_date_back_door_1]." }, "human_like": "Copies a scheduled start time from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_end_date_back_door_1", "result": { "structured": "TRIGGER: When thu end date front door 1 [input_datetime.thu_end_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set thu end date back door 1 [input_datetime.thu_end_date_back door_1] to the current time value of thu end date front door 1 [input_datetime.thu_end_date_front_door_1].", "natural_language": { "trigger": "Whenever the date or time value of thu end date front door 1 [input_datetime.thu_end_date_front_door_1] changes.", "conditions": "The automation only runs if the override parent back door 1 [input_boolean.override_parent_back_door_1] is turned off.", "action": "It copies the current time value from thu end date front door 1 [input_datetime.thu_end_date_front_door_1] and sets it for thu end date back door 1 [input_datetime.thu_end_date_back_door_1]." }, "human_like": "Copies the Thursday end date/time from the front door to the back door, unless an override for the back door is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_back_door_1", "result": { "structured": "TRIGGER: When fri front door 1 [input_boolean.fri_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set fri back door 1 [input_boolean.fri_back_door_1] to the same state as fri front door 1 [input_boolean.fri_front_door_1] (on if on, off if off).", "natural_language": { "trigger": "Whenever the state of fri front door 1 [input_boolean.fri_front_door_1] changes.", "conditions": "The automation only runs if the override parent back door 1 [input_boolean.override_parent_back_door_1] is turned off.", "action": "It copies the state from fri front door 1 [input_boolean.fri_front_door_1] to fri back door 1 [input_boolean.fri_back_door_1]. If the front door input is on, the back door input is turned on; if it's off, the back door input is turned off." }, "human_like": "This automation synchronizes the state of the back door lock with the front door lock, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_inc_back_door_1", "result": { "structured": "TRIGGER: When fri inc front door 1 [input_boolean.fri_inc_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If fri inc front door 1 [input_boolean.fri_inc_front_door_1] is on, then turn on fri inc back door 1 [input_boolean.fri_inc_back_door_1]; otherwise, turn off fri inc back door 1 [input_boolean.fri_inc_back_door_1].", "natural_language": { "trigger": "Whenever the state of the input boolean 'fri inc front door 1' [input_boolean.fri_inc_front_door_1] changes.", "conditions": "The automation only runs if the 'override parent back door 1' [input_boolean.override_parent_back_door_1] is currently turned off.", "action": "The automation copies the state of the front door input boolean to the back door input boolean. If the front door boolean is on, it turns on 'fri inc back door 1' [input_boolean.fri_inc_back_door_1]. If the front door boolean is off, it turns off the back door boolean." }, "human_like": "This automation synchronizes the state of the back door input boolean with the front door input boolean, but only when the override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_start_date_back_door_1", "result": { "structured": "TRIGGER: When fri start date front door 1 [input_datetime.fri_start_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set fri start date back door 1 [input_datetime.fri_start_date_back_door_1] to the current time value of fri start date front door 1 [input_datetime.fri_start_date_front_door_1].", "natural_language": { "trigger": "Whenever the value of fri start date front door 1 [input_datetime.fri_start_date_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be turned off.", "action": "Copies the time value from fri start date front door 1 [input_datetime.fri_start_date_front_door_1] to fri start date back door 1 [input_datetime.fri_start_date_back_door_1]." }, "human_like": "Synchronizes the start date for the back door lock schedule with the one set for the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_end_date_back_door_1", "result": { "structured": "TRIGGER: When fri end date front door 1 [input_datetime.fri_end_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set the time of fri end date back door 1 [input_datetime.fri_end_date_back_door_1] to the current state value of fri end date front door 1 [input_datetime.fri_end_date_front_door_1].", "natural_language": { "trigger": "Whenever the date or time value of fri end date front door 1 [input_datetime.fri_end_date_front_door_1] changes.", "conditions": "The automation only runs if the override parent back door 1 [input_boolean.override_parent_back_door_1] is turned off.", "action": "Copies the current time value from fri end date front door 1 [input_datetime.fri_end_date_front_door_1] to fri end date back door 1 [input_datetime.fri_end_date_back_door_1]." }, "human_like": "Copies the Friday end date/time from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_back_door_1", "result": { "structured": "TRIGGER: When sat front door 1 [input_boolean.sat_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If sat front door 1 [input_boolean.sat_front_door_1] is on, turn on sat back door 1 [input_boolean.sat_back_door_1]; otherwise, turn off sat back door 1 [input_boolean.sat_back_door_1].", "natural_language": { "trigger": "Whenever the state of sat front door 1 [input_boolean.sat_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "If sat front door 1 [input_boolean.sat_front_door_1] is on, turn on sat back door 1 [input_boolean.sat_back_door_1]; if it is off, turn off sat back door 1 [input_boolean.sat_back_door_1]." }, "human_like": "Copies the state of the front door lock to the back door lock, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_inc_back_door_1", "result": { "structured": "TRIGGER: When sat inc front door 1 [input_boolean.sat_inc_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: If sat inc front door 1 [input_boolean.sat_inc_front_door_1] is on, turn on sat inc back door 1 [input_boolean.sat_inc_back_door_1]; otherwise, turn off sat inc back door 1 [input_boolean.sat_inc_back_door_1].", "natural_language": { "trigger": "Whenever the state of sat inc front door 1 [input_boolean.sat_inc_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "The automation copies the state of sat inc front door 1 [input_boolean.sat_inc_front_door_1] to sat inc back door 1 [input_boolean.sat_inc_back_door_1]. If the front door boolean is on, it turns on the back door boolean; if it is off, it turns the back door boolean off." }, "human_like": "This automation synchronizes the state of the back door boolean with the front door boolean, but only when an override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_start_date_back_door_1", "result": { "structured": "TRIGGER: When sat start date front door 1 [input_datetime.sat_start_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set sat start date back door 1 [input_datetime.sat_start_date_back_door_1] to the time value of sat start date front door 1 [input_datetime.sat_start_date_front_door_1].", "natural_language": { "trigger": "Whenever the sat start date front door 1 [input_datetime.sat_start_date_front_door_1] changes.", "conditions": "The override parent back door 1 [input_boolean.override_parent_back_door_1] must be off.", "action": "Copy the time value from sat start date front door 1 [input_datetime.sat_start_date_front_door_1] to sat start date back door 1 [input_datetime.sat_start_date_back_door_1]." }, "human_like": "Copies the scheduled start date/time from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_end_date_back_door_1", "result": { "structured": "TRIGGER: When sat end date front door 1 [input_datetime.sat_end_date_front_door_1] changes state. CONDITIONS: override parent back door 1 [input_boolean.override_parent_back_door_1] is off. ACTIONS: Set sat end date back door 1 [input_datetime.sat_end_date_back_door_1] to the current time value of sat end date front door 1 [input_datetime.sat_end_date_front_door_1].", "natural_language": { "trigger": "Whenever the date or time value of sat end date front door 1 [input_datetime.sat_end_date_front_door_1] changes.", "conditions": "The automation only runs if the override parent back door 1 [input_boolean.override_parent_back_door_1] is turned off.", "action": "Copies the current time value from sat end date front door 1 [input_datetime.sat_end_date_front_door_1] to sat end date back door 1 [input_datetime.sat_end_date_back_door_1]." }, "human_like": "Synchronizes the end date for the back door with the front door's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_turn_on_access_limit_back_door_2", "result": { "structured": "TRIGGER: When Access Count Back Door 2 [input_number.accesscount_back_door_2] changes state. CONDITIONS: The numeric value of Access Count Back Door 2 [input_number.accesscount_back_door_2] is greater than 0. ACTIONS: Turn on Access Limit Back Door 2 [input_boolean.accesslimit_back_door_2].", "natural_language": { "trigger": "Whenever the value of Access Count Back Door 2 [input_number.accesscount_back_door_2] changes.", "conditions": "The current numeric value of Access Count Back Door 2 [input_number.accesscount_back_door_2] must be greater than zero.", "action": "Turns on the Access Limit Back Door 2 [input_boolean.accesslimit_back_door_2]." }, "human_like": "Enables the access limit for the back door when the access count is positive.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_back_door_2", "result": { "structured": "TRIGGER: When Pin Synched Back Door 2 [binary_sensor.pin_synched_back_door_2] changes from on to off. CONDITIONS: Back Door Code Slot 2 [sensor.back_door_code_slot_2] is not in the state 'unavailable'. ACTIONS: If Active Back Door 2 [binary_sensor.active_back_door_2] is on, then add a code to back door lock [lock.back_door_lock] in slot 2 using the value from Back Door PIN 2 [input_text.back_door_pin_2]. Otherwise, if Active Back Door 2 [binary_sensor.active_back_door_2] is off, then clear the code from back door lock [lock.back_door_lock] in slot 2.", "natural_language": { "trigger": "When the Pin Synched Back Door 2 [binary_sensor.pin_synched_back_door_2] sensor changes from on to off.", "conditions": "The Back Door Code Slot 2 [sensor.back_door_code_slot_2] sensor must not be reporting as 'unavailable'.", "action": "If the Active Back Door 2 [binary_sensor.active_back_door_2] sensor is on, the automation adds a new PIN code to the back door lock [lock.back_door_lock] in code slot 2, using the value stored in Back Door PIN 2 [input_text.back_door_pin_2]. If the Active Back Door 2 [binary_sensor.active_back_door_2] sensor is off, the automation clears the PIN code from the back door lock [lock.back_door_lock] in code slot 2." }, "human_like": "Synchronizes the PIN code for slot 2 on the back door lock when a sync signal is received, either adding or clearing the code based on the active status.", "complexity": "medium" } }, { "id": "keymaster_override_parent_back_door_2_state_change", "result": { "structured": "TRIGGER: When Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] changes to off. CONDITIONS: None. ACTIONS: Execute script Keymaster Back Door Copy From Parent 2 [script.keymaster_back_door_copy_from_parent_2].", "natural_language": { "trigger": "When the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "conditions": "There are no conditions for this automation.", "action": "Runs the script named Keymaster Back Door Copy From Parent 2 [script.keymaster_back_door_copy_from_parent_2]." }, "human_like": "When the override for the back door is disabled, it runs a script to copy settings from a parent lock.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_name_back_door_2", "result": { "structured": "TRIGGER: When Front Door Name 2 [input_text.front_door_name_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set the value of Back Door Name 2 [input_text.back_door_name_2] to the current state value of Front Door Name 2 [input_text.front_door_name_2].", "natural_language": { "trigger": "Whenever the text value of Front Door Name 2 [input_text.front_door_name_2] changes.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the current text from Front Door Name 2 [input_text.front_door_name_2] and sets it as the value for Back Door Name 2 [input_text.back_door_name_2]." }, "human_like": "Automatically copies the name from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_pin_back_door_2", "result": { "structured": "TRIGGER: When Front Door PIN 2 [input_text.front_door_pin_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set the value of Back Door PIN 2 [input_text.back_door_pin_2] to the current state value of Front Door PIN 2 [input_text.front_door_pin_2].", "natural_language": { "trigger": "Whenever the value of the Front Door PIN 2 [input_text.front_door_pin_2] changes.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the current PIN code from Front Door PIN 2 [input_text.front_door_pin_2] to Back Door PIN 2 [input_text.back_door_pin_2]." }, "human_like": "Automatically copies the PIN code from the front door to the back door when the override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_enabled_back_door_2", "result": { "structured": "TRIGGER: When Enabled Front Door 2 [input_boolean.enabled_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Enabled Front Door 2 [input_boolean.enabled_front_door_2] is on, then turn on Enabled Back Door 2 [input_boolean.enabled_back_door_2]; otherwise, turn off Enabled Back Door 2 [input_boolean.enabled_back_door_2].", "natural_language": { "trigger": "Whenever the Enabled Front Door 2 [input_boolean.enabled_front_door_2] changes its state.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is currently turned off.", "action": "If Enabled Front Door 2 [input_boolean.enabled_front_door_2] is on, it turns on Enabled Back Door 2 [input_boolean.enabled_back_door_2]. If it is off, it turns off Enabled Back Door 2 [input_boolean.enabled_back_door_2]." }, "human_like": "This automation synchronizes the state of the back door's enabled setting with the front door's enabled setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_notify_back_door_2", "result": { "structured": "TRIGGER: When Notify Front Door 2 [input_boolean.notify_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Notify Front Door 2 [input_boolean.notify_front_door_2] is on, then turn on Notify Back Door 2 [input_boolean.notify_back_door_2]; otherwise, turn off Notify Back Door 2 [input_boolean.notify_back_door_2].", "natural_language": { "trigger": "Whenever the state of the Notify Front Door 2 [input_boolean.notify_front_door_2] input boolean changes.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] input boolean is currently off.", "action": "The automation copies the state of the Notify Front Door 2 [input_boolean.notify_front_door_2] input boolean to the Notify Back Door 2 [input_boolean.notify_back_door_2] input boolean. If the front door notification is on, the back door notification is turned on; if it is off, the back door notification is turned off." }, "human_like": "This automation synchronizes the notification state for the back door with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_reset_back_door_2", "result": { "structured": "TRIGGER: When Reset Codeslot Front Door 2 [input_boolean.reset_codeslot_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Reset Codeslot Front Door 2 [input_boolean.reset_codeslot_front_door_2] is on, turn it on (no effect); otherwise, turn it off (no effect).", "natural_language": { "trigger": "Whenever the state of Reset Codeslot Front Door 2 [input_boolean.reset_codeslot_front_door_2] changes.", "conditions": "The automation only runs if Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "The automation sets Reset Codeslot Front Door 2 [input_boolean.reset_codeslot_front_door_2] to its current state, effectively resetting it to the same value it already has." }, "human_like": "This automation resets the front door code slot 2 to its current state when the back door override is not active, likely as part of a synchronization or reset mechanism.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_accesslimit_back_door_2", "result": { "structured": "TRIGGER: When Access Limit Front Door 2 [input_boolean.accesslimit_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Access Limit Front Door 2 [input_boolean.accesslimit_front_door_2] is on, then turn on Access Limit Back Door 2 [input_boolean.accesslimit_back_door_2]; otherwise, turn off Access Limit Back Door 2 [input_boolean.accesslimit_back_door_2].", "natural_language": { "trigger": "Whenever the state of Access Limit Front Door 2 [input_boolean.accesslimit_front_door_2] changes.", "conditions": "The automation only proceeds if Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is currently off.", "action": "The automation copies the state of Access Limit Front Door 2 [input_boolean.accesslimit_front_door_2] to Access Limit Back Door 2 [input_boolean.accesslimit_back_door_2]. If the front door's access limit is on, the back door's access limit is turned on; if it's off, the back door's access limit is turned off." }, "human_like": "This automation synchronizes the access limit setting for the second back door with the setting for the second front door, unless a specific override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_accesscount_back_door_2", "result": { "structured": "TRIGGER: When Access Count Front Door 2 [input_number.accesscount_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set the value of Access Count Back Door 2 [input_number.accesscount_back_door_2] to the integer value of Access Count Front Door 2 [input_number.accesscount_front_door_2].", "natural_language": { "trigger": "Whenever the value of Access Count Front Door 2 [input_number.accesscount_front_door_2] changes.", "conditions": "Only if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the integer value from Access Count Front Door 2 [input_number.accesscount_front_door_2] and sets Access Count Back Door 2 [input_number.accesscount_back_door_2] to that same value." }, "human_like": "Synchronizes the access count for the back door with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_daterange_back_door_2", "result": { "structured": "TRIGGER: When Date Range Front Door 2 [input_boolean.daterange_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Date Range Front Door 2 [input_boolean.daterange_front_door_2] is on, then turn on Date Range Back Door 2 [input_boolean.daterange_back_door_2]; otherwise, turn off Date Range Back Door 2 [input_boolean.daterange_back_door_2].", "natural_language": { "trigger": "Whenever the state of the Date Range Front Door 2 [input_boolean.daterange_front_door_2] changes.", "conditions": "The Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] must be off.", "action": "Copies the state from the front door to the back door. If the Date Range Front Door 2 [input_boolean.daterange_front_door_2] is on, the Date Range Back Door 2 [input_boolean.daterange_back_door_2] is turned on. If it is off, the Date Range Back Door 2 [input_boolean.daterange_back_door_2] is turned off." }, "human_like": "Copies the date range status from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_start_date_back_door_2", "result": { "structured": "TRIGGER: When Start Date Front Door 2 [input_datetime.start_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set the datetime of Start Date Back Door 2 [input_datetime.start_date_back_door_2] to the current state value of Start Date Front Door 2 [input_datetime.start_date_front_door_2].", "natural_language": { "trigger": "Whenever the Start Date Front Door 2 [input_datetime.start_date_front_door_2] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the date and time value from Start Date Front Door 2 [input_datetime.start_date_front_door_2] to Start Date Back Door 2 [input_datetime.start_date_back_door_2]." }, "human_like": "Synchronizes the start date for the back door lock with the front door lock, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_end_date_back_door_2", "result": { "structured": "TRIGGER: When End Date Front Door 2 [input_datetime.end_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set End Date Back Door 2 [input_datetime.end_date_back_door_2] to the current date-time value of End Date Front Door 2 [input_datetime.end_date_front_door_2].", "natural_language": { "trigger": "Whenever the date and time value for End Date Front Door 2 [input_datetime.end_date_front_door_2] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the date and time from End Date Front Door 2 [input_datetime.end_date_front_door_2] and applies it to End Date Back Door 2 [input_datetime.end_date_back_door_2]." }, "human_like": "Synchronizes the end date for Back Door 2 with the one set for Front Door 2, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_back_door_2", "result": { "structured": "TRIGGER: When Sunday Front Door 2 [input_boolean.sun_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Sunday Front Door 2 [input_boolean.sun_front_door_2] is on, then turn on Sunday Back Door 2 [input_boolean.sun_back_door_2]; otherwise, turn off Sunday Back Door 2 [input_boolean.sun_back_door_2].", "natural_language": { "trigger": "Whenever the state of the Sunday Front Door 2 [input_boolean.sun_front_door_2] changes.", "conditions": "The automation only proceeds if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is currently turned off.", "action": "The automation copies the state from the front door to the back door. If the Sunday Front Door 2 [input_boolean.sun_front_door_2] is on, it turns on the Sunday Back Door 2 [input_boolean.sun_back_door_2]. If the front door state is off, it turns off the back door state." }, "human_like": "This automation synchronizes the back door's 'Sunday' state with the front door's, but only when a specific override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_inc_back_door_2", "result": { "structured": "TRIGGER: When Sunday Include Front Door 2 [input_boolean.sun_inc_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Sunday Include Front Door 2 [input_boolean.sun_inc_front_door_2] is on, turn on Sunday Include Back Door 2 [input_boolean.sun_inc_back_door_2]; otherwise, turn off Sunday Include Back Door 2 [input_boolean.sun_inc_back_door_2].", "natural_language": { "trigger": "Whenever the state of Sunday Include Front Door 2 [input_boolean.sun_inc_front_door_2] changes.", "conditions": "The Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] must be off.", "action": "Copies the state from Sunday Include Front Door 2 [input_boolean.sun_inc_front_door_2] to Sunday Include Back Door 2 [input_boolean.sun_inc_back_door_2]. If the front door switch is on, the back door switch is turned on; if it's off, the back door switch is turned off." }, "human_like": "This automation synchronizes the 'Sunday Include' setting for the back door with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_start_date_back_door_2", "result": { "structured": "TRIGGER: When Sunday Start Date Front Door 2 [input_datetime.sun_start_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set the date and time of Sunday Start Date Back Door 2 [input_datetime.sun_start_date_back_door_2] to the current state value of Sunday Start Date Front Door 2 [input_datetime.sun_start_date_front_door_2].", "natural_language": { "trigger": "Whenever the date or time value for Sunday Start Date Front Door 2 [input_datetime.sun_start_date_front_door_2] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the date and time value from Sunday Start Date Front Door 2 [input_datetime.sun_start_date_front_door_2] and applies it to Sunday Start Date Back Door 2 [input_datetime.sun_start_date_back_door_2]." }, "human_like": "Copies the scheduled start date from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_end_date_back_door_2", "result": { "structured": "TRIGGER: When Sunday End Date Front Door 2 [input_datetime.sun_end_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set Sunday End Date Back Door 2 [input_datetime.sun_end_date_back_door_2] to the current time value of Sunday End Date Front Door 2 [input_datetime.sun_end_date_front_door_2].", "natural_language": { "trigger": "Whenever the Sunday End Date Front Door 2 [input_datetime.sun_end_date_front_door_2] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the time value from Sunday End Date Front Door 2 [input_datetime.sun_end_date_front_door_2] and sets it as the new time for Sunday End Date Back Door 2 [input_datetime.sun_end_date_back_door_2]." }, "human_like": "Copies the 'Sunday End Date' setting from the front door to the back door, but only when the back door's override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_back_door_2", "result": { "structured": "TRIGGER: When Monday Front Door 2 [input_boolean.mon_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Monday Front Door 2 [input_boolean.mon_front_door_2] is on, turn on Monday Back Door 2 [input_boolean.mon_back_door_2]; otherwise, turn off Monday Back Door 2 [input_boolean.mon_back_door_2].", "natural_language": { "trigger": "Whenever the state of Monday Front Door 2 [input_boolean.mon_front_door_2] changes.", "conditions": "The Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] must be off.", "action": "Copy the state of Monday Front Door 2 [input_boolean.mon_front_door_2] to Monday Back Door 2 [input_boolean.mon_back_door_2], turning it on if the front door boolean is on, or off if it is off." }, "human_like": "Synchronizes the back door monitoring state to match the front door monitoring state, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_inc_back_door_2", "result": { "structured": "TRIGGER: When Monday Include Front Door 2 [input_boolean.mon_inc_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Monday Include Front Door 2 [input_boolean.mon_inc_front_door_2] is on, then turn on Monday Include Back Door 2 [input_boolean.mon_inc_back_door_2]; otherwise, turn off Monday Include Back Door 2 [input_boolean.mon_inc_back_door_2].", "natural_language": { "trigger": "Whenever the state of Monday Include Front Door 2 [input_boolean.mon_inc_front_door_2] changes.", "conditions": "The Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] must be off.", "action": "If Monday Include Front Door 2 [input_boolean.mon_inc_front_door_2] is on, turn on Monday Include Back Door 2 [input_boolean.mon_inc_back_door_2]; if it is off, turn off Monday Include Back Door 2 [input_boolean.mon_inc_back_door_2]." }, "human_like": "This automation synchronizes the back door's Monday inclusion setting with the front door's, unless an override is active.", "complexity": "medium" } }, { "id": "keymaster_copy_front_door_mon_start_date_back_door_2", "result": { "structured": "TRIGGER: When Monday Start Date Front Door 2 [input_datetime.mon_start_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set Monday Start Date Back Door 2 [input_datetime.mon_start_date_back_door_2] to the time value of Monday Start Date Front Door 2 [input_datetime.mon_start_date_front_door_2].", "natural_language": { "trigger": "Whenever the Monday Start Date Front Door 2 [input_datetime.mon_start_date_front_door_2] is updated.", "conditions": "The Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] must be turned off.", "action": "Copy the time value from Monday Start Date Front Door 2 [input_datetime.mon_start_date_front_door_2] and apply it to Monday Start Date Back Door 2 [input_datetime.mon_start_date_back_door_2]." }, "human_like": "Synchronizes the Monday start time for Back Door 2 with the one set for Front Door 2, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_end_date_back_door_2", "result": { "structured": "TRIGGER: When Monday End Date Front Door 2 [input_datetime.mon_end_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set Monday End Date Back Door 2 [input_datetime.mon_end_date_back_door_2] to the current time value of Monday End Date Front Door 2 [input_datetime.mon_end_date_front_door_2].", "natural_language": { "trigger": "Whenever the value of Monday End Date Front Door 2 [input_datetime.mon_end_date_front_door_2] changes.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the time value from Monday End Date Front Door 2 [input_datetime.mon_end_date_front_door_2] to Monday End Date Back Door 2 [input_datetime.mon_end_date_back_door_2]." }, "human_like": "Synchronizes the Monday end date for the back door with the front door's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_back_door_2", "result": { "structured": "TRIGGER: When Tuesday Front Door 2 [input_boolean.tue_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Tuesday Front Door 2 [input_boolean.tue_front_door_2] is on, turn on Tuesday Back Door 2 [input_boolean.tue_back_door_2]; otherwise, turn off Tuesday Back Door 2 [input_boolean.tue_back_door_2].", "natural_language": { "trigger": "Whenever the state of Tuesday Front Door 2 [input_boolean.tue_front_door_2] changes.", "conditions": "The automation only runs if Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "It copies the state of Tuesday Front Door 2 [input_boolean.tue_front_door_2] to Tuesday Back Door 2 [input_boolean.tue_back_door_2]. If the front door boolean is on, the back door boolean is turned on. If the front door boolean is off, the back door boolean is turned off." }, "human_like": "Copies the state of the Tuesday Front Door 2 switch to the Tuesday Back Door 2 switch, but only when the override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_inc_back_door_2", "result": { "structured": "TRIGGER: When Tuesday Include Front Door 2 [input_boolean.tue_inc_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Tuesday Include Front Door 2 [input_boolean.tue_inc_front_door_2] is on, then turn on Tuesday Include Back Door 2 [input_boolean.tue_inc_back_door_2]; otherwise, turn off Tuesday Include Back Door 2 [input_boolean.tue_inc_back_door_2].", "natural_language": { "trigger": "Whenever the state of Tuesday Include Front Door 2 [input_boolean.tue_inc_front_door_2] changes.", "conditions": "The Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] must be off.", "action": "Copies the state from Tuesday Include Front Door 2 [input_boolean.tue_inc_front_door_2] to Tuesday Include Back Door 2 [input_boolean.tue_inc_back_door_2]. If the front door boolean is on, the back door boolean is turned on; if it's off, the back door boolean is turned off." }, "human_like": "Synchronizes the Tuesday schedule for the back door with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_start_date_back_door_2", "result": { "structured": "TRIGGER: When Tuesday Start Date Front Door 2 [input_datetime.tue_start_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set Tuesday Start Date Back Door 2 [input_datetime.tue_start_date_back_door_2] to the time value of Tuesday Start Date Front Door 2 [input_datetime.tue_start_date_front_door_2].", "natural_language": { "trigger": "Whenever the Tuesday Start Date Front Door 2 [input_datetime.tue_start_date_front_door_2] changes its value.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the time value from Tuesday Start Date Front Door 2 [input_datetime.tue_start_date_front_door_2] and sets Tuesday Start Date Back Door 2 [input_datetime.tue_start_date_back_door_2] to that same time." }, "human_like": "Copies the Tuesday start time from the front door to the back door, but only when the back door's override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_end_date_back_door_2", "result": { "structured": "TRIGGER: When Tuesday End Date Front Door 2 [input_datetime.tue_end_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set Tuesday End Date Back Door 2 [input_datetime.tue_end_date_back_door_2] to the current time value of Tuesday End Date Front Door 2 [input_datetime.tue_end_date_front_door_2].", "natural_language": { "trigger": "Whenever the Tuesday End Date Front Door 2 [input_datetime.tue_end_date_front_door_2] is updated.", "conditions": "The Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] must be turned off.", "action": "Copy the time value from Tuesday End Date Front Door 2 [input_datetime.tue_end_date_front_door_2] and set Tuesday End Date Back Door 2 [input_datetime.tue_end_date_back_door_2] to that same time." }, "human_like": "Copies the Tuesday end date from the front door to the back door, but only when the back door's override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_back_door_2", "result": { "structured": "TRIGGER: When Wednesday Front Door 2 [input_boolean.wed_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Wednesday Front Door 2 [input_boolean.wed_front_door_2] is on, turn on Wednesday Back Door 2 [input_boolean.wed_back_door_2]; otherwise, turn off Wednesday Back Door 2 [input_boolean.wed_back_door_2].", "natural_language": { "trigger": "Whenever the state of Wednesday Front Door 2 [input_boolean.wed_front_door_2] changes.", "conditions": "The Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] must be off.", "action": "If Wednesday Front Door 2 [input_boolean.wed_front_door_2] is turned on, then turn on Wednesday Back Door 2 [input_boolean.wed_back_door_2]. If Wednesday Front Door 2 [input_boolean.wed_front_door_2] is turned off, then turn off Wednesday Back Door 2 [input_boolean.wed_back_door_2]." }, "human_like": "Copies the state of the Wednesday Front Door 2 switch to the Wednesday Back Door 2 switch, but only when an override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_inc_back_door_2", "result": { "structured": "TRIGGER: When Wednesday Include Front Door 2 [input_boolean.wed_inc_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Wednesday Include Front Door 2 [input_boolean.wed_inc_front_door_2] is on, turn on Wednesday Include Back Door 2 [input_boolean.wed_inc_back_door_2]; otherwise, turn it off.", "natural_language": { "trigger": "Whenever the state of Wednesday Include Front Door 2 [input_boolean.wed_inc_front_door_2] changes.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is currently off.", "action": "It copies the state from Wednesday Include Front Door 2 [input_boolean.wed_inc_front_door_2] to Wednesday Include Back Door 2 [input_boolean.wed_inc_back_door_2]. If the front door switch is on, the back door switch is turned on; if it's off, the back door switch is turned off." }, "human_like": "This automation synchronizes the 'Wednesday Include' setting for the back door with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_start_date_back_door_2", "result": { "structured": "TRIGGER: When Wednesday Start Date Front Door 2 [input_datetime.wed_start_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set the time of Wednesday Start Date Back Door 2 [input_datetime.wed_start_date_back_door_2] to match the current state of Wednesday Start Date Front Door 2 [input_datetime.wed_start_date_front_door_2].", "natural_language": { "trigger": "Whenever the value of Wednesday Start Date Front Door 2 [input_datetime.wed_start_date_front_door_2] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the time value from Wednesday Start Date Front Door 2 [input_datetime.wed_start_date_front_door_2] to Wednesday Start Date Back Door 2 [input_datetime.wed_start_date_back_door_2]." }, "human_like": "Synchronizes the Wednesday start time for the back door lock with the front door, unless a manual override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_end_date_back_door_2", "result": { "structured": "TRIGGER: When Wednesday End Date Front Door 2 [input_datetime.wed_end_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set Wednesday End Date Back Door 2 [input_datetime.wed_end_date_back_door_2] to the current time value of Wednesday End Date Front Door 2 [input_datetime.wed_end_date_front_door_2].", "natural_language": { "trigger": "Whenever the value of Wednesday End Date Front Door 2 [input_datetime.wed_end_date_front_door_2] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the time value from Wednesday End Date Front Door 2 [input_datetime.wed_end_date_front_door_2] and sets Wednesday End Date Back Door 2 [input_datetime.wed_end_date_back_door_2] to that same value." }, "human_like": "Synchronizes the Wednesday end date for Back Door 2 with the value set for Front Door 2, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_back_door_2", "result": { "structured": "TRIGGER: When Thursday Front Door 2 [input_boolean.thu_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Thursday Front Door 2 [input_boolean.thu_front_door_2] is on, turn on Thursday Back Door 2 [input_boolean.thu_back_door_2]; otherwise, turn off Thursday Back Door 2 [input_boolean.thu_back_door_2].", "natural_language": { "trigger": "Whenever the state of the Thursday Front Door 2 [input_boolean.thu_front_door_2] changes.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "If the Thursday Front Door 2 [input_boolean.thu_front_door_2] is on, it turns on the Thursday Back Door 2 [input_boolean.thu_back_door_2]. If the Thursday Front Door 2 [input_boolean.thu_front_door_2] is off, it turns off the Thursday Back Door 2 [input_boolean.thu_back_door_2]." }, "human_like": "This automation synchronizes the state of the Thursday Back Door 2 with the Thursday Front Door 2, but only when a specific override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_inc_back_door_2", "result": { "structured": "TRIGGER: When Thursday Include Front Door 2 [input_boolean.thu_inc_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Thursday Include Front Door 2 [input_boolean.thu_inc_front_door_2] is on, turn on Thursday Include Back Door 2 [input_boolean.thu_inc_back_door_2]; otherwise, turn it off.", "natural_language": { "trigger": "Whenever the state of Thursday Include Front Door 2 [input_boolean.thu_inc_front_door_2] changes.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "It copies the state of Thursday Include Front Door 2 [input_boolean.thu_inc_front_door_2] to Thursday Include Back Door 2 [input_boolean.thu_inc_back_door_2]. If the front door switch is on, the back door switch is turned on; if it's off, the back door switch is turned off." }, "human_like": "This automation synchronizes the back door's Thursday inclusion setting with the front door's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_start_date_back_door_2", "result": { "structured": "TRIGGER: When Thursday Start Date Front Door 2 [input_datetime.thu_start_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set the time of Thursday Start Date Back Door 2 [input_datetime.thu_start_date_back_door_2] to the current state value of Thursday Start Date Front Door 2 [input_datetime.thu_start_date_front_door_2].", "natural_language": { "trigger": "Whenever the value of the Thursday Start Date Front Door 2 [input_datetime.thu_start_date_front_door_2] is changed.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the time value from Thursday Start Date Front Door 2 [input_datetime.thu_start_date_front_door_2] and sets it as the time for Thursday Start Date Back Door 2 [input_datetime.thu_start_date_back_door_2]." }, "human_like": "Synchronizes the Thursday start time for the back door with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_end_date_back_door_2", "result": { "structured": "TRIGGER: When Thursday End Date Front Door 2 [input_datetime.thu_end_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set the time of Thursday End Date Back Door 2 [input_datetime.thu_end_date_back_door_2] to the current state value of Thursday End Date Front Door 2 [input_datetime.thu_end_date_front_door_2].", "natural_language": { "trigger": "Whenever the value of the Thursday End Date Front Door 2 [input_datetime.thu_end_date_front_door_2] changes.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "It copies the current time value from Thursday End Date Front Door 2 [input_datetime.thu_end_date_front_door_2] and sets it on Thursday End Date Back Door 2 [input_datetime.thu_end_date_back_door_2]." }, "human_like": "This automation copies the Thursday end time from the front door to the back door, but only when the override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_back_door_2", "result": { "structured": "TRIGGER: When Friday Front Door 2 [input_boolean.fri_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Friday Front Door 2 [input_boolean.fri_front_door_2] is on, turn on Friday Back Door 2 [input_boolean.fri_back_door_2]; otherwise, turn off Friday Back Door 2 [input_boolean.fri_back_door_2].", "natural_language": { "trigger": "Whenever the state of Friday Front Door 2 [input_boolean.fri_front_door_2] changes.", "conditions": "The automation only runs if Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is currently off.", "action": "It copies the state from Friday Front Door 2 [input_boolean.fri_front_door_2] to Friday Back Door 2 [input_boolean.fri_back_door_2]. If the front door input is on, the back door input is turned on; if it's off, the back door input is turned off." }, "human_like": "Copies the state of the Friday Front Door 2 switch to the Friday Back Door 2 switch, but only when the override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_inc_back_door_2", "result": { "structured": "TRIGGER: When Friday Include Front Door 2 [input_boolean.fri_inc_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Friday Include Front Door 2 [input_boolean.fri_inc_front_door_2] is on, then turn on Friday Include Back Door 2 [input_boolean.fri_inc_back_door_2]; otherwise, turn off Friday Include Back Door 2 [input_boolean.fri_inc_back_door_2].", "natural_language": { "trigger": "Whenever the state of the Friday Include Front Door 2 [input_boolean.fri_inc_front_door_2] changes.", "conditions": "The Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] must be off.", "action": "If Friday Include Front Door 2 [input_boolean.fri_inc_front_door_2] is turned on, then turn on Friday Include Back Door 2 [input_boolean.fri_inc_back_door_2]. If it is turned off, then turn off Friday Include Back Door 2 [input_boolean.fri_inc_back_door_2]." }, "human_like": "This automation synchronizes the 'Include Back Door' setting with the 'Include Front Door' setting for Friday, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_start_date_back_door_2", "result": { "structured": "TRIGGER: When Friday Start Date Front Door 2 [input_datetime.fri_start_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set Friday Start Date Back Door 2 [input_datetime.fri_start_date_back_door_2] to the time value of Friday Start Date Front Door 2 [input_datetime.fri_start_date_front_door_2].", "natural_language": { "trigger": "Whenever the Friday Start Date Front Door 2 [input_datetime.fri_start_date_front_door_2] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the time value from Friday Start Date Front Door 2 [input_datetime.fri_start_date_front_door_2] and sets the Friday Start Date Back Door 2 [input_datetime.fri_start_date_back_door_2] to that same time." }, "human_like": "Synchronizes the Friday start time for the back door with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_end_date_back_door_2", "result": { "structured": "TRIGGER: When Friday End Date Front Door 2 [input_datetime.fri_end_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set Friday End Date Back Door 2 [input_datetime.fri_end_date_back_door_2] to the current time value of Friday End Date Front Door 2 [input_datetime.fri_end_date_front_door_2].", "natural_language": { "trigger": "Whenever the value of Friday End Date Front Door 2 [input_datetime.fri_end_date_front_door_2] changes.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the current time value from Friday End Date Front Door 2 [input_datetime.fri_end_date_front_door_2] and sets it as the new value for Friday End Date Back Door 2 [input_datetime.fri_end_date_back_door_2]." }, "human_like": "Copies the Friday end time from the front door to the back door, but only when the back door's override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_back_door_2", "result": { "structured": "TRIGGER: When Saturday Front Door 2 [input_boolean.sat_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: If Saturday Front Door 2 [input_boolean.sat_front_door_2] is on, turn on Saturday Back Door 2 [input_boolean.sat_back_door_2]; otherwise, turn off Saturday Back Door 2 [input_boolean.sat_back_door_2].", "natural_language": { "trigger": "Whenever the state of Saturday Front Door 2 [input_boolean.sat_front_door_2] changes.", "conditions": "The Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] must be off.", "action": "If Saturday Front Door 2 [input_boolean.sat_front_door_2] is on, turn on Saturday Back Door 2 [input_boolean.sat_back_door_2]; otherwise, turn it off." }, "human_like": "Copies the state of the Saturday Front Door 2 switch to the Saturday Back Door 2 switch, but only when the override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_inc_back_door_2", "result": { "structured": "TRIGGER: When Saturday Include Front Door 2 [input_boolean.sat_inc_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set Saturday Include Back Door 2 [input_boolean.sat_inc_back_door_2] to the same state (on or off) as Saturday Include Front Door 2 [input_boolean.sat_inc_front_door_2].", "natural_language": { "trigger": "Whenever the state of Saturday Include Front Door 2 [input_boolean.sat_inc_front_door_2] changes.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "It copies the state from Saturday Include Front Door 2 [input_boolean.sat_inc_front_door_2] to Saturday Include Back Door 2 [input_boolean.sat_inc_back_door_2]. If the front door switch is on, the back door switch is turned on; if it's off, the back door switch is turned off." }, "human_like": "This automation synchronizes the back door's 'Saturday Include' setting with the front door's setting, but only when the override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_start_date_back_door_2", "result": { "structured": "TRIGGER: When Saturday Start Date Front Door 2 [input_datetime.sat_start_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set Saturday Start Date Back Door 2 [input_datetime.sat_start_date_back_door_2] to the current time value of Saturday Start Date Front Door 2 [input_datetime.sat_start_date_front_door_2].", "natural_language": { "trigger": "Whenever the date or time value for Saturday Start Date Front Door 2 [input_datetime.sat_start_date_front_door_2] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the current time value from Saturday Start Date Front Door 2 [input_datetime.sat_start_date_front_door_2] and sets it as the new value for Saturday Start Date Back Door 2 [input_datetime.sat_start_date_back_door_2]." }, "human_like": "Synchronizes the Saturday start date for the back door lock to match the front door's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_end_date_back_door_2", "result": { "structured": "TRIGGER: When Saturday End Date Front Door 2 [input_datetime.sat_end_date_front_door_2] changes state. CONDITIONS: Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is off. ACTIONS: Set Saturday End Date Back Door 2 [input_datetime.sat_end_date_back_door_2] to the current time value of Saturday End Date Front Door 2 [input_datetime.sat_end_date_front_door_2].", "natural_language": { "trigger": "Whenever the Saturday End Date Front Door 2 [input_datetime.sat_end_date_front_door_2] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 2 [input_boolean.override_parent_back_door_2] is turned off.", "action": "Copies the time value from Saturday End Date Front Door 2 [input_datetime.sat_end_date_front_door_2] and sets it on Saturday End Date Back Door 2 [input_datetime.sat_end_date_back_door_2]." }, "human_like": "Copies the Saturday end date from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_turn_on_access_limit_back_door_3", "result": { "structured": "TRIGGER: When Access Count Back Door 3 [input_number.accesscount_back_door_3] changes state. CONDITIONS: The numeric value of Access Count Back Door 3 [input_number.accesscount_back_door_3] is greater than 0. ACTIONS: Turn on Access Limit Back Door 3 [input_boolean.accesslimit_back_door_3].", "natural_language": { "trigger": "Whenever the value of the Access Count Back Door 3 [input_number.accesscount_back_door_3] changes.", "conditions": "The current numeric value of the Access Count Back Door 3 [input_number.accesscount_back_door_3] must be greater than zero.", "action": "Turns on the Access Limit Back Door 3 [input_boolean.accesslimit_back_door_3]." }, "human_like": "Enables the access limit for the back door when the access count is positive.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_back_door_3", "result": { "structured": "TRIGGER: When Pin Synched Back Door 3 [binary_sensor.pin_synched_back_door_3] changes from on to off. CONDITIONS: Back Door Code Slot 3 [sensor.back_door_code_slot_3] is not unavailable. ACTIONS: Choose based on condition: IF Active Back Door 3 [binary_sensor.active_back_door_3] is on, THEN add a code to back door lock [lock.back_door_lock] in slot 3 using the value from Back Door PIN 3 [input_text.back_door_pin_3]. IF Active Back Door 3 [binary_sensor.active_back_door_3] is off, THEN clear the code from back door lock [lock.back_door_lock] in slot 3.", "natural_language": { "trigger": "When the Pin Synched Back Door 3 [binary_sensor.pin_synched_back_door_3] changes from a synced (on) to an unsynced (off) state.", "conditions": "The automation only runs if the Back Door Code Slot 3 [sensor.back_door_code_slot_3] is available and not in an 'unavailable' state.", "action": "Depending on the status of the Active Back Door 3 [binary_sensor.active_back_door_3], the automation will either add or clear a PIN code on the back door lock. If the slot is active, it adds the PIN stored in Back Door PIN 3 [input_text.back_door_pin_3] to code slot 3 of the lock. If the slot is inactive, it clears the code from slot 3." }, "human_like": "Synchronizes the PIN code for slot 3 on the back door lock whenever the sync status changes, ensuring the lock's code matches the intended active state.", "complexity": "medium" } }, { "id": "keymaster_override_parent_back_door_3_state_change", "result": { "structured": "TRIGGER: When Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] changes to off. CONDITIONS: None. ACTIONS: Execute the script Keymaster Back Door Copy From Parent 3 [script.keymaster_back_door_copy_from_parent_3].", "natural_language": { "trigger": "When the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "conditions": "There are no additional conditions that must be met.", "action": "Runs the script named Keymaster Back Door Copy From Parent 3 [script.keymaster_back_door_copy_from_parent_3]." }, "human_like": "When the override for the back door is disabled, it runs a script to synchronize the lock's state.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_name_back_door_3", "result": { "structured": "TRIGGER: When Front Door Name 3 [input_text.front_door_name_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set the value of Back Door Name 3 [input_text.back_door_name_3] to the current state value of Front Door Name 3 [input_text.front_door_name_3].", "natural_language": { "trigger": "Whenever the text value of Front Door Name 3 [input_text.front_door_name_3] changes.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the current text from Front Door Name 3 [input_text.front_door_name_3] and sets it as the new value for Back Door Name 3 [input_text.back_door_name_3]." }, "human_like": "Automatically copies the name from the front door slot to the corresponding back door slot, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_pin_back_door_3", "result": { "structured": "TRIGGER: When Front Door PIN 3 [input_text.front_door_pin_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set the value of Back Door PIN 3 [input_text.back_door_pin_3] to the current value of Front Door PIN 3 [input_text.front_door_pin_3].", "natural_language": { "trigger": "Whenever the value of Front Door PIN 3 [input_text.front_door_pin_3] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the current PIN code from Front Door PIN 3 [input_text.front_door_pin_3] to Back Door PIN 3 [input_text.back_door_pin_3]." }, "human_like": "Automatically synchronizes PIN code 3 from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_enabled_back_door_3", "result": { "structured": "TRIGGER: When Enabled Front Door 3 [input_boolean.enabled_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Enabled Front Door 3 [input_boolean.enabled_front_door_3] is on, then turn on Enabled Back Door 3 [input_boolean.enabled_back_door_3]; otherwise turn off Enabled Back Door 3 [input_boolean.enabled_back_door_3].", "natural_language": { "trigger": "Whenever the state of the Enabled Front Door 3 [input_boolean.enabled_front_door_3] changes.", "conditions": "The Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] must be off.", "action": "If Enabled Front Door 3 [input_boolean.enabled_front_door_3] is turned on, then turn on Enabled Back Door 3 [input_boolean.enabled_back_door_3]. If it is turned off, then turn off Enabled Back Door 3 [input_boolean.enabled_back_door_3]." }, "human_like": "This automation synchronizes the 'Enabled Back Door 3' switch to match the state of the 'Enabled Front Door 3' switch, but only when the override for the back door is not active.", "complexity": "medium" } }, { "id": "keymaster_copy_front_door_notify_back_door_3", "result": { "structured": "TRIGGER: When Notify Front Door 3 [input_boolean.notify_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Notify Front Door 3 [input_boolean.notify_front_door_3] is on, then turn on Notify Back Door 3 [input_boolean.notify_back_door_3]; otherwise turn off Notify Back Door 3 [input_boolean.notify_back_door_3].", "natural_language": { "trigger": "Whenever the Notify Front Door 3 [input_boolean.notify_front_door_3] input boolean changes its state.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "The automation copies the state of Notify Front Door 3 [input_boolean.notify_front_door_3] to Notify Back Door 3 [input_boolean.notify_back_door_3]. If the front door notification is on, it turns on the back door notification; if it's off, it turns the back door notification off." }, "human_like": "This automation synchronizes the notification setting for the back door with the setting for the front door, but only when a specific override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_reset_back_door_3", "result": { "structured": "TRIGGER: When Reset Codeslot Front Door 3 [input_boolean.reset_codeslot_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Reset Codeslot Front Door 3 [input_boolean.reset_codeslot_front_door_3] is on, turn it on; otherwise, turn it off.", "natural_language": { "trigger": "Whenever the state of Reset Codeslot Front Door 3 [input_boolean.reset_codeslot_front_door_3] changes.", "conditions": "The automation only runs if Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is currently off.", "action": "The automation will set the state of Reset Codeslot Front Door 3 [input_boolean.reset_codeslot_front_door_3] to match its current state. If it is on, it will be turned on; if it is off, it will be turned off. This effectively resets or syncs the entity's state." }, "human_like": "This automation ensures the 'Reset Codeslot Front Door 3' control is properly synced, but only when the 'Override Parent Back Door 3' is not active.", "complexity": "medium" } }, { "id": "keymaster_copy_front_door_accesslimit_back_door_3", "result": { "structured": "TRIGGER: When Access Limit Front Door 3 [input_boolean.accesslimit_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Access Limit Front Door 3 [input_boolean.accesslimit_front_door_3] is on, then turn on Access Limit Back Door 3 [input_boolean.accesslimit_back_door_3]; otherwise, turn off Access Limit Back Door 3 [input_boolean.accesslimit_back_door_3].", "natural_language": { "trigger": "Whenever the state of Access Limit Front Door 3 [input_boolean.accesslimit_front_door_3] changes.", "conditions": "The automation only runs if Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is currently turned off.", "action": "The automation copies the state of Access Limit Front Door 3 [input_boolean.accesslimit_front_door_3] to Access Limit Back Door 3 [input_boolean.accesslimit_back_door_3]. If the front door limit is on, the back door limit is turned on. If the front door limit is off, the back door limit is turned off." }, "human_like": "This automation synchronizes the access limit setting for door 3 from the front door to the back door, unless a specific override is active.", "complexity": "medium" } }, { "id": "keymaster_copy_front_door_accesscount_back_door_3", "result": { "structured": "TRIGGER: When Access Count Front Door 3 [input_number.accesscount_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set the value of Access Count Back Door 3 [input_number.accesscount_back_door_3] to the integer value of Access Count Front Door 3 [input_number.accesscount_front_door_3].", "natural_language": { "trigger": "Whenever the Access Count Front Door 3 [input_number.accesscount_front_door_3] changes.", "conditions": "The Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] must be turned off.", "action": "Copies the current integer value from Access Count Front Door 3 [input_number.accesscount_front_door_3] to Access Count Back Door 3 [input_number.accesscount_back_door_3]." }, "human_like": "Keeps the access count for the back door in sync with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_daterange_back_door_3", "result": { "structured": "TRIGGER: When Date Range Front Door 3 [input_boolean.daterange_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Date Range Front Door 3 [input_boolean.daterange_front_door_3] is on, turn on Date Range Back Door 3 [input_boolean.daterange_back_door_3]; otherwise, turn off Date Range Back Door 3 [input_boolean.daterange_back_door_3].", "natural_language": { "trigger": "Whenever the Date Range Front Door 3 [input_boolean.daterange_front_door_3] changes its state.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is currently off.", "action": "If the Date Range Front Door 3 [input_boolean.daterange_front_door_3] is on, the automation turns on the Date Range Back Door 3 [input_boolean.daterange_back_door_3]. If it is off, the automation turns off the Date Range Back Door 3 [input_boolean.daterange_back_door_3]." }, "human_like": "Copies the date range status from the front door to the back door, but only when the back door's override is not active.", "complexity": "medium" } }, { "id": "keymaster_copy_front_door_start_date_back_door_3", "result": { "structured": "TRIGGER: When Start Date Front Door 3 [input_datetime.start_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set the date and time of Start Date Back Door 3 [input_datetime.start_date_back_door_3] to the current state value of Start Date Front Door 3 [input_datetime.start_date_front_door_3].", "natural_language": { "trigger": "Whenever the date or time value for Start Date Front Door 3 [input_datetime.start_date_front_door_3] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the date and time value from Start Date Front Door 3 [input_datetime.start_date_front_door_3] to Start Date Back Door 3 [input_datetime.start_date_back_door_3]." }, "human_like": "Synchronizes the start date for the back door lock with the front door lock, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_end_date_back_door_3", "result": { "structured": "TRIGGER: When End Date Front Door 3 [input_datetime.end_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set End Date Back Door 3 [input_datetime.end_date_back_door_3] to the current state value of End Date Front Door 3 [input_datetime.end_date_front_door_3].", "natural_language": { "trigger": "Whenever the End Date Front Door 3 [input_datetime.end_date_front_door_3] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the date and time value from End Date Front Door 3 [input_datetime.end_date_front_door_3] and sets the End Date Back Door 3 [input_datetime.end_date_back_door_3] to match it." }, "human_like": "Synchronizes the end date for the back door lock with the front door lock, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_back_door_3", "result": { "structured": "TRIGGER: When Sunday Front Door 3 [input_boolean.sun_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Sunday Front Door 3 [input_boolean.sun_front_door_3] is on, turn on Sunday Back Door 3 [input_boolean.sun_back_door_3]; otherwise, turn off Sunday Back Door 3 [input_boolean.sun_back_door_3].", "natural_language": { "trigger": "Whenever the state of the Sunday Front Door 3 [input_boolean.sun_front_door_3] changes.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is currently turned off.", "action": "It copies the state from the Sunday Front Door 3 [input_boolean.sun_front_door_3] to the Sunday Back Door 3 [input_boolean.sun_back_door_3]. If the front door input is on, the back door input is turned on; if it's off, the back door input is turned off." }, "human_like": "This automation synchronizes the back door schedule with the front door schedule, but only when the override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_inc_back_door_3", "result": { "structured": "TRIGGER: When Sunday Include Front Door 3 [input_boolean.sun_inc_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Sunday Include Front Door 3 [input_boolean.sun_inc_front_door_3] is on, turn on Sunday Include Back Door 3 [input_boolean.sun_inc_back_door_3]; otherwise, turn off Sunday Include Back Door 3 [input_boolean.sun_inc_back_door_3].", "natural_language": { "trigger": "Whenever the state of the Sunday Include Front Door 3 [input_boolean.sun_inc_front_door_3] changes.", "conditions": "The Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] must be off.", "action": "If the Sunday Include Front Door 3 [input_boolean.sun_inc_front_door_3] is on, turn on the Sunday Include Back Door 3 [input_boolean.sun_inc_back_door_3]; if it is off, turn off the Sunday Include Back Door 3 [input_boolean.sun_inc_back_door_3]." }, "human_like": "Copies the Sunday inclusion setting from the front door to the back door, but only when the back door override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_start_date_back_door_3", "result": { "structured": "TRIGGER: When Sunday Start Date Front Door 3 [input_datetime.sun_start_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set the time of Sunday Start Date Back Door 3 [input_datetime.sun_start_date_back_door_3] to the current state value of Sunday Start Date Front Door 3 [input_datetime.sun_start_date_front_door_3].", "natural_language": { "trigger": "Whenever the value of Sunday Start Date Front Door 3 [input_datetime.sun_start_date_front_door_3] changes.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the time value from Sunday Start Date Front Door 3 [input_datetime.sun_start_date_front_door_3] and sets it as the time for Sunday Start Date Back Door 3 [input_datetime.sun_start_date_back_door_3]." }, "human_like": "Copies the start date/time from the front door to the back door schedule, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_end_date_back_door_3", "result": { "structured": "TRIGGER: When Sunday End Date Front Door 3 [input_datetime.sun_end_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set Sunday End Date Back Door 3 [input_datetime.sun_end_date_back_door_3] to the current time value of Sunday End Date Front Door 3 [input_datetime.sun_end_date_front_door_3].", "natural_language": { "trigger": "Whenever the Sunday End Date Front Door 3 [input_datetime.sun_end_date_front_door_3] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the time value from Sunday End Date Front Door 3 [input_datetime.sun_end_date_front_door_3] to Sunday End Date Back Door 3 [input_datetime.sun_end_date_back_door_3]." }, "human_like": "Synchronizes the Sunday end date for the back door lock with the front door lock's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_back_door_3", "result": { "structured": "TRIGGER: When Monday Front Door 3 [input_boolean.mon_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Monday Front Door 3 [input_boolean.mon_front_door_3] is on, turn on Monday Back Door 3 [input_boolean.mon_back_door_3]; otherwise, turn it off.", "natural_language": { "trigger": "Whenever the state of Monday Front Door 3 [input_boolean.mon_front_door_3] changes.", "conditions": "The Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] must be off.", "action": "Copies the state of Monday Front Door 3 [input_boolean.mon_front_door_3] to Monday Back Door 3 [input_boolean.mon_back_door_3], turning the back door switch on if the front door switch is on, and off if it is off." }, "human_like": "Copies the state of the Monday Front Door 3 switch to the Monday Back Door 3 switch, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_inc_back_door_3", "result": { "structured": "TRIGGER: When Monday Include Front Door 3 [input_boolean.mon_inc_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Monday Include Front Door 3 [input_boolean.mon_inc_front_door_3] is on, turn on Monday Include Back Door 3 [input_boolean.mon_inc_back_door_3]; otherwise, turn off Monday Include Back Door 3 [input_boolean.mon_inc_back_door_3].", "natural_language": { "trigger": "Whenever the state of Monday Include Front Door 3 [input_boolean.mon_inc_front_door_3] changes.", "conditions": "The automation only runs if Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is currently off.", "action": "The automation copies the state from Monday Include Front Door 3 [input_boolean.mon_inc_front_door_3] to Monday Include Back Door 3 [input_boolean.mon_inc_back_door_3]. If the front door boolean is on, it turns the back door boolean on. If the front door boolean is off, it turns the back door boolean off." }, "human_like": "Copies the 'include' setting from the front door to the back door for Monday's third slot, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_start_date_back_door_3", "result": { "structured": "TRIGGER: When Monday Start Date Front Door 3 [input_datetime.mon_start_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set Monday Start Date Back Door 3 [input_datetime.mon_start_date_back_door_3] to the time value of Monday Start Date Front Door 3 [input_datetime.mon_start_date_front_door_3].", "natural_language": { "trigger": "Whenever the Monday Start Date Front Door 3 [input_datetime.mon_start_date_front_door_3] is updated.", "conditions": "The Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] must be turned off.", "action": "Copy the time value from Monday Start Date Front Door 3 [input_datetime.mon_start_date_front_door_3] to Monday Start Date Back Door 3 [input_datetime.mon_start_date_back_door_3]." }, "human_like": "Copies the Monday start time from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_end_date_back_door_3", "result": { "structured": "TRIGGER: When Monday End Date Front Door 3 [input_datetime.mon_end_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set Monday End Date Back Door 3 [input_datetime.mon_end_date_back_door_3] to the current time value of Monday End Date Front Door 3 [input_datetime.mon_end_date_front_door_3].", "natural_language": { "trigger": "Whenever the value of Monday End Date Front Door 3 [input_datetime.mon_end_date_front_door_3] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the time value from Monday End Date Front Door 3 [input_datetime.mon_end_date_front_door_3] and sets Monday End Date Back Door 3 [input_datetime.mon_end_date_back_door_3] to that same time." }, "human_like": "Synchronizes the Monday end time for the back door with the front door's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_back_door_3", "result": { "structured": "TRIGGER: When Tuesday Front Door 3 [input_boolean.tue_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Tuesday Front Door 3 [input_boolean.tue_front_door_3] is on, turn on Tuesday Back Door 3 [input_boolean.tue_back_door_3]; otherwise, turn off Tuesday Back Door 3 [input_boolean.tue_back_door_3].", "natural_language": { "trigger": "Whenever the state of Tuesday Front Door 3 [input_boolean.tue_front_door_3] changes.", "conditions": "The automation only runs if Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is currently off.", "action": "Copies the state of Tuesday Front Door 3 [input_boolean.tue_front_door_3] to Tuesday Back Door 3 [input_boolean.tue_back_door_3]. If the front door switch is on, the back door switch is turned on; if it's off, the back door switch is turned off." }, "human_like": "Mirrors the state of the Tuesday Front Door 3 switch to the Tuesday Back Door 3 switch, but only when the override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_inc_back_door_3", "result": { "structured": "TRIGGER: When Tuesday Include Front Door 3 [input_boolean.tue_inc_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Tuesday Include Front Door 3 [input_boolean.tue_inc_front_door_3] is on, turn on Tuesday Include Back Door 3 [input_boolean.tue_inc_back_door_3]; otherwise, turn it off.", "natural_language": { "trigger": "Whenever the state of Tuesday Include Front Door 3 [input_boolean.tue_inc_front_door_3] changes.", "conditions": "The Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] must be off.", "action": "Copies the state of Tuesday Include Front Door 3 [input_boolean.tue_inc_front_door_3] to Tuesday Include Back Door 3 [input_boolean.tue_inc_back_door_3]. If the front door boolean is on, the back door boolean is turned on; if it's off, the back door boolean is turned off." }, "human_like": "Synchronizes the Tuesday inclusion setting for the back door with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_start_date_back_door_3", "result": { "structured": "TRIGGER: When Tuesday Start Date Front Door 3 [input_datetime.tue_start_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set the date and time of Tuesday Start Date Back Door 3 [input_datetime.tue_start_date_back_door_3] to the current state value of Tuesday Start Date Front Door 3 [input_datetime.tue_start_date_front_door_3].", "natural_language": { "trigger": "Whenever the Tuesday Start Date Front Door 3 [input_datetime.tue_start_date_front_door_3] is updated.", "conditions": "The Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] must be turned off.", "action": "Copy the date and time value from Tuesday Start Date Front Door 3 [input_datetime.tue_start_date_front_door_3] to Tuesday Start Date Back Door 3 [input_datetime.tue_start_date_back_door_3]." }, "human_like": "Synchronizes the Tuesday start time for the back door lock with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_end_date_back_door_3", "result": { "structured": "TRIGGER: When Tuesday End Date Front Door 3 [input_datetime.tue_end_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set Tuesday End Date Back Door 3 [input_datetime.tue_end_date_back_door_3] to the current time value of Tuesday End Date Front Door 3 [input_datetime.tue_end_date_front_door_3].", "natural_language": { "trigger": "Whenever the date or time value of Tuesday End Date Front Door 3 [input_datetime.tue_end_date_front_door_3] changes.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the current time value from Tuesday End Date Front Door 3 [input_datetime.tue_end_date_front_door_3] and sets it on Tuesday End Date Back Door 3 [input_datetime.tue_end_date_back_door_3]." }, "human_like": "Copies the Tuesday end date/time from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_back_door_3", "result": { "structured": "TRIGGER: When Wednesday Front Door 3 [input_boolean.wed_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Wednesday Front Door 3 [input_boolean.wed_front_door_3] is on, turn on Wednesday Back Door 3 [input_boolean.wed_back_door_3]; otherwise, turn off Wednesday Back Door 3 [input_boolean.wed_back_door_3].", "natural_language": { "trigger": "Whenever the state of Wednesday Front Door 3 [input_boolean.wed_front_door_3] changes.", "conditions": "The automation only runs if Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is currently off.", "action": "The automation copies the state of Wednesday Front Door 3 [input_boolean.wed_front_door_3] to Wednesday Back Door 3 [input_boolean.wed_back_door_3]. If the front door input is on, it turns on the back door input; if it's off, it turns off the back door input." }, "human_like": "This automation synchronizes the state of the back door input with the front door input for Wednesday, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_inc_back_door_3", "result": { "structured": "TRIGGER: When Wednesday Include Front Door 3 [input_boolean.wed_inc_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Wednesday Include Front Door 3 [input_boolean.wed_inc_front_door_3] is on, then turn on Wednesday Include Back Door 3 [input_boolean.wed_inc_back_door_3]; otherwise, turn off Wednesday Include Back Door 3 [input_boolean.wed_inc_back_door_3].", "natural_language": { "trigger": "Whenever the state of Wednesday Include Front Door 3 [input_boolean.wed_inc_front_door_3] changes.", "conditions": "The Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] must be off.", "action": "If Wednesday Include Front Door 3 [input_boolean.wed_inc_front_door_3] is turned on, then Wednesday Include Back Door 3 [input_boolean.wed_inc_back_door_3] is also turned on. Conversely, if Wednesday Include Front Door 3 [input_boolean.wed_inc_front_door_3] is turned off, then Wednesday Include Back Door 3 [input_boolean.wed_inc_back_door_3] is turned off." }, "human_like": "This automation synchronizes the 'Wednesday Include' setting for the back door with the setting for the front door, but only when the back door override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_start_date_back_door_3", "result": { "structured": "TRIGGER: When Wednesday Start Date Front Door 3 [input_datetime.wed_start_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set Wednesday Start Date Back Door 3 [input_datetime.wed_start_date_back_door_3] to the time value of Wednesday Start Date Front Door 3 [input_datetime.wed_start_date_front_door_3].", "natural_language": { "trigger": "Whenever the Wednesday Start Date Front Door 3 [input_datetime.wed_start_date_front_door_3] changes.", "conditions": "The Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] must be turned off.", "action": "Copy the time value from Wednesday Start Date Front Door 3 [input_datetime.wed_start_date_front_door_3] and set it on Wednesday Start Date Back Door 3 [input_datetime.wed_start_date_back_door_3]." }, "human_like": "Automatically copies the Wednesday start time from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_end_date_back_door_3", "result": { "structured": "TRIGGER: When Wednesday End Date Front Door 3 [input_datetime.wed_end_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set Wednesday End Date Back Door 3 [input_datetime.wed_end_date_back_door_3] to the current time value of Wednesday End Date Front Door 3 [input_datetime.wed_end_date_front_door_3].", "natural_language": { "trigger": "Whenever the Wednesday End Date Front Door 3 [input_datetime.wed_end_date_front_door_3] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the time value from Wednesday End Date Front Door 3 [input_datetime.wed_end_date_front_door_3] and sets Wednesday End Date Back Door 3 [input_datetime.wed_end_date_back_door_3] to that same value." }, "human_like": "Copies the Wednesday end date from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_back_door_3", "result": { "structured": "TRIGGER: When Thursday Front Door 3 [input_boolean.thu_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Thursday Front Door 3 [input_boolean.thu_front_door_3] is on, turn on Thursday Back Door 3 [input_boolean.thu_back_door_3]; otherwise, turn off Thursday Back Door 3 [input_boolean.thu_back_door_3].", "natural_language": { "trigger": "Whenever the state of Thursday Front Door 3 [input_boolean.thu_front_door_3] changes.", "conditions": "The automation only runs if Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is currently off.", "action": "If Thursday Front Door 3 [input_boolean.thu_front_door_3] is on, it turns on Thursday Back Door 3 [input_boolean.thu_back_door_3]. If Thursday Front Door 3 [input_boolean.thu_front_door_3] is off, it turns off Thursday Back Door 3 [input_boolean.thu_back_door_3]." }, "human_like": "Copies the state of the Thursday Front Door 3 switch to the Thursday Back Door 3 switch, but only when the override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_inc_back_door_3", "result": { "structured": "TRIGGER: When Thursday Include Front Door 3 [input_boolean.thu_inc_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Thursday Include Front Door 3 [input_boolean.thu_inc_front_door_3] is on, turn on Thursday Include Back Door 3 [input_boolean.thu_inc_back_door_3]; otherwise, turn off Thursday Include Back Door 3 [input_boolean.thu_inc_back_door_3].", "natural_language": { "trigger": "Whenever the state of Thursday Include Front Door 3 [input_boolean.thu_inc_front_door_3] changes.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is currently turned off.", "action": "It copies the state from Thursday Include Front Door 3 [input_boolean.thu_inc_front_door_3] to Thursday Include Back Door 3 [input_boolean.thu_inc_back_door_3]. If the front door switch is on, the back door switch is turned on; if the front door switch is off, the back door switch is turned off." }, "human_like": "This automation synchronizes the 'Thursday Include' setting for the back door with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_start_date_back_door_3", "result": { "structured": "TRIGGER: When Thursday Start Date Front Door 3 [input_datetime.thu_start_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set the time of Thursday Start Date Back Door 3 [input_datetime.thu_start_date_back_door_3] to the current state value of Thursday Start Date Front Door 3 [input_datetime.thu_start_date_front_door_3].", "natural_language": { "trigger": "Whenever the value of Thursday Start Date Front Door 3 [input_datetime.thu_start_date_front_door_3] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the date/time value from Thursday Start Date Front Door 3 [input_datetime.thu_start_date_front_door_3] to Thursday Start Date Back Door 3 [input_datetime.thu_start_date_back_door_3]." }, "human_like": "Synchronizes the Thursday start date for the back door with the one set for the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_end_date_back_door_3", "result": { "structured": "TRIGGER: When Thursday End Date Front Door 3 [input_datetime.thu_end_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set the time of Thursday End Date Back Door 3 [input_datetime.thu_end_date_back_door_3] to the current state value of Thursday End Date Front Door 3 [input_datetime.thu_end_date_front_door_3].", "natural_language": { "trigger": "Whenever the value of Thursday End Date Front Door 3 [input_datetime.thu_end_date_front_door_3] changes.", "conditions": "The automation only runs if Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the time value from Thursday End Date Front Door 3 [input_datetime.thu_end_date_front_door_3] and sets it on Thursday End Date Back Door 3 [input_datetime.thu_end_date_back_door_3]." }, "human_like": "Copies the Thursday end date from the front door to the back door, but only when the back door's override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_back_door_3", "result": { "structured": "TRIGGER: When Friday Front Door 3 [input_boolean.fri_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Friday Front Door 3 [input_boolean.fri_front_door_3] is on, turn on Friday Back Door 3 [input_boolean.fri_back_door_3]; otherwise, turn off Friday Back Door 3 [input_boolean.fri_back_door_3].", "natural_language": { "trigger": "Whenever the state of Friday Front Door 3 [input_boolean.fri_front_door_3] changes.", "conditions": "The automation only runs if Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "It copies the state from Friday Front Door 3 [input_boolean.fri_front_door_3] to Friday Back Door 3 [input_boolean.fri_back_door_3]. If the front door boolean is on, it turns on the back door boolean; if it's off, it turns the back door boolean off." }, "human_like": "This automation synchronizes the state of the back door lock with the front door lock on Fridays, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_inc_back_door_3", "result": { "structured": "TRIGGER: When Friday Include Front Door 3 [input_boolean.fri_inc_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Friday Include Front Door 3 [input_boolean.fri_inc_front_door_3] is on, turn on Friday Include Back Door 3 [input_boolean.fri_inc_back_door_3]; otherwise, turn off Friday Include Back Door 3 [input_boolean.fri_inc_back_door_3].", "natural_language": { "trigger": "Whenever the state of the Friday Include Front Door 3 [input_boolean.fri_inc_front_door_3] changes.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is currently turned off.", "action": "It copies the state of the Friday Include Front Door 3 [input_boolean.fri_inc_front_door_3] to the Friday Include Back Door 3 [input_boolean.fri_inc_back_door_3]. If the front door switch is on, the back door switch is turned on; if it's off, the back door switch is turned off." }, "human_like": "This automation synchronizes the back door's Friday inclusion setting with the front door's, unless an override is active.", "complexity": "medium" } }, { "id": "keymaster_copy_front_door_fri_start_date_back_door_3", "result": { "structured": "TRIGGER: When Friday Start Date Front Door 3 [input_datetime.fri_start_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set Friday Start Date Back Door 3 [input_datetime.fri_start_date_back_door_3] to the current time value of Friday Start Date Front Door 3 [input_datetime.fri_start_date_front_door_3].", "natural_language": { "trigger": "Whenever the value of the Friday Start Date Front Door 3 [input_datetime.fri_start_date_front_door_3] changes.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the time value from Friday Start Date Front Door 3 [input_datetime.fri_start_date_front_door_3] and sets it as the new value for Friday Start Date Back Door 3 [input_datetime.fri_start_date_back_door_3]." }, "human_like": "Synchronizes the Friday start date for the back door lock to match the front door's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_end_date_back_door_3", "result": { "structured": "TRIGGER: When Friday End Date Front Door 3 [input_datetime.fri_end_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set Friday End Date Back Door 3 [input_datetime.fri_end_date_back_door_3] to the time value of Friday End Date Front Door 3 [input_datetime.fri_end_date_front_door_3].", "natural_language": { "trigger": "Whenever the Friday End Date Front Door 3 [input_datetime.fri_end_date_front_door_3] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the time value from Friday End Date Front Door 3 [input_datetime.fri_end_date_front_door_3] and sets Friday End Date Back Door 3 [input_datetime.fri_end_date_back_door_3] to that same time." }, "human_like": "Synchronizes the Friday end date for Back Door 3 with the one set for Front Door 3, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_back_door_3", "result": { "structured": "TRIGGER: When Saturday Front Door 3 [input_boolean.sat_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Saturday Front Door 3 [input_boolean.sat_front_door_3] is on, turn on Saturday Back Door 3 [input_boolean.sat_back_door_3]; otherwise, turn off Saturday Back Door 3 [input_boolean.sat_back_door_3].", "natural_language": { "trigger": "Whenever the state of the Saturday Front Door 3 [input_boolean.sat_front_door_3] changes.", "conditions": "The Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] must be off.", "action": "Copies the state of the Saturday Front Door 3 [input_boolean.sat_front_door_3] to the Saturday Back Door 3 [input_boolean.sat_back_door_3]. If the front door input is on, the back door input is turned on; if it's off, the back door input is turned off." }, "human_like": "This automation synchronizes the state of the back door lock schedule with the front door, but only when an override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_inc_back_door_3", "result": { "structured": "TRIGGER: When Saturday Include Front Door 3 [input_boolean.sat_inc_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: If Saturday Include Front Door 3 [input_boolean.sat_inc_front_door_3] is on, turn on Saturday Include Back Door 3 [input_boolean.sat_inc_back_door_3]; otherwise, turn it off.", "natural_language": { "trigger": "Whenever the state of Saturday Include Front Door 3 [input_boolean.sat_inc_front_door_3] changes.", "conditions": "The automation only runs if Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is currently off.", "action": "It copies the state from Saturday Include Front Door 3 [input_boolean.sat_inc_front_door_3] to Saturday Include Back Door 3 [input_boolean.sat_inc_back_door_3], turning the back door input on if the front door input is on, and off if it is off." }, "human_like": "Copies the 'include' setting from the front door to the back door for the Saturday schedule, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_start_date_back_door_3", "result": { "structured": "TRIGGER: When Saturday Start Date Front Door 3 [input_datetime.sat_start_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set the time of Saturday Start Date Back Door 3 [input_datetime.sat_start_date_back_door_3] to the current state value of Saturday Start Date Front Door 3 [input_datetime.sat_start_date_front_door_3].", "natural_language": { "trigger": "Whenever the value of Saturday Start Date Front Door 3 [input_datetime.sat_start_date_front_door_3] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the date/time value from Saturday Start Date Front Door 3 [input_datetime.sat_start_date_front_door_3] to Saturday Start Date Back Door 3 [input_datetime.sat_start_date_back_door_3]." }, "human_like": "Copies the Saturday start date from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_end_date_back_door_3", "result": { "structured": "TRIGGER: When Saturday End Date Front Door 3 [input_datetime.sat_end_date_front_door_3] changes state. CONDITIONS: Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is off. ACTIONS: Set the datetime of Saturday End Date Back Door 3 [input_datetime.sat_end_date_back_door_3] to the current time value of Saturday End Date Front Door 3 [input_datetime.sat_end_date_front_door_3].", "natural_language": { "trigger": "Whenever the date or time value for Saturday End Date Front Door 3 [input_datetime.sat_end_date_front_door_3] is updated.", "conditions": "The automation only proceeds if the Override Parent Back Door 3 [input_boolean.override_parent_back_door_3] is turned off.", "action": "Copies the time value from Saturday End Date Front Door 3 [input_datetime.sat_end_date_front_door_3] and sets it as the new value for Saturday End Date Back Door 3 [input_datetime.sat_end_date_back_door_3]." }, "human_like": "Synchronizes the Saturday end date for the back door lock with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_turn_on_access_limit_back_door_4", "result": { "structured": "TRIGGER: When Access Count Back Door 4 [input_number.accesscount_back_door_4] changes state. CONDITIONS: The numeric value of Access Count Back Door 4 [input_number.accesscount_back_door_4] is greater than 0. ACTIONS: Turn on Access Limit Back Door 4 [input_boolean.accesslimit_back_door_4].", "natural_language": { "trigger": "Whenever the value of the Access Count Back Door 4 [input_number.accesscount_back_door_4] changes.", "conditions": "The condition is that the current numeric value of Access Count Back Door 4 [input_number.accesscount_back_door_4] must be greater than zero.", "action": "Turns on the Access Limit Back Door 4 [input_boolean.accesslimit_back_door_4]." }, "human_like": "Activates the access limit for the back door when the access count becomes positive.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_back_door_4", "result": { "structured": "TRIGGER: When Pin Synched Back Door 4 [binary_sensor.pin_synched_back_door_4] changes from on to off. CONDITIONS: Back Door Code Slot 4 [sensor.back_door_code_slot_4] is not in the state 'unavailable'. ACTIONS: If Active Back Door 4 [binary_sensor.active_back_door_4] is on, then add a code to back door lock [lock.back_door_lock] in slot 4 using the value from Back Door PIN 4 [input_text.back_door_pin_4] (stripped of whitespace). Otherwise, if Active Back Door 4 [binary_sensor.active_back_door_4] is off, then clear the code from back door lock [lock.back_door_lock] in slot 4.", "natural_language": { "trigger": "When the Pin Synched Back Door 4 [binary_sensor.pin_synched_back_door_4] sensor changes from on to off.", "conditions": "The Back Door Code Slot 4 [sensor.back_door_code_slot_4] must not be reporting as 'unavailable'.", "action": "Depending on the state of Active Back Door 4 [binary_sensor.active_back_door_4], the automation will either add or clear a PIN code on the back door lock. If the active sensor is on, it adds the code stored in Back Door PIN 4 [input_text.back_door_pin_4] (with any extra spaces removed) to code slot 4 of the lock. If the active sensor is off, it clears the code from slot 4 of the lock." }, "human_like": "Synchronizes the PIN code for slot 4 on the back door lock, either adding or clearing it based on whether the slot is marked as active.", "complexity": "medium" } }, { "id": "keymaster_override_parent_back_door_4_state_change", "result": { "structured": "TRIGGER: When Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] changes to off. CONDITIONS: None. ACTIONS: Execute script Keymaster Back Door Copy From Parent 4 [script.keymaster_back_door_copy_from_parent_4].", "natural_language": { "trigger": "When the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "conditions": "There are no conditions that must be met.", "action": "Runs the script named Keymaster Back Door Copy From Parent 4 [script.keymaster_back_door_copy_from_parent_4]." }, "human_like": "When the override for the back door is disabled, it runs a script to copy settings from a parent entity.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_name_back_door_4", "result": { "structured": "TRIGGER: When Front Door Name 4 [input_text.front_door_name_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set the value of Back Door Name 4 [input_text.back_door_name_4] to the current state of Front Door Name 4 [input_text.front_door_name_4].", "natural_language": { "trigger": "Whenever the text value for Front Door Name 4 [input_text.front_door_name_4] is updated.", "conditions": "The automation only runs if the override switch, Override Parent Back Door 4 [input_boolean.override_parent_back_door_4], is turned off.", "action": "Copies the text from Front Door Name 4 [input_text.front_door_name_4] to Back Door Name 4 [input_text.back_door_name_4]." }, "human_like": "Automatically copies the name from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_pin_back_door_4", "result": { "structured": "TRIGGER: When Front Door PIN 4 [input_text.front_door_pin_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set Back Door PIN 4 [input_text.back_door_pin_4] to the current value of Front Door PIN 4 [input_text.front_door_pin_4].", "natural_language": { "trigger": "Whenever the value of the Front Door PIN 4 [input_text.front_door_pin_4] changes.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the current PIN code from Front Door PIN 4 [input_text.front_door_pin_4] to Back Door PIN 4 [input_text.back_door_pin_4]." }, "human_like": "Automatically copies the PIN code from the front door to the back door for slot 4, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_enabled_back_door_4", "result": { "structured": "TRIGGER: When Enabled Front Door 4 [input_boolean.enabled_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Enabled Front Door 4 [input_boolean.enabled_front_door_4] is on, turn on Enabled Back Door 4 [input_boolean.enabled_back_door_4]; otherwise, turn off Enabled Back Door 4 [input_boolean.enabled_back_door_4].", "natural_language": { "trigger": "Whenever the Enabled Front Door 4 [input_boolean.enabled_front_door_4] input boolean changes its state.", "conditions": "The Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] must be off.", "action": "Copies the state of Enabled Front Door 4 [input_boolean.enabled_front_door_4] to Enabled Back Door 4 [input_boolean.enabled_back_door_4]. If the front door boolean is on, the back door boolean is turned on; if it's off, the back door boolean is turned off." }, "human_like": "Syncs the enabled state for door 4 from the front door to the back door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_notify_back_door_4", "result": { "structured": "TRIGGER: When Notify Front Door 4 [input_boolean.notify_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Notify Front Door 4 [input_boolean.notify_front_door_4] is on, turn on Notify Back Door 4 [input_boolean.notify_back_door_4]; otherwise, turn off Notify Back Door 4 [input_boolean.notify_back_door_4].", "natural_language": { "trigger": "Whenever the Notify Front Door 4 [input_boolean.notify_front_door_4] input boolean changes its state.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] input boolean is currently turned off.", "action": "The automation will mirror the state of Notify Front Door 4 [input_boolean.notify_front_door_4] onto Notify Back Door 4 [input_boolean.notify_back_door_4]. If the front door notification is on, it turns on the back door notification; if it's off, it turns the back door notification off." }, "human_like": "This automation synchronizes the notification setting for the back door with the front door, unless an override is active.", "complexity": "medium" } }, { "id": "keymaster_copy_front_door_reset_back_door_4", "result": { "structured": "TRIGGER: When Reset Codeslot Front Door 4 [input_boolean.reset_codeslot_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Reset Codeslot Front Door 4 [input_boolean.reset_codeslot_front_door_4] is on, turn it on; otherwise, turn it off.", "natural_language": { "trigger": "Whenever the state of Reset Codeslot Front Door 4 [input_boolean.reset_codeslot_front_door_4] changes.", "conditions": "The automation only runs if Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is currently off.", "action": "Sets Reset Codeslot Front Door 4 [input_boolean.reset_codeslot_front_door_4] to its own current state, effectively toggling it off if it's on and on if it's off, which is a no-op." }, "human_like": "This automation ensures the reset state for the front door code slot is mirrored, but only when the back door override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_accesslimit_back_door_4", "result": { "structured": "TRIGGER: When Access Limit Front Door 4 [input_boolean.accesslimit_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Access Limit Front Door 4 [input_boolean.accesslimit_front_door_4] is on, turn on Access Limit Back Door 4 [input_boolean.accesslimit_back_door_4]; otherwise, turn off Access Limit Back Door 4 [input_boolean.accesslimit_back_door_4].", "natural_language": { "trigger": "Whenever the state of the Access Limit Front Door 4 [input_boolean.accesslimit_front_door_4] changes.", "conditions": "The Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] must be off.", "action": "If the Access Limit Front Door 4 [input_boolean.accesslimit_front_door_4] is on, turn on the Access Limit Back Door 4 [input_boolean.accesslimit_back_door_4]; if it is off, turn off the Access Limit Back Door 4 [input_boolean.accesslimit_back_door_4]." }, "human_like": "This automation synchronizes the access limit for door 4 from the front door to the back door, unless an override is active.", "complexity": "medium" } }, { "id": "keymaster_copy_front_door_accesscount_back_door_4", "result": { "structured": "TRIGGER: When Access Count Front Door 4 [input_number.accesscount_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set the value of Access Count Back Door 4 [input_number.accesscount_back_door_4] to the integer value of Access Count Front Door 4 [input_number.accesscount_front_door_4].", "natural_language": { "trigger": "Whenever the value of Access Count Front Door 4 [input_number.accesscount_front_door_4] changes.", "conditions": "The automation only runs if Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the integer value from Access Count Front Door 4 [input_number.accesscount_front_door_4] to Access Count Back Door 4 [input_number.accesscount_back_door_4]." }, "human_like": "Synchronizes the access count for a back door lock with the count from the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_daterange_back_door_4", "result": { "structured": "TRIGGER: When Date Range Front Door 4 [input_boolean.daterange_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Date Range Front Door 4 [input_boolean.daterange_front_door_4] is on, turn on Date Range Back Door 4 [input_boolean.daterange_back_door_4]; otherwise, turn off Date Range Back Door 4 [input_boolean.daterange_back_door_4].", "natural_language": { "trigger": "Whenever the state of Date Range Front Door 4 [input_boolean.daterange_front_door_4] changes.", "conditions": "The automation only proceeds if Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is currently off.", "action": "Depending on the new state of Date Range Front Door 4 [input_boolean.daterange_front_door_4], the automation will either turn on or turn off Date Range Back Door 4 [input_boolean.daterange_back_door_4] to match it." }, "human_like": "This automation synchronizes the date range status for door 4, copying the state from the front door to the back door unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_start_date_back_door_4", "result": { "structured": "TRIGGER: When Start Date Front Door 4 [input_datetime.start_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set Start Date Back Door 4 [input_datetime.start_date_back_door_4] to the current datetime value of Start Date Front Door 4 [input_datetime.start_date_front_door_4].", "natural_language": { "trigger": "Whenever the date and time value for Start Date Front Door 4 [input_datetime.start_date_front_door_4] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the date and time from Start Date Front Door 4 [input_datetime.start_date_front_door_4] and sets it as the new value for Start Date Back Door 4 [input_datetime.start_date_back_door_4]." }, "human_like": "Synchronizes the start date for Back Door 4 with the one set for Front Door 4, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_end_date_back_door_4", "result": { "structured": "TRIGGER: When End Date Front Door 4 [input_datetime.end_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set End Date Back Door 4 [input_datetime.end_date_back_door_4] to the current state value of End Date Front Door 4 [input_datetime.end_date_front_door_4].", "natural_language": { "trigger": "Whenever the date and time value for End Date Front Door 4 [input_datetime.end_date_front_door_4] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the date and time value from End Date Front Door 4 [input_datetime.end_date_front_door_4] and applies it to End Date Back Door 4 [input_datetime.end_date_back_door_4]." }, "human_like": "Synchronizes the end date for Back Door 4 with the end date set for Front Door 4, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_back_door_4", "result": { "structured": "TRIGGER: When Sunday Front Door 4 [input_boolean.sun_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Sunday Front Door 4 [input_boolean.sun_front_door_4] is on, turn on Sunday Back Door 4 [input_boolean.sun_back_door_4]; otherwise, turn off Sunday Back Door 4 [input_boolean.sun_back_door_4].", "natural_language": { "trigger": "Whenever the state of Sunday Front Door 4 [input_boolean.sun_front_door_4] changes.", "conditions": "The automation only runs if Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is currently turned off.", "action": "Copies the state of Sunday Front Door 4 [input_boolean.sun_front_door_4] to Sunday Back Door 4 [input_boolean.sun_back_door_4]. If the front door switch is on, the back door switch is turned on; if it's off, the back door switch is turned off." }, "human_like": "This automation synchronizes the back door schedule with the front door schedule, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_inc_back_door_4", "result": { "structured": "TRIGGER: When Sunday Include Front Door 4 [input_boolean.sun_inc_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Sunday Include Front Door 4 [input_boolean.sun_inc_front_door_4] is on, then turn on Sunday Include Back Door 4 [input_boolean.sun_inc_back_door_4]; otherwise, turn off Sunday Include Back Door 4 [input_boolean.sun_inc_back_door_4].", "natural_language": { "trigger": "Whenever the state of Sunday Include Front Door 4 [input_boolean.sun_inc_front_door_4] changes.", "conditions": "The Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] must be off.", "action": "The automation copies the state from Sunday Include Front Door 4 [input_boolean.sun_inc_front_door_4] to Sunday Include Back Door 4 [input_boolean.sun_inc_back_door_4]. If the front door switch is on, it turns the back door switch on; if the front door switch is off, it turns the back door switch off." }, "human_like": "This automation synchronizes the 'Sunday Include' setting for the back door with the front door, but only when the back door override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_start_date_back_door_4", "result": { "structured": "TRIGGER: When Sunday Start Date Front Door 4 [input_datetime.sun_start_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set Sunday Start Date Back Door 4 [input_datetime.sun_start_date_back_door_4] to the current time value of Sunday Start Date Front Door 4 [input_datetime.sun_start_date_front_door_4].", "natural_language": { "trigger": "Whenever the date or time value of Sunday Start Date Front Door 4 [input_datetime.sun_start_date_front_door_4] changes.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the current time value from Sunday Start Date Front Door 4 [input_datetime.sun_start_date_front_door_4] and sets it for Sunday Start Date Back Door 4 [input_datetime.sun_start_date_back_door_4]." }, "human_like": "Copies the scheduled start time from the front door to the back door, unless a manual override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sun_end_date_back_door_4", "result": { "structured": "TRIGGER: When Sunday End Date Front Door 4 [input_datetime.sun_end_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set the time of Sunday End Date Back Door 4 [input_datetime.sun_end_date_back_door_4] to the current state value of Sunday End Date Front Door 4 [input_datetime.sun_end_date_front_door_4].", "natural_language": { "trigger": "Whenever the value of Sunday End Date Front Door 4 [input_datetime.sun_end_date_front_door_4] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the date and time value from Sunday End Date Front Door 4 [input_datetime.sun_end_date_front_door_4] to Sunday End Date Back Door 4 [input_datetime.sun_end_date_back_door_4]." }, "human_like": "This automation synchronizes the Sunday end date for Back Door 4 with the value set for Front Door 4, but only when the override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_back_door_4", "result": { "structured": "TRIGGER: When Monday Front Door 4 [input_boolean.mon_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Monday Front Door 4 [input_boolean.mon_front_door_4] is on, turn on Monday Back Door 4 [input_boolean.mon_back_door_4]; otherwise, turn off Monday Back Door 4 [input_boolean.mon_back_door_4].", "natural_language": { "trigger": "Whenever the state of Monday Front Door 4 [input_boolean.mon_front_door_4] changes.", "conditions": "The Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] must be off.", "action": "If Monday Front Door 4 [input_boolean.mon_front_door_4] is turned on, then turn on Monday Back Door 4 [input_boolean.mon_back_door_4]; if it is turned off, then turn off Monday Back Door 4 [input_boolean.mon_back_door_4]." }, "human_like": "Copies the state of the Monday Front Door 4 switch to the Monday Back Door 4 switch, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_inc_back_door_4", "result": { "structured": "TRIGGER: When Monday Include Front Door 4 [input_boolean.mon_inc_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Monday Include Front Door 4 [input_boolean.mon_inc_front_door_4] is on, then turn on Monday Include Back Door 4 [input_boolean.mon_inc_back_door_4]; otherwise, turn off Monday Include Back Door 4 [input_boolean.mon_inc_back_door_4].", "natural_language": { "trigger": "Whenever the state of Monday Include Front Door 4 [input_boolean.mon_inc_front_door_4] changes.", "conditions": "The Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] must be off.", "action": "If Monday Include Front Door 4 [input_boolean.mon_inc_front_door_4] is on, then turn on Monday Include Back Door 4 [input_boolean.mon_inc_back_door_4]. If it is off, then turn off Monday Include Back Door 4 [input_boolean.mon_inc_back_door_4]." }, "human_like": "This automation synchronizes the 'Monday Include Back Door 4' setting with the 'Monday Include Front Door 4' setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_start_date_back_door_4", "result": { "structured": "TRIGGER: When Monday Start Date Front Door 4 [input_datetime.mon_start_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set Monday Start Date Back Door 4 [input_datetime.mon_start_date_back_door_4] to the current time value of Monday Start Date Front Door 4 [input_datetime.mon_start_date_front_door_4].", "natural_language": { "trigger": "Whenever the value of Monday Start Date Front Door 4 [input_datetime.mon_start_date_front_door_4] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the time value from Monday Start Date Front Door 4 [input_datetime.mon_start_date_front_door_4] and sets it as the new value for Monday Start Date Back Door 4 [input_datetime.mon_start_date_back_door_4]." }, "human_like": "Synchronizes the Monday start time for the back door lock with the front door lock's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_mon_end_date_back_door_4", "result": { "structured": "TRIGGER: When Monday End Date Front Door 4 [input_datetime.mon_end_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set Monday End Date Back Door 4 [input_datetime.mon_end_date_back_door_4] to the current time value of Monday End Date Front Door 4 [input_datetime.mon_end_date_front_door_4].", "natural_language": { "trigger": "Whenever the value of Monday End Date Front Door 4 [input_datetime.mon_end_date_front_door_4] changes.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the time value from Monday End Date Front Door 4 [input_datetime.mon_end_date_front_door_4] and sets it for Monday End Date Back Door 4 [input_datetime.mon_end_date_back_door_4]." }, "human_like": "Synchronizes the Monday end time for the back door with the front door's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_back_door_4", "result": { "structured": "TRIGGER: When Tuesday Front Door 4 [input_boolean.tue_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Tuesday Front Door 4 [input_boolean.tue_front_door_4] is on, turn on Tuesday Back Door 4 [input_boolean.tue_back_door_4]; otherwise, turn off Tuesday Back Door 4 [input_boolean.tue_back_door_4].", "natural_language": { "trigger": "Whenever the state of Tuesday Front Door 4 [input_boolean.tue_front_door_4] changes.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is currently off.", "action": "It copies the state of Tuesday Front Door 4 [input_boolean.tue_front_door_4] to Tuesday Back Door 4 [input_boolean.tue_back_door_4]. If the front door boolean is on, it turns on the back door boolean; if it's off, it turns the back door boolean off." }, "human_like": "Copies the state of the Tuesday Front Door 4 switch to the Tuesday Back Door 4 switch, but only when the override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_inc_back_door_4", "result": { "structured": "TRIGGER: When Tuesday Include Front Door 4 [input_boolean.tue_inc_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Tuesday Include Front Door 4 [input_boolean.tue_inc_front_door_4] is on, turn on Tuesday Include Back Door 4 [input_boolean.tue_inc_back_door_4]; otherwise, turn off Tuesday Include Back Door 4 [input_boolean.tue_inc_back_door_4].", "natural_language": { "trigger": "Whenever the state of Tuesday Include Front Door 4 [input_boolean.tue_inc_front_door_4] changes.", "conditions": "The Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] must be off.", "action": "If Tuesday Include Front Door 4 [input_boolean.tue_inc_front_door_4] is on, turn on Tuesday Include Back Door 4 [input_boolean.tue_inc_back_door_4]; if it is off, turn off Tuesday Include Back Door 4 [input_boolean.tue_inc_back_door_4]." }, "human_like": "Synchronizes the Tuesday inclusion status for the back door to match the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_start_date_back_door_4", "result": { "structured": "TRIGGER: When Tuesday Start Date Front Door 4 [input_datetime.tue_start_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set Tuesday Start Date Back Door 4 [input_datetime.tue_start_date_back_door_4] to the current time value of Tuesday Start Date Front Door 4 [input_datetime.tue_start_date_front_door_4].", "natural_language": { "trigger": "Whenever the value of the Tuesday Start Date Front Door 4 [input_datetime.tue_start_date_front_door_4] changes.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the time value from Tuesday Start Date Front Door 4 [input_datetime.tue_start_date_front_door_4] and sets it on Tuesday Start Date Back Door 4 [input_datetime.tue_start_date_back_door_4]." }, "human_like": "Synchronizes the Tuesday start time for the back door lock with the front door's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_tue_end_date_back_door_4", "result": { "structured": "TRIGGER: When Tuesday End Date Front Door 4 [input_datetime.tue_end_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set Tuesday End Date Back Door 4 [input_datetime.tue_end_date_back_door_4] to the time value of Tuesday End Date Front Door 4 [input_datetime.tue_end_date_front_door_4].", "natural_language": { "trigger": "Whenever the Tuesday End Date Front Door 4 [input_datetime.tue_end_date_front_door_4] is updated.", "conditions": "The Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] must be turned off.", "action": "Copies the time value from Tuesday End Date Front Door 4 [input_datetime.tue_end_date_front_door_4] to Tuesday End Date Back Door 4 [input_datetime.tue_end_date_back_door_4]." }, "human_like": "Synchronizes the Tuesday end time for Back Door 4 with the value set for Front Door 4, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_back_door_4", "result": { "structured": "TRIGGER: When Wednesday Front Door 4 [input_boolean.wed_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Wednesday Front Door 4 [input_boolean.wed_front_door_4] is on, turn on Wednesday Back Door 4 [input_boolean.wed_back_door_4]; otherwise, turn off Wednesday Back Door 4 [input_boolean.wed_back_door_4].", "natural_language": { "trigger": "Whenever the state of Wednesday Front Door 4 [input_boolean.wed_front_door_4] changes.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is currently turned off.", "action": "The automation copies the state of Wednesday Front Door 4 [input_boolean.wed_front_door_4] to Wednesday Back Door 4 [input_boolean.wed_back_door_4]. If the front door input is on, it turns on the back door input; if it is off, it turns off the back door input." }, "human_like": "This automation synchronizes the state of the back door input with the front door input, but only when an override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_inc_back_door_4", "result": { "structured": "TRIGGER: When Wednesday Include Front Door 4 [input_boolean.wed_inc_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Wednesday Include Front Door 4 [input_boolean.wed_inc_front_door_4] is on, turn on Wednesday Include Back Door 4 [input_boolean.wed_inc_back_door_4]; otherwise, turn off Wednesday Include Back Door 4 [input_boolean.wed_inc_back_door_4].", "natural_language": { "trigger": "Whenever the state of Wednesday Include Front Door 4 [input_boolean.wed_inc_front_door_4] changes.", "conditions": "The Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] must be off.", "action": "The automation copies the state of Wednesday Include Front Door 4 [input_boolean.wed_inc_front_door_4] to Wednesday Include Back Door 4 [input_boolean.wed_inc_back_door_4]. If the front door switch is on, the back door switch is turned on; if it's off, the back door switch is turned off." }, "human_like": "This automation synchronizes the back door's Wednesday inclusion setting with the front door's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_start_date_back_door_4", "result": { "structured": "TRIGGER: When Wednesday Start Date Front Door 4 [input_datetime.wed_start_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set Wednesday Start Date Back Door 4 [input_datetime.wed_start_date_back_door_4] to the time value from Wednesday Start Date Front Door 4 [input_datetime.wed_start_date_front_door_4].", "natural_language": { "trigger": "Whenever the Wednesday Start Date Front Door 4 [input_datetime.wed_start_date_front_door_4] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the time value from Wednesday Start Date Front Door 4 [input_datetime.wed_start_date_front_door_4] and sets it for Wednesday Start Date Back Door 4 [input_datetime.wed_start_date_back_door_4]." }, "human_like": "Synchronizes the Wednesday start date for the back door with the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_wed_end_date_back_door_4", "result": { "structured": "TRIGGER: When Wednesday End Date Front Door 4 [input_datetime.wed_end_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set Wednesday End Date Back Door 4 [input_datetime.wed_end_date_back_door_4] to the current time value of Wednesday End Date Front Door 4 [input_datetime.wed_end_date_front_door_4].", "natural_language": { "trigger": "Whenever the date or time value for Wednesday End Date Front Door 4 [input_datetime.wed_end_date_front_door_4] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the time value from Wednesday End Date Front Door 4 [input_datetime.wed_end_date_front_door_4] and sets it on Wednesday End Date Back Door 4 [input_datetime.wed_end_date_back_door_4]." }, "human_like": "Synchronizes the Wednesday end date for Back Door 4 with the value set for Front Door 4, but only when the override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_back_door_4", "result": { "structured": "TRIGGER: When Thursday Front Door 4 [input_boolean.thu_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Thursday Front Door 4 [input_boolean.thu_front_door_4] is on, turn on Thursday Back Door 4 [input_boolean.thu_back_door_4]; otherwise, turn off Thursday Back Door 4 [input_boolean.thu_back_door_4].", "natural_language": { "trigger": "Whenever the state of the Thursday Front Door 4 [input_boolean.thu_front_door_4] changes.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is currently turned off.", "action": "It copies the state of the Thursday Front Door 4 [input_boolean.thu_front_door_4] to the Thursday Back Door 4 [input_boolean.thu_back_door_4]. If the front door input is on, it turns on the back door input; if it's off, it turns off the back door input." }, "human_like": "This automation synchronizes the Thursday Back Door 4 schedule with the Thursday Front Door 4 schedule, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_inc_back_door_4", "result": { "structured": "TRIGGER: When Thursday Include Front Door 4 [input_boolean.thu_inc_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Thursday Include Front Door 4 [input_boolean.thu_inc_front_door_4] is on, turn on Thursday Include Back Door 4 [input_boolean.thu_inc_back_door_4]; otherwise, turn off Thursday Include Back Door 4 [input_boolean.thu_inc_back_door_4].", "natural_language": { "trigger": "Whenever the state of the Thursday Include Front Door 4 [input_boolean.thu_inc_front_door_4] changes.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is currently turned off.", "action": "The automation copies the state from the front door to the back door. If the Thursday Include Front Door 4 [input_boolean.thu_inc_front_door_4] is on, it turns on the Thursday Include Back Door 4 [input_boolean.thu_inc_back_door_4]. If the front door switch is off, it turns off the back door switch." }, "human_like": "This automation synchronizes the back door's 'Thursday Include' setting to match the front door's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_start_date_back_door_4", "result": { "structured": "TRIGGER: When Thursday Start Date Front Door 4 [input_datetime.thu_start_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set Thursday Start Date Back Door 4 [input_datetime.thu_start_date_back_door_4] to the time value of Thursday Start Date Front Door 4 [input_datetime.thu_start_date_front_door_4].", "natural_language": { "trigger": "Whenever the value of the Thursday Start Date Front Door 4 [input_datetime.thu_start_date_front_door_4] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the time value from Thursday Start Date Front Door 4 [input_datetime.thu_start_date_front_door_4] and sets it on Thursday Start Date Back Door 4 [input_datetime.thu_start_date_back_door_4]." }, "human_like": "Synchronizes the Thursday start date for the back door with the front door's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_thu_end_date_back_door_4", "result": { "structured": "TRIGGER: When Thursday End Date Front Door 4 [input_datetime.thu_end_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set the time of Thursday End Date Back Door 4 [input_datetime.thu_end_date_back_door_4] to the current state value of Thursday End Date Front Door 4 [input_datetime.thu_end_date_front_door_4].", "natural_language": { "trigger": "Whenever the value of Thursday End Date Front Door 4 [input_datetime.thu_end_date_front_door_4] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the time value from Thursday End Date Front Door 4 [input_datetime.thu_end_date_front_door_4] and sets it for Thursday End Date Back Door 4 [input_datetime.thu_end_date_back_door_4]." }, "human_like": "Synchronizes the Thursday end date for Back Door 4 with the value set for Front Door 4, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_back_door_4", "result": { "structured": "TRIGGER: When Friday Front Door 4 [input_boolean.fri_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Friday Front Door 4 [input_boolean.fri_front_door_4] is on, turn on Friday Back Door 4 [input_boolean.fri_back_door_4]; otherwise, turn off Friday Back Door 4 [input_boolean.fri_back_door_4].", "natural_language": { "trigger": "Whenever the state of Friday Front Door 4 [input_boolean.fri_front_door_4] changes.", "conditions": "The automation only runs if Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "It copies the state of Friday Front Door 4 [input_boolean.fri_front_door_4] to Friday Back Door 4 [input_boolean.fri_back_door_4]. If the front door boolean is on, the back door boolean turns on; if it's off, the back door boolean turns off." }, "human_like": "Copies the state of the Friday Front Door 4 switch to the Friday Back Door 4 switch, but only when an override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_inc_back_door_4", "result": { "structured": "TRIGGER: When Friday Include Front Door 4 [input_boolean.fri_inc_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Friday Include Front Door 4 [input_boolean.fri_inc_front_door_4] is on, then turn on Friday Include Back Door 4 [input_boolean.fri_inc_back_door_4]; otherwise, turn off Friday Include Back Door 4 [input_boolean.fri_inc_back_door_4].", "natural_language": { "trigger": "Whenever the state of Friday Include Front Door 4 [input_boolean.fri_inc_front_door_4] changes.", "conditions": "The automation only runs if Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is currently off.", "action": "The automation copies the state of Friday Include Front Door 4 [input_boolean.fri_inc_front_door_4] to Friday Include Back Door 4 [input_boolean.fri_inc_back_door_4]. If the front door switch is on, the back door switch is turned on; if it's off, the back door switch is turned off." }, "human_like": "This automation synchronizes the 'Friday Include' setting for the back door with the setting for the front door, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_start_date_back_door_4", "result": { "structured": "TRIGGER: When Friday Start Date Front Door 4 [input_datetime.fri_start_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set Friday Start Date Back Door 4 [input_datetime.fri_start_date_back_door_4] to the current time value of Friday Start Date Front Door 4 [input_datetime.fri_start_date_front_door_4].", "natural_language": { "trigger": "Whenever the value of the Friday Start Date Front Door 4 [input_datetime.fri_start_date_front_door_4] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the time value from Friday Start Date Front Door 4 [input_datetime.fri_start_date_front_door_4] and sets the Friday Start Date Back Door 4 [input_datetime.fri_start_date_back_door_4] to that same value." }, "human_like": "Synchronizes the Friday start date for the back door with the front door's setting, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_fri_end_date_back_door_4", "result": { "structured": "TRIGGER: When Friday End Date Front Door 4 [input_datetime.fri_end_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set Friday End Date Back Door 4 [input_datetime.fri_end_date_back_door_4] to the current time value of Friday End Date Front Door 4 [input_datetime.fri_end_date_front_door_4].", "natural_language": { "trigger": "Whenever the value of the Friday End Date Front Door 4 [input_datetime.fri_end_date_front_door_4] changes.", "conditions": "The Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] must be turned off.", "action": "Copy the current time value from Friday End Date Front Door 4 [input_datetime.fri_end_date_front_door_4] and set it as the new value for Friday End Date Back Door 4 [input_datetime.fri_end_date_back_door_4]." }, "human_like": "This automation copies the Friday end time from the front door to the back door, but only when the back door's override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_back_door_4", "result": { "structured": "TRIGGER: When Saturday Front Door 4 [input_boolean.sat_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Saturday Front Door 4 [input_boolean.sat_front_door_4] is on, then turn on Saturday Back Door 4 [input_boolean.sat_back_door_4]; otherwise, turn off Saturday Back Door 4 [input_boolean.sat_back_door_4].", "natural_language": { "trigger": "Whenever the state of Saturday Front Door 4 [input_boolean.sat_front_door_4] changes.", "conditions": "The automation only runs if Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "The automation copies the state of Saturday Front Door 4 [input_boolean.sat_front_door_4] to Saturday Back Door 4 [input_boolean.sat_back_door_4]. If the front door switch is on, it turns the back door switch on; if the front door switch is off, it turns the back door switch off." }, "human_like": "This automation synchronizes the back door lock schedule with the front door schedule, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_inc_back_door_4", "result": { "structured": "TRIGGER: When Saturday Include Front Door 4 [input_boolean.sat_inc_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: If Saturday Include Front Door 4 [input_boolean.sat_inc_front_door_4] is on, turn on Saturday Include Back Door 4 [input_boolean.sat_inc_back_door_4]; otherwise, turn it off.", "natural_language": { "trigger": "Whenever the state of the Saturday Include Front Door 4 [input_boolean.sat_inc_front_door_4] changes.", "conditions": "The Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] must be turned off.", "action": "Copies the state of the Saturday Include Front Door 4 [input_boolean.sat_inc_front_door_4] to the Saturday Include Back Door 4 [input_boolean.sat_inc_back_door_4]. If the front door switch is on, the back door switch is turned on; if it's off, the back door switch is turned off." }, "human_like": "Synchronizes the back door's Saturday inclusion setting with the front door's, unless an override is active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_start_date_back_door_4", "result": { "structured": "TRIGGER: When Saturday Start Date Front Door 4 [input_datetime.sat_start_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set the date and time of Saturday Start Date Back Door 4 [input_datetime.sat_start_date_back_door_4] to the current state value of Saturday Start Date Front Door 4 [input_datetime.sat_start_date_front_door_4].", "natural_language": { "trigger": "Whenever the value of Saturday Start Date Front Door 4 [input_datetime.sat_start_date_front_door_4] is updated.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "Copies the date and time from Saturday Start Date Front Door 4 [input_datetime.sat_start_date_front_door_4] to Saturday Start Date Back Door 4 [input_datetime.sat_start_date_back_door_4]." }, "human_like": "Copies the Saturday start date from the front door to the back door, but only when the back door's override is not active.", "complexity": "low" } }, { "id": "keymaster_copy_front_door_sat_end_date_back_door_4", "result": { "structured": "TRIGGER: When Saturday End Date Front Door 4 [input_datetime.sat_end_date_front_door_4] changes state. CONDITIONS: Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is off. ACTIONS: Set Saturday End Date Back Door 4 [input_datetime.sat_end_date_back_door_4] to the current time value of Saturday End Date Front Door 4 [input_datetime.sat_end_date_front_door_4].", "natural_language": { "trigger": "Whenever the value of Saturday End Date Front Door 4 [input_datetime.sat_end_date_front_door_4] changes.", "conditions": "The automation only runs if the Override Parent Back Door 4 [input_boolean.override_parent_back_door_4] is turned off.", "action": "It copies the time value from Saturday End Date Front Door 4 [input_datetime.sat_end_date_front_door_4] and sets Saturday End Date Back Door 4 [input_datetime.sat_end_date_back_door_4] to that same value." }, "human_like": "Copies the Saturday end date from the front door to the back door, but only when the override for the back door is not active.", "complexity": "low" } }, { "id": "keymaster_back_door Reset Code Slot", "result": { "structured": "TRIGGER: When any of the input_booleans reset_codeslot_back_door_1, reset_codeslot_back_door_2, reset_codeslot_back_door_3, or reset_codeslot_back_door_4 changes state to 'on'. CONDITIONS: None. ACTIONS: Execute the script Keymaster Back Door Reset Codeslot [script.keymaster_back_door_reset_codeslot] with a data parameter 'code_slot' set to the last segment (the number) of the triggering entity_id.", "natural_language": { "trigger": "When any of the input booleans for resetting a code slot (reset_codeslot_back_door_1, reset_codeslot_back_door_2, reset_codeslot_back_door_3, or reset_codeslot_back_door_4) is turned on.", "conditions": "There are no conditions for this automation.", "action": "Runs the Keymaster Back Door Reset Codeslot [script.keymaster_back_door_reset_codeslot] script, passing the specific code slot number (1, 2, 3, or 4) extracted from the name of the input boolean that triggered the automation." }, "human_like": "Resets a specific code slot on the back door lock when its corresponding reset switch is turned on.", "complexity": "low" } }, { "id": "keymaster_back_door Lock Notifications", "result": { "structured": "TRIGGER: When a keymaster_lock_state_changed event occurs for lockname back_door. CONDITIONS: Back Door Lock Notifications [input_boolean.back_door_lock_notifications] is on. ACTIONS: Execute script Keymaster Back Door Manual Notify [script.keymaster_back_door_manual_notify] with data_template: title = back_door, message = trigger.event.data.action_text (and trigger.event.data.code_slot_name if trigger.event.data.code_slot > 0).", "natural_language": { "trigger": "When the lock state for the back door changes, as reported by a keymaster_lock_state_changed event.", "conditions": "The automation only runs if the Back Door Lock Notifications [input_boolean.back_door_lock_notifications] is turned on.", "action": "Runs the Keymaster Back Door Manual Notify [script.keymaster_back_door_manual_notify] script, sending a notification with a title of 'back_door' and a message containing the action text from the event, optionally including the name of the user code slot if one was used." }, "human_like": "Sends a notification when the back door lock is used, but only if lock notifications are enabled.", "complexity": "low" } }, { "id": "keymaster_back_door User Notifications", "result": { "structured": "TRIGGER: When a keymaster_lock_state_changed event occurs for the lock named back_door. CONDITIONS: (The event's code_slot is greater than 0) AND (The input_boolean entity for the specific code slot (input_boolean.notify_back_door_ + code_slot) is on) AND (Back Door Lock Notifications [input_boolean.back_door_lock_notifications] is off). ACTIONS: Execute the script Keymaster Back Door Manual Notify [script.keymaster_back_door_manual_notify] with data: title='back_door', message containing the event's action_text and code_slot_name.", "natural_language": { "trigger": "When the state of the back door smart lock changes, as reported by a keymaster_lock_state_changed event.", "conditions": "The lock operation must be associated with a valid user code slot (code_slot > 0). The notification setting for that specific user code (input_boolean.notify_back_door_ + code_slot) must be turned on. Furthermore, the global notification toggle for the back door, Back Door Lock Notifications [input_boolean.back_door_lock_notifications], must be off.", "action": "Sends a manual notification by running the script Keymaster Back Door Manual Notify [script.keymaster_back_door_manual_notify], which will generate a message containing the lock action description and the name of the user who performed it." }, "human_like": "Sends a notification for specific users when the back door lock is used, but only if global notifications are disabled and the user's individual notification setting is enabled.", "complexity": "medium" } }, { "id": "keymaster_back_door Door Open and Close", "result": { "structured": "TRIGGER: When Back Door Window/Door Open [binary_sensor.back_door_window_door_is_open] changes state. CONDITIONS: Back Door Door Access Notifications [input_boolean.back_door_dooraccess_notifications] is on AND (trigger.from_state.state is on OR off) AND (trigger.to_state.state is on OR off). ACTIONS: Run script Keymaster Back Door Manual Notify [script.keymaster_back_door_manual_notify] with data: title 'back_door', message 'Door Opened' if new state is on, else 'Door Closed'.", "natural_language": { "trigger": "Whenever the state of the Back Door Window/Door Open [binary_sensor.back_door_window_door_is_open] sensor changes.", "conditions": "The Back Door Door Access Notifications [input_boolean.back_door_dooraccess_notifications] must be turned on. Additionally, the state change must be a valid transition between 'open' (on) and 'closed' (off) states, meaning the previous state and the new state must each be either 'on' or 'off'.", "action": "Executes the Keymaster Back Door Manual Notify [script.keymaster_back_door_manual_notify] script. The script is provided with a title of 'back_door' and a message that says 'Door Opened' if the door was opened, or 'Door Closed' if the door was closed." }, "human_like": "Sends a notification when the back door is opened or closed, but only if door access notifications are enabled.", "complexity": "low" } }, { "id": "keymaster_back_door Changed Code", "result": { "structured": "TRIGGER: When the state of any of the following PIN input entities changes: back door pin 1 [input_text.back_door_pin_1], Back Door PIN 2 [input_text.back_door_pin_2], Back Door PIN 3 [input_text.back_door_pin_3], or Back Door PIN 4 [input_text.back_door_pin_4]. CONDITIONS: The corresponding enabled boolean for the changed PIN slot (input_boolean.enabled_back_door_X, where X is the slot number) is on AND the state change is not from the same value to the same value (i.e., the new state differs from the old state). ACTIONS: Create a persistent notification titled 'back_door LOCK MANAGER' with a message indicating the PIN for the specific slot was changed and prompting the user to enable it, then turn off the corresponding enabled boolean (input_boolean.enabled_back_door_X).", "natural_language": { "trigger": "Whenever the value of any of the four back door PIN code slots (back door pin 1, Back Door PIN 2, Back Door PIN 3, or Back Door PIN 4) changes.", "conditions": "The automation only proceeds if the specific 'enabled' switch for that PIN slot is currently turned on, and the PIN code has actually changed to a new value.", "action": "A notification is sent to alert the user that the PIN for the identified slot has been changed and needs to be re-enabled. The automation then automatically disables that PIN slot by turning off its corresponding 'enabled' switch." }, "human_like": "Alerts you and temporarily disables a back door PIN slot whenever its code is changed, ensuring the new code must be manually re-enabled for security.", "complexity": "medium" } }, { "id": "keymaster_back_door Reset", "result": { "structured": "TRIGGER: When Back Door Reset Lock [input_boolean.back_door_reset_lock] changes from off to on. CONDITIONS: None. ACTIONS: Execute script Keymaster Back Door Reset Lock [script.keymaster_back_door_reset_lock] AND turn off Back Door Reset Lock [input_boolean.back_door_reset_lock].", "natural_language": { "trigger": "When the Back Door Reset Lock [input_boolean.back_door_reset_lock] is switched from off to on.", "conditions": "There are no conditions that must be met.", "action": "Runs the script called Keymaster Back Door Reset Lock [script.keymaster_back_door_reset_lock] and then immediately turns the Back Door Reset Lock [input_boolean.back_door_reset_lock] back off." }, "human_like": "Resets the back door lock by running a reset script when a control switch is turned on, and automatically turns the switch off afterwards.", "complexity": "low" } }, { "id": "keymaster_back_door Decrement Access Count", "result": { "structured": "TRIGGER: When a keymaster_lock_state_changed event occurs for the lock named back_door. CONDITIONS: (Access Limit Back Door [input_boolean.accesslimit_back_door_] is on) AND (trigger event data code_slot is greater than 0 AND (trigger event data action_code is undefined OR trigger event data action_code is 6 OR trigger event data action_code is 19)). ACTIONS: Decrement the value of input_number.accesscount_back_door_ [input_number.accesscount_back_door_ + trigger.event.data.code_slot].", "natural_language": { "trigger": "When the lock state for the back door changes, as reported by a keymaster_lock_state_changed event.", "conditions": "If the Access Limit Back Door [input_boolean.accesslimit_back_door_] is enabled, and the code slot number from the event is greater than zero, and the action code from the event is either undefined or specifically one of the values 6 or 19.", "action": "Decreases the access count for the specific code slot by one, targeting the corresponding input_number entity." }, "human_like": "Reduces the usage count for a specific back door access code when the lock is used, provided the code has a usage limit enabled.", "complexity": "medium" } }, { "id": "keymaster_back_door_locked", "result": { "structured": "TRIGGER: When back door lock [lock.back_door_lock] becomes locked. CONDITIONS: None. ACTIONS: Cancel Keymaster Back Door Autolock Timer [timer.keymaster_back_door_autolock].", "natural_language": { "trigger": "When the back door lock [lock.back_door_lock] is locked.", "conditions": "There are no conditions for this automation.", "action": "Cancels the Keymaster Back Door Autolock Timer [timer.keymaster_back_door_autolock]." }, "human_like": "Stops the automatic lock timer for the back door when the door is manually locked.", "complexity": "low" } }, { "id": "keymaster_turn_off_retry_back_door", "result": { "structured": "TRIGGER: When back door lock [lock.back_door_lock] changes to locked. CONDITIONS: None. ACTIONS: Turn off Keymaster Back Door Retry [input_boolean.keymaster_back_door_retry].", "natural_language": { "trigger": "When the back door lock [lock.back_door_lock] becomes locked.", "conditions": "There are no conditions for this automation.", "action": "Turns off the Keymaster Back Door Retry [input_boolean.keymaster_back_door_retry]." }, "human_like": "Turns off the retry flag for the back door lock once it is successfully locked.", "complexity": "low" } }, { "id": "keymaster_retry_bolt_closed_back_door", "result": { "structured": "TRIGGER: When Back Door Window/Door Open [binary_sensor.back_door_window_door_is_open] changes to closed (off). CONDITIONS: Keymaster Back Door Retry [input_boolean.keymaster_back_door_retry] is on AND Keymaster Back Door Autolock [input_boolean.keymaster_back_door_autolock] is on. ACTIONS: Create a persistent notification with title 'back_door is closed' and message 'The back_door sensor indicates the door has been closed, re-attempting to lock.' AND Lock Bolt Checked Back Door [lock.boltchecked_back_door].", "natural_language": { "trigger": "When the Back Door Window/Door Open [binary_sensor.back_door_window_door_is_open] sensor detects that the door has been closed.", "conditions": "Both the Keymaster Back Door Retry [input_boolean.keymaster_back_door_retry] and the Keymaster Back Door Autolock [input_boolean.keymaster_back_door_autolock] switches must be turned on.", "action": "Creates a notification stating the door is closed and a lock attempt is being made, and then sends a command to lock the Bolt Checked Back Door [lock.boltchecked_back_door]." }, "human_like": "Automatically re-attempts to lock the back door when it is closed, provided the retry and autolock features are enabled.", "complexity": "low" } }, { "id": "keymaster_back_door_opened", "result": { "structured": "TRIGGER: When Back Door Window/Door Open [binary_sensor.back_door_window_door_is_open] changes to open (on). CONDITIONS: Keymaster Back Door Autolock [input_boolean.keymaster_back_door_autolock] is on. ACTIONS: Start timer Keymaster Back Door Autolock Timer [timer.keymaster_back_door_autolock] with a duration determined by a template: IF (next dusk timestamp > next dawn timestamp) THEN use the value from Keymaster Back Door Autolock Night Time [input_text.keymaster_back_door_autolock_door_time_night] ELSE use the value from Keymaster Back Door Autolock Day Time [input_text.keymaster_back_door_autolock_door_time_day].", "natural_language": { "trigger": "When the Back Door Window/Door Open [binary_sensor.back_door_window_door_is_open] sensor detects the door has been opened.", "conditions": "The automation only runs if the Keymaster Back Door Autolock [input_boolean.keymaster_back_door_autolock] switch is turned on.", "action": "Starts a countdown timer named Keymaster Back Door Autolock Timer [timer.keymaster_back_door_autolock]. The duration for this timer is set based on the time of day: if it is currently night (when the next dusk occurs after the next dawn), it uses the duration stored in Keymaster Back Door Autolock Night Time [input_text.keymaster_back_door_autolock_door_time_night]; otherwise, it uses the duration from Keymaster Back Door Autolock Day Time [input_text.keymaster_back_door_autolock_door_time_day]." }, "human_like": "Starts an automatic lock timer for the back door when it is opened, using different delay times for day and night.", "complexity": "medium" } }, { "id": "keymaster_back_door_unlocked_ start_autolock", "result": { "structured": "TRIGGER: When back door lock [lock.back_door_lock] becomes unlocked. CONDITIONS: Keymaster Back Door Autolock [input_boolean.keymaster_back_door_autolock] is on. ACTIONS: Start the Keymaster Back Door Start Timer [script.keymaster_back_door_start_timer] script AND Turn off Keymaster Back Door Retry [input_boolean.keymaster_back_door_retry].", "natural_language": { "trigger": "When the back door lock [lock.back_door_lock] is unlocked.", "conditions": "The automation only runs if the Keymaster Back Door Autolock [input_boolean.keymaster_back_door_autolock] is switched on.", "action": "It starts the Keymaster Back Door Start Timer [script.keymaster_back_door_start_timer] script and turns off the Keymaster Back Door Retry [input_boolean.keymaster_back_door_retry] switch." }, "human_like": "Starts the auto-lock timer for the back door when it's unlocked, provided auto-lock is enabled.", "complexity": "low" } }, { "id": "keymaster_back_door_timer_finished", "result": { "structured": "TRIGGER: When timer.keymaster_back_door_autolock finishes. CONDITIONS: Keymaster Back Door Autolock [input_boolean.keymaster_back_door_autolock] is on. ACTIONS: Lock Bolt Checked Back Door [lock.boltchecked_back_door].", "natural_language": { "trigger": "When the Keymaster Back Door Autolock Timer [timer.keymaster_back_door_autolock] finishes.", "conditions": "The Keymaster Back Door Autolock [input_boolean.keymaster_back_door_autolock] must be turned on.", "action": "Locks the Bolt Checked Back Door [lock.boltchecked_back_door]." }, "human_like": "Automatically locks the back door when its autolock timer finishes, provided the autolock feature is enabled.", "complexity": "low" } }, { "id": "keymaster_back_door_timer_canceled", "result": { "structured": "TRIGGER: When timer.cancelled event occurs for Keymaster Back Door Autolock Timer [timer.keymaster_back_door_autolock]. ACTIONS: Turn off Keymaster Back Door Retry [input_boolean.keymaster_back_door_retry].", "natural_language": { "trigger": "When the Keymaster Back Door Autolock Timer [timer.keymaster_back_door_autolock] is canceled.", "conditions": "No conditions are specified.", "action": "Turns off the Keymaster Back Door Retry [input_boolean.keymaster_back_door_retry] input boolean." }, "human_like": "Cancels the retry flag for the back door autolock when its timer is manually stopped.", "complexity": "low" } }, { "id": "keymaster_back_door_disable_auto_lock", "result": { "structured": "TRIGGER: When Keymaster Back Door Autolock [input_boolean.keymaster_back_door_autolock] changes to off. CONDITIONS: None. ACTIONS: Cancel Keymaster Back Door Autolock Timer [timer.keymaster_back_door_autolock] AND Turn off Keymaster Back Door Retry [input_boolean.keymaster_back_door_retry].", "natural_language": { "trigger": "When the Keymaster Back Door Autolock [input_boolean.keymaster_back_door_autolock] is turned off.", "conditions": "There are no conditions for this automation.", "action": "Cancels the Keymaster Back Door Autolock Timer [timer.keymaster_back_door_autolock] and turns off the Keymaster Back Door Retry [input_boolean.keymaster_back_door_retry]." }, "human_like": "Disables the auto-lock mechanism for the back door by cancelling its timer and resetting the retry state.", "complexity": "low" } }, { "id": "keymaster_back_door_enable_auto_lock", "result": { "structured": "TRIGGER: When Keymaster Back Door Autolock [input_boolean.keymaster_back_door_autolock] changes to on. CONDITIONS: None. ACTIONS: Turn off Keymaster Back Door Retry [input_boolean.keymaster_back_door_retry] AND cancel timer Keymaster Back Door Autolock Timer [timer.keymaster_back_door_autolock] AND start script Keymaster Back Door Start Timer [script.keymaster_back_door_start_timer].", "natural_language": { "trigger": "When the Keymaster Back Door Autolock [input_boolean.keymaster_back_door_autolock] is switched on.", "conditions": "There are no conditions for this automation.", "action": "It turns off the Keymaster Back Door Retry [input_boolean.keymaster_back_door_retry] indicator, cancels the existing Keymaster Back Door Autolock Timer [timer.keymaster_back_door_autolock], and then runs the script Keymaster Back Door Start Timer [script.keymaster_back_door_start_timer] to begin the auto-lock process." }, "human_like": "Enables the auto-lock feature for the back door by resetting related states and starting the lock timer.", "complexity": "low" } }, { "id": "keymaster_back_door_initialize", "result": { "structured": "TRIGGER: When Home Assistant starts. CONDITIONS: None. ACTIONS: Set Keymaster Back Door Autolock Day Time [input_text.keymaster_back_door_autolock_door_time_day] to '02:00:00' if its current value is empty or 'unknown', otherwise keep its current value. Set Keymaster Back Door Autolock Night Time [input_text.keymaster_back_door_autolock_door_time_night] to '00:05:00' if its current value is empty or 'unknown', otherwise keep its current value.", "natural_language": { "trigger": "When Home Assistant starts up.", "conditions": "There are no conditions for this automation.", "action": "It sets the default autolock times for the back door. It checks the current value of the Keymaster Back Door Autolock Day Time [input_text.keymaster_back_door_autolock_door_time_day] and sets it to '02:00:00' if it is empty or 'unknown'. Otherwise, it leaves the value unchanged. It then does the same for the Keymaster Back Door Autolock Night Time [input_text.keymaster_back_door_autolock_door_time_night], setting it to '00:05:00' if it is empty or 'unknown'." }, "human_like": "Initializes the back door's automatic lock timers to default day and night values when the system starts, but only if they haven't been set already.", "complexity": "low" } }, { "id": "keymaster_turn_on_access_limit_front_door_1", "result": { "structured": "TRIGGER: When accesscount front door 1 [input_number.accesscount_front_door_1] changes state. CONDITIONS: The numeric value of accesscount front door 1 [input_number.accesscount_front_door_1] is greater than 0. ACTIONS: Turn on accesslimit front door 1 [input_boolean.accesslimit_front_door_1].", "natural_language": { "trigger": "Whenever the value of the accesscount front door 1 [input_number.accesscount_front_door_1] changes.", "conditions": "If the current numeric value of accesscount front door 1 [input_number.accesscount_front_door_1] is greater than zero.", "action": "Turns on the accesslimit front door 1 [input_boolean.accesslimit_front_door_1]." }, "human_like": "Activates the access limit for the front door when the access count is greater than zero.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_front_door_1", "result": { "structured": "TRIGGER: When Pin Synched Front Door 1 [binary_sensor.pin_synched_front_door_1] changes from on to off. CONDITIONS: Front Door Code Slot 1 [sensor.front_door_code_slot_1] is not in the state 'unavailable'. ACTIONS: If Active Front Door 1 [binary_sensor.active_front_door_1] is on, then add a code to Front Door Lock [lock.front_door_lock] in slot 1 using the value from front door pin 1 [input_text.front_door_pin_1]. Otherwise, if Active Front Door 1 [binary_sensor.active_front_door_1] is off, then clear the code from Front Door Lock [lock.front_door_lock] in slot 1.", "natural_language": { "trigger": "When the Pin Synched Front Door 1 [binary_sensor.pin_synched_front_door_1] sensor changes from on to off.", "conditions": "The automation only runs if the Front Door Code Slot 1 [sensor.front_door_code_slot_1] sensor is not reporting as 'unavailable'.", "action": "Depending on the state of the Active Front Door 1 [binary_sensor.active_front_door_1] sensor, the automation will either add or clear a user code on the Front Door Lock [lock.front_door_lock]. If the active sensor is on, it adds the code stored in front door pin 1 [input_text.front_door_pin_1] to code slot 1. If the active sensor is off, it clears the code from slot 1." }, "human_like": "Synchronizes the user code for slot 1 on the front door lock based on whether the code is marked as active, triggered when a sync flag is turned off.", "complexity": "medium" } }, { "id": "keymaster_turn_on_access_limit_front_door_10", "result": { "structured": "TRIGGER: When Access Count Front Door 10 [input_number.accesscount_front_door_10] changes state. CONDITIONS: Access Count Front Door 10 [input_number.accesscount_front_door_10] is greater than 0. ACTIONS: Turn on Access Limit Front Door 10 [input_boolean.accesslimit_front_door_10].", "natural_language": { "trigger": "Whenever the value of Access Count Front Door 10 [input_number.accesscount_front_door_10] changes.", "conditions": "The automation only proceeds if the current value of Access Count Front Door 10 [input_number.accesscount_front_door_10] is greater than zero.", "action": "Turns on the Access Limit Front Door 10 [input_boolean.accesslimit_front_door_10]." }, "human_like": "Enables the access limit for the front door when the associated access count becomes positive.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_front_door_10", "result": { "structured": "TRIGGER: When Pin Synched Front Door 10 [binary_sensor.pin_synched_front_door_10] changes from on to off. CONDITIONS: Front Door Code Slot 10 [sensor.front_door_code_slot_10] is not unavailable. ACTIONS: If Active Front Door 10 [binary_sensor.active_front_door_10] is on, then add a code to Front Door Lock [lock.front_door_lock] in slot 10 using the value from Front Door PIN 10 [input_text.front_door_pin_10]. Otherwise, if Active Front Door 10 [binary_sensor.active_front_door_10] is off, then clear the code in slot 10 from Front Door Lock [lock.front_door_lock].", "natural_language": { "trigger": "When the Pin Synched Front Door 10 [binary_sensor.pin_synched_front_door_10] sensor changes from a synced (on) to an unsynced (off) state.", "conditions": "The Front Door Code Slot 10 [sensor.front_door_code_slot_10] sensor must not be in an unavailable state.", "action": "If the Active Front Door 10 [binary_sensor.active_front_door_10] sensor indicates the code is active (on), the automation will add a new user code to the Front Door Lock [lock.front_door_lock] in code slot 10, using the PIN stored in Front Door PIN 10 [input_text.front_door_pin_10]. If the Active Front Door 10 [binary_sensor.active_front_door_10] sensor indicates the code is inactive (off), the automation will clear the existing code from slot 10 on the lock." }, "human_like": "Synchronizes the PIN code for slot 10 on the front door lock when its sync status changes, either adding or clearing the code based on its active state.", "complexity": "medium" } }, { "id": "keymaster_turn_on_access_limit_front_door_2", "result": { "structured": "TRIGGER: When Access Count Front Door 2 [input_number.accesscount_front_door_2] changes state. CONDITIONS: The numeric value of Access Count Front Door 2 [input_number.accesscount_front_door_2] is greater than 0. ACTIONS: Turn on Access Limit Front Door 2 [input_boolean.accesslimit_front_door_2].", "natural_language": { "trigger": "Whenever the value of the Access Count Front Door 2 [input_number.accesscount_front_door_2] changes.", "conditions": "The current numeric value of Access Count Front Door 2 [input_number.accesscount_front_door_2] must be greater than zero.", "action": "Activates the access limit by turning on the Access Limit Front Door 2 [input_boolean.accesslimit_front_door_2]." }, "human_like": "Activates the access limit for the front door when the access count becomes positive.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_front_door_2", "result": { "structured": "TRIGGER: When Pin Synched Front Door 2 [binary_sensor.pin_synched_front_door_2] changes from on to off. CONDITIONS: Front Door Code Slot 2 [sensor.front_door_code_slot_2] is not unavailable. ACTIONS: If Active Front Door 2 [binary_sensor.active_front_door_2] is on, then add a code to lock Front Door Lock [lock.front_door_lock] in slot 2 using the value from Front Door PIN 2 [input_text.front_door_pin_2] (stripped of whitespace). Otherwise, if Active Front Door 2 [binary_sensor.active_front_door_2] is off, then clear the code in slot 2 of lock Front Door Lock [lock.front_door_lock].", "natural_language": { "trigger": "When the Pin Synched Front Door 2 [binary_sensor.pin_synched_front_door_2] sensor changes from being on to off, indicating the synchronization status for a PIN code has changed.", "conditions": "The automation only runs if the Front Door Code Slot 2 [sensor.front_door_code_slot_2] sensor is not in an 'unavailable' state.", "action": "Depending on the status of the Active Front Door 2 [binary_sensor.active_front_door_2] sensor, the automation will either add or remove a PIN code. If the sensor is on, it adds a new code to slot 2 of the Front Door Lock [lock.front_door_lock] using the PIN stored in Front Door PIN 2 [input_text.front_door_pin_2]. If the sensor is off, it clears any existing code from slot 2 of the lock." }, "human_like": "Synchronizes the PIN code for slot 2 on the front door lock, adding or removing it based on whether the code is marked as active.", "complexity": "medium" } }, { "id": "keymaster_turn_on_access_limit_front_door_3", "result": { "structured": "TRIGGER: When Access Count Front Door 3 [input_number.accesscount_front_door_3] changes state. CONDITIONS: Access Count Front Door 3 [input_number.accesscount_front_door_3] is greater than 0. ACTIONS: Turn on Access Limit Front Door 3 [input_boolean.accesslimit_front_door_3].", "natural_language": { "trigger": "Whenever the value of Access Count Front Door 3 [input_number.accesscount_front_door_3] changes.", "conditions": "The value of Access Count Front Door 3 [input_number.accesscount_front_door_3] must be greater than zero.", "action": "Turns on the Access Limit Front Door 3 [input_boolean.accesslimit_front_door_3]." }, "human_like": "Activates the access limit for the front door when the access count becomes positive.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_front_door_3", "result": { "structured": "TRIGGER: When Pin Synched Front Door 3 [binary_sensor.pin_synched_front_door_3] changes from on to off. CONDITIONS: Front Door Code Slot 3 [sensor.front_door_code_slot_3] is not unavailable. ACTIONS: If Active Front Door 3 [binary_sensor.active_front_door_3] is on, then add a code to lock Front Door Lock [lock.front_door_lock] in slot 3 using the value from Front Door PIN 3 [input_text.front_door_pin_3]. Otherwise, if Active Front Door 3 [binary_sensor.active_front_door_3] is off, then clear the code from lock Front Door Lock [lock.front_door_lock] in slot 3.", "natural_language": { "trigger": "When the Pin Synched Front Door 3 [binary_sensor.pin_synched_front_door_3] sensor changes from 'on' to 'off'.", "conditions": "The automation only runs if the Front Door Code Slot 3 [sensor.front_door_code_slot_3] sensor is not reporting as 'unavailable'.", "action": "Depending on the state of the Active Front Door 3 [binary_sensor.active_front_door_3] sensor, the automation will either add or clear a PIN code on the Front Door Lock [lock.front_door_lock]. If the active sensor is on, it adds the PIN code stored in Front Door PIN 3 [input_text.front_door_pin_3] to code slot 3. If the active sensor is off, it clears the PIN code from code slot 3." }, "human_like": "Synchronizes the PIN code for slot 3 on the front door lock when a sync signal is received, either adding or removing the code based on whether the slot is marked as active.", "complexity": "medium" } }, { "id": "keymaster_turn_on_access_limit_front_door_4", "result": { "structured": "TRIGGER: When Access Count Front Door 4 [input_number.accesscount_front_door_4] changes state. CONDITIONS: The numeric value of Access Count Front Door 4 [input_number.accesscount_front_door_4] is greater than 0. ACTIONS: Turn on Access Limit Front Door 4 [input_boolean.accesslimit_front_door_4].", "natural_language": { "trigger": "Whenever the value of the Access Count Front Door 4 [input_number.accesscount_front_door_4] changes.", "conditions": "If the current numeric value of Access Count Front Door 4 [input_number.accesscount_front_door_4] is greater than zero.", "action": "Turns on the Access Limit Front Door 4 [input_boolean.accesslimit_front_door_4]." }, "human_like": "Enables the access limit for a specific slot when its usage count becomes positive.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_front_door_4", "result": { "structured": "TRIGGER: When Pin Synched Front Door 4 [binary_sensor.pin_synched_front_door_4] changes from on to off. CONDITIONS: Front Door Code Slot 4 [sensor.front_door_code_slot_4] is not in the state 'unavailable'. ACTIONS: Choose based on condition: IF Active Front Door 4 [binary_sensor.active_front_door_4] is on THEN call service keymaster.add_code on Front Door Lock [lock.front_door_lock] with code_slot 4 and usercode from Front Door PIN 4 [input_text.front_door_pin_4] (stripped). IF Active Front Door 4 [binary_sensor.active_front_door_4] is off THEN call service keymaster.clear_code on Front Door Lock [lock.front_door_lock] with code_slot 4.", "natural_language": { "trigger": "When the Pin Synched Front Door 4 [binary_sensor.pin_synched_front_door_4] sensor changes from on to off.", "conditions": "The Front Door Code Slot 4 [sensor.front_door_code_slot_4] must not be reporting as 'unavailable'.", "action": "Depending on the state of the Active Front Door 4 [binary_sensor.active_front_door_4] sensor: if it is on, it adds a new user code to slot 4 of the Front Door Lock [lock.front_door_lock] using the PIN stored in Front Door PIN 4 [input_text.front_door_pin_4]. If it is off, it clears the user code from slot 4 of the lock." }, "human_like": "Synchronizes the PIN code for slot 4 on the front door lock when a sync signal is received, either adding or clearing the code based on an active/inactive setting.", "complexity": "medium" } }, { "id": "keymaster_turn_on_access_limit_front_door_5", "result": { "structured": "TRIGGER: When Access Count Front Door 5 [input_number.accesscount_front_door_5] changes state. CONDITIONS: The numeric value of Access Count Front Door 5 [input_number.accesscount_front_door_5] is greater than 0. ACTIONS: Turn on Access Limit Front Door 5 [input_boolean.accesslimit_front_door_5].", "natural_language": { "trigger": "Whenever the value of the Access Count Front Door 5 [input_number.accesscount_front_door_5] changes.", "conditions": "The current numeric value of Access Count Front Door 5 [input_number.accesscount_front_door_5] must be greater than zero.", "action": "Turns on the Access Limit Front Door 5 [input_boolean.accesslimit_front_door_5]." }, "human_like": "Enables the access limit for the front door when the associated access count becomes positive.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_front_door_5", "result": { "structured": "TRIGGER: When Pin Synched Front Door 5 [binary_sensor.pin_synched_front_door_5] changes from on to off. CONDITIONS: Front Door Code Slot 5 [sensor.front_door_code_slot_5] is not unavailable. ACTIONS: If Active Front Door 5 [binary_sensor.active_front_door_5] is on, then add a code to lock Front Door Lock [lock.front_door_lock] in slot 5 using the value from Front Door PIN 5 [input_text.front_door_pin_5]. Otherwise, if Active Front Door 5 [binary_sensor.active_front_door_5] is off, then clear the code in slot 5 from lock Front Door Lock [lock.front_door_lock].", "natural_language": { "trigger": "When the Pin Synched Front Door 5 [binary_sensor.pin_synched_front_door_5] sensor changes from the 'on' state to the 'off' state.", "conditions": "The automation only runs if the Front Door Code Slot 5 [sensor.front_door_code_slot_5] sensor is not reporting as 'unavailable'.", "action": "Depending on the state of the Active Front Door 5 [binary_sensor.active_front_door_5] sensor, the automation will either program or remove a PIN code from the lock. If the active sensor is on, it adds a new code to slot 5 of the Front Door Lock [lock.front_door_lock] using the PIN stored in Front Door PIN 5 [input_text.front_door_pin_5]. If the active sensor is off, it clears the code currently stored in slot 5 of the lock." }, "human_like": "Synchronizes PIN code slot 5 on the front door lock when a sync signal is received, either programming a new code or clearing the slot based on whether the code is marked as active.", "complexity": "medium" } }, { "id": "keymaster_turn_on_access_limit_front_door_6", "result": { "structured": "TRIGGER: When Access Count Front Door 6 [input_number.accesscount_front_door_6] changes state. CONDITIONS: The numeric value of Access Count Front Door 6 [input_number.accesscount_front_door_6] is greater than 0. ACTIONS: Turn on Access Limit Front Door 6 [input_boolean.accesslimit_front_door_6].", "natural_language": { "trigger": "Whenever the value of Access Count Front Door 6 [input_number.accesscount_front_door_6] changes.", "conditions": "The current numeric value of Access Count Front Door 6 [input_number.accesscount_front_door_6] must be greater than zero.", "action": "Turns on the Access Limit Front Door 6 [input_boolean.accesslimit_front_door_6] switch." }, "human_like": "Activates the access limit for a specific user at the front door when their access count becomes positive.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_front_door_6", "result": { "structured": "TRIGGER: When Pin Synched Front Door 6 [binary_sensor.pin_synched_front_door_6] changes from on to off. CONDITIONS: Front Door Code Slot 6 [sensor.front_door_code_slot_6] is not in the 'unavailable' state. ACTIONS: IF Active Front Door 6 [binary_sensor.active_front_door_6] is on, THEN add a code to lock Front Door Lock [lock.front_door_lock] in slot 6 using the value from Front Door PIN 6 [input_text.front_door_pin_6]. OTHERWISE, IF Active Front Door 6 [binary_sensor.active_front_door_6] is off, THEN clear the code from lock Front Door Lock [lock.front_door_lock] in slot 6.", "natural_language": { "trigger": "When the Pin Synched Front Door 6 [binary_sensor.pin_synched_front_door_6] sensor changes from being on to being off.", "conditions": "The automation only runs if the Front Door Code Slot 6 [sensor.front_door_code_slot_6] sensor is not reporting as 'unavailable'.", "action": "Depending on the state of the Active Front Door 6 [binary_sensor.active_front_door_6] sensor, the automation will either add a new PIN code or clear an existing one. If the active sensor is on, it adds the PIN code stored in Front Door PIN 6 [input_text.front_door_pin_6] to slot 6 of the Front Door Lock [lock.front_door_lock]. If the active sensor is off, it clears the PIN code from slot 6 of the lock." }, "human_like": "Synchronizes the PIN code for slot 6 on the front door lock when a sync status changes, either programming or clearing the code based on whether the slot is marked as active.", "complexity": "medium" } }, { "id": "keymaster_turn_on_access_limit_front_door_7", "result": { "structured": "TRIGGER: When Access Count Front Door 7 [input_number.accesscount_front_door_7] changes state. CONDITIONS: The value of Access Count Front Door 7 [input_number.accesscount_front_door_7] is greater than 0. ACTIONS: Turn on Access Limit Front Door 7 [input_boolean.accesslimit_front_door_7].", "natural_language": { "trigger": "Whenever the value of the Access Count Front Door 7 [input_number.accesscount_front_door_7] changes.", "conditions": "If the current numeric value of Access Count Front Door 7 [input_number.accesscount_front_door_7] is greater than zero.", "action": "Activates the access limit by turning on the Access Limit Front Door 7 [input_boolean.accesslimit_front_door_7]." }, "human_like": "Enables the access limit for the front door when the access count becomes positive.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_front_door_7", "result": { "structured": "TRIGGER: When Pin Synched Front Door 7 [binary_sensor.pin_synched_front_door_7] changes from on to off. CONDITIONS: Front Door Code Slot 7 [sensor.front_door_code_slot_7] is not unavailable. ACTIONS: If Active Front Door 7 [binary_sensor.active_front_door_7] is on, then add a code to Front Door Lock [lock.front_door_lock] in slot 7 using the value from Front Door PIN 7 [input_text.front_door_pin_7]. Otherwise, if Active Front Door 7 [binary_sensor.active_front_door_7] is off, then clear the code from Front Door Lock [lock.front_door_lock] in slot 7.", "natural_language": { "trigger": "When the Pin Synched Front Door 7 [binary_sensor.pin_synched_front_door_7] changes from being on to being off.", "conditions": "The Front Door Code Slot 7 [sensor.front_door_code_slot_7] must be available (its state must not be 'unavailable').", "action": "Depending on the state of Active Front Door 7 [binary_sensor.active_front_door_7], the automation will either add a new code or clear an existing one from the lock. If Active Front Door 7 is on, it will add a new code to slot 7 of the Front Door Lock [lock.front_door_lock], using the PIN stored in Front Door PIN 7 [input_text.front_door_pin_7]. If Active Front Door 7 is off, it will clear the code currently stored in slot 7 of the Front Door Lock." }, "human_like": "Synchronizes the PIN code for slot 7 on the front door lock when the sync status changes, either adding a new code or removing the old one based on whether the slot is marked as active.", "complexity": "medium" } }, { "id": "keymaster_turn_on_access_limit_front_door_8", "result": { "structured": "TRIGGER: When Access Count Front Door 8 [input_number.accesscount_front_door_8] changes state. CONDITIONS: The value of Access Count Front Door 8 [input_number.accesscount_front_door_8] is greater than 0. ACTIONS: Turn on Access Limit Front Door 8 [input_boolean.accesslimit_front_door_8].", "natural_language": { "trigger": "Whenever the value of the Access Count Front Door 8 [input_number.accesscount_front_door_8] changes.", "conditions": "The current numeric value of the Access Count Front Door 8 [input_number.accesscount_front_door_8] must be greater than zero.", "action": "Activates the access limit by turning on the Access Limit Front Door 8 [input_boolean.accesslimit_front_door_8]." }, "human_like": "Enables the access limit for the front door when the associated usage count becomes positive.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_front_door_8", "result": { "structured": "TRIGGER: When Pin Synched Front Door 8 [binary_sensor.pin_synched_front_door_8] changes from on to off. CONDITIONS: Front Door Code Slot 8 [sensor.front_door_code_slot_8] is not in the state 'unavailable'. ACTIONS: If Active Front Door 8 [binary_sensor.active_front_door_8] is on, then add a code to lock Front Door Lock [lock.front_door_lock] in slot 8 using the value from Front Door PIN 8 [input_text.front_door_pin_8] (stripped of whitespace). Otherwise, if Active Front Door 8 [binary_sensor.active_front_door_8] is off, then clear the code in slot 8 of lock Front Door Lock [lock.front_door_lock].", "natural_language": { "trigger": "When the Pin Synched Front Door 8 [binary_sensor.pin_synched_front_door_8] sensor changes from 'on' to 'off'.", "conditions": "The Front Door Code Slot 8 [sensor.front_door_code_slot_8] must be available, meaning its state is not 'unavailable'.", "action": "If the Active Front Door 8 [binary_sensor.active_front_door_8] sensor is on, it adds a new user code to slot 8 of the Front Door Lock [lock.front_door_lock] using the PIN stored in Front Door PIN 8 [input_text.front_door_pin_8]. If the Active Front Door 8 [binary_sensor.active_front_door_8] sensor is off, it clears the user code from slot 8 of the lock." }, "human_like": "Synchronizes the PIN code for slot 8 on the front door lock when a sync signal is received, either adding a new code or clearing the slot based on an activation status.", "complexity": "medium" } }, { "id": "keymaster_turn_on_access_limit_front_door_9", "result": { "structured": "TRIGGER: When Access Count Front Door 9 [input_number.accesscount_front_door_9] changes state. CONDITIONS: The numeric value of Access Count Front Door 9 [input_number.accesscount_front_door_9] is greater than 0. ACTIONS: Turn on Access Limit Front Door 9 [input_boolean.accesslimit_front_door_9].", "natural_language": { "trigger": "Whenever the value of Access Count Front Door 9 [input_number.accesscount_front_door_9] changes.", "conditions": "The current numeric value of Access Count Front Door 9 [input_number.accesscount_front_door_9] must be greater than zero.", "action": "Turns on the Access Limit Front Door 9 [input_boolean.accesslimit_front_door_9] switch." }, "human_like": "Activates the access limit for a specific user when their usage count becomes positive.", "complexity": "low" } }, { "id": "keymaster_synchronize_codeslot_front_door_9", "result": { "structured": "TRIGGER: When Pin Synched Front Door 9 [binary_sensor.pin_synched_front_door_9] changes from on to off. CONDITIONS: Front Door Code Slot 9 [sensor.front_door_code_slot_9] is not unavailable. ACTIONS: If Active Front Door 9 [binary_sensor.active_front_door_9] is on, then add a code to Front Door Lock [lock.front_door_lock] in slot 9 using the value from Front Door PIN 9 [input_text.front_door_pin_9]. Otherwise, if Active Front Door 9 [binary_sensor.active_front_door_9] is off, then clear the code from Front Door Lock [lock.front_door_lock] in slot 9.", "natural_language": { "trigger": "When the Pin Synched Front Door 9 [binary_sensor.pin_synched_front_door_9] sensor changes from being synced (on) to not synced (off).", "conditions": "The automation only runs if the Front Door Code Slot 9 [sensor.front_door_code_slot_9] sensor is reporting a valid state and is not unavailable.", "action": "Depending on the status of the Active Front Door 9 [binary_sensor.active_front_door_9] sensor, the automation will either program or remove a PIN code from the lock. If the slot is active, it will add the PIN code stored in Front Door PIN 9 [input_text.front_door_pin_9] to slot 9 of the Front Door Lock [lock.front_door_lock]. If the slot is not active, it will clear any existing code from slot 9 of the lock." }, "human_like": "Updates the smart lock's PIN code for slot 9 whenever the sync status changes, either programming a new code or clearing it based on whether the slot is marked as active.", "complexity": "medium" } }, { "id": "keymaster_front_door Reset Code Slot", "result": { "structured": "TRIGGER: When any of the following input_booleans changes to 'on': reset codeslot front door 1 [input_boolean.reset_codeslot_front_door_1], Reset Codeslot Front Door 2 [input_boolean.reset_codeslot_front_door_2], Reset Codeslot Front Door 3 [input_boolean.reset_codeslot_front_door_3], Reset Codeslot Front Door 4 [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. CONDITIONS: None. ACTIONS: Call script Keymaster Front Door Reset Codeslot [script.keymaster_front_door_reset_codeslot] with data_template code_slot set to the last part of the triggering entity_id (e.g., '1' for input_boolean.reset_codeslot_front_door_1).", "natural_language": { "trigger": "When any of the ten code slot reset switches for the front door, such as 'reset codeslot front door 1' [input_boolean.reset_codeslot_front_door_1] or 'Reset Codeslot Front Door 2' [input_boolean.reset_codeslot_front_door_2], are turned on.", "conditions": "There are no additional conditions that must be met.", "action": "It runs the 'Keymaster Front Door Reset Codeslot' [script.keymaster_front_door_reset_codeslot] script, passing the specific slot number (extracted from the switch that was turned on) to reset that particular code slot on the lock." }, "human_like": "Resets a specific code slot on the front door lock when its corresponding reset switch is turned on.", "complexity": "low" } }, { "id": "keymaster_front_door Lock Notifications", "result": { "structured": "TRIGGER: When a keymaster_lock_state_changed event occurs for the lock named 'front_door'. CONDITIONS: Front Door Lock Notifications [input_boolean.front_door_lock_notifications] is on. ACTIONS: Execute the script Keymaster Front Door Manual Notify [script.keymaster_front_door_manual_notify] with a title of 'front_door' and a message containing the event's action_text and, if the event's code_slot is greater than 0, the code_slot_name in parentheses.", "natural_language": { "trigger": "Whenever the state of the front door lock changes, as reported by a specific Keymaster event.", "conditions": "The automation only runs if the Front Door Lock Notifications [input_boolean.front_door_lock_notifications] switch is turned on.", "action": "Sends a notification by running the Keymaster Front Door Manual Notify [script.keymaster_front_door_manual_notify] script. The notification includes details about the lock action and, if a specific user code was used, the name associated with that code." }, "human_like": "Sends a notification whenever the front door lock is used, showing who unlocked it if a code was used.", "complexity": "low" } }, { "id": "keymaster_front_door User Notifications", "result": { "structured": "TRIGGER: When a keymaster_lock_state_changed event occurs for the lock named 'front_door'. CONDITIONS: (The event's code_slot value is greater than 0) AND (The input_boolean entity 'input_boolean.notify_front_door_' concatenated with the code_slot number is in the 'on' state) AND (Front Door Lock Notifications [input_boolean.front_door_lock_notifications] is off). ACTIONS: Execute the script Keymaster Front Door Manual Notify [script.keymaster_front_door_manual_notify] with data: title='front_door' and message containing the event's action_text and code_slot_name.", "natural_language": { "trigger": "When the Keymaster lock system reports a state change for the front door lock.", "conditions": "If the lock operation involved a user code slot (code_slot > 0), if the specific notification switch for that user code slot is turned on, and if the main lock notifications switch is turned off.", "action": "Sends a manual notification via the 'Keymaster Front Door Manual Notify' script, including details of the lock action and the name of the user who performed it." }, "human_like": "Sends a custom notification for specific users when the front door lock is used, but only when the main notification system is disabled.", "complexity": "medium" } }, { "id": "keymaster_front_door Door Open and Close", "result": { "structured": "TRIGGER: When Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] changes state. CONDITIONS: Front Door Door Access Notifications [input_boolean.front_door_dooraccess_notifications] is on AND (trigger.from_state.state is on OR off) AND (trigger.to_state.state is on OR off). ACTIONS: Run script Keymaster Front Door Manual Notify [script.keymaster_front_door_manual_notify] with data: title = 'front_door', message = 'Door Opened' if new state is on, else 'Door Closed'.", "natural_language": { "trigger": "Whenever the state of the Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] sensor changes.", "conditions": "The Front Door Door Access Notifications [input_boolean.front_door_dooraccess_notifications] must be turned on, and the state change must be between the 'on' and 'off' states (i.e., the door opening or closing).", "action": "Executes the script Keymaster Front Door Manual Notify [script.keymaster_front_door_manual_notify] to send a notification. The notification's title is 'front_door', and the message will be 'Door Opened' if the door sensor reports 'on', or 'Door Closed' if it reports 'off'." }, "human_like": "Sends a notification when the front door is opened or closed, but only if door access notifications are enabled.", "complexity": "low" } }, { "id": "keymaster_front_door Changed Code", "result": { "structured": "TRIGGER: When any of the front door PIN input text entities (front door pin 1 [input_text.front_door_pin_1], Front Door PIN 2 [input_text.front_door_pin_2], Front Door PIN 3 [input_text.front_door_pin_3], Front Door PIN 4 [input_text.front_door_pin_4], Front Door PIN 5 [input_text.front_door_pin_5], Front Door PIN 6 [input_text.front_door_pin_6], Front Door PIN 7 [input_text.front_door_pin_7], Front Door PIN 8 [input_text.front_door_pin_8], Front Door PIN 9 [input_text.front_door_pin_9], Front Door PIN 10 [input_text.front_door_pin_10]) changes state. CONDITIONS: The corresponding Enabled Front Door [input_boolean.enabled_front_door_] boolean for the triggered PIN slot is on AND the PIN value actually changed (old state is different from new state). ACTIONS: Create a persistent notification with title 'front_door LOCK MANAGER' and a message indicating the PIN for the specific slot was changed and needs to be enabled to become active, then turn off the corresponding Enabled Front Door [input_boolean.enabled_front_door_] boolean for that slot.", "natural_language": { "trigger": "Whenever the value of any of the ten front door PIN slots (e.g., front door pin 1, Front Door PIN 2, etc.) is updated.", "conditions": "The automation only proceeds if the specific PIN slot that changed is currently marked as enabled (its corresponding Enabled Front Door boolean is on) and the PIN value itself has actually changed from its previous state.", "action": "Sends a notification to the user stating that the PIN for the specific front door slot has been changed and reminding them to enable it to activate it. It then automatically disables that PIN slot by turning off its corresponding Enabled Front Door boolean." }, "human_like": "Notifies the user and disables a front door lock PIN slot whenever its code is changed, ensuring the new code must be manually re-enabled for security.", "complexity": "medium" } }, { "id": "keymaster_front_door Reset", "result": { "structured": "TRIGGER: When Front Door Reset Lock [input_boolean.front_door_reset_lock] changes from off to on. CONDITIONS: None. ACTIONS: Execute script Keymaster Front Door Reset Lock [script.keymaster_front_door_reset_lock] AND turn off Front Door Reset Lock [input_boolean.front_door_reset_lock].", "natural_language": { "trigger": "When the Front Door Reset Lock [input_boolean.front_door_reset_lock] is switched from off to on.", "conditions": "There are no conditions that must be met.", "action": "Runs the Keymaster Front Door Reset Lock [script.keymaster_front_door_reset_lock] script and then immediately turns the Front Door Reset Lock [input_boolean.front_door_reset_lock] back off." }, "human_like": "Resets the front door lock by running a reset script when a specific switch is turned on, and then turns the switch back off.", "complexity": "low" } }, { "id": "keymaster_front_door Decrement Access Count", "result": { "structured": "TRIGGER: When a keymaster_lock_state_changed event occurs for the lock named front_door. CONDITIONS: (Access Limit Front Door [input_boolean.accesslimit_front_door_] is on) AND (trigger event code_slot is greater than 0 AND (trigger event action_code is undefined OR trigger event action_code is 6 OR trigger event action_code is 19)). ACTIONS: Decrement the input_number entity named input_number.accesscount_front_door_ concatenated with the trigger event code_slot.", "natural_language": { "trigger": "When the keymaster system reports a lock state change for the front door.", "conditions": "If the Access Limit Front Door [input_boolean.accesslimit_front_door_] is enabled, and the code slot number from the event is greater than zero, and the action code from the event is either undefined or has a value of 6 or 19.", "action": "Decreases the access count for the specific code slot by calling the decrement service on the corresponding input_number entity." }, "human_like": "Reduces the usage count for a specific access code on the front door lock when it is used under defined conditions.", "complexity": "medium" } }, { "id": "keymaster_front_door_locked", "result": { "structured": "TRIGGER: When Front Door Lock [lock.front_door_lock] changes to locked. CONDITIONS: None. ACTIONS: Cancel Keymaster Front Door Autolock Timer [timer.keymaster_front_door_autolock].", "natural_language": { "trigger": "When the Front Door Lock [lock.front_door_lock] is locked.", "conditions": "There are no conditions.", "action": "Cancels the Keymaster Front Door Autolock Timer [timer.keymaster_front_door_autolock]." }, "human_like": "Cancels the automatic relock timer for the front door when the door is manually locked.", "complexity": "low" } }, { "id": "keymaster_turn_off_retry_front_door", "result": { "structured": "TRIGGER: When Front Door Lock [lock.front_door_lock] becomes locked. CONDITIONS: None. ACTIONS: Turn off Keymaster Front Door Retry [input_boolean.keymaster_front_door_retry].", "natural_language": { "trigger": "When the Front Door Lock [lock.front_door_lock] is locked.", "conditions": "There are no conditions for this automation.", "action": "Turns off the Keymaster Front Door Retry [input_boolean.keymaster_front_door_retry]." }, "human_like": "Turns off a retry flag for the front door lock when the door is successfully locked.", "complexity": "low" } }, { "id": "keymaster_retry_bolt_closed_front_door", "result": { "structured": "TRIGGER: When Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] changes to closed (off). CONDITIONS: Keymaster Front Door Retry [input_boolean.keymaster_front_door_retry] is on AND Keymaster Front Door Autolock [input_boolean.keymaster_front_door_autolock] is on. ACTIONS: Create a persistent notification with title 'front_door is closed' and message 'The front_door sensor indicates the door has been closed, re-attempting to lock.' AND Lock Bolt Checked Front Door [lock.boltchecked_front_door].", "natural_language": { "trigger": "When the Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] sensor reports that the door has been closed.", "conditions": "Both the Keymaster Front Door Retry [input_boolean.keymaster_front_door_retry] and the Keymaster Front Door Autolock [input_boolean.keymaster_front_door_autolock] switches must be turned on.", "action": "Sends a notification stating the door is closed and a re-lock is being attempted, and then commands the Bolt Checked Front Door [lock.boltchecked_front_door] to lock." }, "human_like": "Automatically re-locks the front door when it is closed, provided the retry and autolock features are enabled.", "complexity": "low" } }, { "id": "keymaster_front_door_opened", "result": { "structured": "TRIGGER: When Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] changes to open (on). CONDITIONS: Keymaster Front Door Autolock [input_boolean.keymaster_front_door_autolock] is on. ACTIONS: Start Keymaster Front Door Autolock Timer [timer.keymaster_front_door_autolock] with a duration determined by a template: if the next dusk occurs after the next dawn (i.e., it is currently daytime), use the value from Keymaster Front Door Autolock Night Time [input_text.keymaster_front_door_autolock_door_time_night]; otherwise, use the value from Keymaster Front Door Autolock Day Time [input_text.keymaster_front_door_autolock_door_time_day].", "natural_language": { "trigger": "When the Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] sensor detects that the door has been opened.", "conditions": "The automation only runs if the Keymaster Front Door Autolock [input_boolean.keymaster_front_door_autolock] is enabled (set to on).", "action": "Starts the Keymaster Front Door Autolock Timer [timer.keymaster_front_door_autolock]. The timer's duration is set dynamically based on the time of day: if it is currently daytime (when the next dusk is after the next dawn), the duration is taken from the Keymaster Front Door Autolock Night Time [input_text.keymaster_front_door_autolock_door_time_night] setting; otherwise, it uses the Keymaster Front Door Autolock Day Time [input_text.keymaster_front_door_autolock_door_time_day] setting." }, "human_like": "Starts an autolock timer when the front door is opened, using different delay times for day and night.", "complexity": "medium" } }, { "id": "keymaster_front_door_unlocked_start_autolock", "result": { "structured": "TRIGGER: When Front Door Lock [lock.front_door_lock] becomes unlocked. CONDITIONS: Keymaster Front Door Autolock [input_boolean.keymaster_front_door_autolock] is on. ACTIONS: Start the autolock timer by turning on Keymaster Front Door Start Timer [script.keymaster_front_door_start_timer] AND turn off Keymaster Front Door Retry [input_boolean.keymaster_front_door_retry].", "natural_language": { "trigger": "When the Front Door Lock [lock.front_door_lock] is unlocked.", "conditions": "If the Keymaster Front Door Autolock [input_boolean.keymaster_front_door_autolock] feature is enabled (set to 'on').", "action": "Starts the autolock timer by activating the Keymaster Front Door Start Timer [script.keymaster_front_door_start_timer] and resets the retry state by turning off Keymaster Front Door Retry [input_boolean.keymaster_front_door_retry]." }, "human_like": "Starts the automatic locking timer for the front door when it is unlocked, provided the autolock feature is enabled.", "complexity": "low" } }, { "id": "keymaster_front_door_timer_finished", "result": { "structured": "TRIGGER: When timer.finished event occurs for Keymaster Front Door Autolock Timer [timer.keymaster_front_door_autolock]. CONDITIONS: Keymaster Front Door Autolock [input_boolean.keymaster_front_door_autolock] is on. ACTIONS: Lock Bolt Checked Front Door [lock.boltchecked_front_door].", "natural_language": { "trigger": "When the Keymaster Front Door Autolock Timer [timer.keymaster_front_door_autolock] finishes its countdown.", "conditions": "Only if the Keymaster Front Door Autolock [input_boolean.keymaster_front_door_autolock] is switched on.", "action": "Locks the front door by activating the Bolt Checked Front Door [lock.boltchecked_front_door] lock." }, "human_like": "Automatically locks the front door when a timer finishes, but only if the auto-lock feature is enabled.", "complexity": "low" } }, { "id": "keymaster_front_door_timer_canceled", "result": { "structured": "TRIGGER: When the timer Keymaster Front Door Autolock Timer [timer.keymaster_front_door_autolock] is cancelled. CONDITIONS: None. ACTIONS: Turn off Keymaster Front Door Retry [input_boolean.keymaster_front_door_retry].", "natural_language": { "trigger": "When the Keymaster Front Door Autolock Timer [timer.keymaster_front_door_autolock] is cancelled.", "conditions": "There are no conditions for this automation.", "action": "Turns off the Keymaster Front Door Retry [input_boolean.keymaster_front_door_retry] input boolean." }, "human_like": "Cancels the front door lock retry flag when the autolock timer is manually stopped.", "complexity": "low" } }, { "id": "keymaster_front_door_disable_auto_lock", "result": { "structured": "TRIGGER: When Keymaster Front Door Autolock [input_boolean.keymaster_front_door_autolock] changes to off. CONDITIONS: None. ACTIONS: Cancel Keymaster Front Door Autolock Timer [timer.keymaster_front_door_autolock] AND turn off Keymaster Front Door Retry [input_boolean.keymaster_front_door_retry].", "natural_language": { "trigger": "When the Keymaster Front Door Autolock [input_boolean.keymaster_front_door_autolock] is turned off.", "conditions": "There are no additional conditions.", "action": "Cancels the Keymaster Front Door Autolock Timer [timer.keymaster_front_door_autolock] and turns off the Keymaster Front Door Retry [input_boolean.keymaster_front_door_retry]." }, "human_like": "Disables the automatic locking process for the front door by cancelling the timer and resetting the retry flag.", "complexity": "low" } }, { "id": "keymaster_front_door_enable_auto_lock", "result": { "structured": "TRIGGER: When Keymaster Front Door Autolock [input_boolean.keymaster_front_door_autolock] turns on. CONDITIONS: None. ACTIONS: Turn off Keymaster Front Door Retry [input_boolean.keymaster_front_door_retry], cancel Keymaster Front Door Autolock Timer [timer.keymaster_front_door_autolock], and start Keymaster Front Door Start Timer [script.keymaster_front_door_start_timer].", "natural_language": { "trigger": "When the Keymaster Front Door Autolock [input_boolean.keymaster_front_door_autolock] is switched on.", "conditions": "There are no conditions for this automation.", "action": "Turns off the Keymaster Front Door Retry [input_boolean.keymaster_front_door_retry] input boolean, cancels the Keymaster Front Door Autolock Timer [timer.keymaster_front_door_autolock], and runs the Keymaster Front Door Start Timer [script.keymaster_front_door_start_timer] script." }, "human_like": "Enables the front door auto-lock system by resetting related states and starting the lock timer.", "complexity": "low" } }, { "id": "keymaster_front_door_initialize", "result": { "structured": "TRIGGER: When Home Assistant starts. CONDITIONS: None. ACTIONS: Set Keymaster Front Door Autolock Day Time [input_text.keymaster_front_door_autolock_door_time_day] to '02:00:00' if its current value is empty or 'unknown', otherwise keep its current value. Set Keymaster Front Door Autolock Night Time [input_text.keymaster_front_door_autolock_door_time_night] to '00:05:00' if its current value is empty or 'unknown', otherwise keep its current value.", "natural_language": { "trigger": "When Home Assistant starts up.", "conditions": "There are no conditions for this automation.", "action": "It sets the day and night auto-lock times for the front door. Specifically, it checks the current value of 'Keymaster Front Door Autolock Day Time' [input_text.keymaster_front_door_autolock_door_time_day]. If it is empty or 'unknown', it sets it to '02:00:00'; otherwise, it leaves it unchanged. It then does the same for 'Keymaster Front Door Autolock Night Time' [input_text.keymaster_front_door_autolock_door_time_night], setting it to '00:05:00' if it's empty or 'unknown'." }, "human_like": "Initializes the front door's auto-lock schedule with default times when Home Assistant starts, ensuring the settings are never left empty.", "complexity": "low" } }, { "id": "aut_ha_startup", "result": { "structured": "TRIGGER: When Home Assistant starts. CONDITIONS: None. ACTIONS: Execute script scr_ha_startup.", "natural_language": { "trigger": "When Home Assistant finishes starting up.", "conditions": "There are no conditions that need to be met.", "action": "Runs the script named scr_ha_startup." }, "human_like": "Runs a startup script when Home Assistant boots up.", "complexity": "low" } }, { "id": "aut_masterbdrm_shades_mid_morning", "result": { "structured": "TRIGGER: At 10:00:00. CONDITIONS: Semaphore Good Morning Was Used [input_boolean.semaphore_good_morning_was_used] is on AND Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is off AND Sleeping [input_boolean.inp_bool_sleeping] is off. ACTIONS: Set Master Bedroom Outer Shades [cover.master_bedroom_outer_shades] position to 29.", "natural_language": { "trigger": "At 10:00 in the morning.", "conditions": "The 'Semaphore Good Morning Was Used' [input_boolean.semaphore_good_morning_was_used] must be on, the 'Extended Absence Mode' [input_boolean.inp_bool_extended_absence_mode] must be off, and the 'Sleeping' [input_boolean.inp_bool_sleeping] mode must also be off.", "action": "Sets the Master Bedroom Outer Shades [cover.master_bedroom_outer_shades] to a position of 29%." }, "human_like": "Adjusts the master bedroom shades to a partially open position at 10 AM, but only if the morning routine has been used and no one is sleeping or away.", "complexity": "low" } }, { "id": "aut_start_spt_leak_test", "result": { "structured": "TRIGGER: When the time reaches input_datetime.daily_start_spt OR When the template condition (Home YS Cell GPS Distance [sensor.home_ys_cell_gps_distance] > 2 AND Home KT Cell GPS Distance [sensor.home_kt_cell_gps_distance] > 2 AND script.scr_spt_start last_triggered attribute is not none) remains true for 15 minutes. CONDITIONS: Guest Mode [input_boolean.inp_bool_guest_mode] is off AND Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is off AND Dishwasher On or Off [binary_sensor.dishwasher_on_or_off] is off AND Top Load Washer [sensor.top_load_washer] is off AND the time difference between now and the last time this automation aut_start_spt_leak_test [automation.aut_start_spt_leak_test] was triggered is greater than 4 hours. ACTIONS: First, if Water Heater [binary_sensor.water_heater] is on, wait for it to turn off and remain off for 5 minutes. Then, execute script.scr_spt_start.", "natural_language": { "trigger": "The automation triggers either at a specific daily time defined by input_datetime.daily_start_spt, or when a custom condition is met for 15 minutes. This condition checks if both the Home YS Cell GPS Distance [sensor.home_ys_cell_gps_distance] and Home KT Cell GPS Distance [sensor.home_kt_cell_gps_distance] are greater than 2, and that a script named scr_spt_start has been triggered at least once before.", "conditions": "Several conditions must all be true: Guest Mode [input_boolean.inp_bool_guest_mode] must be off, Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] must be off, the Dishwasher On or Off [binary_sensor.dishwasher_on_or_off] must be off, and the Top Load Washer [sensor.top_load_washer] must be off. Additionally, at least four hours must have passed since this automation last ran.", "action": "The automation first checks if the Water Heater [binary_sensor.water_heater] is running. If it is, it will wait for the heater to turn off and stay off for five minutes. Once that wait is complete, or if the heater was already off, it proceeds to run the script scr_spt_start." }, "human_like": "This automation starts a leak test script when it's the scheduled daily time or when the house is empty, but only if no major appliances are running and it hasn't run in the last four hours.", "complexity": "high" } }, { "id": "delayed_spt_leak_test", "result": { "structured": "TRIGGER: When SPT Data Status [sensor.spt_data_status] changes from 'in_process' to 'aborted'. CONDITIONS: Guest Mode [input_boolean.inp_bool_guest_mode] is off AND Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is off AND Dishwasher On or Off [binary_sensor.dishwasher_on_or_off] is off AND Top Load Washer [sensor.top_load_washer] is off. ACTIONS: Wait 15 minutes. Then, if Water Heater [binary_sensor.water_heater] is on, wait until Water Heater [binary_sensor.water_heater] changes from 'on' to 'off' and remains off for 5 minutes. Finally, execute script.scr_spt_start.", "natural_language": { "trigger": "When the SPT Data Status [sensor.spt_data_status] changes from 'in_process' to 'aborted'.", "conditions": "Guest Mode [input_boolean.inp_bool_guest_mode] and Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] must both be off. Additionally, the Dishwasher On or Off [binary_sensor.dishwasher_on_or_off] and the Top Load Washer [sensor.top_load_washer] must also be off.", "action": "After a 15-minute delay, if the Water Heater [binary_sensor.water_heater] is currently on, the automation will wait for it to turn off and remain off for 5 minutes. Once that condition is met, or if the water heater was already off, it will start the SPT leak test by running the script.scr_spt_start." }, "human_like": "This automation delays and then starts an SPT leak test when a previous test was aborted, but only if guest and extended absence modes are off and no major appliances are running.", "complexity": "medium" } }, { "id": "spt_max_aborts_exceeded_error", "result": { "structured": "TRIGGER: When the attribute 'consec_aborts' of SPT Data Status [sensor.spt_data_status] is greater than 3. CONDITIONS: None. ACTIONS: Send a notification via gmail_to_yang with title 'SPT consecutive aborts exceeds threshold' and message containing the current 'consec_aborts' attribute value.", "natural_language": { "trigger": "When the 'consecutive aborts' counter for the SPT Data Status [sensor.spt_data_status] sensor exceeds 3.", "conditions": "There are no additional conditions that must be met.", "action": "Sends an email notification via the 'gmail_to_yang' service, alerting that the consecutive abort threshold has been exceeded and reporting the current count." }, "human_like": "Sends an email alert when the SPT system experiences too many consecutive aborts.", "complexity": "low" } }, { "id": "aut_start_vacuum", "result": { "structured": "TRIGGER: When the time is 07:35:00. CONDITIONS: (Day is Sunday) AND (Vacuum Every Sunday [input_boolean.inp_bool_vacuum_every_sunday] is on) AND (Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is off) AND (Guest Mode [input_boolean.inp_bool_guest_mode] is off) AND (Yang [person.yang] is not home) AND (Karen [person.karen] is not home). ACTIONS: Execute script scr_vacuum_start_custom_cleaning.", "natural_language": { "trigger": "The automation triggers every day at 7:35 AM.", "conditions": "The automation only runs if it is a Sunday, the 'Vacuum Every Sunday' [input_boolean.inp_bool_vacuum_every_sunday] switch is turned on, both the 'Extended Absence Mode' [input_boolean.inp_bool_extended_absence_mode] and 'Guest Mode' [input_boolean.inp_bool_guest_mode] switches are turned off, and neither Yang [person.yang] nor Karen [person.karen] are at home.", "action": "Starts a custom vacuum cleaning routine by running the script scr_vacuum_start_custom_cleaning." }, "human_like": "Automatically starts the vacuum cleaner on Sunday mornings at 7:35 AM, but only if nobody is home and the appropriate modes are disabled.", "complexity": "medium" } }, { "id": "aut_assume_awake", "result": { "structured": "TRIGGER: When the current time reported by Time [sensor.time] matches the time value stored in the input_datetime.assume_awake entity (formatted as HH:MM). CONDITIONS: None. ACTIONS: Turn off Sleeping [input_boolean.inp_bool_sleeping] AND turn off Visitor While Sleeping Flag [input_boolean.inp_bool_visitor_while_sleeping_flag].", "natural_language": { "trigger": "When the current time, as shown by the Time [sensor.time] sensor, becomes equal to the specific time set in the 'assume_awake' input_datetime entity.", "conditions": "There are no additional conditions that must be met.", "action": "It turns off two status flags: Sleeping [input_boolean.inp_bool_sleeping] and Visitor While Sleeping Flag [input_boolean.inp_bool_visitor_while_sleeping_flag]." }, "human_like": "Automatically marks the household as awake and clears a visitor flag at a preset time each day.", "complexity": "low" } }, { "id": "aut_assume_asleep", "result": { "structured": "TRIGGER: When the current time from Time [sensor.time] matches the time set in input_datetime.assume_asleep [input_datetime.assume_asleep]. CONDITIONS: None. ACTIONS: Turn on Sleeping [input_boolean.inp_bool_sleeping].", "natural_language": { "trigger": "When the current time, provided by the Time [sensor.time] sensor, equals the specific time configured in the input_datetime.assume_asleep entity.", "conditions": "There are no conditions for this automation.", "action": "Sets the Sleeping [input_boolean.inp_bool_sleeping] status to on." }, "human_like": "Automatically marks you as sleeping at a pre-set time.", "complexity": "low" } }, { "id": "aut_datetime_announcements_on", "result": { "structured": "TRIGGER: When the current time matches the value of input_datetime.announcements_enable. CONDITIONS: None. ACTIONS: Turn on Announcements [input_boolean.inp_bool_announcements].", "natural_language": { "trigger": "At the specific time set in the entity input_datetime.announcements_enable.", "conditions": "There are no conditions that must be met.", "action": "Enables announcements by turning on the Announcements [input_boolean.inp_bool_announcements] switch." }, "human_like": "Turns on the announcements feature at a scheduled time.", "complexity": "low" } }, { "id": "aut_datetime_announcements_off", "result": { "structured": "TRIGGER: At the time specified by input_datetime.announcements_disable. CONDITIONS: None. ACTIONS: Turn off Announcements [input_boolean.inp_bool_announcements].", "natural_language": { "trigger": "At a specific time of day, which is set by the input_datetime.announcements_disable entity.", "conditions": "There are no additional conditions that must be met.", "action": "Disables announcements by turning off the Announcements [input_boolean.inp_bool_announcements] switch." }, "human_like": "Automatically turns off announcements at a scheduled time.", "complexity": "low" } }, { "id": "aut_hourly_announcement", "result": { "structured": "TRIGGER: When the time matches the pattern where minutes are 0 (i.e., every hour on the hour). CONDITIONS: None. ACTIONS: Execute script scr_say_phrase with a message template: 'The time is [current hour and minute, formatted with spoken conventions like 'o'clock' and 'oh' for minutes under 10]'.", "natural_language": { "trigger": "Every hour, precisely when the clock strikes the top of the hour (e.g., 1:00, 2:00).", "conditions": "There are no conditions that must be met for this automation to run.", "action": "Runs a script called scr_say_phrase [script.scr_say_phrase] that announces the current time. The announcement uses a natural speaking format, converting times like 1:00 to '1 o'clock' and times like 1:05 to '1 oh 5'." }, "human_like": "Announces the time in a spoken format every hour on the hour.", "complexity": "low" } }, { "id": "aut_mood_lights_daily_off", "result": { "structured": "TRIGGER: When Sleeping [input_boolean.inp_bool_sleeping] turns on. CONDITIONS: None. ACTIONS: Execute script scr_reset_mood_lights_to_default AND turn off Sun Room Uplights [light.sun_room_uplights], Candles [switch.candles], Kitchen LEDs Upper Master [light.kitchen_leds_upper_master], and Christmas Tree [switch.christmas_tree].", "natural_language": { "trigger": "When the Sleeping [input_boolean.inp_bool_sleeping] indicator is turned on.", "conditions": "There are no conditions that must be met.", "action": "First, run the script called scr_reset_mood_lights_to_default. Then, turn off the Sun Room Uplights [light.sun_room_uplights], the Candles [switch.candles], the Kitchen LEDs Upper Master [light.kitchen_leds_upper_master], and the Christmas Tree [switch.christmas_tree]." }, "human_like": "Turns off mood and decorative lights when the house is set to sleeping mode.", "complexity": "low" } }, { "id": "aut_good_morning_used_semphore_reset", "result": { "structured": "TRIGGER: At 23:59:00 daily. CONDITIONS: None. ACTIONS: Turn off Semaphore Good Morning Was Used [input_boolean.semaphore_good_morning_was_used].", "natural_language": { "trigger": "Every day at 11:59 PM.", "conditions": "There are no conditions for this automation.", "action": "Resets the 'Semaphore Good Morning Was Used' flag by turning it off." }, "human_like": "Resets the 'Good Morning' usage flag just before midnight each day.", "complexity": "low" } }, { "id": "aut_outdoor_lights_failsafe", "result": { "structured": "TRIGGER: At 01:05:00 daily OR When Outdoor Lights [group.outdoor_lights] remains on for 120 minutes. CONDITIONS: None. ACTIONS: Turn off Outdoor Lights [group.outdoor_lights].", "natural_language": { "trigger": "The automation triggers every day at 1:05 AM, or if the Outdoor Lights [group.outdoor_lights] have been left on continuously for two hours.", "conditions": "There are no conditions that must be met for the action to run.", "action": "Turns off the Outdoor Lights [group.outdoor_lights]." }, "human_like": "Ensures outdoor lights are turned off either at a set time each night or if they have been left on for too long.", "complexity": "low" } }, { "id": "aut_indoor_lights_failsafe", "result": { "structured": "TRIGGER: When the time is 02:30:00. CONDITIONS: None. ACTIONS: Turn off Indoor Lights [group.indoor_lights].", "natural_language": { "trigger": "At 2:30 AM every day.", "conditions": "There are no conditions that need to be met.", "action": "Turns off all the lights in the Indoor Lights [group.indoor_lights] group." }, "human_like": "Turns off all indoor lights every night at 2:30 AM as a failsafe.", "complexity": "low" } }, { "id": "aut_party_mode_on", "result": { "structured": "TRIGGER: When Party Mode [input_boolean.party_mode] changes from off to on. CONDITIONS: None. ACTIONS: Turn on Living Room Lights [light.living_room_lights] with brightness set to 30% AND Turn on Track Lights [light.track_lights], Kitchen Lights [group.kitchen_lights], Sun Room Lights [light.sun_room_lights], Eating Area Lights [light.eating_area_lights], and Entryway Lights [light.entryway_lights].", "natural_language": { "trigger": "When the Party Mode [input_boolean.party_mode] is switched from off to on.", "conditions": "There are no conditions that must be met for the actions to run.", "action": "Turns on the Living Room Lights [light.living_room_lights] at 30% brightness, and also turns on the Track Lights [light.track_lights], Kitchen Lights [group.kitchen_lights], Sun Room Lights [light.sun_room_lights], Eating Area Lights [light.eating_area_lights], and Entryway Lights [light.entryway_lights]." }, "human_like": "Activates a party lighting scene by turning on multiple light groups at a dimmed level when party mode is enabled.", "complexity": "low" } }, { "id": "aut_party_mode_off", "result": { "structured": "TRIGGER: When Party Mode [input_boolean.party_mode] changes from on to off. CONDITIONS: None. ACTIONS: Turn off Track Lights [light.track_lights], Sun Room Lights [light.sun_room_lights], Eating Area Lights [light.eating_area_lights], and Entryway Lights [light.entryway_lights]. Lock Front Door Lock [lock.front_door_lock] and back door lock [lock.back_door_lock].", "natural_language": { "trigger": "When the Party Mode [input_boolean.party_mode] switch is turned off.", "conditions": "There are no additional conditions that must be met.", "action": "Turns off all the party lights (Track Lights, Sun Room Lights, Eating Area Lights, and Entryway Lights) and locks both the front and back doors." }, "human_like": "Turns off the party lights and locks the doors when Party Mode is disabled.", "complexity": "low" } }, { "id": "aut_datetime_party_mode_on", "result": { "structured": "TRIGGER: When the time reaches the value set in input_datetime.party_mode_start. CONDITIONS: Party Mode [input_boolean.party_mode] is off. ACTIONS: Turn on Party Mode [input_boolean.party_mode].", "natural_language": { "trigger": "At the specific time defined by the input_datetime.party_mode_start entity.", "conditions": "Party Mode [input_boolean.party_mode] must currently be off.", "action": "Turn on the Party Mode [input_boolean.party_mode] input boolean." }, "human_like": "Automatically turns on Party Mode at a scheduled start time.", "complexity": "low" } }, { "id": "aut_datetime_party_mode_off", "result": { "structured": "TRIGGER: At the time specified by input_datetime.party_mode_end. CONDITIONS: Party Mode [input_boolean.party_mode] is on. ACTIONS: Turn off Party Mode [input_boolean.party_mode].", "natural_language": { "trigger": "When the scheduled time set in the input_datetime.party_mode_end entity is reached.", "conditions": "If the Party Mode [input_boolean.party_mode] is currently active (on).", "action": "Deactivates the party mode by turning off the Party Mode [input_boolean.party_mode] switch." }, "human_like": "Automatically turns off the party mode at a scheduled end time.", "complexity": "low" } }, { "id": "auto_adj_lvrm_brightness", "result": { "structured": "TRIGGER: When Living Room Suggested Brightness [sensor.lv_rm_suggested_brightness] changes state. CONDITIONS: Party Mode [input_boolean.party_mode] is off AND (Living Room Lights [light.living_room_lights] is on OR Living Room TV [media_player.tv_livingrm] is on). ACTIONS: Turn on Living Room Lights [light.living_room_lights] and set its brightness percentage to the integer value of the state of Living Room Suggested Brightness [sensor.lv_rm_suggested_brightness] (defaulting to 0 if not a valid integer).", "natural_language": { "trigger": "Whenever the Living Room Suggested Brightness [sensor.lv_rm_suggested_brightness] sensor updates its value.", "conditions": "Party Mode [input_boolean.party_mode] must be turned off. Additionally, either the Living Room Lights [light.living_room_lights] must be on, or the Living Room TV [media_player.tv_livingrm] must be on.", "action": "Adjusts the brightness of the Living Room Lights [light.living_room_lights] to the percentage value reported by the Living Room Suggested Brightness [sensor.lv_rm_suggested_brightness] sensor." }, "human_like": "Automatically adjusts the living room lights to a suggested brightness level when the TV or lights are on, but only if party mode is disabled.", "complexity": "medium" } }, { "id": "aut_lum_outdoor_lights_solar_trig_on", "result": { "structured": "TRIGGER: When the solar radiation sensor [sensor.kflwildw56_backed_up_local_solar_rad_lx] value is less than or equal to the threshold [input_number.inp_num_outdoor_lights_on_solar_trig]. CONDITIONS: None. ACTIONS: Turn on Lum Outdoor Lights Solar Trigger [input_boolean.inp_bool_lum_outdoor_lights_solar_trig].", "natural_language": { "trigger": "When the solar radiation level reported by KFL Wild W56 Backed Up Local Solar Rad LX [sensor.kflwildw56_backed_up_local_solar_rad_lx] falls below or equals the threshold value set in Outdoor Lights On Solar Trigger [input_number.inp_num_outdoor_lights_on_solar_trig].", "conditions": "There are no additional conditions that must be met.", "action": "Activates the outdoor lights solar trigger by turning on the Lum Outdoor Lights Solar Trigger [input_boolean.inp_bool_lum_outdoor_lights_solar_trig]." }, "human_like": "Turns on the outdoor lights trigger when the solar radiation level is low enough, indicating it's getting dark.", "complexity": "low" } }, { "id": "aut_lum_outdoor_lights_solar_trig_off", "result": { "structured": "TRIGGER: When the solar radiation sensor [sensor.kflwildw56_backed_up_local_solar_rad_lx] value is greater than or equal to the configured threshold [input_number.inp_num_outdoor_lights_off_solar_trig]. CONDITIONS: None. ACTIONS: Turn off Lum Outdoor Lights Solar Trigger [input_boolean.inp_bool_lum_outdoor_lights_solar_trig].", "natural_language": { "trigger": "When the solar radiation level reported by KFL Wild W56 Backed Up Local Solar Rad LX [sensor.kflwildw56_backed_up_local_solar_rad_lx] reaches or exceeds the threshold value set in Outdoor Lights Off Solar Trigger [input_number.inp_num_outdoor_lights_off_solar_trig].", "conditions": "There are no additional conditions that must be met.", "action": "Disables the solar trigger for outdoor lights by turning off the Lum Outdoor Lights Solar Trigger [input_boolean.inp_bool_lum_outdoor_lights_solar_trig]." }, "human_like": "Turns off the outdoor lights solar trigger when the measured solar radiation is bright enough.", "complexity": "low" } }, { "id": "aut_lum_mood_lights_f_solar_trig_on", "result": { "structured": "TRIGGER: When the current illuminance value from Filtered KFL Wild W56 Local Rad LX [sensor.filtered_kflwildw56_bu_local_rad_lx] is less than or equal to the threshold value from Mood Lights On F Solar Trigger [input_number.inp_num_mood_lights_on_f_solar_trig]. CONDITIONS: None. ACTIONS: Turn on Lum Mood Lights F Solar Trigger [input_boolean.inp_bool_lum_mood_lights_f_solar_trig].", "natural_language": { "trigger": "The automation triggers when the measured illuminance from the sensor Filtered KFL Wild W56 Local Rad LX [sensor.filtered_kflwildw56_bu_local_rad_lx] falls at or below the threshold level set in the input number Mood Lights On F Solar Trigger [input_number.inp_num_mood_lights_on_f_solar_trig].", "conditions": "There are no additional conditions that must be met for this automation to run.", "action": "It turns on the input boolean Lum Mood Lights F Solar Trigger [input_boolean.inp_bool_lum_mood_lights_f_solar_trig]." }, "human_like": "Turns on a mood light trigger when the ambient light level gets dark enough.", "complexity": "low" } }, { "id": "aut_lum_mood_lights_f_solar_trig_off", "result": { "structured": "TRIGGER: When the current value of Filtered KFL Wild W56 Local Rad LX [sensor.filtered_kflwildw56_bu_local_rad_lx] is greater than or equal to the value of Mood Lights Off F Solar Trigger [input_number.inp_num_mood_lights_off_f_solar_trig]. CONDITIONS: None. ACTIONS: Turn off Lum Mood Lights F Solar Trigger [input_boolean.inp_bool_lum_mood_lights_f_solar_trig].", "natural_language": { "trigger": "When the ambient light level, measured by the sensor Filtered KFL Wild W56 Local Rad LX [sensor.filtered_kflwildw56_bu_local_rad_lx], reaches or exceeds a user-defined threshold set in Mood Lights Off F Solar Trigger [input_number.inp_num_mood_lights_off_f_solar_trig].", "conditions": "There are no additional conditions that must be met.", "action": "It turns off the Lum Mood Lights F Solar Trigger [input_boolean.inp_bool_lum_mood_lights_f_solar_trig]." }, "human_like": "Turns off a mood light trigger when the ambient light level is bright enough.", "complexity": "low" } }, { "id": "aut_lum_sunrm_shades_trig_on", "result": { "structured": "TRIGGER: When the solar radiation sensor KFL Wild W56 Backed Up Local Solar Rad LX [sensor.kflwildw56_backed_up_local_solar_rad_lx] reports a value greater than or equal to the threshold set in Sunroom Shades Open Trigger [input_number.inp_num_sunrm_shades_open_trig]. CONDITIONS: None. ACTIONS: Turn on Lum Sunroom Shades Trigger [input_boolean.inp_bool_lum_sunrm_shades_trig].", "natural_language": { "trigger": "When the measured solar radiation from the sensor KFL Wild W56 Backed Up Local Solar Rad LX [sensor.kflwildw56_backed_up_local_solar_rad_lx] reaches or exceeds the threshold value defined in the Sunroom Shades Open Trigger [input_number.inp_num_sunrm_shades_open_trig].", "conditions": "There are no additional conditions that must be met.", "action": "Activates the Lum Sunroom Shades Trigger [input_boolean.inp_bool_lum_sunrm_shades_trig] by turning it on." }, "human_like": "Turns on a trigger for sunroom shades when the solar radiation level is high enough.", "complexity": "low" } }, { "id": "aut_lum_sunrm_shades_trig_off", "result": { "structured": "TRIGGER: When the solar radiation sensor [sensor.kflwildw56_backed_up_local_solar_rad_lx] value is less than or equal to the threshold [input_number.inp_num_sunrm_shades_close_low_lux_trig] for a duration defined by the delay [input_number.inp_num_sunrm_shades_close_low_lux_trig_delay] minutes. CONDITIONS: None. ACTIONS: Turn off Lum Sunroom Shades Trigger [input_boolean.inp_bool_lum_sunrm_shades_trig].", "natural_language": { "trigger": "When the measured solar radiation from the sensor [sensor.kflwildw56_backed_up_local_solar_rad_lx] falls to or below the set threshold [input_number.inp_num_sunrm_shades_close_low_lux_trig] and stays that way for the specified number of minutes [input_number.inp_num_sunrm_shades_close_low_lux_trig_delay].", "conditions": "There are no additional conditions that must be met for this automation to run.", "action": "Deactivates the Lum Sunroom Shades Trigger [input_boolean.inp_bool_lum_sunrm_shades_trig] by turning it off." }, "human_like": "Turns off the sunroom shades trigger when the outdoor light level stays low for a set amount of time.", "complexity": "medium" } }, { "id": "aut_office_mood_lights_auto_on", "result": { "structured": "TRIGGER: When YS Desktop Availability [binary_sensor.ys_desktop_availability] changes from off to on OR when the time elapsed since YS Desktop Last Active [sensor.ys_desktop_lastactive] is less than 15 seconds. CONDITIONS: Office Mood Lights [group.office_mood_lights] is off AND Lum Outdoor Lights Solar Trigger [input_boolean.inp_bool_lum_outdoor_lights_solar_trig] is on. ACTIONS: Turn on Office Monitor LEDs [light.office_monitor_leds] AND set Office Cabinet LEDs Preset [select.office_cabinet_leds_preset] to 'Upper Blu-Org'.", "natural_language": { "trigger": "When the YS Desktop Availability [binary_sensor.ys_desktop_availability] becomes available (turns on), or when the YS Desktop Last Active [sensor.ys_desktop_lastactive] sensor indicates the desktop was active less than 15 seconds ago.", "conditions": "The Office Mood Lights [group.office_mood_lights] must be off, and the Lum Outdoor Lights Solar Trigger [input_boolean.inp_bool_lum_outdoor_lights_solar_trig] must be on.", "action": "Turn on the Office Monitor LEDs [light.office_monitor_leds] and set the Office Cabinet LEDs Preset [select.office_cabinet_leds_preset] to the 'Upper Blu-Org' option." }, "human_like": "Automatically turns on the office mood lights when the desktop is available or recently active, provided the outdoor solar trigger is active.", "complexity": "medium" } }, { "id": "aut_office_mood_lights_auto_off", "result": { "structured": "TRIGGER: When YS Desktop Availability [binary_sensor.ys_desktop_availability] becomes unavailable (off) OR When the time difference between now and the last active time of YS Desktop Last Active [sensor.ys_desktop_lastactive] exceeds 3600 seconds (1 hour) OR When Lum Outdoor Lights Solar Trigger [input_boolean.inp_bool_lum_outdoor_lights_solar_trig] is turned off. CONDITIONS: None. ACTIONS: Turn off Office Mood Lights [group.office_mood_lights].", "natural_language": { "trigger": "The automation triggers when the YS Desktop Availability [binary_sensor.ys_desktop_availability] changes to off, indicating the desktop is unavailable. It also triggers when the YS Desktop Last Active [sensor.ys_desktop_lastactive] sensor shows the desktop has been inactive for more than one hour. Finally, it triggers when the Lum Outdoor Lights Solar Trigger [input_boolean.inp_bool_lum_outdoor_lights_solar_trig] is switched off.", "conditions": "There are no conditions that must be met for the action to run.", "action": "Turns off the group of lights named Office Mood Lights [group.office_mood_lights]." }, "human_like": "Automatically turns off the office mood lights when the desktop computer becomes unavailable, has been inactive for an hour, or when the outdoor solar light trigger is turned off.", "complexity": "medium" } }, { "id": "aut_update_ys_cell_ble_tracker", "result": { "structured": "TRIGGER: When YS Cell BLE Room [sensor.ys_cell_ble_room] changes to an unknown (null) state OR when Home Assistant starts. CONDITIONS: None. ACTIONS: Update the device tracker for device 'ys_cell_ble' with a location name of 'home' if YS Cell BLE Room [sensor.ys_cell_ble_room] is not 'not_home', otherwise set the location name to 'not_home'.", "natural_language": { "trigger": "The automation triggers either when the YS Cell BLE Room [sensor.ys_cell_ble_room] sensor reports an unknown (null) state, or when the Home Assistant system starts up.", "conditions": "There are no conditions for this automation.", "action": "Updates the location of the device tracker for the device named 'ys_cell_ble'. If the YS Cell BLE Room [sensor.ys_cell_ble_room] sensor's state is anything other than 'not_home', the device is marked as being at 'home'. If the sensor's state is 'not_home', the device is marked as 'not_home'." }, "human_like": "Updates the location of a Bluetooth device tracker based on a room sensor, ensuring its status is correct on system startup or when the sensor data becomes unavailable.", "complexity": "medium" } }, { "id": "aut_update_kt_cell_ble_tracker", "result": { "structured": "TRIGGER: When KT Cell BLE Room [sensor.kt_cell_ble_room] changes to an unknown (null) state OR when Home Assistant starts. CONDITIONS: None. ACTIONS: Update the device tracker for device 'kt_cell_ble' with a location name of 'home' if KT Cell BLE Room [sensor.kt_cell_ble_room] is not 'not_home', otherwise update with location name 'not_home'.", "natural_language": { "trigger": "The automation triggers either when the KT Cell BLE Room [sensor.kt_cell_ble_room] sensor reports an unknown (null) state, or when the Home Assistant system starts up.", "conditions": "There are no conditions that must be met for the action to run.", "action": "Updates the location of a device tracker named 'kt_cell_ble'. It sets the location to 'home' if the KT Cell BLE Room [sensor.kt_cell_ble_room] is not 'not_home', otherwise it sets the location to 'not_home'." }, "human_like": "Updates the location of a Bluetooth device based on its room sensor, ensuring its status is correct on system startup or when the sensor data is lost.", "complexity": "low" } }, { "id": "aut_ups_on_battery_mode", "result": { "structured": "TRIGGER: When Rack UPS Input Voltage [sensor.rackups_input_voltage] is less than or equal to Rack UPS Low Voltage Transfer [sensor.rackups_low_voltage_transfer] OR When Rack UPS Input Voltage [sensor.rackups_input_voltage] is greater than or equal to Rack UPS High Voltage Transfer [sensor.rackups_high_voltage_transfer]. CONDITIONS: Rack UPS Status [sensor.rackups_status] is not 'unavailable'. ACTIONS: Send a notification via notify.gmail_to_yang with the title 'HA UPS on battery power' and the message 'HA UPS on battery mode: [current state of Rack UPS Status [sensor.rackups_status]]'.", "natural_language": { "trigger": "When the input voltage of the rack UPS [sensor.rackups_input_voltage] falls to or below the low voltage transfer threshold [sensor.rackups_low_voltage_transfer], or when it rises to or above the high voltage transfer threshold [sensor.rackups_high_voltage_transfer].", "conditions": "The automation only runs if the rack UPS status [sensor.rackups_status] is available and not reporting as 'unavailable'.", "action": "Sends an email notification via the 'gmail_to_yang' service, alerting that the UPS is on battery power and including the current UPS status." }, "human_like": "Sends an email alert when the rack UPS input voltage goes outside the normal range, indicating it has switched to battery power.", "complexity": "medium" } }, { "id": "aut_ups_on_ac_mode", "result": { "structured": "TRIGGER: When the value of Rack UPS Input Voltage [sensor.rackups_input_voltage] is greater than the value of Rack UPS Low Voltage Transfer [sensor.rackups_low_voltage_transfer] AND less than the value of Rack UPS High Voltage Transfer [sensor.rackups_high_voltage_transfer]. CONDITIONS: Rack UPS Status [sensor.rackups_status] is not 'unavailable'. ACTIONS: Send a notification via notify.gmail_to_yang with title 'HA grid power restored' and message 'HA UPS on AC mode: ' AND turn on Ceiling Fans [group.ceiling_fans].", "natural_language": { "trigger": "When the input voltage of the rack UPS is measured to be within a normal operating range, specifically when it is higher than the low voltage transfer threshold and lower than the high voltage transfer threshold.", "conditions": "The automation only proceeds if the Rack UPS Status [sensor.rackups_status] sensor is reporting a value and is not in an 'unavailable' state.", "action": "Sends an email notification to a specified recipient, announcing that grid power has been restored and includes the current UPS status. It also turns on all ceiling fans in the home." }, "human_like": "When the UPS detects that grid power has returned to a normal voltage range, it sends a notification and turns on the ceiling fans.", "complexity": "medium" } }, { "id": "aut_ups_emergency_shutdown", "result": { "structured": "TRIGGER: When Rack UPS Battery Runtime [sensor.rackups_battery_runtime] falls below 600 seconds. CONDITIONS: Rack UPS Status [sensor.rackups_status] is not in the 'unavailable' state. ACTIONS: Send a notification via Gmail to Yang with title 'HA UPS emergency shutdown' and message containing the remaining battery runtime. Send a notification to the mobile app 'ys_cell' with title 'HA UPS emergency shutdown', message containing the remaining battery runtime, and car_ui data set to true. Shut down the Home Assistant host system.", "natural_language": { "trigger": "When the battery runtime of the rack UPS, monitored by Rack UPS Battery Runtime [sensor.rackups_battery_runtime], drops below 600 seconds (10 minutes).", "conditions": "This automation only runs if the status sensor for the UPS, Rack UPS Status [sensor.rackups_status], is reporting a value and is not 'unavailable'.", "action": "It sends an emergency email notification to a Gmail account and a push notification to a mobile device, both warning about the low battery and stating the remaining runtime in seconds. Finally, it initiates a shutdown of the Home Assistant host computer to preserve power." }, "human_like": "Automatically shuts down the server and sends alerts when the UPS battery is critically low to prevent an uncontrolled power loss.", "complexity": "low" } }, { "id": "irrig_leak_while_valves_off", "result": { "structured": "TRIGGER: When Irrigation Report Avg GPM Zone 0 [sensor.irrig_report_avg_gpm_zone_0] reports a flow rate greater than 0 GPM. CONDITIONS: The system uptime (current time minus the value from Uptime [sensor.uptime]) is greater than 10 seconds. ACTIONS: Send a notification to mobile_app_yskt_cell with a title and message about an irrigation leak and the current flow rate. Send a notification to gmail_to_yang with a title and message about an irrigation leak and the current flow rate.", "natural_language": { "trigger": "When the sensor monitoring the average irrigation flow rate, Irrigation Report Avg GPM Zone 0 [sensor.irrig_report_avg_gpm_zone_0], detects any water flow (greater than 0 gallons per minute).", "conditions": "The automation only proceeds if the Home Assistant system has been running for more than 10 seconds, as determined by comparing the current time with the value from the Uptime [sensor.uptime] sensor.", "action": "Sends two alert notifications: one to a mobile device (mobile_app_yskt_cell) and one via email (gmail_to_yang). Both alerts state that an irrigation leak has been detected while all valves are presumably off, and include the current measured flow rate." }, "human_like": "Sends leak alerts if water flow is detected in the irrigation system when it should be off, but only after the system has been running for a short time to avoid false alarms on startup.", "complexity": "medium" } }, { "id": "irrig_leak_zone_1_front", "result": { "structured": "TRIGGER: When Irrigation Report Avg GPM Zone 1 [sensor.irrig_report_avg_gpm_zone_1] value is greater than Irrigation Zone 1 Front Yard GPM Limit [input_number.irrig_z1_front_yd_gpm_limit] value. CONDITIONS: None. ACTIONS: Send a notification to mobile_app_yskt_cell with title and message 'Irrig leak detected in zone 1 (front): [current GPM value] GPM' AND send a notification to gmail_to_yang with title and message 'Irrig leak detected in zone 1 (front): [current GPM value] GPM'.", "natural_language": { "trigger": "When the average water flow rate for irrigation zone 1, reported by Irrigation Report Avg GPM Zone 1 [sensor.irrig_report_avg_gpm_zone_1], exceeds the configured limit set by Irrigation Zone 1 Front Yard GPM Limit [input_number.irrig_z1_front_yd_gpm_limit].", "conditions": "There are no additional conditions that must be met.", "action": "Sends an alert notification to a mobile device (mobile_app_yskt_cell) and an email (gmail_to_yang). Both notifications will state that an irrigation leak has been detected in zone 1 (front) and will include the current measured flow rate in gallons per minute." }, "human_like": "Sends alerts if the water flow in the front yard irrigation zone is higher than expected, indicating a potential leak.", "complexity": "low" } }, { "id": "irrig_leak_zone_2_drip", "result": { "structured": "TRIGGER: When the current value of Irrigation Report Avg GPM Zone 2 [sensor.irrig_report_avg_gpm_zone_2] exceeds the value of Irrigation Zone 2 Drip GPM Limit [input_number.irrig_z2_drip_gpm_limit]. ACTIONS: Send a mobile notification to yskt_cell with title and message 'Irrig leak detected in zone 2 (drip): [current GPM value] GPM', and send an email notification to yang with the same title and message.", "natural_language": { "trigger": "When the average water flow rate for irrigation zone 2, as reported by the sensor Irrigation Report Avg GPM Zone 2 [sensor.irrig_report_avg_gpm_zone_2], goes above the configured limit set in Irrigation Zone 2 Drip GPM Limit [input_number.irrig_z2_drip_gpm_limit].", "conditions": "There are no explicit conditions for this automation.", "action": "Sends a push notification to a mobile device and an email notification, both alerting that a leak has been detected in irrigation zone 2 (drip), including the current flow rate in gallons per minute." }, "human_like": "Sends alerts if the water flow in irrigation zone 2 exceeds a safe limit, indicating a potential leak in the drip system.", "complexity": "low" } }, { "id": "irrig_leak_zone_3_right", "result": { "structured": "TRIGGER: When Irrigation Report Avg GPM Zone 3 [sensor.irrig_report_avg_gpm_zone_3] reports a flow rate greater than Irrigation Zone 3 Right Yard GPM Limit [input_number.irrig_z3_right_yd_gpm_limit]. CONDITIONS: None. ACTIONS: Send a mobile notification to yskt_cell and send an email notification to yang, both containing the alert 'Irrig leak detected in zone 3 (right): [current GPM value] GPM'.", "natural_language": { "trigger": "When the average flow rate reported by the Irrigation Report Avg GPM Zone 3 [sensor.irrig_report_avg_gpm_zone_3] exceeds the limit set on the Irrigation Zone 3 Right Yard GPM Limit [input_number.irrig_z3_right_yd_gpm_limit].", "conditions": "There are no additional conditions that must be met.", "action": "Sends an alert to a mobile device and an email, both stating that an irrigation leak has been detected in zone 3 (right) and reporting the current flow rate." }, "human_like": "Sends leak alerts for the right side of irrigation zone 3 when the water flow rate is too high.", "complexity": "low" } }, { "id": "irrig_leak_zone_4_left", "result": { "structured": "TRIGGER: When the current value of Irrigation Report Avg GPM Zone 4 [sensor.irrig_report_avg_gpm_zone_4] exceeds the value of Irrigation Zone 4 Left Yard GPM Limit [input_number.irrig_z4_left_yd_gpm_limit]. CONDITIONS: None. ACTIONS: Send a mobile notification to yskt_cell and send an email notification to yang, both containing the message 'Irrig leak detected in zone 4 (left): [current GPM value] GPM'.", "natural_language": { "trigger": "When the average gallons per minute (GPM) reading for irrigation zone 4, reported by Irrigation Report Avg GPM Zone 4 [sensor.irrig_report_avg_gpm_zone_4], goes above the configured limit set in Irrigation Zone 4 Left Yard GPM Limit [input_number.irrig_z4_left_yd_gpm_limit].", "conditions": "There are no additional conditions that must be met.", "action": "Sends an alert by pushing a notification to a mobile device and sending an email. Both messages state that an irrigation leak has been detected in zone 4 (left) and include the current GPM value." }, "human_like": "Sends leak alerts for the left side of irrigation zone 4 when the water flow rate exceeds a safe limit.", "complexity": "low" } }, { "id": "aut_drybox_humidity_above_tolerance", "result": { "structured": "TRIGGER: When Drybox Relative Humidity [sensor.drybox_relative_humidity] remains above the value of input_number.inp_num_drybox_relative_humidity_threshold for 12 hours. CONDITIONS: None. ACTIONS: Create a persistent notification with title and message 'Drybox humidity out of tolerance: [current humidity] percent' AND send a Gmail notification to yang with title and message 'Drybox humidity out of tolerance: [current humidity] percent'.", "natural_language": { "trigger": "When the Drybox Relative Humidity [sensor.drybox_relative_humidity] sensor reports a value higher than the threshold set by input_number.inp_num_drybox_relative_humidity_threshold for a continuous period of 12 hours.", "conditions": "There are no additional conditions that must be met for this automation to run.", "action": "Sends two notifications: first, it creates a persistent notification within Home Assistant, and second, it sends an email via Gmail to a recipient named 'yang'. Both notifications will have the same title and message, stating the current humidity percentage and that it is out of tolerance." }, "human_like": "Sends alerts if the humidity inside the drybox stays too high for half a day.", "complexity": "low" } }, { "id": "aut_expansion_tank_fault", "result": { "structured": "TRIGGER: When Water Pressure [sensor.water_pressure] is above 85. CONDITIONS: None. ACTIONS: Send a mobile notification to mobile_app_yskt_cell with title and message 'Water expansion tank fault: {{ states('sensor.water_pressure') }} PSI' AND send an email notification to gmail_to_yang with title and message 'Water expansion tank fault: {{ states('sensor.water_pressure') }} PSI'.", "natural_language": { "trigger": "When the Water Pressure [sensor.water_pressure] sensor reads a value greater than 85 PSI.", "conditions": "There are no additional conditions that must be met.", "action": "Send a push notification to a mobile device and an email notification, both alerting the user of a water expansion tank fault and reporting the current pressure reading." }, "human_like": "Alerts you via phone and email if the water pressure gets too high, indicating a potential fault with the expansion tank.", "complexity": "low" } }, { "id": "aut_freezer_fault", "result": { "structured": "TRIGGER: When Freezer Sensor Temperature [sensor.freezer_sensor_temperature] remains above 7 (units unspecified) for 90 minutes. CONDITIONS: None. ACTIONS: Send a mobile notification with title 'Freezer temperature too high' and message containing the current temperature value to mobile_app_yskt_cell AND send a second mobile notification with title 'Freezer temperature too high' and a TTS message stating the current temperature to mobile_app_yskt_cell.", "natural_language": { "trigger": "When the Freezer Sensor Temperature [sensor.freezer_sensor_temperature] stays above 7 degrees for a continuous period of 90 minutes.", "conditions": "There are no additional conditions that must be met.", "action": "Sends two notifications to the user's mobile device. The first is a standard notification with the title 'Freezer temperature too high' and a message showing the current temperature. The second notification triggers a text-to-speech (TTS) announcement stating that a freezer temperature problem has been detected and reads out the current temperature." }, "human_like": "Alerts the user if the freezer temperature stays too high for over an hour and a half by sending a phone notification and a spoken announcement.", "complexity": "low" } }, { "id": "aut_irrig_valve_leak_notify", "result": { "structured": "TRIGGER: When Irrigation Report Valve Leak Gallons [sensor.irrig_report_valve_leak_gallons] reports a value greater than 0. CONDITIONS: The difference between the current time and the timestamp value from Uptime [sensor.uptime] is greater than 10 seconds. ACTIONS: Send a notification to mobile_app_yskt_cell with a title and message about the leaky valve, including the current gallons value. Send a notification to gmail_to_yang with a title and message about the leaky valve, including the current gallons value.", "natural_language": { "trigger": "When the sensor Irrigation Report Valve Leak Gallons [sensor.irrig_report_valve_leak_gallons] detects a value above zero gallons.", "conditions": "The system must have been running for more than 10 seconds since the last recorded uptime timestamp from the Uptime [sensor.uptime] sensor.", "action": "Sends a push notification to a mobile device and an email notification, both alerting the user that a leaky irrigation valve has been detected and reporting the number of gallons measured." }, "human_like": "Sends alerts when a leak in the irrigation system is detected, ensuring the system has been running long enough to avoid false alarms during startup.", "complexity": "medium" } }, { "id": "aut_spt_leak_notify", "result": { "structured": "TRIGGER: When SPT Data Status [sensor.spt_data_status] changes from 'in_process' to 'valid' AND remains 'valid' for 10 seconds. CONDITIONS: (Validated Water Static Pressure Test Result [sensor.validated_water_static_pressure_test_result] is less than or equal to 0) AND (Validated Water Static Pressure Test Result [sensor.validated_water_static_pressure_test_result] is less than (Loss Per Minute Alarm Threshold [input_number.loss_per_minute_alarm_threshold] multiplied by SPT Duration [input_number.inp_num_spt_duration])). ACTIONS: Send a notification titled 'SPT water leak detected' to mobile_app_yskt_cell, gmail_to_yang, and as a persistent_notification. The message includes the test end time, total pressure drop, and drop per minute.", "natural_language": { "trigger": "The automation triggers when the SPT Data Status [sensor.spt_data_status] changes from 'in_process' to 'valid' and stays in the 'valid' state for 10 seconds.", "conditions": "Two conditions must be met. First, the Validated Water Static Pressure Test Result [sensor.validated_water_static_pressure_test_result] must be zero or a negative number. Second, this same result must be less than the value calculated by multiplying the Loss Per Minute Alarm Threshold [input_number.loss_per_minute_alarm_threshold] by the SPT Duration [input_number.inp_num_spt_duration].", "action": "Sends a detailed leak detection alert to a mobile app, an email address, and creates a persistent notification in Home Assistant. The alert includes the time the test ended, the total pressure drop measured, and the calculated pressure drop per minute." }, "human_like": "Sends leak alerts after a water pressure test finishes, if the pressure drop indicates a potential leak.", "complexity": "medium" } }, { "id": "aut_leak_detected", "result": { "structured": "TRIGGER: When any of the following leak sensors changes from 'off' to 'on': Leak Refrigerator [binary_sensor.leak_refrigerator], Leak Dishwasher [binary_sensor.leak_dishwasher], Leak Kitchen Sink [binary_sensor.leak_kitchen_sink], Leak Kitchen Sink Rear [binary_sensor.leak_kitchen_sink_rear], Leak Water Heater [binary_sensor.leak_water_heater], Leak Karen's Sink [binary_sensor.leak_karens_sink_water_leak], Leak Yang's Sink [binary_sensor.leak_yangs_sink_water_leak], Leak Guest Sink [binary_sensor.leak_guest_sink_water_leak], Leak Master Toilet [binary_sensor.leak_master_toilet_water_leak], Leak Guest Toilet [binary_sensor.leak_guest_toilet_water_leak], Leak Washer Contact [binary_sensor.leak_washer_contact], Leak Laundry [binary_sensor.leak_laundry]. CONDITIONS: None. ACTIONS: 1. Turn off Water Valve [switch.water_valve]. 2. Execute script scr_say_phrase with high priority, announcing the leak location. 3. Execute script scr_say_phrase with high priority, announcing the water is off and to turn it on manually. 4. Send a notification to mobile_app_yskt_cell with a title and message. 5. Send a notification to alexa_yellow_ring with a message. 6. Send a TTS notification to mobile_app_yskt_cell with high priority. 7. Send an urgent notification to mobile_app_yskt_cell with vibration pattern and persistence. 8. Send an email notification to gmail_to_yang. 9. Repeat the following sequence while the repeat index is less than or equal to 4 AND Water Valve [switch.water_valve] is off: Execute script scr_say_phrase announcing the leak location, then wait 30 seconds.", "natural_language": { "trigger": "The automation is triggered when any one of the twelve water leak sensors in the house detects a leak, which is indicated by its state changing from 'off' to 'on'.", "conditions": "There are no conditions that must be met for the actions to run; the automation executes immediately upon a valid trigger.", "action": "Upon detecting a leak, the automation immediately shuts off the main water supply by turning off the Water Valve [switch.water_valve]. It then sends out a series of alerts: it uses a script to announce the leak location verbally, sends multiple urgent notifications to a mobile phone (including text-to-speech and persistent alerts with vibration), sends a message to an Alexa device, and sends an email. Finally, it repeats a verbal announcement of the leak location up to four times, with a 30-second delay between each announcement, but only as long as the water valve remains off." }, "human_like": "This automation detects a water leak anywhere in the house, shuts off the main water supply, and sends urgent alerts and repeated announcements to notify the household.", "complexity": "medium" } }, { "id": "aut_washer_done_announce", "result": { "structured": "TRIGGER: When Top Load Washer Run Completed [binary_sensor.top_load_washer_run_completed] changes from off to on. CONDITIONS: None. ACTIONS: Execute script scr_say_phrase with a message that depends on the dryer's remaining time. If the dryer's remain_time is '0:00:00', announce 'The washer cycle has finished and the dryer is available'. Otherwise, if the hours part of remain_time is '0', announce 'The washer cycle has finished. The dryer will be available in X minutes', where X is the minutes part. If the hours part is not '0', announce 'The washer cycle has finished, The dryer will be available in X hours and Y minutes', where X is the hours part and Y is the minutes part. Then, send a notification to alexa_yellow_ring with the message 'The washer cycle has finished'.", "natural_language": { "trigger": "When the Top Load Washer Run Completed [binary_sensor.top_load_washer_run_completed] sensor indicates the washer cycle has finished by changing from off to on.", "conditions": "There are no conditions that must be met for the automation to proceed.", "action": "First, a script is run to announce a message. The message is based on the remaining time of the dryer. If the dryer has no time remaining, it announces that the washer is done and the dryer is available. If the dryer has less than an hour remaining, it announces the washer is done and gives the remaining time in minutes. If the dryer has an hour or more remaining, it announces the washer is done and gives the remaining time in hours and minutes. Then, a notification is sent to alexa_yellow_ring stating simply that the washer cycle has finished." }, "human_like": "Announces when the washing machine cycle is complete, providing an update on when the dryer will be available.", "complexity": "medium" } }, { "id": "aut_dryer_done_announce", "result": { "structured": "TRIGGER: When Dryer Run Completed [binary_sensor.dryer_run_completed] changes from off to on. CONDITIONS: None. ACTIONS: Execute script scr_say_phrase with message 'The dryer cycle has finished' AND send notification to alexa_yellow_ring with message 'The dryer cycle has finished'.", "natural_language": { "trigger": "When the Dryer Run Completed [binary_sensor.dryer_run_completed] sensor indicates the dryer cycle has finished by changing from off to on.", "conditions": "There are no conditions that must be met.", "action": "Announces the completion by running a script to speak the phrase 'The dryer cycle has finished' and sends a notification to the Alexa Yellow Ring device with the same message." }, "human_like": "Announces when the dryer cycle is finished, both by voice and a notification.", "complexity": "low" } }, { "id": "aut_vacuum_done_announce", "result": { "structured": "TRIGGER: When Rosie Vacuum [vacuum.rosie] changes state from cleaning to docked. CONDITIONS: None. ACTIONS: Send a notification via notify.alexa_yellow_ring with the message 'Rosie is a dirty girl'.", "natural_language": { "trigger": "When the Rosie Vacuum [vacuum.rosie] finishes cleaning and returns to its dock.", "conditions": "There are no conditions that must be met.", "action": "Sends a notification to the Alexa Yellow Ring with the message 'Rosie is a dirty girl'." }, "human_like": "Announces when the vacuum, Rosie, has finished cleaning and returned to its dock.", "complexity": "low" } }, { "id": "Probe 1 Target Temp", "result": { "structured": "TRIGGER: When Target Alert Temp Probe 1 [sensor.target_alert_temp_probe_1] changes to state 'Alert'. CONDITIONS: None. ACTIONS: Execute script scr_say_phrase with message 'Probe 1 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_1') }} °F' AND send notification to mobile_app_ys_cell with TTS message 'Probe 1 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_1') }} °F' and car_ui data flag.", "natural_language": { "trigger": "When the sensor Target Alert Temp Probe 1 [sensor.target_alert_temp_probe_1] changes its state to 'Alert'.", "conditions": "There are no conditions that must be met.", "action": "First, a script named scr_say_phrase is run, which will speak the phrase 'Probe 1 has reached the target temp. Currently [the current temperature from iGrill Probe 1] °F'. Then, a notification is sent to a mobile device via mobile_app_ys_cell, which will also use text-to-speech to say the same message, with an additional flag for car user interface compatibility." }, "human_like": "Announces and notifies when Probe 1 reaches its target temperature.", "complexity": "low" } }, { "id": "Probe 2 Target Temp", "result": { "structured": "TRIGGER: When Target Alert Temp Probe 2 [sensor.target_alert_temp_probe_2] changes to state 'Alert'. CONDITIONS: None. ACTIONS: Execute script 'scr_say_phrase' with message 'Probe 2 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_2') }} °F' AND Send notification to mobile_app_ys_cell with message 'TTS' and data containing tts_text 'Probe 2 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_2') }} °F' and car_ui: true.", "natural_language": { "trigger": "When the sensor Target Alert Temp Probe 2 [sensor.target_alert_temp_probe_2] changes its state to 'Alert'.", "conditions": "There are no conditions that must be met for the automation to proceed.", "action": "The automation will speak a phrase via a script, announcing that Probe 2 has reached the target temperature and stating the current temperature from iGrill Probe 2 [sensor.igrill_70918f19e8d1_probe_2]. It will also send a text-to-speech notification to a mobile device, with the same message, configured for car display." }, "human_like": "Announces and sends a mobile notification when Probe 2 reaches its target cooking temperature.", "complexity": "low" } }, { "id": "Probe 3 Target Temp", "result": { "structured": "TRIGGER: When Target Alert Temp Probe 3 [sensor.target_alert_temp_probe_3] changes to state 'Alert'. CONDITIONS: None. ACTIONS: Execute script scr_say_phrase with message 'Probe 3 has reached the target temp. Currently [current temperature from iGrill Probe 3 [sensor.igrill_70918f19e8d1_probe_3]] °F' AND send notification to mobile_app_ys_cell with TTS message 'Probe 3 has reached the target temp. Currently [current temperature from iGrill Probe 3 [sensor.igrill_70918f19e8d1_probe_3]] °F'.", "natural_language": { "trigger": "When the sensor Target Alert Temp Probe 3 [sensor.target_alert_temp_probe_3] changes its state to 'Alert'.", "conditions": "There are no conditions that must be met for the action to run.", "action": "First, a script called scr_say_phrase is run, which will speak the phrase 'Probe 3 has reached the target temp. Currently [the current temperature reading from iGrill Probe 3 [sensor.igrill_70918f19e8d1_probe_3]] °F'. Second, a notification is sent to a mobile device via mobile_app_ys_cell, which will also speak the same message using text-to-speech." }, "human_like": "Announces and notifies when Probe 3's temperature reaches its target alert level.", "complexity": "low" } }, { "id": "Probe 4 Target Temp", "result": { "structured": "TRIGGER: When Target Alert Temp Probe 4 [sensor.target_alert_temp_probe_4] changes to Alert. CONDITIONS: None. ACTIONS: Execute script scr_say_phrase with message 'Probe 4 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_4') }} °F' AND send notification to mobile_app_ys_cell with TTS message 'Probe 4 has reached the target temp. Currently {{ states('sensor.igrill_70918f19e8d1_probe_4') }} °F' and car_ui data flag set to true.", "natural_language": { "trigger": "When the Target Alert Temp Probe 4 [sensor.target_alert_temp_probe_4] sensor changes its state to 'Alert'.", "conditions": "There are no additional conditions that need to be met.", "action": "First, it runs a script called scr_say_phrase, which will announce the message 'Probe 4 has reached the target temp. Currently [current temperature from iGrill Probe 4] °F'. Then, it sends a notification to the mobile app 'ys_cell' with the same text message, configured for Text-to-Speech (TTS) playback and with a flag set for car display compatibility." }, "human_like": "Announces and notifies you when Probe 4 reaches its target temperature.", "complexity": "low" } }, { "id": "Monitor iGrill Device Connectivity", "result": { "structured": "TRIGGER: When iGrill Connectivity [binary_sensor.igrill_70918f19e8d1_connectivity] changes from on to off AND remains off for 5 minutes OR When iGrill Sensor [binary_sensor.igrill_70918f19e8d1_sensor] changes from on to off AND remains off for 5 minutes. CONDITIONS: None. ACTIONS: Execute script scr_say_phrase with data message 'I Grill Device Disconnected'.", "natural_language": { "trigger": "When the iGrill Connectivity [binary_sensor.igrill_70918f19e8d1_connectivity] sensor changes from connected (on) to disconnected (off) and stays disconnected for five minutes, or when the iGrill Sensor [binary_sensor.igrill_70918f19e8d1_sensor] changes from active (on) to inactive (off) and stays inactive for five minutes.", "conditions": "There are no additional conditions for this automation.", "action": "Announces that the iGrill device is disconnected by running the script scr_say_phrase with the message 'I Grill Device Disconnected'." }, "human_like": "Announces when the iGrill device loses connectivity or its sensor becomes inactive for five minutes.", "complexity": "low" } }, { "id": "aut_auto_living_area_motion", "result": { "structured": "TRIGGER: When Living Area Motion [binary_sensor.living_area_motion] changes to on. CONDITIONS: None. ACTIONS: First, execute script.scr_check_if_suspicious. Then, evaluate a choice: IF (Sleeping [input_boolean.inp_bool_sleeping] is on) OR (time is after 00:01 AND before 07:00) THEN execute script.scr_pathway_motion_lighting_on. OTHERWISE, execute script.scr_motion_lighting_on.", "natural_language": { "trigger": "When motion is detected by the Living Area Motion [binary_sensor.living_area_motion] sensor.", "conditions": "There are no conditions that must be met before proceeding with the actions.", "action": "First, a script called scr_check_if_suspicious is run. Then, based on the situation, a choice is made: if the Sleeping [input_boolean.inp_bool_sleeping] mode is active, or if the current time is between 12:01 AM and 7:00 AM, the pathway lighting script (scr_pathway_motion_lighting_on) is activated. Otherwise, the standard motion lighting script (scr_motion_lighting_on) is activated." }, "human_like": "Turns on appropriate lighting in the living area when motion is detected, using different lighting modes depending on whether it's nighttime or the sleep mode is active.", "complexity": "medium" } }, { "id": "aut_auto_on_living_area_luminosity", "result": { "structured": "TRIGGER: When Living Room Suggested Brightness [sensor.lv_rm_suggested_brightness] is above 0 for a duration equal to the value of Living Room Lights On Delay [input_number.inp_num_lvrm_lights_on_delay] minutes. CONDITIONS: (Filtered Living Room Visible Light [sensor.filtered_living_rm_visible_light] is not unknown) AND (Living Area Motion [binary_sensor.living_area_motion] is on OR Living Room TV [media_player.tv_livingrm] is on OR Living Room TV [media_player.tv_livingrm] is unknown). ACTIONS: Execute script.scr_motion_lighting_on.", "natural_language": { "trigger": "When the Living Room Suggested Brightness [sensor.lv_rm_suggested_brightness] sensor reports a value greater than zero for a specific period. This period is defined by the Living Room Lights On Delay [input_number.inp_num_lvrm_lights_on_delay] input number, which sets the required delay in minutes.", "conditions": "First, the Filtered Living Room Visible Light [sensor.filtered_living_rm_visible_light] sensor must have a valid reading (it cannot be in an 'unknown' state). Second, at least one of the following must be true: motion is detected by the Living Area Motion [binary_sensor.living_area_motion] sensor, the Living Room TV [media_player.tv_livingrm] is turned on, or the TV's state is reported as 'unknown'.", "action": "Runs a script named 'scr_motion_lighting_on' to handle turning on the lights." }, "human_like": "Automatically turns on the living room lights when the suggested brightness is high enough and someone is present or the TV is on, after a configurable delay.", "complexity": "medium" } }, { "id": "aut_auto_off_living_area_luminosity", "result": { "structured": "TRIGGER: When Living Room Suggested Brightness [sensor.lv_rm_suggested_brightness] remains below 1 for a duration equal to the value of Living Room Lights Off Delay [input_number.inp_num_lvrm_lights_off_delay] minutes. CONDITIONS: Party Mode [input_boolean.party_mode] is off AND the elevation of Sun [sun.sun] is above 14.0 degrees. ACTIONS: Turn off Living Room Lights [light.living_room_lights].", "natural_language": { "trigger": "When the Living Room Suggested Brightness [sensor.lv_rm_suggested_brightness] stays below a value of 1 for a period of time. The length of this period is determined by the current value of the Living Room Lights Off Delay [input_number.inp_num_lvrm_lights_off_delay] setting, measured in minutes.", "conditions": "Party Mode [input_boolean.party_mode] must be turned off, and the sun must be above the horizon, specifically with an elevation greater than 14.0 degrees.", "action": "Turns off all the Living Room Lights [light.living_room_lights]." }, "human_like": "Automatically turns off the living room lights when the suggested brightness is low for a set period of time, but only during the day and when party mode is not active.", "complexity": "medium" } }, { "id": "aut_living_area_lights_motion_timeout", "result": { "structured": "TRIGGER: When Living Area Motion [binary_sensor.living_area_motion] remains off for 30 minutes. CONDITIONS: (Living Room TV [media_player.tv_livingrm] is off) AND (Eating Area Lights [light.eating_area_lights] is off). ACTIONS: Execute script scr_great_room_motion_lighting_off.", "natural_language": { "trigger": "When the Living Area Motion [binary_sensor.living_area_motion] sensor detects no motion for a continuous period of 30 minutes.", "conditions": "If the Living Room TV [media_player.tv_livingrm] is turned off and the Eating Area Lights [light.eating_area_lights] are also turned off.", "action": "Runs the script named 'scr_great_room_motion_lighting_off'." }, "human_like": "Turns off the motion-activated lights in the great room after 30 minutes of inactivity, but only if the TV and eating area lights are already off.", "complexity": "low" } }, { "id": "aut_living_area_pathway_motion_inactive", "result": { "structured": "TRIGGER: When Living Area Motion [binary_sensor.living_area_motion] remains off for 5 minutes. ACTIONS: Execute script scr_pathway_motion_lighting_off.", "natural_language": { "trigger": "When the Living Area Motion [binary_sensor.living_area_motion] sensor reports no motion for a continuous period of five minutes.", "conditions": "There are no conditions for this automation.", "action": "Runs the script named scr_pathway_motion_lighting_off." }, "human_like": "Turns off pathway lighting when no motion has been detected in the living area for five minutes.", "complexity": "low" } }, { "id": "aut_masterbdrm_outer_shades_down_solar_noon", "result": { "structured": "TRIGGER: When the Sun [sun.sun] is not rising (rising attribute is false). CONDITIONS: None. ACTIONS: Close Master Bedroom Outer Shades [cover.master_bedroom_outer_shades].", "natural_language": { "trigger": "When the sun is no longer rising, indicating it is past solar noon.", "conditions": "There are no additional conditions.", "action": "Closes the Master Bedroom Outer Shades [cover.master_bedroom_outer_shades]." }, "human_like": "Closes the master bedroom outer shades in the afternoon after the sun has passed its highest point.", "complexity": "low" } }, { "id": "aut_sunrm_shades_down_afternoon", "result": { "structured": "TRIGGER: When the Sun [sun.sun] elevation is between 14.1 and 32.5 degrees. CONDITIONS: (Inhibit Shades [input_boolean.inp_bool_inhibit_shades] is off) AND (Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is off) AND (Filtered KFL Wild W56 Local Rad LX [sensor.filtered_kflwildw56_bu_local_rad_lx] lux value is greater than Sunroom Shades Part Close Min Required Trigger Lux [input_number.inp_num_sunrm_shades_part_close_min_reqd_trig_lux] value) AND (Sun [sun.sun] azimuth is between 199 and 280 degrees). ACTIONS: Run script scr_check_sunrm_windows, then run script scr_partial_close_sunrm_shades with position set to 40.", "natural_language": { "trigger": "When the sun's elevation is between 14.1 and 32.5 degrees.", "conditions": "If the 'Inhibit Shades' switch is off, the 'Extended Absence Mode' is off, the measured local radiation from the sensor 'Filtered KFL Wild W56 Local Rad LX' is greater than the minimum required lux value set in 'Sunroom Shades Part Close Min Required Trigger Lux', and the sun's azimuth is between 199 and 280 degrees.", "action": "First, it runs a script to check the sunroom windows, and then it runs a script to partially close the sunroom shades to a position of 40%." }, "human_like": "Automatically lowers the sunroom shades to 40% in the afternoon when the sun is at a specific angle and the light level is high enough, provided no manual overrides are active.", "complexity": "medium" } }, { "id": "aut_sunrm_shades_up_afternoon", "result": { "structured": "TRIGGER: When Sun [sun.sun] elevation is above 0 AND below 14.0 OR when Sun [sun.sun] azimuth is above 204 AND below 267. CONDITIONS: Inhibit Shades [input_boolean.inp_bool_inhibit_shades] is off AND Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is off AND time is after 12:00:00 AND Lum Sunroom Shades Trigger [binary_sensor.lum_sunrm_shades_trig] is on. ACTIONS: Open Sun Room Shades [cover.sun_room_shades].", "natural_language": { "trigger": "When the sun's elevation is between 0 and 14 degrees, or when the sun's azimuth is between 204 and 267 degrees.", "conditions": "If the 'Inhibit Shades' [input_boolean.inp_bool_inhibit_shades] and 'Extended Absence Mode' [input_boolean.inp_bool_extended_absence_mode] are both turned off, the current time is after 12:00 PM, and the 'Lum Sunroom Shades Trigger' [binary_sensor.lum_sunrm_shades_trig] is active (on).", "action": "Opens the Sun Room Shades [cover.sun_room_shades]." }, "human_like": "Raises the sunroom shades in the afternoon when the sun is at a specific position and other manual overrides are not active.", "complexity": "medium" } }, { "id": "aut_sunrm_shades_down_evening", "result": { "structured": "TRIGGER: When sunset occurs with a 10-minute offset OR when Lum Sunroom Shades Trigger [binary_sensor.lum_sunrm_shades_trig] remains off for a duration equal to the value of Sunroom Shades Close Low Lux Trigger Delay [input_number.inp_num_sunrm_shades_close_low_lux_trig_delay] in minutes. CONDITIONS: Inhibit Shades [input_boolean.inp_bool_inhibit_shades] is off. ACTIONS: Execute script scr_check_sunrm_windows AND execute script scr_close_sunrm_shades.", "natural_language": { "trigger": "When the sun sets, 10 minutes before the actual sunset event, or when the Lum Sunroom Shades Trigger [binary_sensor.lum_sunrm_shades_trig] sensor reports an 'off' state for a specific amount of time. This time delay is determined by the value set in the Sunroom Shades Close Low Lux Trigger Delay [input_number.inp_num_sunrm_shades_close_low_lux_trig_delay] input number.", "conditions": "The automation only runs if the Inhibit Shades [input_boolean.inp_bool_inhibit_shades] switch is turned off, meaning the shade control is not currently blocked.", "action": "First, run the script 'scr_check_sunrm_windows' and then run the script 'scr_close_sunrm_shades'." }, "human_like": "Automatically lowers the sunroom shades in the evening, either at sunset or when a light sensor indicates it's dark for a set time, unless manually inhibited.", "complexity": "medium" } }, { "id": "aut_masterbdrm_shades_down_evening", "result": { "structured": "TRIGGER: At sunset. CONDITIONS: None. ACTIONS: Close Master Bedroom Shades [cover.master_bedroom_shades].", "natural_language": { "trigger": "When the sun sets.", "conditions": "There are no conditions to check.", "action": "Closes the Master Bedroom Shades [cover.master_bedroom_shades]." }, "human_like": "Closes the master bedroom shades automatically at sunset.", "complexity": "low" } }, { "id": "aut_sunrm_shades_up_morningorbright", "result": { "structured": "TRIGGER: When sunrise occurs OR When Lum Sunroom Shades Trigger [binary_sensor.lum_sunrm_shades_trig] turns on and remains on for a duration equal to the value of Sunroom Shades Open Delay [input_number.inp_num_sunrm_shades_open_delay] minutes. CONDITIONS: (Inhibit Shades [input_boolean.inp_bool_inhibit_shades] is off) AND (Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is off) AND (Guest in Sunroom [input_boolean.inp_bool_guest_in_sunroom] is off). ACTIONS: Open Sun Room Shades [cover.sun_room_shades].", "natural_language": { "trigger": "When the sun rises, or when the Lum Sunroom Shades Trigger [binary_sensor.lum_sunrm_shades_trig] turns on and stays on for a specific number of minutes defined by the Sunroom Shades Open Delay [input_number.inp_num_sunrm_shades_open_delay] setting.", "conditions": "All of the following must be true: the Inhibit Shades [input_boolean.inp_bool_inhibit_shades] is off, the Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is off, and the Guest in Sunroom [input_boolean.inp_bool_guest_in_sunroom] is off.", "action": "Opens the Sun Room Shades [cover.sun_room_shades]." }, "human_like": "Automatically opens the sunroom shades at sunrise or when a brightness trigger is active, provided no manual or guest-related overrides are in place.", "complexity": "medium" } }, { "id": "aut_arrival_proximity", "result": { "structured": "TRIGGER: When Home YS Cell GPS Distance [sensor.home_ys_cell_gps_distance] is greater than 0 AND less than or equal to 0.2 AND Home Yang Direction of Travel [sensor.home_yang_direction_of_travel] is 'towards' OR when Home KT Cell GPS Distance [sensor.home_kt_cell_gps_distance] is greater than 0 AND less than or equal to 0.2 AND Home Karen Direction of Travel [sensor.home_karen_direction_of_travel] is 'towards'. CONDITIONS: None. ACTIONS: Execute script scr_front_door_lights_on and execute script scr_say_phrase with message 'Someone special will be home soon'.", "natural_language": { "trigger": "When the Home YS Cell GPS Distance [sensor.home_ys_cell_gps_distance] is between 0 and 0.2 units and the Home Yang Direction of Travel [sensor.home_yang_direction_of_travel] indicates 'towards', or when the Home KT Cell GPS Distance [sensor.home_kt_cell_gps_distance] is between 0 and 0.2 units and the Home Karen Direction of Travel [sensor.home_karen_direction_of_travel] indicates 'towards'.", "conditions": "There are no additional conditions.", "action": "Turn on the front door lights by running the script scr_front_door_lights_on and announce 'Someone special will be home soon' by running the script scr_say_phrase." }, "human_like": "Turns on the front door lights and announces an arrival when a tracked person is very close to home and moving towards it.", "complexity": "medium" } }, { "id": "aut_large_garage_door_opening", "result": { "structured": "TRIGGER: When Large Garage Door [cover.large_garage_door] changes to open. CONDITIONS: The difference between the current time and the timestamp from Uptime [sensor.uptime] is greater than 10 seconds. ACTIONS: Execute script scr_say_phrase with message 'The large garage door has opened', start Large Garage Door Timer [timer.timer_lg_garage_door], execute script scr_front_door_lights_on, and execute script scr_check_if_suspicious.", "natural_language": { "trigger": "When the Large Garage Door [cover.large_garage_door] is opened.", "conditions": "The system must have been running for more than 10 seconds, as determined by the current time compared to the timestamp from the Uptime [sensor.uptime] sensor.", "action": "The system will announce 'The large garage door has opened' via a script, start a timer for the Large Garage Door Timer [timer.timer_lg_garage_door], turn on the front door lights via a script, and run a script to check if the activity is suspicious." }, "human_like": "When the large garage door opens, the system announces it, starts a timer, turns on the front door lights, and checks if the event is suspicious, but only if the system has been running for more than 10 seconds.", "complexity": "medium" } }, { "id": "aut_small_garage_door_opening", "result": { "structured": "TRIGGER: When Small Garage Door [cover.small_garage_door] changes state to open. CONDITIONS: The system uptime since the last restart (calculated from sensor.uptime) is greater than 10 seconds. ACTIONS: Execute script scr_say_phrase with message 'The small garage door has opened', start timer Small Garage Door Timer [timer.timer_sm_garage_door], execute script scr_front_door_lights_on, and execute script scr_check_if_suspicious.", "natural_language": { "trigger": "When the Small Garage Door [cover.small_garage_door] opens.", "conditions": "The automation only runs if the Home Assistant system has been running for more than 10 seconds since the last restart, as determined by the Uptime [sensor.uptime] sensor.", "action": "Announces that the small garage door has opened, starts a timer for the small garage door, turns on the front door lights, and runs a script to check if the activity is suspicious." }, "human_like": "When the small garage door opens, it announces the event, starts a timer, turns on the front lights, and checks for suspicious activity, but only if the system has been running for a short while.", "complexity": "medium" } }, { "id": "aut_large_garage_door_closed", "result": { "structured": "TRIGGER: When Large Garage Door [cover.large_garage_door] changes to state closed. ACTIONS: Cancel Large Garage Door Timer [timer.timer_lg_garage_door].", "natural_language": { "trigger": "When the Large Garage Door [cover.large_garage_door] is closed.", "conditions": "There are no conditions for this automation.", "action": "Cancels the Large Garage Door Timer [timer.timer_lg_garage_door]." }, "human_like": "Cancels the garage door timer when the door is closed.", "complexity": "low" } }, { "id": "aut_small_garage_door_closed", "result": { "structured": "TRIGGER: When Small Garage Door [cover.small_garage_door] changes to closed. ACTIONS: Cancel Small Garage Door Timer [timer.timer_sm_garage_door].", "natural_language": { "trigger": "When the Small Garage Door [cover.small_garage_door] is closed.", "conditions": "There are no conditions for this automation.", "action": "Cancels the Small Garage Door Timer [timer.timer_sm_garage_door]." }, "human_like": "Cancels a timer when the small garage door is closed.", "complexity": "low" } }, { "id": "aut_front_door_opening", "result": { "structured": "TRIGGER: When Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] changes from closed (off) to open (on). CONDITIONS: None. ACTIONS: Execute script scr_front_door_lights_on.", "natural_language": { "trigger": "When the Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] sensor detects that the door or window has been opened.", "conditions": "There are no additional conditions that must be met.", "action": "Runs the script named scr_front_door_lights_on." }, "human_like": "Turns on the lights when the front door is opened.", "complexity": "low" } }, { "id": "aut_back_door_opening", "result": { "structured": "TRIGGER: When Back Door Window/Door Open [binary_sensor.back_door_window_door_is_open] changes from closed (off) to open (on). CONDITIONS: None. ACTIONS: Execute script scr_back_door_lights_on.", "natural_language": { "trigger": "When the Back Door Window/Door Open [binary_sensor.back_door_window_door_is_open] sensor detects the door or window has been opened.", "conditions": "There are no additional conditions that must be met.", "action": "Runs the script named scr_back_door_lights_on." }, "human_like": "Turns on the back door lights when the door or window is opened.", "complexity": "low" } }, { "id": "aut_driveway_camera_zone_activity", "result": { "structured": "TRIGGER: When Driveway Zone Person Occupancy [binary_sensor.driveway_zone_person_occupancy] changes to on OR when Driveway Zone Car Occupancy [binary_sensor.driveway_zone_car_occupancy] changes to on. CONDITIONS: None. ACTIONS: Execute the script scr_front_door_lights_on.", "natural_language": { "trigger": "When either the Driveway Zone Person Occupancy [binary_sensor.driveway_zone_person_occupancy] or the Driveway Zone Car Occupancy [binary_sensor.driveway_zone_car_occupancy] detects activity and changes its state to 'on'.", "conditions": "There are no conditions that must be met for this automation to proceed.", "action": "Runs the script named scr_front_door_lights_on." }, "human_like": "Turns on the front door lights when a person or a car is detected in the driveway.", "complexity": "low" } }, { "id": "aut_frontporch_camera_zone_actvity", "result": { "structured": "TRIGGER: When Front Porch Zone Book Occupancy [binary_sensor.frontporch_zone_book_occupancy] becomes on OR when Front Porch Zone Suitcase Occupancy [binary_sensor.frontporch_zone_suitcase_occupancy] becomes on OR when Front Porch Zone Handbag Occupancy [binary_sensor.frontporch_zone_handbag_occupancy] becomes on. CONDITIONS: None. ACTIONS: Execute script scr_say_phrase with data message 'You have a package at the front door' AND send notification via alexa_yellow_ring with message 'You have a package at the front door'.", "natural_language": { "trigger": "When any of the three front porch zone occupancy sensors detects activity. Specifically, when the Front Porch Zone Book Occupancy [binary_sensor.frontporch_zone_book_occupancy], the Front Porch Zone Suitcase Occupancy [binary_sensor.frontporch_zone_suitcase_occupancy], or the Front Porch Zone Handbag Occupancy [binary_sensor.frontporch_zone_handbag_occupancy] turns on.", "conditions": "There are no additional conditions that must be met for this automation to run.", "action": "The automation will announce 'You have a package at the front door' using a script called scr_say_phrase and also send the same message as a notification to a device or service named alexa_yellow_ring." }, "human_like": "Announces and notifies you when a package is detected in one of the monitored zones on the front porch.", "complexity": "low" } }, { "id": "aut_frontporch_activity", "result": { "structured": "TRIGGER: When Doorbell Zone Person Occupancy [binary_sensor.doorbell_zone_person_occupancy] is on AND Front Entrance Soffit Microwave [binary_sensor.front_ent_soffit_uwave] is on OR When Front Porch Motion [binary_sensor.frontporch_motion] is on AND Doorbell Zone Person Occupancy [binary_sensor.doorbell_zone_person_occupancy] is on. CONDITIONS: Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] is closed (off) AND remains closed for 2 minutes AND More than 14 seconds have passed since the automation aut frontporch activity [automation.aut_frontporch_activity] was last triggered. ACTIONS: Execute script scr_front_door_lights_on AND Execute script scr_frontporch_activity.", "natural_language": { "trigger": "When a person is detected by the Doorbell Zone Person Occupancy [binary_sensor.doorbell_zone_person_occupancy] and the Front Entrance Soffit Microwave [binary_sensor.front_ent_soffit_uwave] also detects activity, or when the Front Porch Motion [binary_sensor.frontporch_motion] detects motion and a person is detected by the Doorbell Zone Person Occupancy [binary_sensor.doorbell_zone_person_occupancy].", "conditions": "The Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] must be closed and remain closed for at least two minutes. Additionally, at least 14 seconds must have passed since this automation was last triggered.", "action": "Runs the script to turn on the front door lights (scr_front_door_lights_on) and then runs the script for front porch activity (scr_frontporch_activity)." }, "human_like": "Turns on the front door lights and runs a porch activity script when someone is detected at the front door, but only if the door is securely closed and the automation hasn't run too recently.", "complexity": "medium" } }, { "id": "aut_front_door_lights_timeout", "result": { "structured": "TRIGGER: When Driveway Zone Car Occupancy [binary_sensor.driveway_zone_car_occupancy] remains off for X minutes OR When Driveway Zone Person Occupancy [binary_sensor.driveway_zone_person_occupancy] remains off for X minutes OR When Front Entrance Attic Microwave [binary_sensor.front_ent_attic_uwave] remains off for X minutes OR When Large Garage Door [cover.large_garage_door] remains closed for X minutes OR When Small Garage Door [cover.small_garage_door] remains closed for X minutes OR When Front Door Lock [lock.front_door_lock] remains locked for X minutes OR When Yang [person.yang] remains home for X+5 minutes OR When Karen [person.karen] remains home for X+5 minutes. (Where X is the numeric value from Front Door Lights Off Delay [input_number.inp_num_front_door_lights_off_delay]). CONDITIONS: None. ACTIONS: Turn off Front Door Lights [light.front_door_lights].", "natural_language": { "trigger": "The automation can be triggered by any one of several events, each requiring a specific state to remain unchanged for a period of time. This period is defined by the Front Door Lights Off Delay [input_number.inp_num_front_door_lights_off_delay] setting. The triggers are: no car detected in the driveway, no person detected in the driveway, no microwave motion detected at the front entrance, the large garage door being closed, the small garage door being closed, the front door lock being locked, or either Karen [person.karen] or Yang [person.yang] being at home. For the person triggers, the required delay is the configured delay plus an additional 5 minutes.", "conditions": "There are no conditions that must be met for the action to run.", "action": "Turns off the Front Door Lights [light.front_door_lights]." }, "human_like": "Turns off the front door lights after a configurable delay when there is no activity in the driveway, garage, or front entrance, or when the front door is locked or residents are home.", "complexity": "medium" } }, { "id": "aut_back_door_lights_timeout", "result": { "structured": "TRIGGER: When back door lock [lock.back_door_lock] remains locked for a duration equal to the value of Back Door Lights Off Delay [input_number.inp_num_back_door_lights_off_delay] (in minutes). CONDITIONS: None. ACTIONS: Turn off Back Door Lights [light.back_door_lights].", "natural_language": { "trigger": "When the back door lock [lock.back_door_lock] has been in the locked state for a specific amount of time. This time is taken from the Back Door Lights Off Delay [input_number.inp_num_back_door_lights_off_delay] setting, measured in minutes.", "conditions": "There are no additional conditions that must be met.", "action": "Turns off the Back Door Lights [light.back_door_lights]." }, "human_like": "Automatically turns off the back door lights a configurable amount of time after the back door is locked.", "complexity": "low" } }, { "id": "aut_outdoor_lighting_auto_off", "result": { "structured": "TRIGGER: When sunrise occurs with a 10-minute offset OR when Lum Outdoor Lights Solar Trigger [binary_sensor.lum_outdoor_lights_solar_trig] changes to off. CONDITIONS: None. ACTIONS: Turn off Outdoor Lights [group.outdoor_lights].", "natural_language": { "trigger": "The automation triggers either 10 minutes after sunrise, or when the Lum Outdoor Lights Solar Trigger [binary_sensor.lum_outdoor_lights_solar_trig] turns off.", "conditions": "There are no conditions to check; the automation runs immediately when triggered.", "action": "Turns off the group of Outdoor Lights [group.outdoor_lights]." }, "human_like": "Automatically turns off the outdoor lights either 10 minutes after sunrise or when a solar trigger indicates it's time.", "complexity": "low" } }, { "id": "aut_mood_lights_luminosity_auto_on", "result": { "structured": "TRIGGER: When sunset occurs with a 30-minute offset before sunset OR when Lum Mood Lights F Solar Trigger [binary_sensor.lum_mood_lights_f_solar_trig] turns on and remains on for 10 minutes. CONDITIONS: (KFL Wild W56 Backed Up Local Solar Rad LX [sensor.kflwildw56_backed_up_local_solar_rad_lx] is not 'unknown') OR (Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is off). ACTIONS: Execute script scr_mood_lighting_on.", "natural_language": { "trigger": "The automation triggers either 30 minutes before sunset or when the Lum Mood Lights F Solar Trigger [binary_sensor.lum_mood_lights_f_solar_trig] has been on for at least 10 minutes.", "conditions": "It requires that either the solar radiation sensor KFL Wild W56 Backed Up Local Solar Rad LX [sensor.kflwildw56_backed_up_local_solar_rad_lx] is reporting a valid reading (not 'unknown'), or that the Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is turned off.", "action": "It runs the mood lighting script (scr_mood_lighting_on) to turn on the mood lights." }, "human_like": "Turns on mood lights automatically before sunset or when a solar trigger is active, provided the system has valid solar data or extended absence mode is off.", "complexity": "medium" } }, { "id": "aut_mood_lighting_luminosity_auto_off", "result": { "structured": "TRIGGER: When Lum Mood Lights F Solar Trigger [binary_sensor.lum_mood_lights_f_solar_trig] remains off for 10 minutes. CONDITIONS: None. ACTIONS: Execute script scr_reset_mood_lights_to_default AND turn off Sun Room Uplights [light.sun_room_uplights], Candles [switch.candles], Kitchen LEDs Upper Master [light.kitchen_leds_upper_master], and Christmas Tree [switch.christmas_tree].", "natural_language": { "trigger": "When the Lum Mood Lights F Solar Trigger [binary_sensor.lum_mood_lights_f_solar_trig] has been off for a continuous period of 10 minutes.", "conditions": "There are no conditions that need to be met.", "action": "First, run the script named 'scr_reset_mood_lights_to_default'. Then, turn off the Sun Room Uplights [light.sun_room_uplights], the Candles [switch.candles], the Kitchen LEDs Upper Master [light.kitchen_leds_upper_master], and the Christmas Tree [switch.christmas_tree]." }, "human_like": "Automatically turns off mood lighting and decorative lights when the solar trigger has been inactive for 10 minutes.", "complexity": "low" } }, { "id": "aut_garage_left_open_while_home", "result": { "structured": "TRIGGER: When Large Garage Door Timer [timer.timer_lg_garage_door] finishes OR When Small Garage Door Timer [timer.timer_sm_garage_door] finishes. CONDITIONS: None. ACTIONS: Execute script scr_repeat_say_garage_open.", "natural_language": { "trigger": "When the Large Garage Door Timer [timer.timer_lg_garage_door] finishes its countdown, or when the Small Garage Door Timer [timer.timer_sm_garage_door] finishes its countdown.", "conditions": "There are no conditions that need to be met.", "action": "Runs the script named scr_repeat_say_garage_open." }, "human_like": "Announces when a garage door has been left open by running a reminder script after a timer finishes.", "complexity": "low" } }, { "id": "aut_reset_garage_timers", "result": { "structured": "TRIGGER: When YS Cell BLE Tracker [device_tracker.ys_cell_ble] leaves the garage OR when KT Cell BLE Tracker [device_tracker.kt_cell_ble] leaves the garage. CONDITIONS: (Large Garage Door [cover.large_garage_door] is open) OR (Small Garage Door [cover.small_garage_door] is open). ACTIONS: Start Large Garage Door Timer [timer.timer_lg_garage_door] AND start Small Garage Door Timer [timer.timer_sm_garage_door].", "natural_language": { "trigger": "When either the YS Cell BLE Tracker [device_tracker.ys_cell_ble] or the KT Cell BLE Tracker [device_tracker.kt_cell_ble] changes its state from being in the garage to being somewhere else.", "conditions": "If at least one of the garage doors is open, meaning either the Large Garage Door [cover.large_garage_door] or the Small Garage Door [cover.small_garage_door] is in the open state.", "action": "Starts both the Large Garage Door Timer [timer.timer_lg_garage_door] and the Small Garage Door Timer [timer.timer_sm_garage_door]." }, "human_like": "Starts garage door timers when someone leaves the garage and at least one door is open.", "complexity": "medium" } }, { "id": "aut_auto_front_door_lock", "result": { "structured": "TRIGGER: When the time elapsed since the last tripped time of Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] exceeds the delay value set in Auto Front Door Lock Trigger Delay [input_number.inp_num_auto_front_door_lock_trig_delay] OR when Front Door Lock [lock.front_door_lock] remains unlocked for a duration equal to the delay value plus 30 minutes. CONDITIONS: Party Mode [input_boolean.party_mode] is off AND Front Door Lock [lock.front_door_lock] remains unlocked for 2 minutes AND Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] is closed (off). ACTIONS: Lock Front Door Lock [lock.front_door_lock] AND send a mobile notification with title 'Front door automatically locked' and message 'Oops. Someone left it unlocked!'.", "natural_language": { "trigger": "The automation triggers in two scenarios: first, when the calculated time difference between the current time and the last time the Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] was triggered exceeds the delay set in Auto Front Door Lock Trigger Delay [input_number.inp_num_auto_front_door_lock_trig_delay]. Second, when the Front Door Lock [lock.front_door_lock] has been unlocked for a period equal to that delay plus 30 minutes.", "conditions": "All of the following must be true: Party Mode [input_boolean.party_mode] is turned off, the Front Door Lock [lock.front_door_lock] has been unlocked for at least two minutes, and the Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] is closed.", "action": "The automation will lock the Front Door Lock [lock.front_door_lock] and send a notification to a mobile device stating that the front door was automatically locked." }, "human_like": "Automatically locks the front door after a configurable delay if the door is left unlocked and closed, and sends a notification about it.", "complexity": "medium" } }, { "id": "aut_auto_front_door_lock_party_mode", "result": { "structured": "TRIGGER: When the time elapsed since the last trip of Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] exceeds the value of Auto Front Door Lock Trigger Party Delay [input_number.inp_num_auto_front_door_lock_trig_party_delay] minutes OR when Front Door Lock [lock.front_door_lock] remains unlocked for the value of Auto Front Door Lock Trigger Party Delay [input_number.inp_num_auto_front_door_lock_trig_party_delay] minutes plus 30 minutes. CONDITIONS: Party Mode [input_boolean.party_mode] is on AND Front Door Lock [lock.front_door_lock] remains unlocked for 2 minutes AND Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] is closed (off). ACTIONS: Lock Front Door Lock [lock.front_door_lock] AND send a notification to mobile_app_yskt_cell with title 'Front door automatically locked' and message 'The party's over!'.", "natural_language": { "trigger": "The automation triggers in two ways. First, when a calculated time difference indicates that the front door sensor has not been triggered for longer than the configured party delay. This is determined by comparing the current time from the Date Time [sensor.date_time] sensor with the last time the Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] sensor was tripped. Second, when the Front Door Lock [lock.front_door_lock] has been unlocked for a duration equal to the configured party delay plus an additional 30 minutes.", "conditions": "All of the following must be true for the automation to run: Party Mode [input_boolean.party_mode] must be switched on. The Front Door Lock [lock.front_door_lock] must have been unlocked for at least two minutes. The Front Door Window/Door Open [binary_sensor.front_door_window_door_is_open] sensor must report that the door is closed.", "action": "The automation locks the Front Door Lock [lock.front_door_lock] and sends a push notification to a mobile device with the title 'Front door automatically locked' and the message 'The party's over!'." }, "human_like": "Automatically locks the front door and sends a notification when Party Mode is active and the door has been left unlocked or unused for a configurable period.", "complexity": "high" } }, { "id": "aut_auto_back_door_lock", "result": { "structured": "TRIGGER: When the time elapsed since Back Door Window/Door Open [binary_sensor.back_door_window_door_is_open] last tripped exceeds the delay set in Auto Back Door Lock Trigger Delay [input_number.inp_num_auto_back_door_lock_trig_delay] (calculated using Date Time [sensor.date_time]) OR when back door lock [lock.back_door_lock] remains unlocked for a duration equal to (Auto Back Door Lock Trigger Delay [input_number.inp_num_auto_back_door_lock_trig_delay] + 30) minutes. CONDITIONS: back door lock [lock.back_door_lock] has been unlocked for 2 minutes AND Back Door Window/Door Open [binary_sensor.back_door_window_door_is_open] is closed (off). ACTIONS: Lock back door lock [lock.back_door_lock] AND send a notification to mobile_app_yskt_cell with title 'Back door automatically locked' and message 'Oops. Someone left it unlocked!'.", "natural_language": { "trigger": "The automation triggers in two ways. First, when the calculated time since the Back Door Window/Door Open [binary_sensor.back_door_window_door_is_open] sensor last detected an opening event exceeds the number of minutes configured in the Auto Back Door Lock Trigger Delay [input_number.inp_num_auto_back_door_lock_trig_delay]. This calculation uses the current time from the Date Time [sensor.date_time] sensor. Second, when the back door lock [lock.back_door_lock] has been in the unlocked state for a period that is 30 minutes longer than the configured trigger delay.", "conditions": "For the automation to run, the back door lock [lock.back_door_lock] must have been unlocked for at least two minutes, and the Back Door Window/Door Open [binary_sensor.back_door_window_door_is_open] sensor must report that the door is closed.", "action": "The automation will lock the back door lock [lock.back_door_lock] and send a push notification to a mobile device with the title 'Back door automatically locked' and a message stating 'Oops. Someone left it unlocked!'." }, "human_like": "Automatically locks the back door if it has been left unlocked for too long and the door is confirmed to be closed, then sends a notification.", "complexity": "medium" } }, { "id": "aut_any_window_open", "result": { "structured": "TRIGGER: When Window Sensors [group.window_sensors] remains on for 2 minutes. ACTIONS: Turn off Local Ecobee [climate.local_ecobee]. Set Saved Sunroom HVAC [input_select.inp_sel_saved_sunroom_hvac] to the current state of Sunroom AC [climate.sunroom_ac]. Turn off Sunroom AC [climate.sunroom_ac]. Execute script scr_say_phrase with the message 'A window is open. Climate control is now turned off'.", "natural_language": { "trigger": "When the group of Window Sensors [group.window_sensors] indicates that a window is open (state 'on') and remains in that state for at least two minutes.", "conditions": "There are no conditions specified for this automation.", "action": "Turns off the main thermostat, Local Ecobee [climate.local_ecobee]. It saves the current mode of the Sunroom AC [climate.sunroom_ac] into the Saved Sunroom HVAC [input_select.inp_sel_saved_sunroom_hvac] selector, then turns off the Sunroom AC [climate.sunroom_ac]. Finally, it announces via a script that a window is open and climate control has been turned off." }, "human_like": "Turns off the heating or cooling systems and announces a warning if any window is left open for two minutes.", "complexity": "low" } }, { "id": "aut_all_windows_closed", "result": { "structured": "TRIGGER: When Window Sensors [group.window_sensors] remains off for 2 minutes. ACTIONS: Turn on Local Ecobee [climate.local_ecobee]. Set Sunroom AC [climate.sunroom_ac] HVAC mode to the current state of Saved Sunroom HVAC [input_select.inp_sel_saved_sunroom_hvac]. Execute script scr_say_phrase with message 'Windows are all closed. Climate control is restored'.", "natural_language": { "trigger": "When the group of Window Sensors [group.window_sensors] indicates that all windows are closed (off) and remains in that state for at least two minutes.", "conditions": "There are no explicit conditions for this automation.", "action": "Turns on the Local Ecobee thermostat [climate.local_ecobee], sets the Sunroom AC [climate.sunroom_ac] to the HVAC mode saved in the Saved Sunroom HVAC [input_select.inp_sel_saved_sunroom_hvac] selector, and announces via a script that the windows are closed and climate control is restored." }, "human_like": "Restores climate control and announces when all windows have been closed for two minutes.", "complexity": "low" } }, { "id": "aut_master_bedroom_fan_trig_on", "result": { "structured": "TRIGGER: When Master Bedroom DS18B20 Temperature [sensor.espresense_masterbdrm_ds18b20_temperature] remains above the value of input_number.inp_num_masterbdrmfan_on_temp for 10 minutes. CONDITIONS: Master Bedroom Fan [fan.master_bedroom_fan] is off. ACTIONS: Set Master Bedroom Fan [fan.master_bedroom_fan] to 30%.", "natural_language": { "trigger": "When the temperature sensor in the master bedroom [sensor.espresense_masterbdrm_ds18b20_temperature] stays above a user-defined threshold for at least ten minutes.", "conditions": "The Master Bedroom Fan [fan.master_bedroom_fan] must currently be turned off.", "action": "Turn on the Master Bedroom Fan [fan.master_bedroom_fan] and set its speed to 30%." }, "human_like": "Turns on the master bedroom fan to a low speed if the room temperature stays above a set point for ten minutes.", "complexity": "low" } }, { "id": "aut_master_bedroom_fan_trig_off", "result": { "structured": "TRIGGER: When Master Bedroom DS18B20 Temperature [sensor.espresense_masterbdrm_ds18b20_temperature] remains below the value of input_number.inp_num_masterbdrmfan_off_temp for 10 minutes. CONDITIONS: Master Bedroom Fan [fan.master_bedroom_fan] is on. ACTIONS: Turn off Master Bedroom Fan [fan.master_bedroom_fan].", "natural_language": { "trigger": "When the Master Bedroom DS18B20 Temperature [sensor.espresense_masterbdrm_ds18b20_temperature] stays below a user-defined threshold temperature for at least 10 minutes.", "conditions": "The Master Bedroom Fan [fan.master_bedroom_fan] must currently be on.", "action": "Turns off the Master Bedroom Fan [fan.master_bedroom_fan]." }, "human_like": "Automatically turns off the master bedroom fan when the room temperature stays below a set threshold for 10 minutes.", "complexity": "low" } }, { "id": "aut_office_fan_trig_50pct", "result": { "structured": "TRIGGER: When Office DS18B20 Temperature [sensor.espresense_office_ds18b20_temperature] remains above the threshold set by input_number.inp_num_officefan_50pct_temp for 5 minutes. CONDITIONS: Guest Mode [input_boolean.inp_bool_guest_mode] is off. ACTIONS: Set Office Fan [fan.office_fan] to 50% speed.", "natural_language": { "trigger": "When the Office DS18B20 Temperature [sensor.espresense_office_ds18b20_temperature] stays above a specific temperature threshold for at least five minutes.", "conditions": "The automation only runs if Guest Mode [input_boolean.inp_bool_guest_mode] is turned off.", "action": "Sets the Office Fan [fan.office_fan] to operate at 50% of its speed." }, "human_like": "Turns the office fan to a medium speed when the room temperature stays above a set point for five minutes, provided guest mode is not active.", "complexity": "low" } }, { "id": "aut_office_fan_trig_25pct", "result": { "structured": "TRIGGER: When Office DS18B20 Temperature [sensor.espresense_office_ds18b20_temperature] remains above the value of input_number.inp_num_officefan_25pct_temp for 5 minutes AND remains below the value of input_number.inp_num_officefan_50pct_temp for 5 minutes. CONDITIONS: Guest Mode [input_boolean.inp_bool_guest_mode] is off. ACTIONS: Set Office Fan [fan.office_fan] to 25% speed.", "natural_language": { "trigger": "When the Office DS18B20 Temperature [sensor.espresense_office_ds18b20_temperature] stays above a specific lower temperature threshold and below a specific higher temperature threshold for at least five minutes.", "conditions": "The automation only runs if Guest Mode [input_boolean.inp_bool_guest_mode] is turned off.", "action": "Sets the Office Fan [fan.office_fan] to run at 25% of its speed." }, "human_like": "Turns the office fan to a low speed when the room temperature is in a moderate range and guest mode is not active.", "complexity": "medium" } }, { "id": "aut_office_fan_trig_off", "result": { "structured": "TRIGGER: When Office DS18B20 Temperature [sensor.espresense_office_ds18b20_temperature] remains below the value set by input_number.inp_num_officefan_off_temp for 5 minutes. CONDITIONS: Guest Mode [input_boolean.inp_bool_guest_mode] is off. ACTIONS: Turn off Office Fan [fan.office_fan].", "natural_language": { "trigger": "When the Office DS18B20 Temperature [sensor.espresense_office_ds18b20_temperature] stays below a specific threshold for at least five minutes.", "conditions": "If the Guest Mode [input_boolean.inp_bool_guest_mode] is turned off.", "action": "Turns off the Office Fan [fan.office_fan]." }, "human_like": "Automatically turns off the office fan when the room temperature has been cool enough for five minutes and guest mode is not active.", "complexity": "low" } }, { "id": "aut_departure_security_check", "result": { "structured": "TRIGGER: When the template condition evaluates to true, meaning: (Yang [person.yang] is 'not_home') AND (Karen [person.karen] is 'not_home') AND (Home YS Cell GPS Distance [sensor.home_ys_cell_gps_distance] is at least 0.2 km away) AND (Home KT Cell GPS Distance [sensor.home_kt_cell_gps_distance] is at least 0.2 km away). CONDITIONS: None specified. ACTIONS: Run script scr_check_garage_open [script.scr_check_garage_open] and then run script scr_nobody_home [script.scr_nobody_home].", "natural_language": { "trigger": "When both Yang [person.yang] and Karen [person.karen] are marked as 'not_home', and the GPS distance sensors for both individuals show they are at least 0.2 kilometers away from home.", "conditions": "There are no additional conditions to check.", "action": "First, run the script to check if the garage is open [script.scr_check_garage_open], and then run the script for when nobody is home [script.scr_nobody_home]." }, "human_like": "Performs a security check when both residents have left the home and are a short distance away, running scripts to verify the garage and set the house to an away state.", "complexity": "medium" } }, { "id": "aut_arrival_announcement", "result": { "structured": "TRIGGER: When Yang [person.yang] arrives home OR When Karen [person.karen] arrives home. CONDITIONS: The system uptime (current time minus sensor.uptime) is greater than 10 seconds. ACTIONS: Wait for any of the following triggers for up to 60 seconds: KT Cell BLE Room [sensor.kt_cell_ble_room] becomes kitchen for 5 seconds OR KT Cell BLE Room [sensor.kt_cell_ble_room] becomes greatrm for 5 seconds OR YS Cell BLE Room [sensor.ys_cell_ble_room] becomes kitchen for 5 seconds OR YS Cell BLE Room [sensor.ys_cell_ble_room] becomes greatrm for 5 seconds. Then, run script.scr_arrival_announcement with the person variable set to the ID of the person who triggered the automation (yang or karen).", "natural_language": { "trigger": "When either Yang [person.yang] or Karen [person.karen] arrives home.", "conditions": "The system must have been running for more than 10 seconds, based on the uptime sensor [sensor.uptime].", "action": "After the condition is met, the automation waits for up to 60 seconds for either Karen's phone [sensor.kt_cell_ble_room] or Yang's phone [sensor.ys_cell_ble_room] to be detected in either the kitchen or great room for at least 5 seconds. Once that happens, it triggers an arrival announcement script, specifying which person arrived." }, "human_like": "Announces the arrival of Karen or Yang when they come home, but only after confirming their phone is detected in a common area like the kitchen or great room.", "complexity": "medium" } }, { "id": "aut_departure_announcement", "result": { "structured": "TRIGGER: When Yang [person.yang] leaves home (state changes from home) AND remains away for 1 minute OR When Karen [person.karen] leaves home (state changes from home) AND remains away for 1 minute. CONDITIONS: Inhibit Presence Announcements [input_boolean.inhibit_presence_announcements] is off. ACTIONS: Execute script scr_say_phrase with a message determined by the trigger: If the triggering person is Karen, say \"Mistress Karen is away\"; otherwise, say \"Master Yang is away\".", "natural_language": { "trigger": "When either Yang [person.yang] or Karen [person.karen] leaves home and remains away for at least one minute.", "conditions": "The automation only runs if the Inhibit Presence Announcements [input_boolean.inhibit_presence_announcements] switch is turned off.", "action": "It triggers a script that announces the departure. If Karen left, it says \"Mistress Karen is away\". If Yang left, it says \"Master Yang is away\"." }, "human_like": "Announces when either Karen or Yang leaves the home, using personalized messages for each person.", "complexity": "medium" } }, { "id": "aut_hvac_fault", "result": { "structured": "TRIGGER: When Main HVAC Fault [binary_sensor.main_hvac_fault] changes from off to on OR When Sunroom HVAC Fault [binary_sensor.sunroom_hvac_fault] changes from off to on. CONDITIONS: None. ACTIONS: Send a notification via Alexa Yellow Ring with a message stating the location (derived from the triggering entity) temperature is outside of tolerance. Send a notification to mobile app YSKT Cell with title 'HVAC system fault detected' and the same location-specific message. Execute script scr_say_phrase to speak the same location-specific message.", "natural_language": { "trigger": "When the Main HVAC Fault [binary_sensor.main_hvac_fault] or the Sunroom HVAC Fault [binary_sensor.sunroom_hvac_fault] changes from a normal (off) state to a fault (on) state.", "conditions": "There are no additional conditions that must be met.", "action": "The automation sends three alerts: a notification to an Alexa device with a yellow ring, a push notification to a mobile phone with the title 'HVAC system fault detected', and it triggers a script to speak a phrase. All messages state that the temperature for the specific location (either 'main house' or 'sun room', based on which sensor triggered) is outside of tolerance." }, "human_like": "Sends alerts and speaks a warning when a fault is detected in either the main house or sunroom HVAC system.", "complexity": "low" } }, { "id": "aut_lab_rack_fan_fault", "result": { "structured": "TRIGGER: When Lab Rack Fan 1 Speed [sensor.lab_rack_fan1_speed] remains below 550 RPM for 10 minutes OR When Lab Rack Fan 2 Speed [sensor.lab_rack_fan2_speed] remains below 550 RPM for 10 minutes. CONDITIONS: None. ACTIONS: Send a notification via gmail_to_yang with a title and message. The title is the entity_id of the triggering sensor with 'sensor.' removed, followed by ' fault'. The message states the sensor name (without 'sensor.') and its current speed in RPM.", "natural_language": { "trigger": "When the speed of Lab Rack Fan 1 Speed [sensor.lab_rack_fan1_speed] stays below 550 RPM for at least 10 minutes, or when the speed of Lab Rack Fan 2 Speed [sensor.lab_rack_fan2_speed] stays below 550 RPM for at least 10 minutes.", "conditions": "There are no conditions that must be met.", "action": "Sends an email notification to a specific recipient. The notification's title identifies which fan is faulty, and the message reports the fan's current speed in RPM." }, "human_like": "Sends an alert if either of the lab rack fans runs too slowly for an extended period, indicating a potential fault.", "complexity": "low" } }, { "id": "aut_low_battery_notification", "result": { "structured": "TRIGGER: When Irrigation Battery Percent [sensor.irrig_battery_percent] drops below 30% OR When Drybox Battery Percent [sensor.drybox_battery_percent] drops below 30% OR When Govee Display Battery [sensor.govee_display_battery] drops below 25% AND remains for 30 minutes OR When Freezer Sensor Battery [sensor.freezer_sensor_battery] drops below 30% AND remains for 30 minutes OR When Front Door Lock Battery Level [sensor.front_door_lock_battery_level] drops below 30% AND remains for 30 minutes OR When Back Door Lock Battery Level [sensor.back_door_lock_battery_level] drops below 30% AND remains for 30 minutes OR When Living Area Motion Battery Level [sensor.living_area_motion_battery_level] drops below 30% AND remains for 30 minutes OR When Sun Room Window 1 Battery Level [sensor.sun_room_window_1_battery_level] drops below 30% AND remains for 30 minutes OR When Sun Room Window 2 Battery Level [sensor.sun_room_window_2_battery_level] drops below 30% AND remains for 30 minutes OR When Sun Room Window 3 Battery Level [sensor.sun_room_window_3_battery_level] drops below 30% AND remains for 30 minutes OR When Sun Room Window 4 Battery Level [sensor.sun_room_window_4_battery_level] drops below 30% AND remains for 30 minutes OR When Sun Room Window 5 Battery Level [sensor.sun_room_window_5_battery_level] drops below 30% AND remains for 30 minutes OR When Sun Room Window 6 Battery Level [sensor.sun_room_window_6_battery_level] drops below 30% AND remains for 30 minutes OR When Front Door Battery Level [sensor.front_door_battery_level] drops below 30% AND remains for 30 minutes OR When Back Door Battery Level [sensor.back_door_battery_level] drops below 30% AND remains for 30 minutes OR When Garage House Door Battery Level [sensor.garagehouse_door_battery_level] drops below 30% AND remains for 30 minutes OR When Guest Suite Display Battery Percent [sensor.guest_suite_display_battery_percent] drops below 20% AND remains for 2 hours OR When Leak Karen's Sink Battery [sensor.leak_karens_sink_battery] drops below 15% AND remains for 30 minutes OR When Leak Yang's Sink Battery [sensor.leak_yangs_sink_battery] drops below 15% AND remains for 30 minutes OR When Leak Guest Sink Battery [sensor.leak_guest_sink_battery] drops below 15% AND remains for 30 minutes OR When Leak Guest Toilet Battery [sensor.leak_guest_toilet_battery] drops below 15% AND remains for 30 minutes OR When Leak Master Toilet Battery [sensor.leak_master_toilet_battery] drops below 15% AND remains for 30 minutes OR When Leak Kitchen Sink Battery [sensor.leak_kitchen_sink_battery] drops below 15% AND remains for 30 minutes OR When Leak Laundry Sink Battery [sensor.leak_laundry_sink_battery] drops below 15% AND remains for 30 minutes OR When Leak Washer Battery [sensor.leak_washer_battery] drops below 15% AND remains for 30 minutes OR When Sun Room Remote 1 Battery Level [sensor.sun_room_remote_1_battery_level] drops below 10% AND remains for 30 minutes OR When Sun Room Remote 2 Battery Level [sensor.sun_room_remote_2_battery_level] drops below 10% AND remains for 30 minutes OR When Sun Room Remote 3 Battery Level [sensor.sun_room_remote_3_battery_level] drops below 10% AND remains for 30 minutes OR When Sun Room Remote 4 Battery Level [sensor.sun_room_remote_4_battery_level] drops below 10% AND remains for 30 minutes OR When Master Bedroom Shade 1 Inner Battery [sensor.master_bedroom_shade_1_inner_battery] drops below 20% OR When Master Bedroom Shade 1 Outer Battery [sensor.master_bedroom_shade_1_outer_battery] drops below 20% OR When Master Bedroom Shade 2 Inner Battery [sensor.master_bedroom_shade_2_inner_battery] drops below 20% OR When Master Bedroom Shade 2 Outer Battery [sensor.master_bedroom_shade_2_outer_battery] drops below 20% OR When Master Bedroom Shade 3 Inner Battery [sensor.master_bedroom_shade_3_inner_battery] drops below 20% OR When Master Bedroom Shade 3 Outer Battery [sensor.master_bedroom_shade_3_outer_battery] drops below 20% OR When Master Bedroom Shade 4 Inner Battery [sensor.master_bedroom_shade_4_inner_battery] drops below 20% OR When Master Bedroom Shade 4 Outer Battery [sensor.master_bedroom_shade_4_outer_battery] drops below 20%. CONDITIONS: None. ACTIONS: Send a notification via notify.gmail_to_yang with a title 'Low batteries: {{ trigger.entity_id }}' and a message 'Low batteries: {{ trigger.entity_id }} {{ states(trigger.entity_id) }}%'.", "natural_language": { "trigger": "The automation triggers when any one of a large list of battery sensors reports a low level. For most sensors, the low level must persist for a specified duration (e.g., 30 minutes or 2 hours) to avoid false alerts. The triggers include sensors for irrigation, drybox, displays, door locks, motion sensors, window sensors, door sensors, leak detectors, remote controls, and motorized shades. Each trigger has its own specific threshold and, in most cases, a required duration.", "conditions": "There are no conditions that must be met for the action to run.", "action": "Sends an email notification to a specific recipient (Yang) via the Gmail service. The notification includes the entity ID of the sensor that triggered the automation and its current battery percentage." }, "human_like": "Sends an email alert when any monitored battery-powered device in the home reports a low battery level, using specific thresholds and timing delays to ensure the alert is accurate.", "complexity": "medium" } }, { "id": "aut_software_update_available", "result": { "structured": "TRIGGER: When Home Assistant Website Update Available [binary_sensor.home_assistant_website_update_available] changes from off to on AND remains on for 10 minutes. ACTIONS: Send a notification via notify.gmail_to_yang containing the message: \"Home Assistant {{states(\"sensor.home_assistant_website\")}} is now available. Your current version is {{states(\"sensor.current_version\")}}. See https://github.com/home-assistant/home-assistant/releases\".", "natural_language": { "trigger": "When the Home Assistant Website Update Available [binary_sensor.home_assistant_website_update_available] sensor changes from off to on and stays on for at least ten minutes.", "conditions": "There are no additional conditions.", "action": "Sends an email notification to a specified recipient, reporting that a new Home Assistant version is available, stating the new version number from the Home Assistant Website [sensor.home_assistant_website] sensor, the current installed version from the Current Version [sensor.current_version] sensor, and providing a link to the release notes." }, "human_like": "Sends an email alert when a new Home Assistant software update is detected as available for at least ten minutes.", "complexity": "low" } }, { "id": "aut_guest_mode_on", "result": { "structured": "TRIGGER: When Guest Mode [input_boolean.inp_bool_guest_mode] changes from off to on. ACTIONS: Execute script scr_common_guest_mode_on.", "natural_language": { "trigger": "When the Guest Mode [input_boolean.inp_bool_guest_mode] is switched on.", "conditions": "There are no conditions for this automation.", "action": "Runs the script named scr_common_guest_mode_on." }, "human_like": "Activates guest mode by running a script when the guest mode switch is turned on.", "complexity": "low" } }, { "id": "aut_guest_mode_off", "result": { "structured": "TRIGGER: When Guest Mode [input_boolean.inp_bool_guest_mode] changes from on to off. CONDITIONS: None. ACTIONS: Execute script scr_common_guest_mode_off.", "natural_language": { "trigger": "When the Guest Mode [input_boolean.inp_bool_guest_mode] is turned off.", "conditions": "There are no conditions for this automation.", "action": "Runs the script named scr_common_guest_mode_off." }, "human_like": "Turns off guest mode features when the guest mode switch is disabled.", "complexity": "low" } }, { "id": "aut_datetime_guest_mode_on", "result": { "structured": "TRIGGER: When the current time matches the time set in input_datetime.guest_arrives. CONDITIONS: Guest Mode [input_boolean.inp_bool_guest_mode] is off. ACTIONS: Turn on Guest Mode [input_boolean.inp_bool_guest_mode] AND execute script scr_common_guest_mode_on.", "natural_language": { "trigger": "At the scheduled time set in the input_datetime.guest_arrives.", "conditions": "Guest Mode [input_boolean.inp_bool_guest_mode] is currently turned off.", "action": "Turn on Guest Mode [input_boolean.inp_bool_guest_mode] and run the associated guest mode script scr_common_guest_mode_on." }, "human_like": "Automatically turns on Guest Mode at a pre-set arrival time.", "complexity": "low" } }, { "id": "aut_datetime_guest_mode_off", "result": { "structured": "TRIGGER: At the time specified by input_datetime.guest_departs. CONDITIONS: Guest Mode [input_boolean.inp_bool_guest_mode] is on. ACTIONS: Turn off Guest Mode [input_boolean.inp_bool_guest_mode] AND execute script scr_common_guest_mode_off.", "natural_language": { "trigger": "At the specific time set in the input_datetime.guest_departs entity.", "conditions": "Only if Guest Mode [input_boolean.inp_bool_guest_mode] is currently turned on.", "action": "Turns off Guest Mode [input_boolean.inp_bool_guest_mode] and runs the script scr_common_guest_mode_off." }, "human_like": "Automatically turns off Guest Mode at a scheduled departure time.", "complexity": "low" } }, { "id": "aut_extended_absence_on", "result": { "structured": "TRIGGER: When Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] changes from off to on. CONDITIONS: Guest Mode [input_boolean.inp_bool_guest_mode] is off. ACTIONS: Execute script scr_say_phrase with message 'Extended absence mode enabled', send a mobile notification via mobile_app_yskt_cell with title 'Extended absence mode has been enabled' and message 'Home Assistant: Extended absence mode enabled', send an email notification via gmail_to_yang with title 'Extended absence mode has been enabled' and message 'Extended absence mode enabled', and execute script scr_common_extended_absence_on.", "natural_language": { "trigger": "When the Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is switched on from an off state.", "conditions": "Guest Mode [input_boolean.inp_bool_guest_mode] must be turned off.", "action": "The system will announce 'Extended absence mode enabled', send a notification to a mobile device, send an email notification, and then run a common script to activate extended absence settings." }, "human_like": "Activates extended absence mode with announcements and notifications when enabled, provided guest mode is off.", "complexity": "low" } }, { "id": "aut_extended_absence_off", "result": { "structured": "TRIGGER: When Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] changes from on to off. CONDITIONS: None. ACTIONS: Execute script scr_common_extended_absence_off, execute script scr_say_phrase with message 'Extended absence mode disabled', send notification via gmail_to_yang with title 'Home Assistant: Extended Absence Mode disabled' and message 'Extended absence mode disabled', send notification via mobile_app_yskt_cell with title 'Extended absence mode has been disabled' and message 'Home Assistant: Extended absence mode disabled' including car_ui data.", "natural_language": { "trigger": "When the Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is turned off.", "conditions": "There are no conditions for this automation.", "action": "It runs a script to handle turning off extended absence mode, announces via a script that the mode is disabled, and sends two notifications: one to a Gmail address and one to a mobile app, both confirming that extended absence mode has been disabled." }, "human_like": "This automation turns off the extended absence mode, announces the change, and sends notifications to your email and phone.", "complexity": "low" } }, { "id": "aut_extended_absence_auto_on", "result": { "structured": "TRIGGER: When Home YS Cell GPS Distance [sensor.home_ys_cell_gps_distance] is greater than 100 AND Home KT Cell GPS Distance [sensor.home_kt_cell_gps_distance] is greater than 100, and this combined condition remains true for 30 minutes. CONDITIONS: Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is off AND Guest Mode [input_boolean.inp_bool_guest_mode] is off. ACTIONS: Turn on Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode].", "natural_language": { "trigger": "When both the Home YS Cell GPS Distance [sensor.home_ys_cell_gps_distance] and the Home KT Cell GPS Distance [sensor.home_kt_cell_gps_distance] report a distance greater than 100, and this situation persists for at least 30 minutes.", "conditions": "If the Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is currently off and the Guest Mode [input_boolean.inp_bool_guest_mode] is also off.", "action": "Activates the Extended Absence Mode by turning on the Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] input boolean." }, "human_like": "Automatically turns on Extended Absence Mode when both tracked phones have been far from home for at least half an hour, provided neither Guest Mode nor Extended Absence Mode are already active.", "complexity": "medium" } }, { "id": "aut_extended_absence_auto_off", "result": { "structured": "TRIGGER: When Home YS Cell GPS Distance [sensor.home_ys_cell_gps_distance] is below 30 for 10 minutes OR When Home KT Cell GPS Distance [sensor.home_kt_cell_gps_distance] is below 30 for 10 minutes OR When Where is KT [group.whereis_kt] changes to home OR When Where is YS [group.whereis_ys] changes to home. CONDITIONS: Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is on. ACTIONS: Turn off Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode].", "natural_language": { "trigger": "The automation triggers if either the Home YS Cell GPS Distance [sensor.home_ys_cell_gps_distance] or the Home KT Cell GPS Distance [sensor.home_kt_cell_gps_distance] remains below 30 units for at least 10 minutes. It also triggers if the location group Where is KT [group.whereis_kt] or Where is YS [group.whereis_ys] changes its state to 'home'.", "conditions": "The automation only proceeds if the Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is currently switched on.", "action": "The automation turns off the Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode]." }, "human_like": "Automatically turns off the extended absence mode when a resident returns home or is detected nearby.", "complexity": "medium" } }, { "id": "aut_datetime_extended_absence_on", "result": { "structured": "TRIGGER: At the time specified by input_datetime.extended_absence_start. CONDITIONS: Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is off. ACTIONS: Turn on Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode].", "natural_language": { "trigger": "When the scheduled time set in the input_datetime.extended_absence_start is reached.", "conditions": "The Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] must be off.", "action": "Turn on the Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode]." }, "human_like": "Automatically activates Extended Absence Mode at a pre-set start time, if it's not already on.", "complexity": "low" } }, { "id": "aut_datetime_extended_absence_off", "result": { "structured": "TRIGGER: When the time reaches the value set in input_datetime.extended_absence_end. CONDITIONS: Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is on. ACTIONS: Turn off Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode].", "natural_language": { "trigger": "At the specific time defined by the input_datetime.extended_absence_end.", "conditions": "Only if the Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is currently switched on.", "action": "Turns off the Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode]." }, "human_like": "Automatically turns off the Extended Absence Mode at a scheduled end time.", "complexity": "low" } }, { "id": "aut_security_occupied_sim", "result": { "structured": "TRIGGER: At sunset. CONDITIONS: Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is on. ACTIONS: Execute script scr_occupied_sim.", "natural_language": { "trigger": "When the sun sets.", "conditions": "If the Extended Absence Mode [input_boolean.inp_bool_extended_absence_mode] is currently turned on.", "action": "Runs the script named scr_occupied_sim." }, "human_like": "Runs an occupancy simulation script at sunset when extended absence mode is active.", "complexity": "low" } }, { "id": "aut_theater_mode_on", "result": { "structured": "TRIGGER: When Theater Mode [input_boolean.inp_bool_theater_mode] changes from off to on. CONDITIONS: None. ACTIONS: Activate the Living Room Theater Mode [scene.living_room_theater_mode] scene.", "natural_language": { "trigger": "When the Theater Mode [input_boolean.inp_bool_theater_mode] is switched from off to on.", "conditions": "There are no additional conditions that must be met.", "action": "Activates the Living Room Theater Mode [scene.living_room_theater_mode] scene." }, "human_like": "Turns on the theater mode scene in the living room when the theater mode switch is activated.", "complexity": "low" } }, { "id": "aut_theater_mode_off", "result": { "structured": "TRIGGER: When Theater Mode [input_boolean.inp_bool_theater_mode] changes from on to off. CONDITIONS: None. ACTIONS: Activate Living Room Normal Mode [scene.living_room_normal_mode].", "natural_language": { "trigger": "When the Theater Mode [input_boolean.inp_bool_theater_mode] is turned off.", "conditions": "There are no conditions for this automation.", "action": "Activates the Living Room Normal Mode [scene.living_room_normal_mode] scene." }, "human_like": "Switches the living room back to its normal lighting and device settings when theater mode is turned off.", "complexity": "low" } }, { "id": "aut_kitchen_mood_100_bright_white", "result": { "structured": "TRIGGER: When Island Lights [light.island_lights] is on AND Kitchen Cabinet Lights [light.kitchen_cabinet_lights] is on AND Kitchen LEDs Lower [light.kitchen_leds_lower] is on. CONDITIONS: None. ACTIONS: Turn on Kitchen LEDs Upper Master [light.kitchen_leds_upper_master] AND turn on Kitchen LEDs Upper [light.kitchen_leds_upper] AND set Kitchen LEDs Upper Preset [select.kitchen_leds_upper_preset] to option 'All Seg Bright Wht 100%'.", "natural_language": { "trigger": "When the Island Lights [light.island_lights], the Kitchen Cabinet Lights [light.kitchen_cabinet_lights], and the Kitchen LEDs Lower [light.kitchen_leds_lower] are all turned on at the same time.", "conditions": "There are no additional conditions that need to be met.", "action": "It turns on the Kitchen LEDs Upper Master [light.kitchen_leds_upper_master] and the Kitchen LEDs Upper [light.kitchen_leds_upper], and sets the Kitchen LEDs Upper Preset [select.kitchen_leds_upper_preset] to the 'All Seg Bright Wht 100%' mode." }, "human_like": "When all the main kitchen lights are on, this automation activates the upper LED strips and sets them to a bright white preset for full illumination.", "complexity": "low" } }, { "id": "aut_kitchen_mood_normal", "result": { "structured": "TRIGGER: When Island Lights [light.island_lights] turns off OR When Kitchen Cabinet Lights [light.kitchen_cabinet_lights] turns off OR When Kitchen LEDs Lower [light.kitchen_leds_lower] turns off. CONDITIONS: None (conditions are part of the action's conditional block). ACTIONS: If Lum Mood Lights F Solar Trigger [input_boolean.inp_bool_lum_mood_lights_f_solar_trig] is on, then run script scr_turn_on_kitchen_leds_upper. Otherwise, turn off Kitchen LEDs Upper [light.kitchen_leds_upper] AND Kitchen LEDs Upper Master [light.kitchen_leds_upper_master].", "natural_language": { "trigger": "When any of the main kitchen lights turn off: the Island Lights [light.island_lights], the Kitchen Cabinet Lights [light.kitchen_cabinet_lights], or the Kitchen LEDs Lower [light.kitchen_leds_lower].", "conditions": "There are no separate global conditions. The action itself contains a conditional check.", "action": "If the Lum Mood Lights F Solar Trigger [input_boolean.inp_bool_lum_mood_lights_f_solar_trig] is enabled (on), it will run a script to turn on the upper kitchen LEDs. If that trigger is not enabled, it will turn off both the Kitchen LEDs Upper [light.kitchen_leds_upper] and the Kitchen LEDs Upper Master [light.kitchen_leds_upper_master]." }, "human_like": "Manages the upper kitchen mood lights based on whether other kitchen lights are turned off, using a solar trigger to decide whether to turn them on or off.", "complexity": "medium" } }, { "id": "hvac_closet_auto_off", "result": { "structured": "TRIGGER: When HVAC Closet Lights [light.hvac_closet_lights] turns on. CONDITIONS: None. ACTIONS: Wait for 2 hours, then turn off HVAC Closet Lights [light.hvac_closet_lights].", "natural_language": { "trigger": "When the HVAC Closet Lights [light.hvac_closet_lights] are turned on.", "conditions": "There are no conditions that need to be met.", "action": "After a delay of two hours, the lights are automatically turned off." }, "human_like": "Automatically turns off the HVAC closet lights two hours after they are turned on.", "complexity": "low" } }, { "id": "kitchen_wled_reset", "result": { "structured": "TRIGGER: When Kitchen LEDs Upper Master [light.kitchen_leds_upper_master] OR Kitchen LEDs Lower [light.kitchen_leds_lower] becomes unavailable AND remains unavailable for 10 seconds. CONDITIONS: None. ACTIONS: Turn off Kitchen WLED Reset [switch.kitchen_wled_reset], wait for 10 seconds, then turn on Kitchen WLED Reset [switch.kitchen_wled_reset].", "natural_language": { "trigger": "When either the Kitchen LEDs Upper Master [light.kitchen_leds_upper_master] or the Kitchen LEDs Lower [light.kitchen_leds_lower] become unavailable and stay in that state for at least 10 seconds.", "conditions": "There are no additional conditions for this automation.", "action": "It turns off the Kitchen WLED Reset [switch.kitchen_wled_reset] switch, waits for 10 seconds, and then turns the same switch back on." }, "human_like": "Automatically cycles the reset switch for the kitchen LED lights if they become unavailable for a short time, aiming to restore their connection.", "complexity": "low" } }, { "id": "aut_half_mile_departure", "result": { "structured": "TRIGGER: When Home YS Cell GPS Distance [sensor.home_ys_cell_gps_distance] becomes greater than 0.5. CONDITIONS: Half Mile Trigger Test [input_boolean.inp_bool_half_mi_trig_test] is on AND Home YS Cell GPS Direction of Travel [sensor.home_ys_cell_gps_direction_of_travel] is away_from. ACTIONS: Send a mobile notification to YS Cell with TTS message 'Half mile exceeded' and car_ui data.", "natural_language": { "trigger": "When the distance from home, as measured by the Home YS Cell GPS Distance [sensor.home_ys_cell_gps_distance], exceeds 0.5 units.", "conditions": "The automation is only active if the Half Mile Trigger Test [input_boolean.inp_bool_half_mi_trig_test] is switched on, and the Home YS Cell GPS Direction of Travel [sensor.home_ys_cell_gps_direction_of_travel] indicates the device is moving 'away_from' home.", "action": "Sends a text-to-speech notification to the mobile device YS Cell, announcing 'Half mile exceeded', with an interface flag for car use." }, "human_like": "Sends a voice alert to your phone when you travel more than half a mile away from home.", "complexity": "low" } } ]