AutomationDataset/dannytsang/automation-descriptions.json

4799 lines
553 KiB
JSON

[
{
"id": "'1628956688014'",
"result": {
"structured": "TRIGGER: When house alarm [alarm_control_panel.house_alarm] changes to the disarmed state. CONDITIONS: enable alarm automations [input_boolean.enable_alarm_automations] is on. ACTIONS: Execute the following actions in parallel: 1) Run script.send_to_home_log with message ':no_bell: disarmed.' and title ':bell: Alarm' at log level Normal. 2) Run script.send_to_home_log with message ':camera: Turning off indoor cameras.' at log level Debug. 3) Run script.set_central_heating_to_home_mode.",
"natural_language": {
"trigger": "When the house alarm [alarm_control_panel.house_alarm] is disarmed.",
"conditions": "The automation is only active if the enable alarm automations [input_boolean.enable_alarm_automations] switch is turned on.",
"action": "It performs three actions simultaneously: it logs a message stating the alarm is disarmed, logs a debug message about turning off indoor cameras, and runs a script to set the central heating to home mode."
},
"human_like": "Logs the alarm disarming event and adjusts home settings like cameras and heating when the alarm is turned off.",
"complexity": "low"
}
},
{
"id": "'1587680439012'",
"result": {
"structured": "TRIGGER: When alarm scheduled home mode [schedule.alarm_scheduled_home_mode] changes from off to on OR at 00:00:00 OR at 01:00:00 OR at 02:00:00 OR every 30 minutes past the hour at 0 hours (e.g., 00:30) OR every 30 minutes past the hour at 1 hour (e.g., 01:30). CONDITIONS: (house alarm [alarm_control_panel.house_alarm] is disarmed OR front door lock [lock.front_door] is not locked) AND enable alarm automations [input_boolean.enable_alarm_automations] is on. ACTIONS: In parallel, execute: 1. Choose: If alarmed doors and windows [binary_sensor.alarmed_doors_and_windows] is on, then run script.send_direct_notification with a message listing open entrances and indicating a retry later, sent to danny person [person.danny] and terina person [person.terina]. Otherwise, in parallel, run script.arm_alarm_overnight with the message 'It's late.'. 2. Run script.lock_front_door.",
"natural_language": {
"trigger": "This automation triggers when the schedule for the alarm's home mode turns on, at midnight, 1 AM, 2 AM, or every 30 minutes during the first two hours of the day (specifically at half past midnight and half past one).",
"conditions": "For the automation to proceed, the house alarm [alarm_control_panel.house_alarm] must be disarmed or the front door lock [lock.front_door] must be unlocked. Additionally, the enable alarm automations [input_boolean.enable_alarm_automations] switch must be turned on.",
"action": "The automation performs two main actions simultaneously. First, it checks if any alarmed doors or windows are open. If they are, it sends a detailed notification to Danny and Terina listing which entrances are open and states it will try again later. If all doors and windows are closed, it arms the alarm in overnight mode with a message stating 'It's late.'. Concurrently, it locks the front door."
},
"human_like": "This automation arms the house alarm in overnight mode and locks the front door late at night, but only if the alarm is disarmed or the door is unlocked, and it notifies you if any doors or windows are still open.",
"complexity": "medium"
}
},
{
"id": "'1587680439015'",
"result": {
"structured": "TRIGGER: At 02:05:00. CONDITIONS: (house alarm [alarm_control_panel.house_alarm] is disarmed) AND (enable alarm automations [input_boolean.enable_alarm_automations] is on). ACTIONS: CHOOSE: IF (alarmed doors and windows [binary_sensor.alarmed_doors_and_windows] is on) THEN PARALLEL: Execute script.send_direct_notification with a custom message listing open doors/windows AND Turn on bedroom lights (under bed left light [light.under_bed_left], under bed right light [light.under_bed_right], bedroom lamp left [light.bedroom_lamp_left], bedroom lamp right [light.bedroom_lamp_right]) to a specific blue color. ELSE IF (alarmed doors and windows [binary_sensor.alarmed_doors_and_windows] is off) THEN CHOOSE: IF (danny person [person.danny] is not home AND danny home nearest distance [sensor.danny_home_nearest_distance] is NOT greater than (long distance away from home [input_number.long_distance_away_from_home] - 1)) AND (terina person [person.terina] is home AND remains for 5 minutes) THEN PARALLEL: Execute script.send_direct_notification with a message about Danny not being home, Execute script.set_alarm_to_home_mode, Execute script.lock_front_door. ELSE IF (danny person [person.danny] is home AND remains for 5 minutes) AND (terina person [person.terina] is not home AND terina home nearest distance [sensor.terina_home_nearest_distance] is NOT greater than (long distance away from home [input_number.long_distance_away_from_home] - 1)) THEN PARALLEL: Execute script.send_direct_notification with a message about Terina not being home, Execute script.set_alarm_to_home_mode, Execute script.lock_front_door. ELSE no action.",
"natural_language": {
"trigger": "The automation runs at 2:05 AM.",
"conditions": "The house alarm [alarm_control_panel.house_alarm] must be disarmed, and the enable alarm automations [input_boolean.enable_alarm_automations] must be turned on.",
"action": "First, it checks the status of the alarmed doors and windows [binary_sensor.alarmed_doors_and_windows]. If any doors or windows are open, it sends a notification to Danny and Terina listing the open openings and turns the bedroom lights blue as a warning. If all doors and windows are closed, it then checks the location of the residents. If Danny is not home and is not considered to be a long distance away, and Terina has been home for at least 5 minutes, it sends a notification, arms the alarm in home mode, and locks the front door. Alternatively, if Terina is not home and is not a long distance away, and Danny has been home for at least 5 minutes, it performs the same actions (notification, arming, locking). If neither of these specific person-absence scenarios is true, no action is taken."
},
"human_like": "At 2:05 AM, if the alarm is disarmed, this automation performs a final check. It warns about open doors/windows or, if all are secure, arms the home alarm overnight when only one resident is confirmed to be home.",
"complexity": "high"
}
},
{
"id": "'1587680439013'",
"result": {
"structured": "TRIGGER: When alarmed doors and windows [binary_sensor.alarmed_doors_and_windows] changes from on to off AND remains off for 30 seconds. CONDITIONS: Adult People [group.adult_people] is home AND house alarm [alarm_control_panel.house_alarm] is disarmed AND alarmed doors and windows [binary_sensor.alarmed_doors_and_windows] is off AND alarm scheduled home mode [schedule.alarm_scheduled_home_mode] is on AND enable alarm automations [input_boolean.enable_alarm_automations] is on. ACTIONS: Execute script.arm_alarm_overnight with a message stating 'All alarmed :door: doors and :window: windows are now closed.'",
"natural_language": {
"trigger": "When the sensor monitoring all alarmed doors and windows [binary_sensor.alarmed_doors_and_windows] reports that they have all been closed (changing from 'on' to 'off') and have stayed closed for at least 30 seconds.",
"conditions": "All adult people [group.adult_people] must be home, the house alarm [alarm_control_panel.house_alarm] must be disarmed, the alarmed doors and windows [binary_sensor.alarmed_doors_and_windows] must be confirmed as closed, the scheduled time for home alarm mode [schedule.alarm_scheduled_home_mode] must be active, and the automation toggle for alarms [input_boolean.enable_alarm_automations] must be turned on.",
"action": "Runs the 'arm alarm overnight' script, which arms the alarm in overnight mode and sends a notification confirming that all alarmed doors and windows are closed."
},
"human_like": "Automatically arms the house alarm in overnight mode when all doors and windows are closed, adults are home, and it's the scheduled time, provided alarm automations are enabled.",
"complexity": "medium"
}
},
{
"id": "'1630366065607'",
"result": {
"structured": "TRIGGER: When house alarm [alarm_control_panel.house_alarm] changes to state armed_away. CONDITIONS: enable alarm automations [input_boolean.enable_alarm_automations] is on. ACTIONS: Execute script.send_to_home_log with message 'Set to away mode (all sensors on). Turning on all :camera_with_flash: cameras.' and title ':bell: Alarm' at log_level Normal.",
"natural_language": {
"trigger": "When the house alarm [alarm_control_panel.house_alarm] is set to armed_away mode.",
"conditions": "The automation is only active if the enable alarm automations [input_boolean.enable_alarm_automations] switch is turned on.",
"action": "Sends a notification to the home log stating that the alarm is set to away mode with all sensors active and that all cameras are being turned on."
},
"human_like": "Logs a message and activates cameras when the house alarm is armed in away mode.",
"complexity": "low"
}
},
{
"id": "'1614197981954'",
"result": {
"structured": "TRIGGER: When house alarm [alarm_control_panel.house_alarm] becomes unavailable and remains unavailable for 1 minute. CONDITIONS: enable alarm automations [input_boolean.enable_alarm_automations] is on. ACTIONS: In parallel, execute script.send_direct_notification with data: title ':bell: Alarm', message ':warning: Disconnected from Home Assistant :warning:', and people list containing danny person [person.danny].",
"natural_language": {
"trigger": "When the house alarm [alarm_control_panel.house_alarm] becomes unavailable and stays in that state for one minute.",
"conditions": "The automation is only active if the enable alarm automations [input_boolean.enable_alarm_automations] is turned on.",
"action": "Sends a direct notification to danny person [person.danny] with the title 'Alarm' and a warning message stating the alarm is disconnected from Home Assistant."
},
"human_like": "Sends a warning notification when the house alarm loses connection to Home Assistant for a minute, but only if alarm automations are enabled.",
"complexity": "low"
}
},
{
"id": "'1658658845650'",
"result": {
"structured": "TRIGGER: When house alarm [alarm_control_panel.house_alarm] becomes unavailable AND remains unavailable for 5 minutes. CONDITIONS: enable alarm automations [input_boolean.enable_alarm_automations] is on. ACTIONS: 1. Log a message 'Alarm has been unavailable for 5 minutes. Restarting Ring MQTT add-on.' via script.send_to_home_log. 2. Restart the Hass.io add-on 'fdb328a7_ring_mqtt'. 3. Wait for house alarm [alarm_control_panel.house_alarm] to change state from unavailable, with a timeout defined by the value of Restart Ring MQTT Add On Timeout [input_text.restart_ring_mqtt_add_on_timeout]. 4. If the wait times out, proceed. 5. After waiting, evaluate a choice: IF house alarm [alarm_control_panel.house_alarm] is still unavailable, log 'Restarting Ring MQTT add-on failed.'. OTHERWISE (if house alarm [alarm_control_panel.house_alarm] is NOT unavailable), log 'Ring MQTT restarted successfully.'.",
"natural_language": {
"trigger": "When the house alarm [alarm_control_panel.house_alarm] becomes unavailable and stays in that state for a continuous period of five minutes.",
"conditions": "The automation only runs if the enable alarm automations [input_boolean.enable_alarm_automations] switch is turned on.",
"action": "First, it sends a notification to the home log stating that the alarm has been unavailable for five minutes and that the Ring MQTT add-on is being restarted. Then, it attempts to restart the specified Ring MQTT add-on. After that, it waits for the house alarm to become available again, but only for a specific duration defined by the Restart Ring MQTT Add On Timeout [input_text.restart_ring_mqtt_add_on_timeout] setting. If the wait times out, it continues anyway. Finally, it checks the alarm's status: if it's still unavailable, it logs a failure message; if it's now available, it logs a success message."
},
"human_like": "Automatically restarts the Ring MQTT add-on and logs the result if the house alarm system becomes unavailable for five minutes.",
"complexity": "medium"
}
},
{
"id": "'1589026420341'",
"result": {
"structured": "TRIGGER: When house alarm [alarm_control_panel.house_alarm] changes state to triggered. CONDITIONS: enable alarm automations [input_boolean.enable_alarm_automations] is on. ACTIONS: In parallel, execute: 1. Run script.send_direct_notification with message 'Has triggered!' and title ':rotating_light: Alarm' to danny person [person.danny], terina person [person.terina], and leo person [person.leo]. 2. Run script.send_actionable_notification_with_2_buttons with message 'Triggered! Turn off?', title ':rotating_light: Alarm', to danny person [person.danny] and terina person [person.terina], with button options 'Yes' (action switch_off_alarm) and 'No' (action ignore). 3. Run script.post_home_assistant_direct_notification with message 'Has triggered!', title '🚨 Alarm', priority high, to danny person [person.danny], terina person [person.terina], and leo person [person.leo].",
"natural_language": {
"trigger": "When the house alarm [alarm_control_panel.house_alarm] is triggered.",
"conditions": "The automation must be enabled, meaning the enable alarm automations [input_boolean.enable_alarm_automations] is switched on.",
"action": "Sends multiple notifications in parallel: a direct notification to Danny, Terina, and Leo; an actionable notification with 'Yes' and 'No' buttons to Danny and Terina; and a high-priority direct notification to Danny, Terina, and Leo, all informing them that the alarm has been triggered."
},
"human_like": "Sends urgent notifications to household members when the house alarm is triggered, provided alarm automations are enabled.",
"complexity": "medium"
}
},
{
"id": "'1676493888411'",
"result": {
"structured": "TRIGGER: When attic hatch contact [binary_sensor.attic_hatch_contact] changes from closed (off) to open (on). CONDITIONS: None. ACTIONS: In parallel, run script.send_to_home_log with message 'Attic hatch opened. Turning lights on.' and title 'Attic' AND turn on attic light [light.attic].",
"natural_language": {
"trigger": "When the attic hatch contact [binary_sensor.attic_hatch_contact] opens, changing its state from closed to open.",
"conditions": "There are no conditions for this automation.",
"action": "It will simultaneously send a debug log message titled 'Attic' stating 'Attic hatch opened. Turning lights on.' and turn on the attic light [light.attic]."
},
"human_like": "Turns on the attic light and logs a message whenever the attic hatch is opened.",
"complexity": "low"
}
},
{
"id": "'1676493961946'",
"result": {
"structured": "TRIGGER: When attic hatch contact [binary_sensor.attic_hatch_contact] changes from open (on) to closed (off). CONDITIONS: None. ACTIONS: Run in parallel: 1. Execute script send_to_home_log with message 'Attic hatch opened. Turning lights off.', title 'Attic', and log_level 'Debug'. 2. Turn off attic light [light.attic].",
"natural_language": {
"trigger": "When the attic hatch contact [binary_sensor.attic_hatch_contact] changes from being open to closed.",
"conditions": "There are no conditions that need to be met.",
"action": "Two actions are performed simultaneously: a log message is sent with the details 'Attic hatch opened. Turning lights off.', and the attic light [light.attic] is turned off."
},
"human_like": "Turns off the attic light and logs a message when the attic hatch is closed.",
"complexity": "low"
}
},
{
"id": "'1664827040573'",
"result": {
"structured": "TRIGGER: When attic light [light.attic] remains on for 30 minutes. CONDITIONS: None. ACTIONS: Execute script send_actionable_notification_with_2_buttons with parameters: title 'Attic', message 'Lights have been on for 15 minutes. Turn off?', recipients danny person [person.danny] AND terina person [person.terina], button 1 title 'Yes' action 'switch_off_attic_lights', button 2 title 'No' action 'ignore'.",
"natural_language": {
"trigger": "When the attic light [light.attic] has been turned on and remains on for 30 minutes.",
"conditions": "There are no conditions that must be met.",
"action": "Sends an actionable notification to both danny person [person.danny] and terina person [person.terina] with the title 'Attic' and the message 'Lights have been on for 15 minutes. Turn off?'. The notification provides two buttons: 'Yes' which triggers an action named 'switch_off_attic_lights', and 'No' which triggers an action named 'ignore'."
},
"human_like": "Sends a reminder notification to Danny and Terina asking if they want to turn off the attic lights after they have been on for 30 minutes.",
"complexity": "low"
}
},
{
"id": "'1590564595890'",
"result": {
"structured": "TRIGGER: When lounge ups battery runtime [sensor.lounge_ups_battery_runtime] falls below 301. CONDITIONS: lounge ups status data [sensor.lounge_ups_status_data] is OB DISCHRG. ACTIONS: Execute script.send_direct_notification with message ':warning: Less than 5 minutes left on :battery: :warning:', title ':battery: Living Room UPS', and notify people danny [person.danny] and terina [person.terina].",
"natural_language": {
"trigger": "When the lounge ups battery runtime [sensor.lounge_ups_battery_runtime] drops below 301 seconds (5 minutes).",
"conditions": "The lounge ups status data [sensor.lounge_ups_status_data] must be in the 'OB DISCHRG' state, indicating the UPS is on battery power and discharging.",
"action": "Sends a direct notification with a warning message and title to both danny [person.danny] and terina [person.terina]."
},
"human_like": "Sends an urgent notification when the living room UPS battery has less than 5 minutes of runtime remaining while it is actively discharging.",
"complexity": "low"
}
},
{
"id": "'1591705795121'",
"result": {
"structured": "TRIGGER: When server ups battery runtime [sensor.server_ups_battery_runtime] is below 301. CONDITIONS: server ups status data [sensor.server_ups_status_data] is OB DISCHRG. ACTIONS: Execute script.send_direct_notification with a message, title, and recipients danny person [person.danny] and terina person [person.terina].",
"natural_language": {
"trigger": "When the server ups battery runtime [sensor.server_ups_battery_runtime] falls below 301 seconds (5 minutes).",
"conditions": "The server ups status data [sensor.server_ups_status_data] must be in the state 'OB DISCHRG' (On Battery Discharging).",
"action": "Sends a direct notification to Danny and Terina with a warning message stating there is less than 5 minutes left on the server UPS battery."
},
"human_like": "Sends a warning notification when the server UPS is on battery power and has less than 5 minutes of runtime remaining.",
"complexity": "low"
}
},
{
"id": "'1604998439600'",
"result": {
"structured": "TRIGGER: When water leak sensors [binary_sensor.water_leak_sensors] changes state to on. CONDITIONS: None. ACTIONS: Execute script.send_to_home_log with message ':warning: :droplet: Potential leak detected :droplet: :warning:' at log level Normal.",
"natural_language": {
"trigger": "When any of the water leak sensors [binary_sensor.water_leak_sensors] detects water, changing its state to 'on'.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a notification to the home log with the message ':warning: :droplet: Potential leak detected :droplet: :warning:' at a normal log level."
},
"human_like": "Sends an alert to the home log when a water leak is detected anywhere in the house.",
"complexity": "low"
}
},
{
"id": "'1604998512525'",
"result": {
"structured": "TRIGGER: When water leak sensors [binary_sensor.water_leak_sensors] changes from on (leak detected) to off (leak not detected). CONDITIONS: None. ACTIONS: Execute script send_to_home_log with message 'Potential leak has stopped' at log level Normal.",
"natural_language": {
"trigger": "When the water leak sensors [binary_sensor.water_leak_sensors] change state from detecting a leak (on) to not detecting a leak (off).",
"conditions": "There are no conditions that must be met.",
"action": "Sends a notification to the home log with the message 'Potential leak has stopped' at a normal log level."
},
"human_like": "Logs a message when a potential water leak is no longer detected by the sensors.",
"complexity": "low"
}
},
{
"id": "'1613246359438'",
"result": {
"structured": "TRIGGER: When computer ups battery runtime [sensor.computer_ups_battery_runtime] is below 301. CONDITIONS: computer ups status data [sensor.computer_ups_status_data] is in state 'OB DISCHRG'. ACTIONS: Execute script send_direct_notification with message ':warning: Less than 5 minutes left on :battery: battery :warning:', title ':battery: PC UPS', and notify people danny person [person.danny] and terina person [person.terina].",
"natural_language": {
"trigger": "When the computer ups battery runtime [sensor.computer_ups_battery_runtime] falls below 301 seconds (5 minutes).",
"conditions": "The computer ups status data [sensor.computer_ups_status_data] must be reporting the status 'OB DISCHRG', indicating the UPS is on battery and discharging.",
"action": "Sends a direct notification to Danny [person.danny] and Terina [person.terina] with the title 'PC UPS' and a warning message about having less than 5 minutes of battery runtime remaining."
},
"human_like": "Sends an urgent notification when the office computer's UPS is running on battery with less than 5 minutes of runtime left.",
"complexity": "low"
}
},
{
"id": "'1613264719942'",
"result": {
"structured": "TRIGGER: When office area motion [binary_sensor.office_area_motion] turns on. CONDITIONS: house alarm [alarm_control_panel.house_alarm] is armed_home AND jd computer group [group.jd_computer] is off. ACTIONS: Execute script send_to_home_log with message ':paw_prints: Motioned detected in the office!' and log level Normal.",
"natural_language": {
"trigger": "When motion is detected in the office, indicated by the office area motion [binary_sensor.office_area_motion] sensor turning on.",
"conditions": "The house alarm [alarm_control_panel.house_alarm] must be set to 'armed_home' mode, and the jd computer group [group.jd_computer] must be off.",
"action": "Sends a message to the home log stating ':paw_prints: Motioned detected in the office!' with a normal log level."
},
"human_like": "Logs a message when motion is detected in the office while the house alarm is armed in home mode and the computer is off.",
"complexity": "low"
}
},
{
"id": "'1613264961246'",
"result": {
"structured": "TRIGGER: When kitchen area motion [binary_sensor.kitchen_area_motion] changes to motion detected (on). CONDITIONS: house alarm [alarm_control_panel.house_alarm] is armed_home AND jd computer group [group.jd_computer] is off. ACTIONS: Run script send_to_home_log with a message ':paw_prints: Motioned detected in the kitchen!' at log level Normal.",
"natural_language": {
"trigger": "When motion is detected in the kitchen by the kitchen area motion sensor [binary_sensor.kitchen_area_motion].",
"conditions": "The house alarm [alarm_control_panel.house_alarm] must be set to 'armed_home' mode, and the group of JD's computers [group.jd_computer] must be off.",
"action": "Sends a notification to the home log with the message ':paw_prints: Motioned detected in the kitchen!' at a normal log level."
},
"human_like": "Logs a message when motion is detected in the kitchen while the house alarm is armed in home mode and the computers are off.",
"complexity": "low"
}
},
{
"id": "'1617395256574'",
"result": {
"structured": "TRIGGER: When leos bed occupied [binary_sensor.leos_bed_occupied] becomes on. CONDITIONS: leos bedroom blinds [cover.leos_bedroom_blinds] is open AND time is after 18:30:00 AND enable leos blind automations [input_boolean.enable_leos_blind_automations] is on AND enable leos bed sensor [input_boolean.enable_leos_bed_sensor] is on. ACTIONS: Log message ':city_sunrise: :bed: Someone is in Leo's bed. Closing blinds.' THEN (IF leos bedroom window contact [binary_sensor.leos_bedroom_window_contact] is on THEN log message ':warning: :window: Leo's bedroom window is still open. Waiting until it's closed before closing blinds. :warning:' ELSE close leos bedroom blinds [cover.leos_bedroom_blinds]) THEN wait for leos bedroom window contact [binary_sensor.leos_bedroom_window_contact] to become off (timeout 3 hours) THEN log message ':white_check_mark: :window: Leo's window closed. Closing blinds.' THEN close leos bedroom blinds [cover.leos_bedroom_blinds].",
"natural_language": {
"trigger": "When the bed occupancy sensor [binary_sensor.leos_bed_occupied] detects someone in the bed.",
"conditions": "The blinds [cover.leos_bedroom_blinds] must be open, the time must be after 6:30 PM, and both the automation toggle for blinds [input_boolean.enable_leos_blind_automations] and the bed sensor toggle [input_boolean.enable_leos_bed_sensor] must be enabled.",
"action": "First, a log entry is created noting that someone is in bed and the blinds will close. Then, the automation checks if the window [binary_sensor.leos_bedroom_window_contact] is open. If it is, a warning is logged and the automation waits for up to three hours for the window to close. Once the window is closed (or if it was already closed), a confirmation log is created and the blinds [cover.leos_bedroom_blinds] are closed. If the window was already closed when first checked, the blinds are closed immediately after the initial log message."
},
"human_like": "Closes the bedroom blinds when someone gets into bed in the evening, but waits for the window to be closed first to ensure safety.",
"complexity": "medium"
}
},
{
"id": "'1622973276606'",
"result": {
"structured": "TRIGGER: When alarm office door [input_boolean.alarm_office_door] changes from off to on. CONDITIONS: None. ACTIONS: If office door contact [binary_sensor.office_door_contact] is open (on), then send a log message ':warning: :alarm: Unable to arm office door because the door is not closed. Disabling alarm.' and turn off alarm office door [input_boolean.alarm_office_door]. Otherwise, send a log message ':bell: :door: Office door armed.'.",
"natural_language": {
"trigger": "When the alarm office door [input_boolean.alarm_office_door] is turned on.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "The automation checks if the office door contact [binary_sensor.office_door_contact] is open. If it is, it logs a warning message stating the door cannot be armed because it's not closed and then turns the alarm off. If the door is closed, it logs a confirmation message that the office door is now armed."
},
"human_like": "Arms the office door alarm if the door is closed; if the door is open, it logs a warning and disables the alarm.",
"complexity": "low"
}
},
{
"id": "'1622973478458'",
"result": {
"structured": "TRIGGER: When office door contact [binary_sensor.office_door_contact] changes from closed (off) to open (on). CONDITIONS: alarm office door [input_boolean.alarm_office_door] is on. ACTIONS: Execute script send_to_home_log with message ':rotating_light: :door: Office door armed and was opened:rotating_light:' AND Turn off alarm office door [input_boolean.alarm_office_door].",
"natural_language": {
"trigger": "When the office door contact [binary_sensor.office_door_contact] is opened, changing its state from closed to open.",
"conditions": "The alarm office door [input_boolean.alarm_office_door] must be in the 'on' state, indicating the door alarm is armed.",
"action": "Sends a notification message ':rotating_light: :door: Office door armed and was opened:rotating_light:' to the home log and then disarms the door alarm by turning off alarm office door [input_boolean.alarm_office_door]."
},
"human_like": "Sends an alert and disarms the alarm when the office door is opened while it is armed.",
"complexity": "low"
}
},
{
"id": "'1627509008928'",
"result": {
"structured": "TRIGGER: When home mode [input_select.home_mode] changes to state 'No Children'. CONDITIONS: None. ACTIONS: Execute script.send_to_home_log with message ':repeat: Entering No Children mode.' and log_level 'Normal'.",
"natural_language": {
"trigger": "When the home mode [input_select.home_mode] is changed to 'No Children'.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a log message to the home log stating ':repeat: Entering No Children mode.' with a normal log level."
},
"human_like": "Logs a message when the house enters 'No Children' mode.",
"complexity": "low"
}
},
{
"id": "'1634576629865'",
"result": {
"structured": "TRIGGER: When an NFC tag is scanned by a user with user_id 06cbf6deafc54cf0beffa49552a396b1 OR 2df8a2a6e0be4d5d902aad2d39ed4c9b. CONDITIONS: None. ACTIONS: If the scanned tag_id is 47e42f4c-3ffa-463f-ae2f-ed0b97a4fe9c, then log a message to the home log and run script.nfc_front_door. Otherwise, if the scanned tag_id is 8b6d6755-b4d5-4b23-8e8b-cf224d221bb7, then log a message to the home log and run script.nfc_bedroom_right.",
"natural_language": {
"trigger": "When an NFC tag is scanned by one of two specific users (identified by their user IDs).",
"conditions": "There are no additional conditions.",
"action": "Depending on which NFC tag was scanned, the automation will perform different actions. If the tag with ID 47e42f4c-3ffa-463f-ae2f-ed0b97a4fe9c is scanned, it logs a message to the home log and runs the script 'nfc_front_door'. If the tag with ID 8b6d6755-b4d5-4b23-8e8b-cf224d221bb7 is scanned, it logs a message and runs the script 'nfc_bedroom_right'. If any other tag is scanned, nothing happens."
},
"human_like": "Executes specific actions, like unlocking a door, when authorized users scan designated NFC tags.",
"complexity": "medium"
}
},
{
"id": "'1636203020481'",
"result": {
"structured": "TRIGGER: When front door [binary_sensor.front_door] changes from closed (off) to open (on). CONDITIONS: None. ACTIONS: Choose based on porch motion occupancy [binary_sensor.porch_motion_occupancy] state: IF porch motion occupancy [binary_sensor.porch_motion_occupancy] is on THEN execute script.send_to_home_log with message ':door: Someone leaving.' ELSE IF porch motion occupancy [binary_sensor.porch_motion_occupancy] is off THEN execute script.send_to_home_log with message ':test_tube: :door: Someone entering.'.",
"natural_language": {
"trigger": "When the front door [binary_sensor.front_door] opens.",
"conditions": "There are no conditions that must be met.",
"action": "The automation checks if motion is currently detected on the porch. If motion is detected (porch motion occupancy [binary_sensor.porch_motion_occupancy] is on), it logs a message indicating someone is leaving. If no motion is detected (porch motion occupancy [binary_sensor.porch_motion_occupancy] is off), it logs a message indicating someone is entering."
},
"human_like": "Logs whether someone is entering or leaving the house based on the front door opening and whether motion is detected on the porch.",
"complexity": "medium"
}
},
{
"id": "'1647094935963'",
"result": {
"structured": "TRIGGER: When naughty step mode [input_boolean.naughty_step_mode] changes from on to off. CONDITIONS: None. ACTIONS: Execute script.send_to_home_log with message 'Exiting naught step mode.' AND Turn on enable living room motion triggers [input_boolean.enable_living_room_motion_triggers] AND Turn on enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers].",
"natural_language": {
"trigger": "When the naughty step mode [input_boolean.naughty_step_mode] is turned off.",
"conditions": "There are no conditions that must be met.",
"action": "Logs the message 'Exiting naught step mode.' to the home log and then turns on the enable living room motion triggers [input_boolean.enable_living_room_motion_triggers] and enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] switches."
},
"human_like": "Restores normal motion detection in the living room and on the stairs when the special 'naughty step' mode is deactivated.",
"complexity": "low"
}
},
{
"id": "'1653857006776'",
"result": {
"structured": "TRIGGER: When thermostat [climate.thermostat] attribute hvac_action changes from idle to heating. CONDITIONS: thermostat [climate.thermostat] is in auto mode. ACTIONS: If front door [binary_sensor.front_door] is open (on), then run script.send_direct_notification with a message to consider closing the front door or turning the heating off. Otherwise, do nothing.",
"natural_language": {
"trigger": "When the thermostat [climate.thermostat] starts heating, changing its hvac_action attribute from idle to heating.",
"conditions": "The thermostat [climate.thermostat] must be set to the auto mode.",
"action": "If the front door [binary_sensor.front_door] is open, a notification is sent suggesting to close the door or turn off the heating. If the door is closed, no action is taken."
},
"human_like": "Sends a reminder to close the front door when the heating turns on, but only if the thermostat is in auto mode.",
"complexity": "low"
}
},
{
"id": "'1659198098255'",
"result": {
"structured": "TRIGGER: At sunset OR at 17:00, 17:15, 17:30, 17:45, 18:00, 18:15, 18:30, 18:45, 19:00, 19:15, 19:30, 19:45, 20:00, 20:15, 20:30, 20:45, 21:00, 21:15, 21:30, 21:45, 22:00, 22:15, 22:30, 22:45. CONDITIONS: house alarm [alarm_control_panel.house_alarm] is armed_away AND tracked people group [group.tracked_people] is not_home AND it is after sunset (with a 2-hour offset before sunset) AND (terina home nearest distance [sensor.terina_home_nearest_distance] is greater than (long distance away from home [input_number.long_distance_away_from_home] minus 1) OR danny home nearest distance [sensor.danny_home_nearest_distance] is greater than (long distance away from home [input_number.long_distance_away_from_home] minus 1)). ACTIONS: Log a message 'Changing lights to pretend someone is at home.' via script.send_to_home_log, then run script.downstairs_random_light, then run script.upstairs_random_lights.",
"natural_language": {
"trigger": "The automation triggers at sunset, or at any quarter-hour interval between 5:00 PM and 10:45 PM.",
"conditions": "All of the following must be true: the house alarm [alarm_control_panel.house_alarm] is set to 'armed away'; the tracked people group [group.tracked_people] shows that everyone is 'not home'; it is currently after sunset, specifically within the two hours before sunset; and either Terina's distance from home [sensor.terina_home_nearest_distance] or Danny's distance from home [sensor.danny_home_nearest_distance] is greater than the configured 'long distance away from home' threshold minus one unit.",
"action": "First, a log entry is created stating 'Changing lights to pretend someone is at home.'. Then, the script 'downstairs_random_light' is activated, followed by the script 'upstairs_random_lights'."
},
"human_like": "Turns on random lights in the evening when the house is empty and the alarm is set, to create the appearance that someone is home.",
"complexity": "medium"
}
},
{
"id": "'1660326219450'",
"result": {
"structured": "TRIGGER: At 09:00:00. CONDITIONS: (NOT (home mode [input_select.home_mode] is Holiday)) AND (time is on Monday OR Tuesday OR Wednesday OR Thursday OR Friday). ACTIONS: Run script.send_to_home_log with message 'Checking if hot water needs to be turned off.' and title ':sun_small_cloud: Weather' AND Run script.set_how_water_to_away_mode.",
"natural_language": {
"trigger": "The automation triggers every day at 9:00 AM.",
"conditions": "The automation only runs if the home mode [input_select.home_mode] is not set to 'Holiday', and if the current day is a weekday (Monday, Tuesday, Wednesday, Thursday, or Friday).",
"action": "It first logs a message titled ':sun_small_cloud: Weather' saying 'Checking if hot water needs to be turned off.' to the home log. Then, it runs a script named script.set_how_water_to_away_mode."
},
"human_like": "On weekday mornings at 9 AM, if the house is not in holiday mode, it checks the weather and may adjust the hot water to an away setting.",
"complexity": "low"
}
},
{
"id": "'1660326219451'",
"result": {
"structured": "TRIGGER: At 14:00:00. CONDITIONS: (NOT (home mode [input_select.home_mode] is Holiday)) AND (time is on Monday, Tuesday, Wednesday, Thursday, or Friday) AND (Enable Hot Water Automations [input_boolean.enable_hot_water_automations] is on). ACTIONS: Run script.send_to_home_log with message 'Checking if hot water needs to be turned on.' and title ':sun_small_cloud: Weather', then run script.set_hot_water_to_home_mode.",
"natural_language": {
"trigger": "The automation triggers daily at 2:00 PM.",
"conditions": "The automation will only proceed if the home mode [input_select.home_mode] is not set to 'Holiday', the current day is a weekday (Monday through Friday), and the Enable Hot Water Automations [input_boolean.enable_hot_water_automations] switch is turned on.",
"action": "First, it posts a log message titled ':sun_small_cloud: Weather' stating 'Checking if hot water needs to be turned on.' Then, it runs a script named 'set_hot_water_to_home_mode'."
},
"human_like": "On weekday afternoons, if the house is not in holiday mode, it checks the weather and adjusts the hot water system accordingly.",
"complexity": "medium"
}
},
{
"id": "'1674478124534'",
"result": {
"structured": "TRIGGER: When conservatory area mean temperature [sensor.conservatory_area_mean_temperature] falls below 3. CONDITIONS: None. ACTIONS: Set climate preset mode to boost AND run script send_to_home_log with message 'Conservatory fell below 3c. Boosting central heating.'.",
"natural_language": {
"trigger": "When the conservatory area mean temperature [sensor.conservatory_area_mean_temperature] drops below 3 degrees.",
"conditions": "There are no conditions that must be met.",
"action": "It boosts the central heating by setting the climate preset mode to 'boost' and sends a notification to the home log stating 'Conservatory fell below 3c. Boosting central heating.'."
},
"human_like": "Boosts the heating in the conservatory when the temperature gets too cold and logs the event.",
"complexity": "low"
}
},
{
"id": "'1674916813112'",
"result": {
"structured": "TRIGGER: When bedroom lamps [light.bedroom_lamps] turns from on to off. CONDITIONS: stairs light [light.stairs] is on OR stairs 2 light [light.stairs_2] is on. ACTIONS: In parallel: 1. Run script send_to_home_log with message 'Bedroom light turned off. Turning stairs lights off.' and title ':bed: Bedroom'. 2. Activate scene Stairs Light Off [scene.stairs_light_off] with a 2-second transition.",
"natural_language": {
"trigger": "When the bedroom lamps [light.bedroom_lamps] are turned off.",
"conditions": "Either the stairs light [light.stairs] or the stairs 2 light [light.stairs_2] is currently on.",
"action": "Logs a message to the home log stating 'Bedroom light turned off. Turning stairs lights off.' and simultaneously activates the 'Stairs Light Off' scene [scene.stairs_light_off], fading the lights over 2 seconds."
},
"human_like": "When the bedroom lights are turned off, it turns off the stairs lights if they are on, and logs the action.",
"complexity": "low"
}
},
{
"id": "'1698342875093'",
"result": {
"structured": "TRIGGER: When Kitchen Motion mmWave Sensor [switch.kitchen_motion_mmwave_sensor] turns on. CONDITIONS: home mode [input_select.home_mode] is set to Holiday. ACTIONS: Turn off Kitchen Motion mmWave Sensor [switch.kitchen_motion_mmwave_sensor].",
"natural_language": {
"trigger": "When the Kitchen Motion mmWave Sensor [switch.kitchen_motion_mmwave_sensor] is turned on.",
"conditions": "The home mode [input_select.home_mode] must be set to 'Holiday'.",
"action": "Immediately turns the Kitchen Motion mmWave Sensor [switch.kitchen_motion_mmwave_sensor] back off."
},
"human_like": "Keeps the kitchen mmWave motion sensor disabled when the house is in holiday mode, ensuring it doesn't turn on accidentally.",
"complexity": "low"
}
},
{
"id": "'1618158789152'",
"result": {
"structured": "TRIGGER: When shed door [binary_sensor.shed_door] changes from open (on) to closed (off). CONDITIONS: None. ACTIONS: Execute a conditional choice: 1) IF house alarm [alarm_control_panel.house_alarm] is NOT disarmed AND conservatory door [binary_sensor.conservatory_door] is open (on) THEN log a debug message. 2) IF house alarm [alarm_control_panel.house_alarm] is NOT disarmed AND conservatory door [binary_sensor.conservatory_door] is closed (off) THEN log a debug message. 3) IF conservatory door [binary_sensor.conservatory_door] is open (on) THEN log a debug message. 4) IF house alarm [alarm_control_panel.house_alarm] is disarmed THEN log a debug message in parallel. 5) IF house alarm [alarm_control_panel.house_alarm] is NOT disarmed THEN log a debug message.",
"natural_language": {
"trigger": "When the shed door [binary_sensor.shed_door] closes.",
"conditions": "There are no global conditions for this automation.",
"action": "Depending on the state of the house alarm [alarm_control_panel.house_alarm] and the conservatory door [binary_sensor.conservatory_door], a debug log message is sent. If the alarm is armed and the conservatory door is open, it logs a specific message. If the alarm is armed and the conservatory door is closed, it logs a different message. If just the conservatory door is open, it logs another message. If the alarm is disarmed, it logs a message about turning the camera off. A final fallback condition logs a message if the alarm is armed."
},
"human_like": "Logs a message when the shed door closes, explaining why the conservatory camera stays on or turns off based on the alarm and door status.",
"complexity": "medium"
}
},
{
"id": "'1618158998129'",
"result": {
"structured": "TRIGGER: When shed motion [binary_sensor.shed_motion] changes from off to on. CONDITIONS: shed door [binary_sensor.shed_door] is closed (off). ACTIONS: Execute script.send_direct_notification with a message stating 'Motion detected in the shed and the door is shut.' and title ':hut: Shed'.",
"natural_language": {
"trigger": "When motion is first detected in the shed, indicated by the shed motion [binary_sensor.shed_motion] sensor changing from no motion to motion.",
"conditions": "The shed door [binary_sensor.shed_door] must be closed at the time the motion is detected.",
"action": "Sends a notification with the title ':hut: Shed' and a message stating ':paw_prints: Motion detected in the shed and the door is shut.'"
},
"human_like": "Sends a notification when motion is detected inside the shed while the door is closed.",
"complexity": "low"
}
},
{
"id": "'1660894232445'",
"result": {
"structured": "TRIGGER: When back garden motion illuminance [sensor.back_garden_motion_illuminance] remains below close blinds brightness threshold [input_number.close_blinds_brightness_threshold] for 10 minutes. CONDITIONS: None. ACTIONS: Log a debug message to the home log stating sun light has fallen below the threshold. THEN, IF (bedroom blinds [cover.bedroom_blinds] current_position is below blind closed position threshold [input_number.blind_closed_position_threshold] AND the current time is before childrens bed time [input_datetime.childrens_bed_time]) THEN open leos bedroom blinds [cover.leos_bedroom_blinds].",
"natural_language": {
"trigger": "When the back garden motion illuminance [sensor.back_garden_motion_illuminance] sensor reports a light level below the close blinds brightness threshold [input_number.close_blinds_brightness_threshold] for a continuous period of 10 minutes.",
"conditions": "There are no global conditions for this automation.",
"action": "First, a debug message is sent to the home log, noting that the sunlight has fallen below the threshold. Then, if the current position of the bedroom blinds [cover.bedroom_blinds] is below the blind closed position threshold [input_number.blind_closed_position_threshold] and the current time is before the childrens bed time [input_datetime.childrens_bed_time], the automation will open leos bedroom blinds [cover.leos_bedroom_blinds]."
},
"human_like": "Opens Leo's bedroom blinds when the garden light level has been low for 10 minutes, but only if the main bedroom blinds are not fully closed and it's before the children's bedtime.",
"complexity": "medium"
}
},
{
"id": "'1754227355547'",
"result": {
"structured": "TRIGGER: When bathroom motion pir [binary_sensor.bathroom_motion_pir] OR bathroom motion 2 occupancy [binary_sensor.bathroom_motion_2_occupancy] changes to on. CONDITIONS: None. ACTIONS: First, execute a conditional choice: IF bathroom lights [light.bathroom_lights] is off AND bathroom area mean light level [sensor.bathroom_area_mean_light_level] is above bathroom light level threshold [input_number.bathroom_light_level_threshold], THEN log a message indicating motion detected but too bright. ELSE IF bathroom lights [light.bathroom_lights] is off, THEN in parallel log a message about turning on the light AND turn on bathroom lights [light.bathroom_lights]. ELSE (default) log a message that motion was detected and the light is already on. Second, cancel bathroom light timer [timer.bathroom_light].",
"natural_language": {
"trigger": "When motion is detected by either the bathroom motion pir [binary_sensor.bathroom_motion_pir] or the bathroom motion 2 occupancy [binary_sensor.bathroom_motion_2_occupancy] sensors.",
"conditions": "There are no conditions that must be met before proceeding with the actions.",
"action": "The automation first checks the state of the bathroom lights [light.bathroom_lights]. If the lights are off and the bathroom area mean light level [sensor.bathroom_area_mean_light_level] is above a set threshold [input_number.bathroom_light_level_threshold], it logs a message stating it's too bright and skips turning on the lights. If the lights are off but the light level is below the threshold, it logs a message and turns on the bathroom lights [light.bathroom_lights] simultaneously. If the lights are already on, it simply logs a message that motion was detected. Finally, it cancels any running bathroom light timer [timer.bathroom_light]."
},
"human_like": "Turns on the bathroom lights when motion is detected, but only if it's dark enough, and logs the activity while also cancelling a related timer.",
"complexity": "medium"
}
},
{
"id": "'1754227694151'",
"result": {
"structured": "TRIGGER: When bathroom area motion [binary_sensor.bathroom_area_motion] stops detecting motion (state changes to 'off') AND remains in that state for 3 minutes. CONDITIONS: None. ACTIONS: Choose action based on conditions: IF bathroom door contact [binary_sensor.bathroom_door_contact] is closed ('off') THEN send a log message indicating no motion and door closed, skipping turning light off. OTHERWISE (default): IF current time is between 00:00:00 AND 06:00:00 THEN in parallel: send a log message indicating no motion and starting night timer AND start bathroom light timer [timer.bathroom_light] for 2 minutes. OTHERWISE (default): in parallel: send a log message indicating no motion and starting timer AND start bathroom light timer [timer.bathroom_light] for 5 minutes.",
"natural_language": {
"trigger": "When the bathroom area motion sensor [binary_sensor.bathroom_area_motion] detects no motion and remains in that state for three minutes.",
"conditions": "There are no global conditions. The automation uses conditional logic within the actions to decide what to do.",
"action": "First, it checks if the bathroom door contact [binary_sensor.bathroom_door_contact] is closed. If it is, a log message is sent stating that no motion was detected and the door is closed, so turning the light off is skipped. If the door is not closed, the automation checks the time. If it is between midnight and 6 AM, it sends a log message about starting a night timer and simultaneously starts the bathroom light timer [timer.bathroom_light] for two minutes. At any other time of day, it sends a log message about starting a timer and starts the bathroom light timer [timer.bathroom_light] for five minutes."
},
"human_like": "Turns off the bathroom light after a period of no motion, using a shorter timer at night and skipping the action if the door is closed.",
"complexity": "medium"
}
},
{
"id": "'1754254675071'",
"result": {
"structured": "TRIGGER: When bathroom lights [light.bathroom_lights] turns off. CONDITIONS: None. ACTIONS: Send a notification to the home log with the message ':bulb: Lights turned off. Cancelling light timer.' and title ':bathtub: Bathroom' AND Cancel bathroom light timer [timer.bathroom_light].",
"natural_language": {
"trigger": "When the bathroom lights [light.bathroom_lights] are turned off.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a notification to the home log stating that the lights were turned off and the light timer is being cancelled, and simultaneously cancels the bathroom light timer [timer.bathroom_light]."
},
"human_like": "When the bathroom lights are turned off, it sends a notification and cancels the associated light timer.",
"complexity": "low"
}
},
{
"id": "'1754254675073'",
"result": {
"structured": "TRIGGER: When bathroom light input 0 [binary_sensor.bathroom_light_input_0] changes state. CONDITIONS: None. ACTIONS: Wait 1 second. Then, if bathroom lights [light.bathroom_lights] is on, execute in parallel: send a log message with title ':bathtub: Bathroom' and message 'Light switch used' AND cancel bathroom light timer [timer.bathroom_light]. If bathroom lights [light.bathroom_lights] is not on, do nothing.",
"natural_language": {
"trigger": "Whenever the bathroom light input 0 [binary_sensor.bathroom_light_input_0] changes its state.",
"conditions": "There are no conditions that must be met.",
"action": "After a one-second delay, the automation checks if the bathroom lights [light.bathroom_lights] are on. If they are, it performs two actions simultaneously: it logs a message titled ':bathtub: Bathroom' with the text 'Light switch used', and it cancels the bathroom light timer [timer.bathroom_light]. If the lights are off, no action is taken."
},
"human_like": "Logs the use of the bathroom light switch and cancels the bathroom light timer when the lights are on.",
"complexity": "medium"
}
},
{
"id": "'1754254675072'",
"result": {
"structured": "TRIGGER: When bathroom light timer [timer.bathroom_light] finishes. CONDITIONS: None. ACTIONS: In parallel: Send a notification to the home log with the message ':bulb: Light timer finished. Turning off lights.' and title ':bathtub: Bathroom', AND Turn off bathroom lights [light.bathroom_lights].",
"natural_language": {
"trigger": "When the bathroom light timer [timer.bathroom_light] finishes.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a notification to the home log with the message ':bulb: Light timer finished. Turning off lights.' and title ':bathtub: Bathroom', and simultaneously turns off the bathroom lights [light.bathroom_lights]."
},
"human_like": "Turns off the bathroom lights and sends a notification when the bathroom light timer finishes.",
"complexity": "low"
}
},
{
"id": "'1680461746985'",
"result": {
"structured": "TRIGGER: When bathroom motion humidity [sensor.bathroom_motion_humidity] remains above 59.9% for 30 minutes. CONDITIONS: bathroom window contact [binary_sensor.bathroom_window_contact] is closed (off). ACTIONS: Execute script.send_direct_notification with a message containing the current humidity value and a note that the window is closed, sent to danny person [person.danny] and terina person [person.terina].",
"natural_language": {
"trigger": "When the humidity sensor in the bathroom, bathroom motion humidity [sensor.bathroom_motion_humidity], stays above 59.9% for at least 30 minutes.",
"conditions": "The bathroom window, as reported by bathroom window contact [binary_sensor.bathroom_window_contact], must be closed.",
"action": "Sends a direct notification to danny person [person.danny] and terina person [person.terina] with a title and a message stating the high humidity level and that the window is closed."
},
"human_like": "Sends a notification if the bathroom humidity is high for 30 minutes and the window is closed.",
"complexity": "low"
}
},
{
"id": "'1601641236163'",
"result": {
"structured": "TRIGGER: When bed occupied [binary_sensor.bed_occupied] changes from off to on AND remains on for 30 seconds. CONDITIONS: (bedroom blinds [cover.bedroom_blinds] current_position is above blind open position threshold [input_number.blind_open_position_threshold]) AND (enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] is on) AND (sun is after sunset) AND (bedroom window contact [binary_sensor.bedroom_window_contact] is off) AND (enable bed sensor [input_boolean.enable_bed_sensor] is on). ACTIONS: Run in parallel: 1. Execute script.send_to_home_log with a message about closing blinds. 2. Close bedroom blinds [cover.bedroom_blinds].",
"natural_language": {
"trigger": "When the bed occupied [binary_sensor.bed_occupied] sensor detects someone has been in bed for at least 30 seconds.",
"conditions": "If the bedroom blinds [cover.bedroom_blinds] are currently open beyond a set threshold, the enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] switch is on, it is after sunset, the bedroom window contact [binary_sensor.bedroom_window_contact] indicates the window is closed, and the enable bed sensor [input_boolean.enable_bed_sensor] switch is on.",
"action": "Sends a debug log message to the home log and simultaneously closes the bedroom blinds [cover.bedroom_blinds]."
},
"human_like": "Automatically closes the bedroom blinds when someone gets into bed after sunset, provided the window is closed and the relevant automations are enabled.",
"complexity": "medium"
}
},
{
"id": "'1600127180656'",
"result": {
"structured": "TRIGGER: When sunrise occurs with an offset of -2 hours (i.e., 2 hours before sunrise). CONDITIONS: (bedroom blinds [cover.bedroom_blinds] current_position attribute is above blind open position threshold [input_number.blind_open_position_threshold]) AND (enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] is on) AND (bedroom window contact [binary_sensor.bedroom_window_contact] is closed (off)). ACTIONS: In parallel: 1. Execute script.send_to_home_log with a custom message indicating the bedroom blind is open and it's nearly sunrise. 2. Close bedroom blinds [cover.bedroom_blinds].",
"natural_language": {
"trigger": "Two hours before the sun rises.",
"conditions": "If the bedroom blinds [cover.bedroom_blinds] are open beyond a certain threshold, the automation switch enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] is turned on, and the bedroom window contact [binary_sensor.bedroom_window_contact] is closed.",
"action": "Logs a custom message to the home log and simultaneously closes the bedroom blinds [cover.bedroom_blinds]."
},
"human_like": "Closes the bedroom blinds two hours before sunrise if they are open, the window is closed, and the automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1622667464880'",
"result": {
"structured": "TRIGGER: When bedroom window contact [binary_sensor.bedroom_window_contact] changes from open (on) to closed (off). CONDITIONS: enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] is on AND the current time is after sunset AND the current time is before sunrise AND bedroom blinds [cover.bedroom_blinds] is NOT closed. ACTIONS: In parallel, execute: 1. Run script.send_to_home_log with a debug message about the window closing after sunset. 2. Set bedroom blinds [cover.bedroom_blinds] to a position of 50%.",
"natural_language": {
"trigger": "When the bedroom window contact [binary_sensor.bedroom_window_contact] changes from being open to being closed.",
"conditions": "If the automation switch for the bedroom, enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations], is turned on. The automation also requires that it is currently nighttime, meaning the time is after sunset and before sunrise. Finally, the bedroom blinds [cover.bedroom_blinds] must not already be fully closed.",
"action": "Sends a debug notification to the home log stating the window was closed after sunset and simultaneously sets the bedroom blinds [cover.bedroom_blinds] to a halfway position of 50%."
},
"human_like": "Closes the bedroom blinds halfway when the window is shut at night, provided the blind automation is enabled and the blinds aren't already closed.",
"complexity": "medium"
}
},
{
"id": "'1615689096351'",
"result": {
"structured": "TRIGGER: When bedroom window contact [binary_sensor.bedroom_window_contact] changes from open (on) to closed (off) AND remains closed for 30 seconds. CONDITIONS: (bedroom blinds [cover.bedroom_blinds] current_position is above blind open position threshold [input_number.blind_open_position_threshold]) AND (enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] is on) AND (the current time is after sunset). ACTIONS: If (enable bed sensor [input_boolean.enable_bed_sensor] is on AND bed occupied [binary_sensor.bed_occupied] is on) THEN send a debug log message and close bedroom blinds [cover.bedroom_blinds]. OR If (enable bed sensor [input_boolean.enable_bed_sensor] is off) THEN send a debug log message and close bedroom blinds [cover.bedroom_blinds]. Otherwise, do nothing.",
"natural_language": {
"trigger": "When the bedroom window contact [binary_sensor.bedroom_window_contact] is closed and stays closed for 30 seconds.",
"conditions": "The bedroom blinds [cover.bedroom_blinds] must be open beyond a certain threshold, the enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] switch must be on, and it must be after sunset.",
"action": "If the bed sensor is enabled and the bed is occupied, a log message is sent and the bedroom blinds are closed. If the bed sensor is disabled, a log message is also sent and the bedroom blinds are closed. If neither condition is met, no action is taken."
},
"human_like": "Closes the bedroom blinds at night when the window is shut, if the blinds are open and the automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1601641292576'",
"result": {
"structured": "TRIGGER: When bed occupied [binary_sensor.bed_occupied] changes from on to off AND remains off for 30 seconds. CONDITIONS: (bedroom blinds [cover.bedroom_blinds] current_position is below blind closed position threshold [input_number.blind_closed_position_threshold]) AND (the current time is after sunrise minus 1 hour AND before sunset) AND (enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] is on) AND (enable bed sensor [input_boolean.enable_bed_sensor] is on). ACTIONS: Wait 1 minute, then in parallel: 1. Execute script.send_to_home_log with a debug message about no one being in bed. 2. Open bedroom blinds [cover.bedroom_blinds].",
"natural_language": {
"trigger": "When the bed occupied [binary_sensor.bed_occupied] sensor indicates that the bed has been unoccupied for at least 30 seconds.",
"conditions": "The bedroom blinds [cover.bedroom_blinds] must be currently closed (their current position is below the threshold set by blind closed position threshold [input_number.blind_closed_position_threshold]), it must be daytime (between one hour before sunrise and sunset), and both the enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] and enable bed sensor [input_boolean.enable_bed_sensor] switches must be turned on.",
"action": "After waiting for one minute, the system will log a debug message to the home log stating that no one is in bed, and simultaneously open the bedroom blinds [cover.bedroom_blinds]."
},
"human_like": "Automatically opens the bedroom blinds when the bed has been empty for a while, but only during the day and if the feature is enabled.",
"complexity": "medium"
}
},
{
"id": "'1715955339483'",
"result": {
"structured": "TRIGGER: When bedroom door contact [binary_sensor.bedroom_door_contact] becomes closed (off) AND remains closed for 10 seconds. CONDITIONS: None. ACTIONS: IF (leos bedroom door contact [binary_sensor.leos_bedroom_door_contact] is closed (off)) AND (ashlees bedroom door contact [binary_sensor.ashlees_bedroom_door_contact] is closed (off)) AND (upstairs area motion [binary_sensor.upstairs_area_motion] is not detecting motion (off)) THEN perform the following actions in parallel: 1. Run script.send_to_home_log with a debug message ':door: door closed.' and title ':bed: bedroom'. 2. IF stairs light [light.stairs] is on THEN turn it off with a 1-second transition. 3. IF stairs ambient light [light.stairs_ambient] is on THEN turn it off with a 1-second transition. 4. IF stairs 2 light [light.stairs_2] is on THEN turn it off with a 1-second transition.",
"natural_language": {
"trigger": "When the bedroom door contact [binary_sensor.bedroom_door_contact] is closed and stays closed for 10 seconds.",
"conditions": "There are no conditions that must be met before the actions are considered.",
"action": "If all the following are true: the leos bedroom door contact [binary_sensor.leos_bedroom_door_contact] is closed, the ashlees bedroom door contact [binary_sensor.ashlees_bedroom_door_contact] is closed, and the upstairs area motion [binary_sensor.upstairs_area_motion] is not detecting any motion, then the automation will perform several actions simultaneously. It will send a debug log message titled 'bedroom' stating 'door closed.', and it will turn off the stairs light [light.stairs], the stairs ambient light [light.stairs_ambient], and the stairs 2 light [light.stairs_2] if any of them are currently on, using a gentle 1-second fade-out for each."
},
"human_like": "Turns off the stairway lights and logs a message when the main bedroom door is closed, but only if all other bedroom doors are also closed and there is no motion upstairs.",
"complexity": "medium"
}
},
{
"id": "'1615209552353'",
"result": {
"structured": "TRIGGER: When leos bedroom door contact [binary_sensor.leos_bedroom_door_contact] changes from closed (off) to open (on) OR When ashlees bedroom door contact [binary_sensor.ashlees_bedroom_door_contact] changes from closed (off) to open (on). CONDITIONS: (bedroom lamps [light.bedroom_lamps] is on OR bedroom main light [light.bedroom_main_light] is on) AND (current time is after childrens bed time [input_datetime.childrens_bed_time]) AND (home mode [input_select.home_mode] is NOT Guest AND home mode [input_select.home_mode] is NOT No Children). ACTIONS: Execute parallel actions: If leos bedroom door contact triggered AND enable bed sensor [input_boolean.enable_bed_sensor] is on AND bed occupied [binary_sensor.bed_occupied] is on, run script.other_bedroom_door_opening_warning with bedroom: leo. Else if leos bedroom door contact triggered AND sun is after sunset, log a debug message and run script.other_bedroom_door_opening_warning with bedroom: leo. Else if ashlees bedroom door contact triggered AND enable bed sensor [input_boolean.enable_bed_sensor] is on AND bed occupied [binary_sensor.bed_occupied] is on, run script.other_bedroom_door_opening_warning with bedroom: ashlee. Else if ashlees bedroom door contact triggered AND sun is after sunset, run script.other_bedroom_door_opening_warning with bedroom: ashlee. Otherwise, do nothing.",
"natural_language": {
"trigger": "When either Leo's bedroom door [binary_sensor.leos_bedroom_door_contact] or Ashlee's bedroom door [binary_sensor.ashlees_bedroom_door_contact] opens.",
"conditions": "If either the bedroom lamps [light.bedroom_lamps] or the main bedroom light [light.bedroom_main_light] are on, the current time is after the set children's bedtime [input_datetime.childrens_bed_time], and the home mode [input_select.home_mode] is not set to 'Guest' or 'No Children'.",
"action": "Depending on which door opened and other conditions, it will either send a warning via a script or log a message. If the bed sensor is enabled and the bed is occupied, it sends a warning for the specific child's room. If it's after sunset, it also sends a warning (and logs a message for Leo's door). These actions run in parallel."
},
"human_like": "Sends a warning when a child's bedroom door opens after bedtime if the bedroom lights are on and the house is not in a guest or child-free mode.",
"complexity": "medium"
}
},
{
"id": "'1615209552354'",
"result": {
"structured": "TRIGGER: When leos bedroom door contact [binary_sensor.leos_bedroom_door_contact] changes from open (on) to closed (off) OR When ashlees bedroom door contact [binary_sensor.ashlees_bedroom_door_contact] changes from open (on) to closed (off). CONDITIONS: bedroom lamps [light.bedroom_lamps] is on AND current time is after childrens bed time [input_datetime.childrens_bed_time] AND NOT (home mode [input_select.home_mode] is Guest OR home mode [input_select.home_mode] is No Children). ACTIONS: Execute parallel actions: If trigger is leos bedroom door contact AND enable bed sensor [input_boolean.enable_bed_sensor] is on AND bed occupied [binary_sensor.bed_occupied] is on, run script.other_bedroom_door_closes_warning with bedroom: leo. OR If trigger is leos bedroom door contact AND sun is after sunset, run script.send_to_home_log with message about Leo's door and then run script.other_bedroom_door_closes_warning with bedroom: leo. OR If trigger is ashlees bedroom door contact AND enable bed sensor [input_boolean.enable_bed_sensor] is on AND bed occupied [binary_sensor.bed_occupied] is on, run script.other_bedroom_door_closes_warning with bedroom: ashlee. OR If trigger is ashlees bedroom door contact AND sun is after sunset, run script.other_bedroom_door_closes_warning with bedroom: ashlee.",
"natural_language": {
"trigger": "When either Leo's bedroom door contact [binary_sensor.leos_bedroom_door_contact] or Ashlee's bedroom door contact [binary_sensor.ashlees_bedroom_door_contact] changes from being open to being closed.",
"conditions": "The bedroom lamps [light.bedroom_lamps] must be on, the current time must be after the children's bedtime [input_datetime.childrens_bed_time], and the home mode [input_select.home_mode] must not be set to 'Guest' or 'No Children'.",
"action": "Depending on which door triggered the automation and other conditions, it will perform one of several parallel actions. If Leo's door closed, the bed sensor is enabled, and the bed is occupied, it sends a warning for Leo's room. Alternatively, if Leo's door closed and it's after sunset, it logs a message and sends a warning. If Ashlee's door closed, the bed sensor is enabled, and the bed is occupied, it sends a warning for Ashlee's room. Alternatively, if Ashlee's door closed and it's after sunset, it sends a warning for Ashlee's room."
},
"human_like": "Sends a warning when a child's bedroom door closes after bedtime and the bedroom light is on, but only when the house is not in 'Guest' or 'No Children' mode.",
"complexity": "medium"
}
},
{
"id": "'1724001157269'",
"result": {
"structured": "TRIGGER: When bedroom door contact [binary_sensor.bedroom_door_contact] changes from closed (off) to open (on). CONDITIONS: (Time is after 22:00:00 OR before 02:00:00) AND bedroom tv [media_player.bedroom_tv] is playing AND bedroom tv [media_player.bedroom_tv] app_name is NOT BBC iPlayer. ACTIONS: Run script.send_to_home_log with message 'Door opened and :tv: TV was playing. Pausing TV.' and title ':bed: bedroom' AND media_player.media_play_pause on bedroom tv [media_player.bedroom_tv].",
"natural_language": {
"trigger": "When the bedroom door contact [binary_sensor.bedroom_door_contact] opens.",
"conditions": "If the current time is between 10:00 PM and 2:00 AM, the bedroom tv [media_player.bedroom_tv] is currently playing, and the TV is not using the BBC iPlayer app.",
"action": "Sends a debug log message to the home log stating 'Door opened and :tv: TV was playing. Pausing TV.' and simultaneously pauses the bedroom tv [media_player.bedroom_tv]."
},
"human_like": "Pauses the bedroom TV when the door opens late at night, unless the TV is playing BBC iPlayer.",
"complexity": "medium"
}
},
{
"id": "'1621713217274'",
"result": {
"structured": "TRIGGER: When bedroom motion occupancy [binary_sensor.bedroom_motion_occupancy] changes from off to on. CONDITIONS: enable bedroom motion trigger [input_boolean.enable_bedroom_motion_trigger] is on AND (under bed left light [light.under_bed_left] brightness attribute is none OR under bed right light [light.under_bed_right] brightness attribute is none OR under bed left light [light.under_bed_left] brightness attribute is below 100 OR under bed right light [light.under_bed_right] brightness attribute is below 100). ACTIONS: Execute two actions in parallel: 1. Choose one scene to activate based on conditions: If bedroom blinds [cover.bedroom_blinds] current_position attribute is below 31, then log a debug message and activate Bedroom Dim Ambient Light [scene.bedroom_dim_ambient_light]. Else if time is after 08:00:00 AND before sunset, then log a debug message and activate Bedroom Turn On Ambient Light [scene.bedroom_turn_on_ambient_light]. Else if (time is after sunset OR time is before 08:00:00) AND enable bedroom motion trigger [input_boolean.enable_bedroom_motion_trigger] is on, then log a debug message and activate Bedroom Dim Ambient Light [scene.bedroom_dim_ambient_light]. 2. If bedroom clock matrix [light.bedroom_clock_matrix] is off, then turn it on.",
"natural_language": {
"trigger": "When motion is first detected in the bedroom, indicated by the bedroom motion occupancy [binary_sensor.bedroom_motion_occupancy] changing from off to on.",
"conditions": "The automation must be enabled via the input boolean enable bedroom motion trigger [input_boolean.enable_bedroom_motion_trigger] being set to on. Additionally, at least one of the under-bed lights must be either off or dim, meaning the brightness attribute for the under bed left light [light.under_bed_left] or the under bed right light [light.under_bed_right] is either not set (none) or is below a value of 100.",
"action": "The automation performs two sets of actions simultaneously. First, it selects and activates an ambient lighting scene based on the time of day and the position of the bedroom blinds [cover.bedroom_blinds]. If the blinds are mostly closed (below 31%), it dims the ambient lights and logs a message. If it's daytime (after 8 AM and before sunset), it turns on the ambient lights at a brighter level and logs a message. If it's nighttime (after sunset or before 8 AM) and the automation is still enabled, it dims the ambient lights and logs a message. Second, as a separate action, it checks if the bedroom clock matrix [light.bedroom_clock_matrix] is off and, if so, turns it on."
},
"human_like": "When motion is detected in the bedroom, this automation turns on or dims the ambient lights based on the time of day and blind position, and ensures the clock display is on.",
"complexity": "medium"
}
},
{
"id": "'1621713867762'",
"result": {
"structured": "TRIGGER: When bedroom motion occupancy [binary_sensor.bedroom_motion_occupancy] changes from on to off AND remains off for 2 minutes. CONDITIONS: (under bed left light [light.under_bed_left] is on OR under bed right light [light.under_bed_right] is on) AND enable bedroom motion trigger [input_boolean.enable_bedroom_motion_trigger] is on. ACTIONS: In parallel, run script send_to_home_log with a debug message and turn on the scene Bedroom Turn Off Ambient Light [scene.bedroom_turn_off_ambient_light].",
"natural_language": {
"trigger": "When the bedroom motion occupancy [binary_sensor.bedroom_motion_occupancy] stops detecting motion and remains inactive for two minutes.",
"conditions": "If at least one of the under-bed lights (either under bed left light [light.under_bed_left] or under bed right light [light.under_bed_right]) is currently turned on, and the automation is enabled via the input_boolean enable bedroom motion trigger [input_boolean.enable_bedroom_motion_trigger].",
"action": "Sends a debug log message to the home log stating that no motion was detected and the ambient lights are being turned off, and simultaneously activates the scene Bedroom Turn Off Ambient Light [scene.bedroom_turn_off_ambient_light] to turn off the ambient lighting."
},
"human_like": "Turns off the bedroom's ambient lights after no motion is detected for two minutes, provided the lights are on and the automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1621713867763'",
"result": {
"structured": "TRIGGER: When Bedroom Area Motion [binary_sensor.bedroom_area_motion] changes from motion detected (on) to no motion (off) AND remains in the 'off' state for 30 minutes. CONDITIONS: bedroom lamps [light.bedroom_lamps] is off AND enable bedroom motion trigger [input_boolean.enable_bedroom_motion_trigger] is on. ACTIONS: In parallel: 1. Run script send_to_home_log with a debug message stating 'No motion detected For 1 hour. Turning clock off.' and title ' :bed: Bedroom'. 2. Turn off bedroom clock matrix [light.bedroom_clock_matrix].",
"natural_language": {
"trigger": "When motion in the bedroom, detected by Bedroom Area Motion [binary_sensor.bedroom_area_motion], stops and remains absent for 30 minutes.",
"conditions": "The bedroom lamps [light.bedroom_lamps] must be off, and the automation must be enabled via the input_boolean enable bedroom motion trigger [input_boolean.enable_bedroom_motion_trigger].",
"action": "It sends a debug notification to the home log stating that no motion has been detected for an hour and that the clock is being turned off, and simultaneously turns off the bedroom clock matrix [light.bedroom_clock_matrix]."
},
"human_like": "Turns off the bedroom clock and logs a message when no motion has been detected in the bedroom for 30 minutes and the main lights are off.",
"complexity": "medium"
}
},
{
"id": "'1725207477313'",
"result": {
"structured": "TRIGGER: When bedroom motion 3 presence [binary_sensor.bedroom_motion_3_presence] remains off for 5 minutes. CONDITIONS: bedroom fan [switch.bedroom_fan] is on. ACTIONS: Turn off bedroom fan [switch.bedroom_fan].",
"natural_language": {
"trigger": "When the bedroom motion 3 presence [binary_sensor.bedroom_motion_3_presence] sensor reports no motion for a continuous period of five minutes.",
"conditions": "The bedroom fan [switch.bedroom_fan] must be currently switched on.",
"action": "Turns off the bedroom fan [switch.bedroom_fan]."
},
"human_like": "Automatically turns off the bedroom fan after five minutes of no motion detected in the room.",
"complexity": "low"
}
},
{
"id": "'1690844451011'",
"result": {
"structured": "TRIGGER: When bedroom fan [switch.bedroom_fan] remains on for 2 hours. CONDITIONS: None. ACTIONS: Run script.send_to_home_log with message 'Bedroom light turned off. Turning stairs lights off.' and title ':bed: Bedroom' at Debug level AND Turn off bedroom fan [switch.bedroom_fan].",
"natural_language": {
"trigger": "When the bedroom fan [switch.bedroom_fan] has been switched on and remains in the on state for exactly two hours.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "The automation will perform two actions in parallel: it will log a debug message titled ':bed: Bedroom' stating 'Bedroom light turned off. Turning stairs lights off.' to the home log, and it will turn off the bedroom fan [switch.bedroom_fan]."
},
"human_like": "Automatically turns off the bedroom fan after it has been running for two hours and logs a message about it.",
"complexity": "low"
}
},
{
"id": "'1621875409014'",
"result": {
"structured": "TRIGGER: When the time is 08:00:00 OR 08:30:00 OR 09:00:00 OR 09:30:00. CONDITIONS: (bedroom blinds [cover.bedroom_blinds] current_position is below bedroom blind closed threshold [input_number.bedroom_blind_closed_threshold]) AND (enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] is on) AND (bedroom tv powered on [binary_sensor.bedroom_tv_powered_on] is off). ACTIONS: Choose based on conditions: 1. IF (workday sensor [binary_sensor.workday_sensor] is on) AND (work calendar [calendar.work] message does NOT contain 'Danny' AND does NOT contain 'A/L' AND work calendar [calendar.work] state is 'off') THEN open bedroom blinds [cover.bedroom_blinds] and send a debug log message. 2. ELSE IF (workday sensor [binary_sensor.workday_sensor] is off) AND (home mode [input_select.home_mode] is NOT 'No Children') AND (trigger id is 090000) THEN open bedroom blinds [cover.bedroom_blinds] and send a debug log message. 3. ELSE IF (workday sensor [binary_sensor.workday_sensor] is off) AND (home mode [input_select.home_mode] is 'No Children') AND (trigger id is 093000) THEN open bedroom blinds [cover.bedroom_blinds] and send a debug log message. 4. ELSE IF (trigger id is 093000) THEN open bedroom blinds [cover.bedroom_blinds] and send a debug log message. 5. ELSE do nothing.",
"natural_language": {
"trigger": "The automation triggers at four specific morning times: 08:00, 08:30, 09:00, and 09:30.",
"conditions": "For the automation to proceed, the bedroom blinds [cover.bedroom_blinds] must be closed below a defined threshold, the enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] must be switched on, and the bedroom tv powered on [binary_sensor.bedroom_tv_powered_on] must be off.",
"action": "Depending on the day and other factors, the blinds will open and a log message will be sent. On a working day with no annual leave in the work calendar [calendar.work], the blinds open at any of the trigger times. On a non-working day, if the home mode [input_select.home_mode] is not set to 'No Children', the blinds open only at 09:00. If the home mode is set to 'No Children', they open only at 09:30. As a final catch-all, if none of the previous conditions are met, the blinds will still open at 09:30 regardless of other factors."
},
"human_like": "Opens the bedroom blinds at scheduled morning times, adjusting the schedule based on whether it's a workday, if there are children at home, and if annual leave is scheduled.",
"complexity": "high"
}
},
{
"id": "'1621875567853'",
"result": {
"structured": "TRIGGER: At 22:00:00. CONDITIONS: (enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] is on) AND (bedroom blinds [cover.bedroom_blinds] current_position is above blind closed position threshold [input_number.blind_closed_position_threshold]). ACTIONS: In parallel, send a debug log message to the home log with a time-specific message about closing blinds after sunset AND execute a choice: IF bedroom window contact [binary_sensor.bedroom_window_contact] is open (on) THEN send a debug log message stating the window is open and waiting; OTHERWISE (default) close bedroom blinds [cover.bedroom_blinds].",
"natural_language": {
"trigger": "The automation triggers daily at 10:00 PM.",
"conditions": "It requires that the enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] is turned on, and that the bedroom blinds [cover.bedroom_blinds] are currently open beyond the threshold defined by blind closed position threshold [input_number.blind_closed_position_threshold].",
"action": "It logs a debug message to the home log with a sunset-themed note. Then, it checks if the bedroom window contact [binary_sensor.bedroom_window_contact] is open. If the window is open, it logs another message stating it will wait to close the blinds. If the window is closed, it proceeds to close the bedroom blinds."
},
"human_like": "Automatically closes the bedroom blinds at 10 PM if they are open and the window is closed, ensuring privacy and energy efficiency after sunset.",
"complexity": "medium"
}
},
{
"id": "'1624194131454'",
"result": {
"structured": "TRIGGER: When bedroom tv powered on [binary_sensor.bedroom_tv_powered_on] changes from off to on. CONDITIONS: enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] is on AND the current time is after sunrise and before sunset AND bedroom blinds [cover.bedroom_blinds] current_position attribute is above the value of blind open position threshold [input_number.blind_open_position_threshold]. ACTIONS: If Enable Direct Notifications [input_boolean.enable_direct_notifications] is on AND bedroom window contact [binary_sensor.bedroom_window_contact] is open (on), then send an actionable notification to danny person [person.danny] asking to close the blinds. Otherwise, if bedroom window contact [binary_sensor.bedroom_window_contact] is closed (off), then log a debug message and set bedroom blinds [cover.bedroom_blinds] position to 20. If neither condition is met, do nothing.",
"natural_language": {
"trigger": "When the bedroom TV is turned on, as detected by the bedroom tv powered on [binary_sensor.bedroom_tv_powered_on] sensor changing from off to on.",
"conditions": "The automation must be enabled via the enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] switch. It must be daytime, meaning the current time is after sunrise and before sunset. The bedroom blinds [cover.bedroom_blinds] must also be open beyond a certain threshold, specifically their current position must be greater than the value set in blind open position threshold [input_number.blind_open_position_threshold].",
"action": "If direct notifications are enabled via Enable Direct Notifications [input_boolean.enable_direct_notifications] and the bedroom window contact [binary_sensor.bedroom_window_contact] reports the window is open, a notification is sent to danny person [person.danny] asking if they want to close the blinds, with options for 'Yes' or 'No'. If the window is reported as closed, the automation logs a debug message and automatically lowers the bedroom blinds [cover.bedroom_blinds] to a position of 20. If the window state does not match either of these conditions, no action is taken."
},
"human_like": "When the bedroom TV is turned on during a bright day, this automation either asks for permission to close the blinds if the window is open, or automatically lowers them if the window is closed.",
"complexity": "medium"
}
},
{
"id": "'1699308571385'",
"result": {
"structured": "TRIGGER: When Bedroom Remote Device [61ab87aac9c81fe8687771074e560f48] button_1 is pressed and released. CONDITIONS: None. ACTIONS: Toggle bedroom main light [light.bedroom_main_light].",
"natural_language": {
"trigger": "When button 1 on the Bedroom Remote Device [61ab87aac9c81fe8687771074e560f48] is pressed and then released.",
"conditions": "There are no conditions.",
"action": "Toggle the state of the bedroom main light [light.bedroom_main_light], turning it on if it's off, or off if it's on."
},
"human_like": "Pressing and releasing button 1 on the bedroom remote toggles the main bedroom light.",
"complexity": "low"
}
},
{
"id": "'1699308571386'",
"result": {
"structured": "TRIGGER: When Bedroom Remote Device [61ab87aac9c81fe8687771074e560f48] button 2 is pressed and released. CONDITIONS: None. ACTIONS: If bedroom lamps [light.bedroom_lamps] is off, then activate scene Bedroom Desk Lamps On [scene.bedroom_desk_lamps_on] with a 1-second transition. Otherwise, turn off bedroom lamps [light.bedroom_lamps], under bed left light [light.under_bed_left], and under bed right light [light.under_bed_right].",
"natural_language": {
"trigger": "When button 2 on the Bedroom Remote Device [61ab87aac9c81fe8687771074e560f48] is pressed and then released.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "If the bedroom lamps [light.bedroom_lamps] are currently off, the automation will turn on the Bedroom Desk Lamps On [scene.bedroom_desk_lamps_on] scene with a 1-second fade-in. If the bedroom lamps [light.bedroom_lamps] are already on, the automation will instead turn off the bedroom lamps [light.bedroom_lamps], the under bed left light [light.under_bed_left], and the under bed right light [light.under_bed_right]."
},
"human_like": "Toggles the bedroom lighting: pressing remote button 2 turns on the desk lamps if they're off, or turns off all the bedroom lights if they're on.",
"complexity": "low"
}
},
{
"id": "'1699308571387'",
"result": {
"structured": "TRIGGER: When Bedroom Remote Device [61ab87aac9c81fe8687771074e560f48] sends a button_3_press_release action via MQTT. CONDITIONS: None. ACTIONS: Open bedroom blinds [cover.bedroom_blinds].",
"natural_language": {
"trigger": "When the third button on the Bedroom Remote Device [61ab87aac9c81fe8687771074e560f48] is pressed and then released.",
"conditions": "There are no conditions that must be met.",
"action": "Opens the bedroom blinds [cover.bedroom_blinds]."
},
"human_like": "Pressing and releasing button 3 on the bedroom remote opens the bedroom blinds.",
"complexity": "low"
}
},
{
"id": "'1699308571388'",
"result": {
"structured": "TRIGGER: When Bedroom Remote Device [61ab87aac9c81fe8687771074e560f48] button 4 is pressed and released. CONDITIONS: None. ACTIONS: Close bedroom blinds [cover.bedroom_blinds].",
"natural_language": {
"trigger": "When button 4 on the Bedroom Remote Device [61ab87aac9c81fe8687771074e560f48] is pressed and released.",
"conditions": "There are no conditions.",
"action": "Closes the bedroom blinds [cover.bedroom_blinds]."
},
"human_like": "Closes the bedroom blinds when button 4 on the remote is pressed.",
"complexity": "low"
}
},
{
"id": "'1710079376648'",
"result": {
"structured": "TRIGGER: When Bedroom Remote Device [61ab87aac9c81fe8687771074e560f48] performs action 'dial_rotate_right_slow' OR 'dial_rotate_right_step' OR 'brightness_step_up'. CONDITIONS: The value of bedroom dial remote action time [sensor.bedroom_dial_remote_action_time] is greater than 0. ACTIONS: Turn on bedroom lamps [light.bedroom_lamps] with a brightness calculated as: current brightness plus (bedroom dial remote action time [sensor.bedroom_dial_remote_action_time] multiplied by 2), capped at a maximum of 255, and a transition time of 1 second.",
"natural_language": {
"trigger": "When the Bedroom Remote Device [61ab87aac9c81fe8687771074e560f48] is rotated to the right slowly, rotated to the right in steps, or when its brightness step up action is triggered.",
"conditions": "The sensor bedroom dial remote action time [sensor.bedroom_dial_remote_action_time] must have a value greater than zero.",
"action": "Gradually increases the brightness of the bedroom lamps [light.bedroom_lamps] over one second. The new brightness is determined by taking the current brightness, adding twice the value from the bedroom dial remote action time [sensor.bedroom_dial_remote_action_time] sensor, and ensuring the result does not exceed the maximum brightness of 255."
},
"human_like": "Increases the brightness of the bedroom lights when the remote dial is turned to the right, using a sensor value to determine the amount of increase.",
"complexity": "medium"
}
},
{
"id": "'1710079376649'",
"result": {
"structured": "TRIGGER: When Bedroom Remote Device [61ab87aac9c81fe8687771074e560f48] reports a dial_rotate_left_slow action OR a dial_rotate_left_step action OR a brightness_step_down action. CONDITIONS: The numeric value of bedroom dial remote action time [sensor.bedroom_dial_remote_action_time] is greater than 0 (defaulting to 15 if unavailable). ACTIONS: Turn on bedroom lamps [light.bedroom_lamps] with a brightness calculated as: if (bedroom dial remote action time [sensor.bedroom_dial_remote_action_time] * 2) is greater than the current brightness of bedroom lamps [light.bedroom_lamps], set brightness to 0; otherwise, set brightness to (current brightness - (bedroom dial remote action time [sensor.bedroom_dial_remote_action_time] * 2)). Apply a transition of 1 second.",
"natural_language": {
"trigger": "When the Bedroom Remote Device [61ab87aac9c81fe8687771074e560f48] detects a left rotation (slow or step) or a brightness step down action.",
"conditions": "The sensor tracking the remote action time, bedroom dial remote action time [sensor.bedroom_dial_remote_action_time], must have a value greater than zero. If the sensor's state is unavailable, it is treated as 15 for this check.",
"action": "Adjusts the brightness of the bedroom lamps [light.bedroom_lamps]. The new brightness is decreased by twice the value of the action time sensor, but if this decrease would result in a negative brightness, the lights are turned off (brightness 0). The change happens smoothly over one second."
},
"human_like": "Turns down the bedroom lights when the remote dial is rotated left, using a sensor to control the amount of dimming.",
"complexity": "medium"
}
},
{
"id": "'1624194439043'",
"result": {
"structured": "TRIGGER: When bedroom tv powered on [binary_sensor.bedroom_tv_powered_on] changes from on to off AND remains off for 1 minute. CONDITIONS: (bedroom blinds [cover.bedroom_blinds] current_position is below bedroom blind closed threshold [input_number.bedroom_blind_closed_threshold]) AND (enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] is on) AND (current time is after sunrise AND before sunset) AND (current time is after 08:30). ACTIONS: First, get hourly weather forecasts for weather home [weather.home]. Then, if (weather home [weather.home] temperature is above forecast high temperature [input_number.forecast_high_temperature] OR weather home [weather.home] forecast temperature for the next hour is above forecast high temperature [input_number.forecast_high_temperature]), send a debug log message. Otherwise (default), in parallel: send a debug log message AND open bedroom blinds [cover.bedroom_blinds].",
"natural_language": {
"trigger": "When the bedroom tv powered on [binary_sensor.bedroom_tv_powered_on] turns off and stays off for one minute.",
"conditions": "The bedroom blinds [cover.bedroom_blinds] must be closed below a certain threshold, the enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] must be on, it must be daytime (after sunrise and before sunset), and the current time must be after 8:30 AM.",
"action": "The automation first fetches the hourly weather forecast. If the current temperature or the forecasted temperature for the next hour is above the set high temperature threshold, it logs a debug message stating the blinds will stay closed. Otherwise, it logs a message that the blinds are opening and proceeds to open the bedroom blinds [cover.bedroom_blinds]."
},
"human_like": "Automatically opens the bedroom blinds after the TV is turned off, but only if it's daytime, the blinds are currently closed, and the weather isn't too hot.",
"complexity": "medium"
}
},
{
"id": "'1627285063813'",
"result": {
"structured": "TRIGGER: At 07:45:00. CONDITIONS: enable leos blind automations [input_boolean.enable_leos_blind_automations] is on AND leos bedroom blinds [cover.leos_bedroom_blinds] current_position is below blind closed position threshold [input_number.blind_closed_position_threshold] AND home mode [input_select.home_mode] is NOT Guest AND home mode [input_select.home_mode] is NOT No Children AND workday sensor [binary_sensor.workday_sensor] is on. ACTIONS: In parallel, run script.send_to_home_log with message 'Opening blinds.' and title ':bed: Leo's Bedroom' at Debug level AND open leos bedroom blinds [cover.leos_bedroom_blinds].",
"natural_language": {
"trigger": "The automation triggers at 7:45 AM.",
"conditions": "All of the following must be true: the enable leos blind automations [input_boolean.enable_leos_blind_automations] is turned on; the current position of leos bedroom blinds [cover.leos_bedroom_blinds] is below the set threshold value from blind closed position threshold [input_number.blind_closed_position_threshold]; the home mode [input_select.home_mode] is not set to 'Guest'; the home mode [input_select.home_mode] is not set to 'No Children'; and the workday sensor [binary_sensor.workday_sensor] indicates it is a workday.",
"action": "It performs two actions simultaneously: it logs a debug message titled ':bed: Leo's Bedroom' with the text 'Opening blinds.' to the home log, and it sends a command to open leos bedroom blinds [cover.leos_bedroom_blinds]."
},
"human_like": "Automatically opens Leo's bedroom blinds at 7:45 AM on workdays, provided the blinds are currently closed and the household is in a suitable mode.",
"complexity": "medium"
}
},
{
"id": "'1627285063816'",
"result": {
"structured": "TRIGGER: At 08:00:00. CONDITIONS: enable leos blind automations [input_boolean.enable_leos_blind_automations] is on AND leos bedroom blinds [cover.leos_bedroom_blinds] current_position is below blind closed position threshold [input_number.blind_closed_position_threshold] AND home mode [input_select.home_mode] is NOT Guest AND home mode [input_select.home_mode] is NOT No Children AND workday sensor [binary_sensor.workday_sensor] is on. ACTIONS: In parallel: Run script send_to_home_log with message 'Opening blinds.', title ':bed: Leo''s Bedroom', and log_level Debug AND Open leos bedroom blinds [cover.leos_bedroom_blinds].",
"natural_language": {
"trigger": "At 8:00 AM.",
"conditions": "The automation for Leo's blinds must be enabled [input_boolean.enable_leos_blind_automations]. The blinds [cover.leos_bedroom_blinds] must be currently closed below a certain threshold [input_number.blind_closed_position_threshold]. The home mode [input_select.home_mode] must not be set to 'Guest' or 'No Children'. Finally, it must be a workday as indicated by the workday sensor [binary_sensor.workday_sensor].",
"action": "Logs a debug message titled ':bed: Leo's Bedroom' stating 'Opening blinds.' and simultaneously opens Leo's bedroom blinds [cover.leos_bedroom_blinds]."
},
"human_like": "Automatically opens Leo's bedroom blinds at 8 AM on workdays, but only if the blinds are closed and the house is not in a 'Guest' or 'No Children' mode.",
"complexity": "medium"
}
},
{
"id": "'1627285063814'",
"result": {
"structured": "TRIGGER: At 09:00:00. CONDITIONS: (enable leos blind automations [input_boolean.enable_leos_blind_automations] is off) AND (leos bedroom blinds [cover.leos_bedroom_blinds] current_position is below blind closed position threshold [input_number.blind_closed_position_threshold]) AND (home mode [input_select.home_mode] is No Children) AND (workday sensor [binary_sensor.workday_sensor] is on). ACTIONS: In parallel: 1. Execute script.send_to_home_log with a debug message. 2. Open leos bedroom blinds [cover.leos_bedroom_blinds].",
"natural_language": {
"trigger": "The automation triggers at 9:00 AM.",
"conditions": "All of the following must be true: the automation switch 'enable leos blind automations' [input_boolean.enable_leos_blind_automations] is turned off, the current position of 'leos bedroom blinds' [cover.leos_bedroom_blinds] is below the defined 'blind closed position threshold' [input_number.blind_closed_position_threshold], the 'home mode' [input_select.home_mode] is set to 'No Children', and the 'workday sensor' [binary_sensor.workday_sensor] indicates it is a workday (is on).",
"action": "The automation performs two actions simultaneously: it sends a debug log message to the home log stating it is opening the blinds with the current home mode on a non-working day, and it opens 'leos bedroom blinds' [cover.leos_bedroom_blinds]."
},
"human_like": "Opens Leo's bedroom blinds at 9 AM on workdays when the house is in 'No Children' mode and the blinds are currently closed, provided the specific automation is disabled.",
"complexity": "medium"
}
},
{
"id": "'1629844319596'",
"result": {
"structured": "TRIGGER: When the time reaches childrens bed time [input_datetime.childrens_bed_time] OR When the time reaches 22:00:00 (id: no_children). CONDITIONS: (leos bedroom blinds [cover.leos_bedroom_blinds] current_position is NOT below blind closed position threshold [input_number.blind_closed_position_threshold]) AND (enable leos blind automations [input_boolean.enable_leos_blind_automations] is on). ACTIONS: Execute parallel actions: If leos bedroom window contact [binary_sensor.leos_bedroom_window_contact] is open (on), send a log message that the window is open and skip closing blinds. Otherwise, if home mode [input_select.home_mode] is No Children AND the trigger with id no_children fired, send a log message and close leos bedroom blinds [cover.leos_bedroom_blinds]. Otherwise, if leos bedroom window contact [binary_sensor.leos_bedroom_window_contact] is closed (off), send a log message and close leos bedroom blinds [cover.leos_bedroom_blinds]. If none of the above conditions match, do nothing.",
"natural_language": {
"trigger": "The automation runs either at the scheduled children's bedtime, defined by childrens bed time [input_datetime.childrens_bed_time], or at 10:00 PM (22:00:00).",
"conditions": "The blinds must not already be below the closed threshold (their current position is not below blind closed position threshold [input_number.blind_closed_position_threshold]), and the automation must be enabled (enable leos blind automations [input_boolean.enable_leos_blind_automations] is on).",
"action": "The system checks several scenarios in parallel. If Leo's window is open, it logs a warning and does not close the blinds. If the home mode is set to 'No Children' and the trigger was the 10:00 PM time, it logs a message and closes the blinds. If the window is closed, it logs a message and closes the blinds. If none of these scenarios apply, no action is taken."
},
"human_like": "Closes Leo's bedroom blinds at bedtime or 10 PM, but only if the blinds aren't already closed, the automation is enabled, and the window is shut.",
"complexity": "medium"
}
},
{
"id": "'1617376203344'",
"result": {
"structured": "TRIGGER: When the sun rises, offset by -2 hours (i.e., 2 hours before sunrise). CONDITIONS: leos bedroom blinds [cover.leos_bedroom_blinds] state is open AND leos bedroom blinds [cover.leos_bedroom_blinds] attribute current_position is above the value of blind open position threshold [input_number.blind_open_position_threshold] AND leos bedroom window contact [binary_sensor.leos_bedroom_window_contact] state is off (closed). ACTIONS: Close leos bedroom blinds [cover.leos_bedroom_blinds] AND run script.send_to_home_log with a message about closing Leo's blinds.",
"natural_language": {
"trigger": "The automation triggers two hours before the official sunrise time.",
"conditions": "The automation checks if the leos bedroom blinds [cover.leos_bedroom_blinds] are reported as open, if their current position is above a specific threshold set by blind open position threshold [input_number.blind_open_position_threshold], and if the leos bedroom window contact [binary_sensor.leos_bedroom_window_contact] indicates the window is closed.",
"action": "It simultaneously closes the leos bedroom blinds [cover.leos_bedroom_blinds] and sends a debug log message to the home log stating that Leo's blinds are being closed."
},
"human_like": "Closes Leo's bedroom blinds two hours before sunrise if the blinds are open and the window is closed.",
"complexity": "medium"
}
},
{
"id": "'1617376413056'",
"result": {
"structured": "TRIGGER: When the time is 09:30:00. CONDITIONS: (leos bedroom blinds [cover.leos_bedroom_blinds] current_position attribute is below the value of blind closed position threshold [input_number.blind_closed_position_threshold]) AND (enable leos blind automations [input_boolean.enable_leos_blind_automations] is on). ACTIONS: In parallel, execute: 1. Run script.send_to_home_log with message ':sunrise: :window: Opening Leo's blinds' and title 'Leo's :bed: bedroom'. 2. Open leos bedroom blinds [cover.leos_bedroom_blinds].",
"natural_language": {
"trigger": "The automation triggers daily at 9:30 AM.",
"conditions": "The automation checks if the current position of leos bedroom blinds [cover.leos_bedroom_blinds] is below a defined threshold value set by blind closed position threshold [input_number.blind_closed_position_threshold], and that the automation is enabled via enable leos blind automations [input_boolean.enable_leos_blind_automations].",
"action": "If the conditions are met, the automation will simultaneously send a debug log message titled 'Leo's :bed: bedroom' and open leos bedroom blinds [cover.leos_bedroom_blinds]."
},
"human_like": "Automatically opens Leo's bedroom blinds at 9:30 AM if they are currently closed and the automation is enabled.",
"complexity": "low"
}
},
{
"id": "'1617458869658'",
"result": {
"structured": "TRIGGER: When leos bed occupied [binary_sensor.leos_bed_occupied] changes from on to off. CONDITIONS: (Time is between 07:00:00 and 12:00:00) AND (leos bedroom blinds [cover.leos_bedroom_blinds] current_position is below blind closed position threshold [input_number.blind_closed_position_threshold]) AND (enable leos blind automations [input_boolean.enable_leos_blind_automations] is on) AND (enable leos bed sensor [input_boolean.enable_leos_bed_sensor] is on) AND (home mode [input_select.home_mode] is NOT Guest). ACTIONS: In parallel, run script.send_to_home_log with a message and title, and open leos bedroom blinds [cover.leos_bedroom_blinds].",
"natural_language": {
"trigger": "When the bed occupancy sensor for Leo's room indicates that the bed is no longer occupied.",
"conditions": "The automation runs only between 7:00 AM and 12:00 PM, if the blinds in Leo's bedroom are currently closed below a certain threshold, if the automations for Leo's blinds are enabled, if the bed sensor is enabled, and if the home mode is not set to 'Guest'.",
"action": "It logs a debug message to the home log stating that someone is in Leo's bed and the blinds are closing, and simultaneously opens the blinds in Leo's bedroom."
},
"human_like": "Opens the blinds in Leo's room in the morning when he gets out of bed, provided all relevant automations are enabled and the house is not in guest mode.",
"complexity": "medium"
}
},
{
"id": "'1619254173098'",
"result": {
"structured": "TRIGGER: When leos bedroom window contact [binary_sensor.leos_bedroom_window_contact] changes from open (on) to closed (off). CONDITIONS: leos bedroom blinds [cover.leos_bedroom_blinds] current_position is above blind open position threshold [input_number.blind_open_position_threshold] AND current time is after 18:30:00 AND enable leos blind automations [input_boolean.enable_leos_blind_automations] is on. ACTIONS: IF (enable leos bed sensor [input_boolean.enable_leos_bed_sensor] is on AND leos bed occupied [binary_sensor.leos_bed_occupied] is on) THEN send log message 'Leo's window closed and someone is in bed. Closing blinds.' AND close leos bedroom blinds [cover.leos_bedroom_blinds]. OTHERWISE IF (enable leos bed sensor [input_boolean.enable_leos_bed_sensor] is off) THEN send log message 'Leo's window closed and someone is in bed. Closing blinds.' AND close leos bedroom blinds [cover.leos_bedroom_blinds]. OTHERWISE do nothing.",
"natural_language": {
"trigger": "When the leos bedroom window contact [binary_sensor.leos_bedroom_window_contact] changes from being open to being closed.",
"conditions": "The leos bedroom blinds [cover.leos_bedroom_blinds] must be open beyond a certain threshold (above the blind open position threshold [input_number.blind_open_position_threshold]), the current time must be after 6:30 PM, and the enable leos blind automations [input_boolean.enable_leos_blind_automations] switch must be turned on.",
"action": "If the bed sensor is enabled and the bed is occupied, or if the bed sensor is disabled, the automation will log a message stating 'Leo's window closed and someone is in bed. Closing blinds.' and then close the leos bedroom blinds [cover.leos_bedroom_blinds]. If the bed sensor is enabled but the bed is not occupied, no action is taken."
},
"human_like": "Closes the blinds in Leo's room when the window is closed in the evening, but only if the bed is occupied or the bed sensor is disabled.",
"complexity": "medium"
}
},
{
"id": "'1699308571381'",
"result": {
"structured": "TRIGGER: When Leo's Bedroom Remote Device [device_id: 7da5565cc39ea45df83d982a085622b6] sends an MQTT action of type 'on_press_release'. CONDITIONS: None. ACTIONS: Turn on leos bedroom main light [light.leos_bedroom_main_light].",
"natural_language": {
"trigger": "When the remote control in Leo's Bedroom (Leo's Bedroom Remote Device [device_id: 7da5565cc39ea45df83d982a085622b6]) is pressed and released, sending an 'on' command.",
"conditions": "There are no conditions that need to be met.",
"action": "Turns on the main light in Leo's bedroom (leos bedroom main light [light.leos_bedroom_main_light])."
},
"human_like": "Turns on Leo's bedroom light when the remote button is pressed.",
"complexity": "low"
}
},
{
"id": "'1699308571382'",
"result": {
"structured": "TRIGGER: When Leo's Bedroom Remote Device [7da5565cc39ea45df83d982a085622b6] sends an MQTT action 'off_press_release'. CONDITIONS: None. ACTIONS: Turn off leos bedroom main light [light.leos_bedroom_main_light].",
"natural_language": {
"trigger": "When the remote control in Leo's Bedroom sends a specific signal indicating the 'off' button has been pressed and released.",
"conditions": "There are no additional conditions that need to be met.",
"action": "Turns off the main light in Leo's bedroom."
},
"human_like": "Turns off Leo's bedroom main light when the remote control's off button is pressed.",
"complexity": "low"
}
},
{
"id": "'1699308571383'",
"result": {
"structured": "TRIGGER: When Leo's Bedroom Remote Device [7da5565cc39ea45df83d982a085622b6] sends an 'up_press_release' action via MQTT. CONDITIONS: None. ACTIONS: Open bedroom blinds [cover.bedroom_blinds].",
"natural_language": {
"trigger": "When the remote control in Leo's Bedroom sends a press and release of the 'up' button.",
"conditions": "There are no conditions.",
"action": "Opens the bedroom blinds [cover.bedroom_blinds]."
},
"human_like": "Opens the bedroom blinds when the 'up' button on Leo's remote is pressed and released.",
"complexity": "low"
}
},
{
"id": "'1699308571384'",
"result": {
"structured": "TRIGGER: When Leo's Bedroom Remote Device [7da5565cc39ea45df83d982a085622b6] sends a down_press_release action via MQTT. CONDITIONS: None. ACTIONS: Close bedroom blinds [cover.bedroom_blinds].",
"natural_language": {
"trigger": "When the remote control in Leo's Bedroom sends a 'down press and release' command.",
"conditions": "There are no conditions that need to be met.",
"action": "Closes the bedroom blinds [cover.bedroom_blinds]."
},
"human_like": "Closes the bedroom blinds when the remote's down button is pressed and released.",
"complexity": "low"
}
},
{
"id": "'1605925028960'",
"result": {
"structured": "TRIGGER: When the time reaches childrens bed time [input_datetime.childrens_bed_time] OR When the time reaches 22:00:00. CONDITIONS: (ashlees bedroom blinds [cover.ashlees_bedroom_blinds] current_position is above blind closed position threshold [input_number.blind_closed_position_threshold]) AND (enable ashlees blind automations [input_boolean.enable_ashlees_blind_automations] is on). ACTIONS: Choose the first matching branch: IF ashlees bedroom window contact [binary_sensor.ashlees_bedroom_window_contact] is open (on) THEN send a log message indicating the window is open and wait. ELSE IF home mode [input_select.home_mode] is No Children AND the trigger was the 22:00:00 time AND ashlees bedroom window contact [binary_sensor.ashlees_bedroom_window_contact] is closed (off) THEN send a log message and close ashlees bedroom blinds [cover.ashlees_bedroom_blinds]. ELSE IF enable ashlees bed sensor [input_boolean.enable_ashlees_bed_sensor] is on AND ashlees bedroom window contact [binary_sensor.ashlees_bedroom_window_contact] is closed (off) AND the trigger was the sunset time (id: sunset) THEN send a log message and close ashlees bedroom blinds [cover.ashlees_bedroom_blinds]. ELSE IF ashlees bedroom window contact [binary_sensor.ashlees_bedroom_window_contact] is closed (off) AND enable ashlees bed sensor [input_boolean.enable_ashlees_bed_sensor] is off THEN send a log message and close ashlees bedroom blinds [cover.ashlees_bedroom_blinds]. OTHERWISE do nothing.",
"natural_language": {
"trigger": "The automation triggers either at the scheduled children's bedtime, defined by childrens bed time [input_datetime.childrens_bed_time], or at 22:00:00.",
"conditions": "For the automation to proceed, the ashlees bedroom blinds [cover.ashlees_bedroom_blinds] must be open beyond a certain threshold, indicated by the blind closed position threshold [input_number.blind_closed_position_threshold]. Additionally, the automation must be enabled via enable ashlees blind automations [input_boolean.enable_ashlees_blind_automations].",
"action": "Depending on the situation, the automation will take different actions. If Ashlee's window is open, it logs a message and waits. If the home is in 'No Children' mode, it's 10 PM, and the window is closed, it logs a message and closes the blinds. If the bed sensor is enabled, the window is closed, and the trigger is sunset, it logs a message and closes the blinds. If the bed sensor is disabled and the window is closed, it also logs a message and closes the blinds. If none of these specific conditions are met, no action is taken."
},
"human_like": "Closes Ashlee's bedroom blinds at bedtime or in the evening, but only if the blinds are open, the automation is enabled, and the window is closed, with different logging and closing logic based on home mode and bed sensor status.",
"complexity": "medium"
}
},
{
"id": "'1622891806607'",
"result": {
"structured": "TRIGGER: When Ashlees bedroom window contact [binary_sensor.ashlees_bedroom_window_contact] changes from open (on) to closed (off) AND remains closed for 1 minute. CONDITIONS: (ashlees bedroom blinds [cover.ashlees_bedroom_blinds] current_position is above bedroom blind closed threshold [input_number.bedroom_blind_closed_threshold]) AND (enable ashlees blind automations [input_boolean.enable_ashlees_blind_automations] is on) AND (current time is after childrens bed time [input_datetime.childrens_bed_time]). ACTIONS: Execute script send_to_home_log with a debug message and then close ashlees bedroom blinds [cover.ashlees_bedroom_blinds].",
"natural_language": {
"trigger": "When Ashlees bedroom window contact [binary_sensor.ashlees_bedroom_window_contact] has been closed for at least one minute.",
"conditions": "If the ashlees bedroom blinds [cover.ashlees_bedroom_blinds] are currently open beyond a defined threshold, if the enable ashlees blind automations [input_boolean.enable_ashlees_blind_automations] switch is turned on, and if the current time is after the set childrens bed time [input_datetime.childrens_bed_time].",
"action": "Logs a debug message to the home log and then closes the ashlees bedroom blinds [cover.ashlees_bedroom_blinds]."
},
"human_like": "Automatically closes Ashlee's bedroom blinds after dark if the window has been closed for a minute and the blinds are open.",
"complexity": "medium"
}
},
{
"id": "'1599994669457'",
"result": {
"structured": "TRIGGER: At 08:00:00 OR At 09:00:00. CONDITIONS: (ashlees bedroom blinds [cover.ashlees_bedroom_blinds] current_position is below blind closed position threshold [input_number.blind_closed_position_threshold]) AND (enable ashlees blind automations [input_boolean.enable_ashlees_blind_automations] is on) AND (home mode [input_select.home_mode] is NOT Guest AND home mode [input_select.home_mode] is NOT No Children). ACTIONS: IF (workday sensor [binary_sensor.workday_sensor] is off AND trigger id is late) THEN (Log a school day message AND open ashlees bedroom blinds [cover.ashlees_bedroom_blinds]) ELSE IF (workday sensor [binary_sensor.workday_sensor] is on AND trigger id is early) THEN (Log a non-school day message AND open ashlees bedroom blinds [cover.ashlees_bedroom_blinds]) ELSE do nothing.",
"natural_language": {
"trigger": "The automation triggers at either 8:00 AM or 9:00 AM.",
"conditions": "The blinds must be currently closed (their current position is below the defined blind closed position threshold [input_number.blind_closed_position_threshold]), the automation switch for Ashlee's blinds [input_boolean.enable_ashlees_blind_automations] must be turned on, and the home mode [input_select.home_mode] must not be set to 'Guest' or 'No Children'.",
"action": "Depending on the day and time, the blinds will open with a corresponding log message. If it's a school day (workday sensor [binary_sensor.workday_sensor] is off) and the trigger time is 9:00 AM, the blinds open and a school day message is logged. If it's a non-school day (workday sensor [binary_sensor.workday_sensor] is on) and the trigger time is 8:00 AM, the blinds open and a non-school day message is logged. If neither condition is met, no action is taken."
},
"human_like": "Opens Ashlee's bedroom blinds in the morning, adjusting the time based on whether it's a school day or not, and only when the blinds are closed and the automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1599994669458'",
"result": {
"structured": "TRIGGER: When the time is 08:00:00 (id: workday) OR When the time is 09:00:00 (id: non_workday). CONDITIONS: home mode [input_select.home_mode] is No Children. ACTIONS: If workday sensor [binary_sensor.workday_sensor] is off AND the trigger id is workday, then log a debug message and open ashlees bedroom blinds [cover.ashlees_bedroom_blinds]. Otherwise, if workday sensor [binary_sensor.workday_sensor] is on AND the trigger id is non_workday, then log a debug message and open ashlees bedroom blinds [cover.ashlees_bedroom_blinds]. If neither condition matches, do nothing.",
"natural_language": {
"trigger": "The automation triggers at either 8:00 AM or 9:00 AM.",
"conditions": "The automation only runs if the home mode [input_select.home_mode] is set to 'No Children'.",
"action": "Depending on the time and the workday status, the automation logs a custom message and opens the blinds in Ashlee's bedroom. If it's 8:00 AM and the workday sensor [binary_sensor.workday_sensor] indicates it's not a workday, it logs a message and opens the blinds. If it's 9:00 AM and the workday sensor [binary_sensor.workday_sensor] indicates it is a workday, it logs a different message and also opens the blinds."
},
"human_like": "Opens Ashlee's bedroom blinds in the morning when the house is in 'No Children' mode, using different times for workdays and non-workdays.",
"complexity": "medium"
}
},
{
"id": "'1655237597647'",
"result": {
"structured": "TRIGGER: When ashlees bed occupied [binary_sensor.ashlees_bed_occupied] changes from off to on AND remains on for 30 seconds. CONDITIONS: (enable ashlees bed sensor [input_boolean.enable_ashlees_bed_sensor] is on) AND (enable ashlees blind automations [input_boolean.enable_ashlees_blind_automations] is on) AND (ashlees bedroom blinds [cover.ashlees_bedroom_blinds] current_position is below blind closed position threshold [input_number.blind_closed_position_threshold]) AND (current time is after childrens bed time [input_datetime.childrens_bed_time] OR current time is before 05:00:00) AND (ashlees bedroom window contact [binary_sensor.ashlees_bedroom_window_contact] is off). ACTIONS: Send a debug log message to Home Log with title 'Ashlee's :bed: bedroom' and message 'Someone is in Ashlee's :bed: bed after :clock730:. Closing blinds.' AND Close ashlees bedroom blinds [cover.ashlees_bedroom_blinds].",
"natural_language": {
"trigger": "When the ashlees bed occupied [binary_sensor.ashlees_bed_occupied] sensor detects someone in bed and remains in the 'on' state for 30 seconds.",
"conditions": "If the enable ashlees bed sensor [input_boolean.enable_ashlees_bed_sensor] is turned on, the enable ashlees blind automations [input_boolean.enable_ashlees_blind_automations] is turned on, the ashlees bedroom blinds [cover.ashlees_bedroom_blinds] are open (their current position is below the blind closed position threshold [input_number.blind_closed_position_threshold]), the current time is either after the childrens bed time [input_datetime.childrens_bed_time] or before 5:00 AM, and the ashlees bedroom window contact [binary_sensor.ashlees_bedroom_window_contact] is closed (off).",
"action": "Sends a debug notification to the home log stating that someone is in Ashlee's bed and it's after bedtime, and then closes the ashlees bedroom blinds [cover.ashlees_bedroom_blinds]."
},
"human_like": "Automatically closes Ashlee's bedroom blinds when someone gets into bed after bedtime, provided the window is closed and the automation features are enabled.",
"complexity": "medium"
}
},
{
"id": "'1655235874989'",
"result": {
"structured": "TRIGGER: When ashlees bedroom fan [switch.ashlees_bedroom_fan] remains on for 1 hour. CONDITIONS: None. ACTIONS: Execute in parallel: 1. Run script send_to_home_log with message ':fan: Fan has been on for an hour. Turning fan off.' and title ':bed: Ashlee's bedroom' at Debug level. 2. Turn off ashlees bedroom fan [switch.ashlees_bedroom_fan].",
"natural_language": {
"trigger": "When the ashlees bedroom fan [switch.ashlees_bedroom_fan] has been switched on and remains in the 'on' state for exactly one hour.",
"conditions": "There are no conditions that need to be met.",
"action": "Two actions are performed simultaneously: first, a notification is sent to the home log with a debug message stating the fan has been on for an hour and is being turned off, and second, the ashlees bedroom fan [switch.ashlees_bedroom_fan] is turned off."
},
"human_like": "Automatically turns off Ashlee's bedroom fan after it has been running for one hour and logs the action.",
"complexity": "low"
}
},
{
"id": "'1656355431188'",
"result": {
"structured": "TRIGGER: When the action 'on_press_release' is detected on the MQTT device Ashlee's Bedroom Remote Device [device_id: 43598aa0e01c65b2bfc26491940f3353]. CONDITIONS: None. ACTIONS: Execute the script 'send_to_home_log' with the message 'Power button pressed. :bulb: Toggling light.' and title ':bed: Ashlee's Bedroom' at log level Debug, AND toggle the state of ashlees bedroom main light [light.ashlees_bedroom_main_light].",
"natural_language": {
"trigger": "When the 'on_press_release' button on the Ashlee's Bedroom Remote Device [device_id: 43598aa0e01c65b2bfc26491940f3353] is pressed and released.",
"conditions": "There are no conditions that must be met.",
"action": "First, a debug log entry is created with the title ':bed: Ashlee's Bedroom' and the message 'Power button pressed. :bulb: Toggling light.'. Then, the main light in Ashlee's bedroom, ashlees bedroom main light [light.ashlees_bedroom_main_light], is toggled on or off."
},
"human_like": "Toggles the main light in Ashlee's bedroom when the corresponding remote button is pressed, and logs the action.",
"complexity": "low"
}
},
{
"id": "'1656355431189'",
"result": {
"structured": "TRIGGER: When Ashlee's Bedroom Remote Device [43598aa0e01c65b2bfc26491940f3353] sends an MQTT action of type up_press_release. CONDITIONS: None. ACTIONS: In parallel: 1. Run script.send_to_home_log with message 'Bright button on remote pressed. Opening :window: Ashlee's blinds.' and title ':bed: Ashlee's Bedroom' at Debug log level. 2. Open ashlees bedroom blinds [cover.ashlees_bedroom_blinds].",
"natural_language": {
"trigger": "When the up button on the Ashlee's Bedroom Remote Device [43598aa0e01c65b2bfc26491940f3353] is pressed and released.",
"conditions": "There are no conditions that must be met.",
"action": "Two actions are performed simultaneously: a debug message is sent to the home log stating the remote button was pressed and the blinds are opening, and the ashlees bedroom blinds [cover.ashlees_bedroom_blinds] are opened."
},
"human_like": "Opens Ashlee's bedroom blinds when the up button on her remote is pressed.",
"complexity": "low"
}
},
{
"id": "'1656355431190'",
"result": {
"structured": "TRIGGER: When the Ashlee's Bedroom Remote Device [device.43598aa0e01c65b2bfc26491940f3353] sends an MQTT action of type down_press_release. CONDITIONS: None. ACTIONS: (In parallel) Send a debug log message with title ':bed: Ashlee's Bedroom' and message 'Dim button on remote pressed. Closing :window: Ashlee's blinds.' AND Close ashlees bedroom blinds [cover.ashlees_bedroom_blinds].",
"natural_language": {
"trigger": "When the down button on the Ashlee's Bedroom Remote Device [device.43598aa0e01c65b2bfc26491940f3353] is pressed and released.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a debug notification to the home log stating that the dim button was pressed and the blinds are closing, and simultaneously closes the ashlees bedroom blinds [cover.ashlees_bedroom_blinds]."
},
"human_like": "Closes the blinds in Ashlee's bedroom when the down button on the remote is pressed.",
"complexity": "low"
}
},
{
"id": "'1656355431191'",
"result": {
"structured": "TRIGGER: When the off button on the Hue remote device (Ashlee's Bedroom Remote Device [43598aa0e01c65b2bfc26491940f3353]) is pressed and released. CONDITIONS: None. ACTIONS: In parallel, log a debug message titled ':bed: Ashlee's Bedroom' with the text 'Hue button on remote pressed. Toggle Ashlee's main :bulb: light.' AND toggle ashlees bedroom main light [light.ashlees_bedroom_main_light].",
"natural_language": {
"trigger": "When the off button on the Hue remote device (Ashlee's Bedroom Remote Device [43598aa0e01c65b2bfc26491940f3353]) is pressed and then released.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "The automation performs two actions simultaneously: it logs a debug message to the home log with a specific title and message, and it toggles the state of Ashlee's main bedroom light."
},
"human_like": "Turns Ashlee's main bedroom light on or off and logs the action when the off button on her Hue remote is pressed.",
"complexity": "low"
}
},
{
"id": "'1714779045289'",
"result": {
"structured": "TRIGGER: When bin estimated distance [sensor.bin_estimated_distance] is above 7 for 1 hour. CONDITIONS: None. ACTIONS: Run script 'send_direct_notification' with message 'Taken out.', title 'Bin', and target person danny [person.danny].",
"natural_language": {
"trigger": "When the bin estimated distance [sensor.bin_estimated_distance] sensor reports a value greater than 7 for a continuous period of one hour.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a direct notification to danny [person.danny] with the title 'Bin' and the message 'Taken out.'."
},
"human_like": "Sends a notification to Danny when the bin has been far away from the house for an hour, indicating it has likely been taken out.",
"complexity": "low"
}
},
{
"id": "'1654008759007'",
"result": {
"structured": "TRIGGER: When family calendar [calendar.family] event starts, 1 hour before the scheduled start time. CONDITIONS: None. ACTIONS: Execute script.calendar_event_started with data containing the calendar entity calendar.family.",
"natural_language": {
"trigger": "When an event on the family calendar [calendar.family] is about to start, specifically one hour before its scheduled start time.",
"conditions": "There are no conditions that must be met.",
"action": "Runs a script named 'calendar_event_started', passing the family calendar entity as data."
},
"human_like": "Runs a script one hour before a family calendar event starts.",
"complexity": "low"
}
},
{
"id": "'1654008759008'",
"result": {
"structured": "TRIGGER: When tsang children calendar [calendar.tsang_children] has a calendar event start, 1 hour before the scheduled start time. CONDITIONS: None. ACTIONS: Execute the script calendar_event_started, passing the entity calendar.tsang_children as a parameter.",
"natural_language": {
"trigger": "When an event on the tsang children calendar [calendar.tsang_children] is about to start in one hour.",
"conditions": "There are no conditions that must be met.",
"action": "Runs the script named calendar_event_started, providing the calendar's entity information."
},
"human_like": "Runs a script one hour before an event starts on the children's calendar.",
"complexity": "low"
}
},
{
"id": "'1654008759009'",
"result": {
"structured": "TRIGGER: When tsang children calendar [calendar.tsang_children] event ends, 30 minutes before the scheduled end time. CONDITIONS: None. ACTIONS: Execute script calendar_event_ended with the parameter calendar_id set to tsang children calendar [calendar.tsang_children].",
"natural_language": {
"trigger": "When an event on the tsang children calendar [calendar.tsang_children] is about to end, specifically 30 minutes before its scheduled end time.",
"conditions": "There are no conditions that need to be met.",
"action": "Runs a script named calendar_event_ended, passing the tsang children calendar [calendar.tsang_children] as a parameter."
},
"human_like": "Runs a script 30 minutes before a calendar event ends to handle post-event tasks.",
"complexity": "low"
}
},
{
"id": "'1647307174048'",
"result": {
"structured": "TRIGGER: When the time pattern matches minutes = 0 (every hour on the hour). CONDITIONS: (home mode [input_select.home_mode] is guest OR tracked people group [group.tracked_people] is home) AND NOT (house alarm [alarm_control_panel.house_alarm] is armed_away). ACTIONS: In parallel, run script.send_to_home_log with message 'Casting Home Assistant.' and title ':mirror: Magic Mirror' at log level Debug, AND cast.show_lovelace_view on stairs chromecast [media_player.stairs_chromecast] using dashboard 'lovelace-magicmirror' and view 'home'.",
"natural_language": {
"trigger": "The automation triggers every hour on the hour (when the minutes equal 0).",
"conditions": "The automation checks that either the home mode [input_select.home_mode] is set to 'guest' or the tracked people group [group.tracked_people] is 'home'. Additionally, it ensures the house alarm [alarm_control_panel.house_alarm] is not set to 'armed_away'.",
"action": "It performs two actions simultaneously: it logs a debug message titled ':mirror: Magic Mirror' with the content 'Casting Home Assistant.' to the home log, and it casts the 'home' view from the 'lovelace-magicmirror' dashboard to the stairs chromecast [media_player.stairs_chromecast]."
},
"human_like": "Every hour, if someone is home or guest mode is active and the alarm is not armed away, it casts the Home Assistant dashboard to the Magic Mirror on the stairs and logs the action.",
"complexity": "medium"
}
},
{
"id": "'1672397019959'",
"result": {
"structured": "TRIGGER: When lounge tv [media_player.lounge_tv] OR bedroom tv [media_player.bedroom_tv] state changes to playing OR When lounge tv [media_player.lounge_tv] OR bedroom tv [media_player.bedroom_tv] attribute 'media_title' changes to playing OR When lounge tv [media_player.lounge_tv] OR bedroom tv [media_player.bedroom_tv] attribute 'app_name' changes to playing. CONDITIONS: None. ACTIONS: If the attribute 'media_position' of the triggering entity [trigger.entity_id] is not None, then run the script google_tv_playing_notification with data entity_id set to the triggering entity [trigger.entity_id].",
"natural_language": {
"trigger": "The automation is triggered when either the lounge tv [media_player.lounge_tv] or the bedroom tv [media_player.bedroom_tv] starts playing media, or when the 'media_title' attribute of either TV changes to 'playing', or when the 'app_name' attribute of either TV changes to 'playing'.",
"conditions": "There are no conditions that must be met for the action to proceed.",
"action": "If the TV that triggered the automation has a valid 'media_position' attribute (meaning it is not None), then a notification script called 'google_tv_playing_notification' is run, passing the ID of the triggering TV as a parameter."
},
"human_like": "Sends a notification when a Google TV starts playing content, but only if the media has a playback position.",
"complexity": "medium"
}
},
{
"id": "'1650387098757'",
"result": {
"structured": "TRIGGER: When t8 vacuum [vacuum.t8] enters the error state. CONDITIONS: None. ACTIONS: Execute script.send_to_home_log with message ':warning: :robot_face: :broom: Vacuum has encountered an error :warning:' and title ':robot_face: :broom: Vacuum' at log level Normal.",
"natural_language": {
"trigger": "When the t8 vacuum [vacuum.t8] reports an error state.",
"conditions": "There are no additional conditions.",
"action": "Sends a notification to the home log with a warning message indicating the vacuum has encountered an error."
},
"human_like": "Logs a warning message when the vacuum cleaner encounters an error.",
"complexity": "low"
}
},
{
"id": "'1650387098756'",
"result": {
"structured": "TRIGGER: When t8 vacuum [vacuum.t8] battery_level attribute is above 99. CONDITIONS: None. ACTIONS: Execute script.send_to_home_log with message ':battery: Fully charged', title ':robot_face: :broom: Vacuum', and log_level Debug.",
"natural_language": {
"trigger": "When the battery level of the t8 vacuum [vacuum.t8] rises above 99 percent.",
"conditions": "There are no additional conditions.",
"action": "Sends a debug-level log message to the home log with the title ':robot_face: :broom: Vacuum' and the message ':battery: Fully charged'."
},
"human_like": "Logs a message when the vacuum cleaner is fully charged.",
"complexity": "low"
}
},
{
"id": "'1654865901253'",
"result": {
"structured": "TRIGGER: When t8 vacuum [vacuum.t8] remains in the docked state for 1 minute AND the previous state was not unavailable. CONDITIONS: None. ACTIONS: Execute script script.send_home_log_with_url with data: message='Cleaning complete', title=':robot_face: :broom: Vacuum', url='{{ states('input_text.external_url') }}{{ state_attr('image.t8_map','entity_picture') }}'.",
"natural_language": {
"trigger": "When the t8 vacuum [vacuum.t8] has been docked for at least one minute, and it did not transition from an unavailable state.",
"conditions": "There are no additional conditions.",
"action": "Sends a notification titled ':robot_face: :broom: Vacuum' with the message 'Cleaning complete' and a URL constructed from the External URL [input_text.external_url] and the map picture from the vacuum."
},
"human_like": "Sends a notification when the vacuum has been docked for a minute, indicating that cleaning is finished.",
"complexity": "low"
}
},
{
"id": "'1610234394136'",
"result": {
"structured": "TRIGGER: When conservatory area motion [binary_sensor.conservatory_area_motion] OR conservatory motion occupancy [binary_sensor.conservatory_motion_occupancy] changes from off to on. CONDITIONS: conservatory motion illuminance [sensor.conservatory_motion_illuminance] is below conservatory light level threshold [input_number.conservatory_light_level_threshold] AND enable conservatory motion trigger [input_boolean.enable_conservatory_motion_trigger] is on AND (conservatory light [light.conservatory] brightness attribute is below 9 OR conservatory light [light.conservatory] brightness attribute is none). ACTIONS: In parallel: 1. Execute script send_to_home_log with a debug message. 2. Turn on scene Conservatory Turn On Light [scene.conservatory_turn_on_light] with a 2-second transition.",
"natural_language": {
"trigger": "When either the conservatory area motion [binary_sensor.conservatory_area_motion] or the conservatory motion occupancy [binary_sensor.conservatory_motion_occupancy] sensor detects motion, changing from an inactive (off) to an active (on) state.",
"conditions": "The ambient light level measured by the conservatory motion illuminance [sensor.conservatory_motion_illuminance] must be below the user-defined threshold set by conservatory light level threshold [input_number.conservatory_light_level_threshold]. The automation must be enabled via the enable conservatory motion trigger [input_boolean.enable_conservatory_motion_trigger] being switched on. Additionally, the conservatory light [light.conservatory] must either be very dim (with a brightness level below 9) or be completely off (its brightness attribute is reported as 'none').",
"action": "Two actions are performed simultaneously: a debug log entry is created via the script send_to_home_log, reporting the event and the light levels. The main light in the conservatory is then turned on by activating the scene Conservatory Turn On Light [scene.conservatory_turn_on_light], with the lights fading in over a 2-second period."
},
"human_like": "Turns on the conservatory lights when motion is detected, but only if the room is dark and the automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1610234794461'",
"result": {
"structured": "TRIGGER: When conservatory area motion [binary_sensor.conservatory_area_motion] changes from on to off AND remains off for 1 minute. CONDITIONS: conservatory light [light.conservatory] is on AND enable conservatory motion trigger [input_boolean.enable_conservatory_motion_trigger] is on. ACTIONS: In parallel, send a debug log message and activate the Conservatory Dim Light [scene.conservatory_dim_light] scene with a 2-second transition.",
"natural_language": {
"trigger": "When the conservatory area motion [binary_sensor.conservatory_area_motion] sensor stops detecting motion and remains in the 'no motion' state for one full minute.",
"conditions": "The automation only runs if the conservatory light [light.conservatory] is currently turned on, and if the enable conservatory motion trigger [input_boolean.enable_conservatory_motion_trigger] is switched on.",
"action": "Two actions are performed simultaneously: a debug message is sent to the home log, and the Conservatory Dim Light [scene.conservatory_dim_light] scene is activated, dimming the lights over a two-second period."
},
"human_like": "Automatically dims the conservatory lights after no motion has been detected for a minute, provided the lights are on and the feature is enabled.",
"complexity": "low"
}
},
{
"id": "'1610238960657'",
"result": {
"structured": "TRIGGER: When conservatory area motion [binary_sensor.conservatory_area_motion] remains off (no motion) for 1 minute and 30 seconds. CONDITIONS: conservatory light [light.conservatory] is on AND enable conservatory motion trigger [input_boolean.enable_conservatory_motion_trigger] is on. ACTIONS: In parallel, execute script.send_to_home_log with message ':no_pedestrians: No motion. Turning lights off.' and title 'Conservatory' at Debug log level, AND turn on Conservatory Turn Off Light [scene.conservatory_turn_off_light] with a transition of 2 seconds.",
"natural_language": {
"trigger": "When the conservatory area motion sensor [binary_sensor.conservatory_area_motion] detects no motion for a continuous period of one minute and thirty seconds.",
"conditions": "If the conservatory light [light.conservatory] is currently turned on, and the automation override switch, enable conservatory motion trigger [input_boolean.enable_conservatory_motion_trigger], is also turned on.",
"action": "It performs two actions simultaneously: it logs a debug message to the home log stating 'No motion. Turning lights off.' for the Conservatory, and it activates the 'Conservatory Turn Off Light' scene [scene.conservatory_turn_off_light], which turns off the lights with a two-second fade-out transition."
},
"human_like": "Automatically turns off the conservatory lights after no motion is detected for a minute and a half, provided the lights are on and the automation is enabled.",
"complexity": "low"
}
},
{
"id": "'1629146628067'",
"result": {
"structured": "TRIGGER: When conservatory person detected [binary_sensor.conservatory_person_detected] changes from off to on. CONDITIONS: house alarm [alarm_control_panel.house_alarm] is armed_away. ACTIONS: Take a snapshot with conservatory high resolution channel camera [camera.conservatory_high_resolution_channel] and save it to the file path stored in Latest Frigate Conservatory Person File Path [input_text.latest_frigate_conservatory_person_file_path]. Then, run the script send_home_log_with_local_attachments with a message 'Frigate detected a person in the conservatory.', title 'Person detected in conservatory', log level 'Normal', and the same file path.",
"natural_language": {
"trigger": "When the conservatory person detected [binary_sensor.conservatory_person_detected] sensor changes from not detecting a person to detecting a person.",
"conditions": "The house alarm [alarm_control_panel.house_alarm] must be in the armed_away mode.",
"action": "First, take a snapshot from the conservatory high resolution channel camera [camera.conservatory_high_resolution_channel] and save it to the file path specified by the Latest Frigate Conservatory Person File Path [input_text.latest_frigate_conservatory_person_file_path]. Then, send a notification to the home log with the title 'Person detected in conservatory', the message 'Frigate detected a person in the conservatory.', a normal log level, and attach the saved snapshot using the same file path."
},
"human_like": "When the house alarm is set to away and a person is detected in the conservatory, it takes a camera snapshot and sends a notification to the home log.",
"complexity": "low"
}
},
{
"id": "'1628985027639'",
"result": {
"structured": "TRIGGER: When conservatory door [binary_sensor.conservatory_door] changes to open (on). CONDITIONS: None. ACTIONS: Execute the following actions in parallel: 1. Run script.send_to_home_log with message ':door: Door opened.', title 'Conservatory', and log_level 'Debug'. 2. Check if thermostat [climate.thermostat] is NOT off. If true, then run script.send_to_home_log with message 'Turning off the heating.', title 'Conservatory', and log_level 'Debug' AND run script.set_central_heating_to_off.",
"natural_language": {
"trigger": "When the conservatory door [binary_sensor.conservatory_door] opens.",
"conditions": "There are no conditions for this automation.",
"action": "It logs a debug message to the home log stating the door has opened. At the same time, it checks if the thermostat [climate.thermostat] is not off. If the thermostat is on, it logs another debug message about turning off the heating and then runs a script to set the central heating to off."
},
"human_like": "Logs when the conservatory door opens and, if the heating is on, turns it off to conserve energy.",
"complexity": "medium"
}
},
{
"id": "'1628985156167'",
"result": {
"structured": "TRIGGER: When conservatory door [binary_sensor.conservatory_door] changes from open (on) to closed (off). CONDITIONS: None. ACTIONS: Execute the following actions in parallel: 1. Run script.send_to_home_log with message ':door: Conservatory door closed.' at Debug level. 2. Run script.set_central_heating_to_home_mode. 3. Choose one action based on conditions: IF shed door [binary_sensor.shed_door] is open (on) AND back garden gate contact [binary_sensor.back_garden_gate_contact] is open (on) THEN run script.send_direct_notification to danny person [person.danny] and terina person [person.terina] with title 'Conservatory' and message ':door: Door closed. :hut: shed :door: door and gate is still open.'. ELSE IF shed door [binary_sensor.shed_door] is open (on) THEN run script.send_direct_notification to danny person [person.danny] and terina person [person.terina] with title 'Conservatory' and message ':door: Door closed and :hut: shed :door: door is still open.'. ELSE IF back garden gate contact [binary_sensor.back_garden_gate_contact] is open (on) THEN run script.send_direct_notification to danny person [person.danny] and terina person [person.terina] with title 'Conservatory' and message ':door: Door closed and gate is still open.'. ELSE do nothing.",
"natural_language": {
"trigger": "When the conservatory door [binary_sensor.conservatory_door] closes, changing from an open to a closed state.",
"conditions": "There are no conditions that must be met for this automation to proceed.",
"action": "Three actions are performed simultaneously. First, a debug log entry is created stating 'Conservatory door closed.'. Second, the central heating is set to home mode. Third, a conditional notification is sent to danny person [person.danny] and terina person [person.terina] based on the status of other doors. If both the shed door [binary_sensor.shed_door] and the back garden gate contact [binary_sensor.back_garden_gate_contact] are open, a notification is sent stating that the conservatory door is closed but the shed door and gate are still open. If only the shed door is open, a notification is sent stating that the conservatory door is closed but the shed door is still open. If only the back garden gate is open, a notification is sent stating that the conservatory door is closed but the gate is still open. If neither the shed door nor the gate is open, no notification is sent."
},
"human_like": "Logs the conservatory door closing, sets the heating to home mode, and notifies Danny and Terina if the shed door or garden gate is still open.",
"complexity": "medium"
}
},
{
"id": "'1733767153966'",
"result": {
"structured": "TRIGGER: When conservatory airer schedule 1 [binary_sensor.conservatory_airer_schedule_1] changes state. CONDITIONS: enable conservatory airer schedule [input_boolean.enable_conservatory_airer_schedule] is on. ACTIONS: Execute script.check_conservatory_airer.",
"natural_language": {
"trigger": "Whenever the state of the conservatory airer schedule 1 [binary_sensor.conservatory_airer_schedule_1] changes.",
"conditions": "The automation will only proceed if the enable conservatory airer schedule [input_boolean.enable_conservatory_airer_schedule] is switched on.",
"action": "Runs the script named 'check_conservatory_airer'."
},
"human_like": "Turns on the airer in the conservatory when its schedule is active, provided the schedule is enabled.",
"complexity": "low"
}
},
{
"id": "'1733767153967'",
"result": {
"structured": "TRIGGER: When conservatory airer schedule 1 [binary_sensor.conservatory_airer_schedule_1] turns off. CONDITIONS: enable conservatory airer schedule [input_boolean.enable_conservatory_airer_schedule] is on. ACTIONS: In parallel: send a log message 'Airer schedule 1 is off. Turning airer off.' to the home log AND turn off airer switch [switch.airer].",
"natural_language": {
"trigger": "When the conservatory airer schedule 1 [binary_sensor.conservatory_airer_schedule_1] changes its state to off.",
"conditions": "The automation is only allowed to run if the enable conservatory airer schedule [input_boolean.enable_conservatory_airer_schedule] is switched on.",
"action": "It will simultaneously send a notification to the home log stating 'Airer schedule 1 is off. Turning airer off.' and turn off the airer switch [switch.airer]."
},
"human_like": "Turns off the airer and logs the action when its schedule ends, provided the schedule is enabled.",
"complexity": "low"
}
},
{
"id": "'1689437015870'",
"result": {
"structured": "TRIGGER: When EcoFlow Solar Excess [sensor.ecoflow_solar_excess] remains below 0 for 5 minutes. CONDITIONS: (Octopus Energy Electricity Current Rate [sensor.octopus_energy_electricity_current_rate] is above Octopus Energy Electricity Export Current Rate [sensor.octopus_energy_electricity_export_current_rate] OR Octopus Energy Electricity Current Rate [sensor.octopus_energy_electricity_current_rate] is unavailable) AND ((EcoFlow Kitchen Backup Reserve Level [number.ecoflow_kitchen_backup_reserve_level] is above Ecoflow Kitchen Minimum Backup Reserve [input_number.ecoflow_kitchen_minimum_backup_reserve] AND EcoFlow Kitchen Backup Reserve Enabled [switch.ecoflow_kitchen_backup_reserve_enabled] is on) OR (EcoFlow Office Backup Reserve Level [number.ecoflow_office_backup_reserve_level] is above Ecoflow Office Minimum Backup Reserve [input_number.ecoflow_office_minimum_backup_reserve] AND EcoFlow Office Backup Reserve Enabled [switch.ecoflow_office_backup_reserve_enabled] is on)) AND Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] is on. ACTIONS: Run script.ecoflow_check_charging_mode with data from the electricity rate sensors. If Check Solar Excess [timer.check_solar_excess] is active, cancel it.",
"natural_language": {
"trigger": "When the EcoFlow Solar Excess [sensor.ecoflow_solar_excess] sensor shows a negative value (meaning house consumption is greater than solar production) for a continuous period of five minutes.",
"conditions": "The automation runs only if the current electricity import rate is higher than the export rate, or if the current import rate data is unavailable. Additionally, at least one of the EcoFlow backup reserves must be active and have sufficient capacity: either the kitchen backup reserve is enabled and its level is above the set minimum, or the office backup reserve is enabled and its level is above its set minimum. Finally, the master switch Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] must be turned on.",
"action": "The automation runs a script named 'ecoflow_check_charging_mode', passing it the current electricity import and export rates. It also checks if a timer named Check Solar Excess [timer.check_solar_excess] is currently running and cancels it if it is."
},
"human_like": "Triggers a check of the EcoFlow charging mode when solar power is insufficient for house needs for five minutes, but only if electricity rates are favorable and a backup reserve is available.",
"complexity": "medium"
}
},
{
"id": "'1689437015871'",
"result": {
"structured": "TRIGGER: When EcoFlow Solar Excess [sensor.ecoflow_solar_excess] remains above the value of input_number.ecoflow_charge_solar_threshold for 5 minutes OR When the timer Check Solar Excess [timer.check_solar_excess] finishes. CONDITIONS: EcoFlow Kitchen Backup Reserve Enabled [switch.ecoflow_kitchen_backup_reserve_enabled] is on AND Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] is on. ACTIONS: Run two actions in parallel: 1) Execute script.ecoflow_check_charging_mode with data derived from Octopus Energy Electricity Current Rate [sensor.octopus_energy_electricity_current_rate] and Octopus Energy Electricity Export Current Rate [sensor.octopus_energy_electricity_export_current_rate]. 2) Choose an action based on conditions: IF Grid Power [sensor.grid_power] is below 0 AND Check Solar Excess [timer.check_solar_excess] is NOT active, THEN start Check Solar Excess [timer.check_solar_excess] for 5 minutes.",
"natural_language": {
"trigger": "The automation triggers in two ways: first, when the EcoFlow Solar Excess [sensor.ecoflow_solar_excess] sensor reports a value above a defined threshold for a continuous period of five minutes. Second, when the Check Solar Excess [timer.check_solar_excess] timer finishes its countdown.",
"conditions": "For the automation to proceed, two conditions must be met: the EcoFlow Kitchen Backup Reserve Enabled [switch.ecoflow_kitchen_backup_reserve_enabled] switch must be turned on, and the Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] input boolean must also be on.",
"action": "When triggered and conditions are met, the automation performs two sets of actions simultaneously. First, it runs a script named ecoflow_check_charging_mode, providing it with the current electricity import and export rates from the Octopus Energy sensors. Second, it checks if the Grid Power [sensor.grid_power] is negative (indicating export to the grid) and if the Check Solar Excess [timer.check_solar_excess] timer is not already running. If both are true, it starts that timer for a five-minute duration."
},
"human_like": "Manages EcoFlow battery charging based on excess solar power and grid export status, ensuring efficient energy use when automations are enabled.",
"complexity": "medium"
}
},
{
"id": "'1695566530591'",
"result": {
"structured": "TRIGGER: When EcoFlow Kitchen Battery Level [sensor.ecoflow_kitchen_battery_level] falls below EcoFlow Kitchen Minimum Backup Reserve Low Threshold [sensor.ecoflow_kitchen_minimum_backup_reserve_low_threshold] OR when EcoFlow Office Battery Level [sensor.ecoflow_office_battery_level] falls below EcoFlow Office Minimum Backup Reserve Low Threshold [sensor.ecoflow_office_minimum_backup_reserve_low_threshold]. CONDITIONS: (EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug] is off OR EcoFlow Office Plug [switch.ecoflow_office_plug] is off) AND Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] is on. ACTIONS: If the trigger was from EcoFlow Kitchen Battery Level AND EcoFlow Kitchen Plug is off, then in parallel: send a notification to danny person [person.danny], turn on EcoFlow Kitchen Plug, set EcoFlow Kitchen AC Charging Power [number.ecoflow_kitchen_ac_charging_power] to 200, and set EcoFlow Kitchen Backup Reserve Level [number.ecoflow_kitchen_backup_reserve_level] to the value of Ecoflow Kitchen Minimum Backup Reserve [input_number.ecoflow_kitchen_minimum_backup_reserve]. If the trigger was from EcoFlow Office Battery Level AND EcoFlow Office Plug is off, then in parallel: send a notification to danny person [person.danny] and turn on EcoFlow Office Plug [switch.ecoflow_office_plug].",
"natural_language": {
"trigger": "When the battery level of the EcoFlow unit in the kitchen falls below its configured low threshold, or when the battery level of the EcoFlow unit in the office falls below its configured low threshold.",
"conditions": "If either the kitchen EcoFlow plug is switched off or the office EcoFlow plug is switched off, and the master switch for EcoFlow automations is enabled.",
"action": "Depending on which battery triggered the event, the automation will take specific actions. If the kitchen battery is low and its plug is off, it sends a notification, turns the kitchen plug on, sets its charging rate to 200, and adjusts its backup reserve level. If the office battery is low and its plug is off, it sends a notification and turns the office plug on."
},
"human_like": "Monitors EcoFlow battery levels and automatically turns on the corresponding power plug if it's off and the battery is low, while also sending notifications and adjusting settings for the kitchen unit.",
"complexity": "medium"
}
},
{
"id": "'1719062430507'",
"result": {
"structured": "TRIGGER: When EcoFlow Kitchen Battery Level [sensor.ecoflow_kitchen_battery_level] falls below the value of EcoFlow Kitchen Minimum Backup Reserve Low Threshold [sensor.ecoflow_kitchen_minimum_backup_reserve_low_threshold]. CONDITIONS: Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] is on AND (EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug] is unavailable OR EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug] is unknown). ACTIONS: Execute script.send_direct_notification to send a notification to danny person [person.danny] with the title 'EcoFlow' and the message 'Kitchen plug is offline!'.",
"natural_language": {
"trigger": "When the EcoFlow Kitchen Battery Level [sensor.ecoflow_kitchen_battery_level] drops below the current value of the EcoFlow Kitchen Minimum Backup Reserve Low Threshold [sensor.ecoflow_kitchen_minimum_backup_reserve_low_threshold].",
"conditions": "If the automation switch Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] is turned on, and the EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug] is either in an unavailable or an unknown state.",
"action": "Sends a direct notification to danny person [person.danny] with the title 'EcoFlow' and the message 'Kitchen plug is offline!'."
},
"human_like": "Sends a notification when the kitchen power station battery is low and its plug appears to be offline.",
"complexity": "medium"
}
},
{
"id": "'1719062430508'",
"result": {
"structured": "TRIGGER: When EcoFlow Office Battery Level [sensor.ecoflow_office_battery_level] falls below the value of EcoFlow Office Minimum Backup Reserve Low Threshold [sensor.ecoflow_office_minimum_backup_reserve_low_threshold]. CONDITIONS: Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] is on AND (EcoFlow Office Plug [switch.ecoflow_office_plug] is unavailable OR EcoFlow Office Plug [switch.ecoflow_office_plug] is unknown). ACTIONS: Execute the script script.send_direct_notification with parameters: notify person.danny [person.danny] with title 'EcoFlow' and message 'Office plug is offline!'.",
"natural_language": {
"trigger": "When the battery level of the EcoFlow unit in the office drops below the configured low threshold value.",
"conditions": "The automation must be enabled via the Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] switch, and the EcoFlow Office Plug [switch.ecoflow_office_plug] must be in an unavailable or unknown state.",
"action": "Sends a direct notification to Danny [person.danny] with the title 'EcoFlow' and the message 'Office plug is offline!'."
},
"human_like": "Sends a notification when the office EcoFlow battery is low and its plug appears to be offline.",
"complexity": "medium"
}
},
{
"id": "'1719061926981'",
"result": {
"structured": "TRIGGER: When EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug] changes state from unavailable to off. CONDITIONS: Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] is on AND EcoFlow Kitchen Battery Level [sensor.ecoflow_kitchen_battery_level] is below EcoFlow Kitchen Minimum Backup Reserve Low Threshold [sensor.ecoflow_kitchen_minimum_backup_reserve_low_threshold]. ACTIONS: Run two actions in parallel: 1. Execute script.send_direct_notification with a title 'EcoFlow' and a message containing the current battery level and threshold values, directed to danny person [person.danny]. 2. Turn on EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug].",
"natural_language": {
"trigger": "When the EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug] becomes available again, transitioning from an 'unavailable' state to 'off'.",
"conditions": "If the 'Enable Ecoflow Automations' [input_boolean.enable_ecoflow_automations] toggle is switched on, and the EcoFlow Kitchen Battery Level [sensor.ecoflow_kitchen_battery_level] is currently lower than the configured low threshold value from the sensor EcoFlow Kitchen Minimum Backup Reserve Low Threshold [sensor.ecoflow_kitchen_minimum_backup_reserve_low_threshold].",
"action": "Sends a notification to Danny [person.danny] informing him that the kitchen battery is below the minimum threshold and the plug is now available, and simultaneously turns on the EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug] to begin charging or power delivery."
},
"human_like": "When the kitchen EcoFlow battery is low and its plug becomes available, it turns the plug on and notifies Danny.",
"complexity": "medium"
}
},
{
"id": "'1719061926982'",
"result": {
"structured": "TRIGGER: When EcoFlow Office Plug [switch.ecoflow_office_plug] changes state from unavailable to off. CONDITIONS: Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] is on AND EcoFlow Office Battery Level [sensor.ecoflow_office_battery_level] is below EcoFlow Office Minimum Backup Reserve Low Threshold [sensor.ecoflow_office_minimum_backup_reserve_low_threshold]. ACTIONS: Run script.send_direct_notification to send a notification titled 'EcoFlow' with a message containing the current battery level and threshold to danny person [person.danny] AND Turn on EcoFlow Office Plug [switch.ecoflow_office_plug].",
"natural_language": {
"trigger": "When the EcoFlow Office Plug [switch.ecoflow_office_plug] becomes available again, changing its state from 'unavailable' to 'off'.",
"conditions": "The automation must be enabled via the Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] switch being on, and the current EcoFlow Office Battery Level [sensor.ecoflow_office_battery_level] must be below the configured low threshold value from the sensor EcoFlow Office Minimum Backup Reserve Low Threshold [sensor.ecoflow_office_minimum_backup_reserve_low_threshold].",
"action": "Sends a direct notification to danny person [person.danny] with a message stating the battery level is below the threshold and that the plug is being turned on, and then turns on the EcoFlow Office Plug [switch.ecoflow_office_plug]."
},
"human_like": "When the office EcoFlow power station's battery is low and the plug becomes available, it sends a notification and turns the plug on to start charging.",
"complexity": "medium"
}
},
{
"id": "'1714563193661'",
"result": {
"structured": "TRIGGER: When EcoFlow Kitchen Battery Level [sensor.ecoflow_kitchen_battery_level] falls below 6. CONDITIONS: EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug] is off. ACTIONS: Run the script 'send_direct_notification' in parallel, sending a notification to danny person [person.danny] and terina person [person.terina] with the title ':cook: Kitchen' and the message 'Ecoflow battery is ultra low and unable to turn the plug on.'.",
"natural_language": {
"trigger": "When the EcoFlow Kitchen Battery Level [sensor.ecoflow_kitchen_battery_level] drops below 6 percent.",
"conditions": "The EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug] must be in the off state.",
"action": "Sends a direct notification to danny person [person.danny] and terina person [person.terina] with the title ':cook: Kitchen' and a message stating the Ecoflow battery is ultra low and unable to turn the plug on."
},
"human_like": "Sends a notification to Danny and Terina when the kitchen EcoFlow battery is critically low and its plug is off, indicating it can't be charged.",
"complexity": "low"
}
},
{
"id": "'1714641195916'",
"result": {
"structured": "TRIGGER: When EcoFlow Kitchen Main Battery Level [sensor.ecoflow_kitchen_main_battery_level] remains in an unknown state for 30 minutes OR when EcoFlow Kitchen Main Battery Level [sensor.ecoflow_kitchen_main_battery_level] remains in an unavailable state for 30 minutes. CONDITIONS: Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] is on. ACTIONS: If EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug] is off, then in parallel: 1. Execute script.send_to_home_log with a debug message stating the kitchen has been offline and the plug is off, turning the Fridge Freeze plug on. 2. Turn on EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug].",
"natural_language": {
"trigger": "When the EcoFlow Kitchen Main Battery Level [sensor.ecoflow_kitchen_main_battery_level] sensor reports either an unknown or an unavailable state for a continuous period of 30 minutes.",
"conditions": "The automation must be enabled, meaning the Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] input boolean is turned on.",
"action": "If the EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug] is currently off, the system will simultaneously send a debug notification to the home log and turn on the EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug]."
},
"human_like": "Turns on the kitchen EcoFlow plug if its battery sensor goes offline for 30 minutes and the plug is off, ensuring the fridge freezer stays powered.",
"complexity": "medium"
}
},
{
"id": "'1734262347581'",
"result": {
"structured": "TRIGGER: When EcoFlow Kitchen Power Over 12 Hours [sensor.ecoflow_kitchen_power_over_12_hours] falls below 9.9. CONDITIONS: home mode [input_select.home_mode] is Holiday. ACTIONS: Execute script.send_direct_notification with message 'Check Ecoflow In the kitchen for power.', title 'Kitchen', and target person.danny.",
"natural_language": {
"trigger": "When the EcoFlow Kitchen Power Over 12 Hours [sensor.ecoflow_kitchen_power_over_12_hours] sensor reports a value below 9.9.",
"conditions": "The home mode [input_select.home_mode] must be set to 'Holiday'.",
"action": "Sends a direct notification to Danny [person.danny] with the title 'Kitchen' and the message 'Check Ecoflow In the kitchen for power.'."
},
"human_like": "Sends a notification to Danny to check the Ecoflow power unit in the kitchen when its long-term power draw is very low and the house is in Holiday mode.",
"complexity": "low"
}
},
{
"id": "'1745329568830'",
"result": {
"structured": "TRIGGER: When the sun sets. CONDITIONS: NOT (home mode [input_select.home_mode] is Holiday). ACTIONS: Run script.ecoflow_office_turn_off_plug AND run script.ecoflow_kitchen_turn_off_plug in parallel.",
"natural_language": {
"trigger": "At sunset.",
"conditions": "Only if the home mode [input_select.home_mode] is not set to 'Holiday'.",
"action": "Turns off the Ecoflow plugs in the office and kitchen simultaneously by running the corresponding scripts."
},
"human_like": "Turns off Ecoflow power stations in the office and kitchen at sunset, unless the house is in holiday mode.",
"complexity": "low"
}
},
{
"id": "'1713094180264'",
"result": {
"structured": "TRIGGER: When GW2000A Dewpoint [sensor.gw2000a_dewpoint] remains in any state for 3 minutes OR when GW2000A Solar Lux [sensor.gw2000a_solar_lux] becomes unavailable and remains so for 1 minute. CONDITIONS: None. ACTIONS: In parallel: (1) Execute script.send_to_home_log with a message containing the triggering entity ID, and (2) Execute a sequence: Turn off GW2000A Plug [switch.gw2000a_plug], wait 2 seconds, then turn on GW2000A Plug [switch.gw2000a_plug].",
"natural_language": {
"trigger": "The automation triggers if the GW2000A Dewpoint [sensor.gw2000a_dewpoint] sensor does not change its state for three minutes, or if the GW2000A Solar Lux [sensor.gw2000a_solar_lux] sensor becomes unavailable and stays that way for one minute.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "When triggered, the automation performs two actions simultaneously. It logs a debug message to the home log indicating that the Ecowitt device has frozen or is unavailable, referencing the specific sensor that triggered the event. At the same time, it cycles the power to the GW2000A Plug [switch.gw2000a_plug] by turning it off, waiting two seconds, and then turning it back on."
},
"human_like": "Automatically reboots the Ecowitt weather station plug if its sensors stop updating or become unavailable, and logs the event.",
"complexity": "medium"
}
},
{
"id": "'1677762423485'",
"result": {
"structured": "TRIGGER: When MyEnergi Eddi Status [sensor.myenergi_eddi_status] changes to Diverting. CONDITIONS: (MyEnergi Eddi Energy Consumed Session Daily [sensor.myenergi_eddi_energy_consumed_session_daily] is NOT unknown) AND (Enable Hot Water Automations [input_boolean.enable_hot_water_automations] is on) AND (Enable Eddi Automations [input_boolean.enable_eddi_automations] is on). ACTIONS: Execute script.send_to_home_log with a message containing the current energy diverted value from MyEnergi Eddi Energy Consumed Session Daily [sensor.myenergi_eddi_energy_consumed_session_daily].",
"natural_language": {
"trigger": "When the MyEnergi Eddi Status [sensor.myenergi_eddi_status] changes to 'Diverting'.",
"conditions": "If the MyEnergi Eddi Energy Consumed Session Daily [sensor.myenergi_eddi_energy_consumed_session_daily] sensor is reporting a valid value (not 'unknown'), and both the Enable Hot Water Automations [input_boolean.enable_hot_water_automations] and Enable Eddi Automations [input_boolean.enable_eddi_automations] switches are turned on.",
"action": "Sends a debug-level notification to the Home Assistant log, reporting that the Eddi is diverting energy and including the amount of energy diverted so far in the current session."
},
"human_like": "Logs a debug message when the Eddi device starts diverting energy, provided the relevant automations are enabled.",
"complexity": "low"
}
},
{
"id": "'1685005214749'",
"result": {
"structured": "TRIGGER: At 00:00:00 (midnight) OR At 13:00:00 (1 PM). CONDITIONS: MyEnergi Eddi Operating Mode [select.myenergi_eddi_operating_mode] is Stopped AND home mode [input_select.home_mode] is NOT Holiday AND Enable Hot Water Automations [input_boolean.enable_hot_water_automations] is on AND Enable Eddi Automations [input_boolean.enable_eddi_automations] is on. ACTIONS: (In parallel) Execute script.send_to_home_log with a message about turning Eddi on, Cancel timer Eddi Max Temperature Reached [timer.eddi_max_temperature_reached], AND Set MyEnergi Eddi Operating Mode [select.myenergi_eddi_operating_mode] to Normal.",
"natural_language": {
"trigger": "The automation runs at midnight (00:00) and again at 1 PM (13:00).",
"conditions": "All of the following must be true: the MyEnergi Eddi Operating Mode [select.myenergi_eddi_operating_mode] is currently 'Stopped'; the home mode [input_select.home_mode] is not set to 'Holiday'; the Enable Hot Water Automations [input_boolean.enable_hot_water_automations] switch is on; and the Enable Eddi Automations [input_boolean.enable_eddi_automations] switch is on.",
"action": "The automation performs three actions simultaneously: it logs a debug message to the home log stating it is turning the Eddi on, it cancels the Eddi Max Temperature Reached [timer.eddi_max_temperature_reached] timer, and it changes the MyEnergi Eddi Operating Mode [select.myenergi_eddi_operating_mode] to 'Normal'."
},
"human_like": "Turns the Eddi hot water heater back to its normal operating mode twice a day, provided it's stopped and the house isn't in holiday mode.",
"complexity": "medium"
}
},
{
"id": "'1678578286486'",
"result": {
"structured": "TRIGGER: When MyEnergi Eddi Energy Consumed Per Heating Cycle [sensor.myenergi_eddi_energy_consumed_per_heating_cycle] is above the value of Hot Water Solar Diverter Boiler Cut Off [input_number.hot_water_solar_diverter_boiler_cut_off]. CONDITIONS: Enable Hot Water Automations [input_boolean.enable_hot_water_automations] is on AND Thermostat [water_heater.thermostat] is on AND Enable Eddi Automations [input_boolean.enable_eddi_automations] is on. ACTIONS: Run script Send To Home Log [script.send_to_home_log] with a message reporting the energy consumed and that the hot water is being turned off, then run script Set Hot Water To Home Mode [script.set_hot_water_to_home_mode].",
"natural_language": {
"trigger": "When the energy consumed by the MyEnergi Eddi per heating cycle [sensor.myenergi_eddi_energy_consumed_per_heating_cycle] exceeds the threshold set by the Hot Water Solar Diverter Boiler Cut Off [input_number.hot_water_solar_diverter_boiler_cut_off].",
"conditions": "The automation must be enabled via the Enable Hot Water Automations [input_boolean.enable_hot_water_automations] switch, the hot water heater Thermostat [water_heater.thermostat] must be in the 'on' state, and the Eddi-specific automations must be enabled via the Enable Eddi Automations [input_boolean.enable_eddi_automations] switch.",
"action": "First, a log entry is created via the Send To Home Log [script.send_to_home_log] script, detailing the energy consumed and announcing that the hot water is being turned off. Then, the hot water system is set to a home mode by running the Set Hot Water To Home Mode [script.set_hot_water_to_home_mode] script."
},
"human_like": "Turns off the hot water heater when the solar-powered Eddi device has generated enough energy, provided all relevant automations are enabled.",
"complexity": "medium"
}
},
{
"id": "'1712238362391'",
"result": {
"structured": "TRIGGER: When MyEnergi Eddi Status [sensor.myenergi_eddi_status] changes to state 'Max temp reached'. CONDITIONS: Enable Hot Water Automations [input_boolean.enable_hot_water_automations] is on AND Enable Eddi Automations [input_boolean.enable_eddi_automations] is on. ACTIONS: In parallel: 1. Execute script Send To Home Log [script.send_to_home_log] with message 'Hot water tank reached max temperature.', title 'Eddi', and log level 'Debug'. 2. Start timer Eddi Max Temperature Reached [timer.eddi_max_temperature_reached] for a duration of 4 hours. 3. Execute script HVAC Check Eddi Boost Hot Water [script.hvac_check_eddi_boost_hot_water] with data parameter current_electricity_import_rate set to the current state of Octopus Energy Electricity Current Rate [sensor.octopus_energy_electricity_current_rate].",
"natural_language": {
"trigger": "When the MyEnergi Eddi Status [sensor.myenergi_eddi_status] changes to indicate the maximum temperature has been reached.",
"conditions": "Both the Enable Hot Water Automations [input_boolean.enable_hot_water_automations] and the Enable Eddi Automations [input_boolean.enable_eddi_automations] must be switched on.",
"action": "Three actions are performed simultaneously: a debug message is logged to the home log stating the hot water tank reached max temperature, a four-hour timer named Eddi Max Temperature Reached [timer.eddi_max_temperature_reached] is started, and a script to check if the Eddi should boost hot water is executed, using the current electricity import rate from Octopus Energy Electricity Current Rate [sensor.octopus_energy_electricity_current_rate]."
},
"human_like": "When the hot water system reaches its maximum temperature, this automation logs the event, starts a cooldown timer, and checks if boosting the water heater is cost-effective based on the current electricity rate.",
"complexity": "medium"
}
},
{
"id": "'1694521590171'",
"result": {
"structured": "TRIGGER: When Front Door Ding [event.front_door_ding] changes state. CONDITIONS: None. ACTIONS: Execute the following actions in parallel: 1. Run script.send_direct_notification with data: message 'Someone pressed the door bell.', title 'Porch', people [person.danny, person.terina]. 2. Run script.alexa_announce with data: message 'Ding dong.'. 3. Turn on Wait For Doorbell Camera Update [input_boolean.wait_for_doorbell_camera_update]. 4. Execute a delayed notification sequence: a. Get items from Shared Notifications [todo.shared_notifications] with status 'needs_action', store result in variable 'todo_list'. b. IF tracked people group [group.tracked_people] is 'not_home' AND the todo list does NOT already contain an item with summary ':door: :bell: Someone rung the door bell.', THEN add that item to Shared Notifications [todo.shared_notifications]. 5. Execute a picture sequence: a. Wait for Front Door [camera.front_door] to change state, timeout after 1 minute, do not continue on timeout. b. IF wait succeeds, run script.send_direct_notification_with_url with data: message 'Door bell pressed', title 'Front Door', people [person.danny], url from Front Door [camera.front_door] entity_picture attribute, url_type 'image'. c. Run script.send_direct_notification_with_url with data: message 'Door bell pressed', title 'Front Door', people [person.danny], url from Front Door [camera.front_door] video_url attribute, url_type 'video'.",
"natural_language": {
"trigger": "When the Front Door Ding [event.front_door_ding] event occurs, indicating the doorbell has been pressed.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "The automation performs several actions simultaneously. It sends a direct notification to danny person [person.danny] and terina person [person.terina] with the message 'Someone pressed the door bell.', makes an Alexa announcement saying 'Ding dong.', and turns on the Wait For Doorbell Camera Update [input_boolean.wait_for_doorbell_camera_update] input boolean. It also runs a delayed process that checks the Shared Notifications [todo.shared_notifications] list and, if everyone is away (tracked people group [group.tracked_people] is 'not_home') and a specific notification doesn't already exist, adds a doorbell notification to the to-do list. Finally, it waits for the Front Door [camera.front_door] camera to update, and if it does within a minute, sends a direct notification to danny person [person.danny] containing both a snapshot image and a video clip from the doorbell camera."
},
"human_like": "Notifies household members and logs an event when the doorbell is pressed, including sending camera images and videos if available.",
"complexity": "high"
}
},
{
"id": "'1720276673719'",
"result": {
"structured": "TRIGGER: When Driveway Vehicle Detected [binary_sensor.driveway_vehicle_detected] changes from off to on. CONDITIONS: None. ACTIONS: 1. Take a snapshot from Driveway High Resolution Channel [camera.driveway_high_resolution_channel] and save it to the path defined by Driveway Vehicle Latest Image Path [input_text.driveway_vehicle_latest_image_path]/vehicle_latest.jpg. 2. Analyze the saved image using the GPT4Vision service with the Ollama provider and the LLaVA model, asking the question 'Is there a Tesco van Ignoring all other vehicles found. Answer with yes or no.' and store the response in the variable 'ai'. 3. Execute the script send_home_log_with_local_attachments, sending a notification to danny person [person.danny] with the title 'Vehicle Detected', the message containing the AI's response text, and attaching the saved image file.",
"natural_language": {
"trigger": "When the Driveway Vehicle Detected [binary_sensor.driveway_vehicle_detected] sensor first detects a vehicle, changing its state from off to on.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "First, the automation takes a snapshot from the Driveway High Resolution Channel [camera.driveway_high_resolution_channel] camera and saves it to a specific file path. Then, it sends that image to an AI vision service (using the Ollama provider and LLaVA model) to analyze whether a Tesco van is present, ignoring all other vehicles. Finally, it sends a notification to danny person [person.danny] with the AI's analysis result and the captured image attached."
},
"human_like": "When a vehicle is detected on the driveway, it takes a picture, uses AI to check if it's a Tesco van, and sends the result with the photo to Danny.",
"complexity": "medium"
}
},
{
"id": "'1660894232444'",
"result": {
"structured": "TRIGGER: When Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] remains below close blinds brightness threshold [input_number.close_blinds_brightness_threshold] for 10 minutes. CONDITIONS: Season [sensor.season] is summer. ACTIONS: 1. Log a message to the home log. 2. Set Office Blinds [cover.office_blinds] position to 25%. 3. IF (bedroom blinds [cover.bedroom_blinds] current_position is below blind closed position threshold [input_number.blind_closed_position_threshold] AND the time is before sunset AND bedroom tv powered on [binary_sensor.bedroom_tv_powered_on] is off) THEN open bedroom blinds [cover.bedroom_blinds]. 4. IF (ashlees bedroom blinds [cover.ashlees_bedroom_blinds] current_position is below blind closed position threshold [input_number.blind_closed_position_threshold] AND the time is before childrens bed time [input_datetime.childrens_bed_time]) THEN open ashlees bedroom blinds [cover.ashlees_bedroom_blinds].",
"natural_language": {
"trigger": "When the Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] stays below the close blinds brightness threshold [input_number.close_blinds_brightness_threshold] for 10 minutes.",
"conditions": "The Season [sensor.season] must be set to summer.",
"action": "First, a message is logged to the home log. Then, the Office Blinds [cover.office_blinds] are set to a 25% open position. Next, if the bedroom blinds [cover.bedroom_blinds] are currently closed (below the blind closed position threshold [input_number.blind_closed_position_threshold]), it's before sunset, and the bedroom tv powered on [binary_sensor.bedroom_tv_powered_on] is off, then the bedroom blinds are opened. Finally, if the ashlees bedroom blinds [cover.ashlees_bedroom_blinds] are currently closed (below the blind closed position threshold [input_number.blind_closed_position_threshold]) and the time is before childrens bed time [input_datetime.childrens_bed_time], then those blinds are opened."
},
"human_like": "Opens the office, bedroom, and Ashlee's bedroom blinds when the front garden light level is low for a sustained period during summer, provided specific conditions like time of day and TV status are met.",
"complexity": "medium"
}
},
{
"id": "'1714914120928'",
"result": {
"structured": "TRIGGER: When Outdoor Lock Box Contact [binary_sensor.outdoor_lock_box_contact] changes state from any value except unknown or unavailable to any value except unknown or unavailable OR When Outdoor Lock Box Contact [binary_sensor.outdoor_lock_box_contact] changes state from any value except unknown or unavailable to unknown or unavailable AND remains in that state for 1 minute. CONDITIONS: None. ACTIONS: Execute script.send_direct_notification with title 'Lock Box' and message 'Was {{ states('binary_sensor.outdoor_lock_box_contact') }}' to danny person [person.danny] and terina person [person.terina].",
"natural_language": {
"trigger": "The automation triggers in two scenarios. First, whenever the Outdoor Lock Box Contact [binary_sensor.outdoor_lock_box_contact] changes to a known state (either open or closed), but not when it changes to or from an 'unknown' or 'unavailable' status. Second, it also triggers if the lock box contact becomes 'unknown' or 'unavailable' and stays in that state for one full minute.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a direct notification titled 'Lock Box' to both Danny [person.danny] and Terina [person.terina]. The message includes the previous state of the lock box contact, indicating what it 'Was' before the change."
},
"human_like": "Sends a notification to Danny and Terina whenever the state of the outdoor lock box changes or becomes unavailable.",
"complexity": "low"
}
},
{
"id": "'1718364408150'",
"result": {
"structured": "TRIGGER: When Outdoor Lock Box Contact [binary_sensor.outdoor_lock_box_contact] becomes unavailable for 5 minutes. CONDITIONS: None. ACTIONS: Execute script 'send_direct_notification' with parameters: message 'Lockbox sensor has disconnected.' and target person danny person [person.danny].",
"natural_language": {
"trigger": "When the Outdoor Lock Box Contact [binary_sensor.outdoor_lock_box_contact] sensor reports as unavailable for a continuous period of five minutes.",
"conditions": "There are no additional conditions for this automation.",
"action": "Sends a direct notification to danny person [person.danny] with the message 'Lockbox sensor has disconnected.'"
},
"human_like": "Sends a notification to Danny if the outdoor lockbox sensor loses connection for five minutes.",
"complexity": "low"
}
},
{
"id": "'1613937312554'",
"result": {
"structured": "TRIGGER: When a webhook with ID 'git_pull' is received. CONDITIONS: Enable Github Integration [input_boolean.enable_github_integration] is on. ACTIONS: IF the webhook JSON key_token matches the value of GitHub Pull Key [input_text.github_pull_key] THEN run in parallel: 1. Send a log message 'build :white_check_mark: passed. Pulling changes.' with title ':construction_worker: :hammer_and_wrench: GitHub' and log level Normal via script.send_to_home_log. 2. Start the Home Assistant addon 'core_git_pull' via hassio.addon_start. OTHERWISE send a direct notification to danny person [person.danny] with message 'Build :white_check_mark: passed but incorrect :key: key was sent.' and title ':warning: :construction_worker: :hammer_and_wrench: GitHub :warning:' via script.send_direct_notification.",
"natural_language": {
"trigger": "When a webhook with the identifier 'git_pull' is received by Home Assistant.",
"conditions": "The automation only runs if the Enable Github Integration [input_boolean.enable_github_integration] is switched on.",
"action": "If the key token sent with the webhook matches the value stored in GitHub Pull Key [input_text.github_pull_key], the system will simultaneously send a success log message and start the Git Pull addon to update the system. If the key does not match, a direct notification is sent to danny person [person.danny] to alert them of an incorrect key."
},
"human_like": "Automatically updates Home Assistant from GitHub when a valid webhook is received, or notifies the user if the security key is incorrect.",
"complexity": "medium"
}
},
{
"id": "'1666470473971'",
"result": {
"structured": "TRIGGER: When Thermostat Mode [sensor.thermostat_mode] changes to SCHEDULE OR when Thermostat [water_heater.thermostat] changes to eco. CONDITIONS: None. ACTIONS: First, log a message to the home log with the title ':hotsprings: :droplet: Boiler' and a message stating the central heating mode changed to the current state of Thermostat Mode [sensor.thermostat_mode]. Then, evaluate a choice: IF home mode [input_select.home_mode] is Holiday, THEN send a direct notification to danny person [person.danny] with the title ':hotsprings: :droplet: Boiler' and a message stating 'In holiday mode so heating should not be on. Turning heating off.', AND execute the script set_central_heating_to_away_mode.",
"natural_language": {
"trigger": "The automation triggers when the Thermostat Mode [sensor.thermostat_mode] changes to 'SCHEDULE' or when the Thermostat [water_heater.thermostat] changes its mode to 'eco'.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "First, a message is sent to the home log, noting that the central heating mode has changed and showing the new mode. Then, a check is performed: if the home mode [input_select.home_mode] is set to 'Holiday', a direct notification is sent to danny person [person.danny] explaining that the heating is being turned off because the house is in holiday mode, and a script is run to set the central heating to away mode."
},
"human_like": "Logs heating mode changes and, if the house is in holiday mode, notifies the user and turns the heating off to save energy.",
"complexity": "medium"
}
},
{
"id": "'1666470473973'",
"result": {
"structured": "TRIGGER: When thermostat [climate.thermostat] changes state to auto. CONDITIONS: Enable Central Heating Automations [input_boolean.enable_central_heating_automations] is on. ACTIONS: Execute script send_direct_notification with parameters: title ':hotsprings: :droplet: Boiler', message 'Thermostat switched to auto mode (again).', and recipient danny person [person.danny].",
"natural_language": {
"trigger": "When the thermostat [climate.thermostat] is switched to auto mode.",
"conditions": "The automation is only allowed to run if the switch 'Enable Central Heating Automations' [input_boolean.enable_central_heating_automations] is turned on.",
"action": "Sends a direct notification to Danny [person.danny] with the title ':hotsprings: :droplet: Boiler' and the message 'Thermostat switched to auto mode (again).'"
},
"human_like": "Sends a notification to Danny when the thermostat is set to auto mode, provided heating automations are enabled.",
"complexity": "low"
}
},
{
"id": "'1666470473974'",
"result": {
"structured": "TRIGGER: When Central Heating [schedule.central_heating] turns on OR every 5 minutes (time pattern). CONDITIONS: (NOT (thermostat [climate.thermostat] temperature equals Central Heating [schedule.central_heating] temperature) OR NOT (thermostat [climate.thermostat] state is heat)) AND Central Heating [schedule.central_heating] state is on AND Enable Central Heating Automations [input_boolean.enable_central_heating_automations] state is on. ACTIONS: Run script.check_and_run_central_heating.",
"natural_language": {
"trigger": "When the Central Heating schedule [schedule.central_heating] turns on, or every 5 minutes based on a repeating time pattern.",
"conditions": "If either the thermostat's [climate.thermostat] current temperature is different from the temperature set in the Central Heating schedule [schedule.central_heating], or the thermostat is not currently in heating mode. Additionally, the Central Heating schedule [schedule.central_heating] must be on, and the automation must be enabled via Enable Central Heating Automations [input_boolean.enable_central_heating_automations].",
"action": "Executes the script 'check_and_run_central_heating' to manage the heating system."
},
"human_like": "Ensures the heating system is correctly activated and synchronized with the schedule, checking every 5 minutes or when the schedule turns on.",
"complexity": "medium"
}
},
{
"id": "'1666470473975'",
"result": {
"structured": "TRIGGER: When Central Heating [schedule.central_heating] turns off. CONDITIONS: Enable Central Heating Automations [input_boolean.enable_central_heating_automations] is on. ACTIONS: If home mode [input_select.home_mode] is Holiday, then send a log message stating 'In Holiday mode. Skipping turning off central heating.'. Otherwise, in parallel, send a log message stating 'Thermostat switched off. Setting temperature to 7c.' AND set thermostat [climate.thermostat] to heat mode with a target temperature of 7°C.",
"natural_language": {
"trigger": "When the Central Heating schedule [schedule.central_heating] is turned off.",
"conditions": "The automation must be enabled, which is controlled by the switch Enable Central Heating Automations [input_boolean.enable_central_heating_automations] being in the 'on' state.",
"action": "First, it checks the current home mode. If the home mode [input_select.home_mode] is set to 'Holiday', it sends a notification to the home log stating that it is skipping turning off the central heating. Otherwise, it performs two actions simultaneously: it sends a notification to the home log that the thermostat is being switched off and the temperature is being set to 7°C, and it actually sets the thermostat [climate.thermostat] to heating mode with a target temperature of 7°C."
},
"human_like": "When the heating schedule ends, this automation either logs a message if the house is in holiday mode, or turns down the thermostat to a low temperature to save energy.",
"complexity": "medium"
}
},
{
"id": "'1740955286496'",
"result": {
"structured": "TRIGGER: When thermostat [climate.thermostat] remains in the 'unavailable' state for 1 hour. CONDITIONS: Enable Central Heating Automations [input_boolean.enable_central_heating_automations] is on. ACTIONS: Execute the script 'send_direct_notification' with the message 'Hive central heating is offline.' to the people danny person [person.danny] and terina person [person.terina].",
"natural_language": {
"trigger": "When the thermostat [climate.thermostat] has been reported as unavailable for a continuous period of one hour.",
"conditions": "The automation is only allowed to run if the 'Enable Central Heating Automations' [input_boolean.enable_central_heating_automations] switch is turned on.",
"action": "Sends a direct notification to both danny person [person.danny] and terina person [person.terina] with the message 'Hive central heating is offline.'"
},
"human_like": "Sends a notification to the household if the central heating system goes offline for an hour.",
"complexity": "low"
}
},
{
"id": "'1666470473972'",
"result": {
"structured": "TRIGGER: When Thermostat [water_heater.thermostat] changes state to eco OR when Thermostat [water_heater.thermostat] changes state to on. CONDITIONS: None. ACTIONS: First, send a log message 'Hot water mode changed to [current state of water_heater.thermostat]' with title ':hotsprings: :droplet: Boiler'. Then, IF home mode [input_select.home_mode] is Holiday, THEN send a direct notification to danny person [person.danny] with message 'In holiday mode so hot water should not be on. Turning hot water off.' and title ':hotsprings: :droplet: Boiler', AND execute script to set hot water to away mode.",
"natural_language": {
"trigger": "Whenever the hot water Thermostat [water_heater.thermostat] switches its operating mode to either 'eco' or 'on'.",
"conditions": "There are no conditions that must be met for the actions to run; they execute immediately after the trigger.",
"action": "First, a log entry is created noting the new hot water mode. Then, if the home mode [input_select.home_mode] is set to 'Holiday', a notification is sent to danny person [person.danny] explaining that the hot water is being turned off because the house is in holiday mode, and a script is run to set the hot water to away mode."
},
"human_like": "Logs hot water mode changes and, if the house is in holiday mode, notifies the user and turns the hot water off.",
"complexity": "medium"
}
},
{
"id": "'1662589192400'",
"result": {
"structured": "TRIGGER: When Hot Water [schedule.hot_water] turns on. CONDITIONS: Enable Hot Water Automations [input_boolean.enable_hot_water_automations] is on AND Thermostat [water_heater.thermostat] is NOT on. ACTIONS: Choose action based on conditions: IF home mode [input_select.home_mode] is Holiday THEN send debug log message 'In Holiday mode. Skipping turning on hot water.' ELSE IF MyEnergi Eddi Energy Consumed Per Heating Cycle [sensor.myenergi_eddi_energy_consumed_per_heating_cycle] > Hot Water Solar Diverter Boiler Cut Off [input_number.hot_water_solar_diverter_boiler_cut_off] THEN send normal log message about Eddi heating and skip. OTHERWISE (default) send debug log message 'Turning on hot water from schedule.' AND run script.set_how_water_to_on.",
"natural_language": {
"trigger": "When the Hot Water schedule [schedule.hot_water] becomes active (turns on).",
"conditions": "The automation will only proceed if the Enable Hot Water Automations [input_boolean.enable_hot_water_automations] is switched on, and the Thermostat [water_heater.thermostat] is not currently in the 'on' state.",
"action": "The system first checks the current home mode. If the home is in Holiday mode, it logs a debug message and takes no further action. If not in Holiday mode, it checks if the MyEnergi Eddi Energy Consumed Per Heating Cycle [sensor.myenergi_eddi_energy_consumed_per_heating_cycle] has exceeded the threshold set by Hot Water Solar Diverter Boiler Cut Off [input_number.hot_water_solar_diverter_boiler_cut_off]. If it has, it logs a normal message stating that the Eddi has already heated the water and skips turning on the boiler. If neither of these conditions are met, it logs a debug message and proceeds to turn on the hot water by running the script 'set_how_water_to_on'."
},
"human_like": "Turns on the hot water boiler on schedule, but skips it if the home is in holiday mode or if a solar diverter has already provided sufficient heating.",
"complexity": "medium"
}
},
{
"id": "'1662589333109'",
"result": {
"structured": "TRIGGER: When Hot Water [schedule.hot_water] remains off for 30 seconds. CONDITIONS: Enable Hot Water Automations [input_boolean.enable_hot_water_automations] is on AND Thermostat [water_heater.thermostat] is NOT off. ACTIONS: If home mode [input_select.home_mode] is Holiday, then send a log message 'In Holiday mode. Skipping turning off hot water.'; otherwise, send a log message 'Turning off hot water from schedule.' and run the script set_hot_water_to_home_mode.",
"natural_language": {
"trigger": "When the Hot Water schedule [schedule.hot_water] has been off for 30 seconds.",
"conditions": "The automation is enabled, meaning Enable Hot Water Automations [input_boolean.enable_hot_water_automations] is turned on, and the Thermostat [water_heater.thermostat] is not currently in the 'off' state.",
"action": "If the house is in Holiday mode [input_select.home_mode], a notification is logged stating that turning off the hot water is being skipped. Otherwise, a log message is sent confirming the hot water is being turned off from the schedule, and then the script to set the hot water to home mode is executed."
},
"human_like": "Turns off the hot water system after a short delay when the schedule indicates it should be off, unless the house is in holiday mode.",
"complexity": "medium"
}
},
{
"id": "'1631138390675'",
"result": {
"structured": "TRIGGER: When home mode [input_select.home_mode] changes state. CONDITIONS: None. ACTIONS: First, send a debug log message with the title 'Home Mode' containing the text ':repeat: Entering [current state of home mode] mode.'. Then, evaluate a conditional action: IF home mode [input_select.home_mode] is 'Holiday', THEN execute script home_mode_turn_on_holiday_mode. ELSE IF home mode [input_select.home_mode] is 'Normal', THEN execute script home_mode_turn_on_normal_mode. OTHERWISE, do nothing.",
"natural_language": {
"trigger": "Whenever the home mode [input_select.home_mode] setting changes to any new state.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "First, it logs a debug message to the home log announcing the new mode. Then, based on the selected mode, it runs a specific script: if the mode is set to 'Holiday', it runs the holiday mode script; if it's set to 'Normal', it runs the normal mode script. For any other mode, no further script is executed."
},
"human_like": "Logs a change in the home mode and activates specific scripts for 'Holiday' or 'Normal' modes.",
"complexity": "medium"
}
},
{
"id": "'1646257483770'",
"result": {
"structured": "TRIGGER: When Privacy Mode [input_boolean.privacy_mode] turns on. CONDITIONS: None. ACTIONS: Run script.send_to_home_log with message ':detective: Privacy mode enabled.' and log level Debug AND run script.send_to_home_log with message ':camera: Turning conservatory camera recording and detection off.'.",
"natural_language": {
"trigger": "When the Privacy Mode [input_boolean.privacy_mode] is switched on.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a debug log message to the home log stating 'Privacy mode enabled.' and then sends another log message stating 'Turning conservatory camera recording and detection off.'."
},
"human_like": "Logs a message when privacy mode is enabled, indicating that camera recording and detection are being turned off.",
"complexity": "low"
}
},
{
"id": "'1647094528209'",
"result": {
"structured": "TRIGGER: When naughty step mode [input_boolean.naughty_step_mode] changes from off to on. CONDITIONS: None. ACTIONS: Log 'Entering naughty step mode.' to the home log with Debug level AND activate the scene Living Room Lights Off [scene.living_room_lights_off] AND activate the scene Stairs Light 2 Off [scene.stairs_light_2_off] AND activate the scene Stairs Light Off [scene.stairs_light_off] AND turn off enable living room motion triggers [input_boolean.enable_living_room_motion_triggers] AND turn off enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers].",
"natural_language": {
"trigger": "When the naughty step mode [input_boolean.naughty_step_mode] is turned on.",
"conditions": "There are no conditions that need to be met.",
"action": "Logs a debug message stating 'Entering naughty step mode.', then turns off the lights in the living room and on the stairs by activating the 'off' scenes for those areas, and finally disables the motion-based triggers for both the living room and stairs."
},
"human_like": "Activates 'naughty step mode' by turning off specific lights and disabling motion triggers in the living room and on the stairs.",
"complexity": "low"
}
},
{
"id": "'1608489438291'",
"result": {
"structured": "TRIGGER: When Home Assistant shutdown event occurs. CONDITIONS: None. ACTIONS: Execute script.send_to_home_log with message ':black_square_for_stop: Shutting down.', title 'Home Assistant', and log_level 'Normal'.",
"natural_language": {
"trigger": "When the Home Assistant system begins its shutdown process.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a log message to the home log with the text ':black_square_for_stop: Shutting down.', a title of 'Home Assistant', and a normal log level."
},
"human_like": "Logs a shutdown notification when Home Assistant is being stopped.",
"complexity": "low"
}
},
{
"id": "'1608489396143'",
"result": {
"structured": "TRIGGER: When Home Assistant starts. CONDITIONS: None. ACTIONS: Execute the following actions in parallel: 1. Send a notification ':arrow_forward: Started.' to the home log via script.send_to_home_log. 2. Check Solar Assistant charging mode via script.solar_assistant_check_charging_mode, passing current electricity import and export rates. 3. If Enable Zappi Automations [input_boolean.enable_zappi_automations] is on AND MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] is not 'EV Disconnected', then check EV charge via script.zappi_check_ev_charge, passing current electricity import and export rates. 4. Check Terina's work laptop status via script.check_terinas_work_laptop_status. 5. Check and potentially turn off the 3D printer enclosure light via script.3d_printer_check_turn_off_light. 6. If (home mode [input_select.home_mode] is 'guest' OR tracked people group [group.tracked_people] is 'home') AND house alarm [alarm_control_panel.house_alarm] is not 'armed_away', then in parallel: send a debug log message 'Casting Home Assistant.' and cast the Home Assistant Lovelace view to stairs chromecast [media_player.stairs_chromecast]. 7. If front door [binary_sensor.front_door] is closed (off), then turn off porch light [light.porch].",
"natural_language": {
"trigger": "When Home Assistant starts up.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "The automation performs several tasks simultaneously. It logs a startup message and checks the Solar Assistant charging mode using current electricity rates. If Zappi automations are enabled and an electric vehicle is connected, it checks the EV charging status. It also checks the status of Terina's work laptop and the 3D printer enclosure light. If the home is in guest mode or people are tracked as home, and the house alarm is not armed away, it sends a debug message and casts a Home Assistant view to the Magic Mirror on the stairs. Finally, if the front door is closed, it turns off the porch light."
},
"human_like": "Runs a series of checks and actions when Home Assistant starts, including logging, checking energy systems, EV charging, device statuses, and controlling lights and media casting based on home occupancy and alarm state.",
"complexity": "high"
}
},
{
"id": "'1664657264986'",
"result": {
"structured": "TRIGGER: When Home Assistant Core Update [update.home_assistant_core_update] changes from off to on. CONDITIONS: Home Assistant Automatic Upgrade [input_select.home_assistant_automatic_upgrade] is NOT Disabled. ACTIONS: Execute script.upgrade_home_assistant.",
"natural_language": {
"trigger": "When the Home Assistant Core Update [update.home_assistant_core_update] becomes available, transitioning from a state of 'off' to 'on'.",
"conditions": "The Home Assistant Automatic Upgrade [input_select.home_assistant_automatic_upgrade] setting must not be set to 'Disabled'.",
"action": "Runs the Home Assistant upgrade script, script.upgrade_home_assistant."
},
"human_like": "Automatically triggers a Home Assistant upgrade when an update is available, provided automatic upgrades are not disabled.",
"complexity": "low"
}
},
{
"id": "'1738875026613'",
"result": {
"structured": "TRIGGER: At 17:00:00. CONDITIONS: Day is Monday OR Tuesday OR Wednesday OR Thursday OR Friday. ACTIONS: Perform a full Home Assistant backup with compression.",
"natural_language": {
"trigger": "Every day at 5:00 PM.",
"conditions": "The automation only runs if the current day is a weekday (Monday, Tuesday, Wednesday, Thursday, or Friday).",
"action": "Creates a full, compressed backup of the Home Assistant system."
},
"human_like": "Creates a compressed backup of Home Assistant every weekday at 5 PM.",
"complexity": "low"
}
},
{
"id": "'1738875026614'",
"result": {
"structured": "TRIGGER: At 11:00:00. CONDITIONS: Day is Saturday OR Sunday. ACTIONS: Perform a full, compressed Home Assistant backup.",
"natural_language": {
"trigger": "The automation triggers every day at 11:00 AM.",
"conditions": "The automation only runs if the current day is a Saturday or a Sunday.",
"action": "It creates a full, compressed backup of the Home Assistant system."
},
"human_like": "Creates a full system backup every Saturday and Sunday at 11 AM.",
"complexity": "low"
}
},
{
"id": "'1678125037184'",
"result": {
"structured": "TRIGGER: When Thermostat Target Temperature [sensor.thermostat_target_temperature] changes state. CONDITIONS: None. ACTIONS: Log a debug message to the home log with details about the thermostat target change, then set the temperature for all radiator climate entities (Ashlees Bedroom Radiator [climate.ashlees_bedroom_radiator], Bedroom Radiator [climate.bedroom_radiator], Kitchen Radiator [climate.kitchen_radiator], Leos Bedroom Radiator [climate.leos_bedroom_radiator], Living Room Radiator [climate.living_room_radiator], Office Radiator [climate.office_radiator]) to the current value of Thermostat Target Temperature [sensor.thermostat_target_temperature] (with a default of 22 if unavailable).",
"natural_language": {
"trigger": "Whenever the Thermostat Target Temperature [sensor.thermostat_target_temperature] sensor changes its value.",
"conditions": "There are no conditions that must be met; the automation runs every time the trigger occurs.",
"action": "First, it sends a debug-level log entry to the home log, announcing the change and noting the previous temperature from the Living Room Radiator [climate.living_room_radiator] and the new target from the thermostat [climate.thermostat]. Then, it updates the target temperature for all six individual radiators in the house (Ashlees Bedroom Radiator, Bedroom Radiator, Kitchen Radiator, Leos Bedroom Radiator, Living Room Radiator, and Office Radiator) to match the new thermostat target temperature."
},
"human_like": "When the main thermostat's target temperature changes, it logs the event and synchronizes the new temperature setting to all the radiators in the house.",
"complexity": "low"
}
},
{
"id": "'1678271646645'",
"result": {
"structured": "TRIGGER: When Bedroom Radiator Temperature [sensor.bedroom_radiator_temperature] remains below sensor.bedroom_radiator_minimum_target_temperature for 30 minutes OR When Leo's Radiator Temperature [sensor.leos_radiator_temperature] remains below sensor.leos_radiator_minimum_target_temperature for 30 minutes OR When Living Room Radiator Temperature [sensor.living_room_radiator_temperature] remains below sensor.living_room_radiator_minimum_target_temperature for 30 minutes OR When Office Radiator Temperature [sensor.office_radiator_temperature] (id: office) remains below sensor.office_radiator_minimum_target_temperature for 30 minutes. CONDITIONS: thermostat [climate.thermostat] hvac_action is NOT heating. ACTIONS: If the trigger is from Office Radiator Temperature [sensor.office_radiator_temperature] AND Office Windows [binary_sensor.office_windows] is off AND conservatory door [binary_sensor.conservatory_door] is off, then run script.send_direct_notification with a specific office message. Otherwise, run script.send_direct_notification with a dynamic title based on the triggering entity.",
"natural_language": {
"trigger": "The automation triggers when any of the four radiator temperature sensors (Bedroom Radiator Temperature [sensor.bedroom_radiator_temperature], Leo's Radiator Temperature [sensor.leos_radiator_temperature], Living Room Radiator Temperature [sensor.living_room_radiator_temperature], or Office Radiator Temperature [sensor.office_radiator_temperature]) remains below its corresponding minimum target temperature for at least 30 minutes.",
"conditions": "The automation only proceeds if the main thermostat [climate.thermostat] is not currently in a heating state.",
"action": "If the trigger came specifically from the office radiator and both the office windows and the conservatory door are closed, a specific notification about the office radiator is sent to Danny. For any other triggering radiator, a notification is sent to Danny with a title dynamically generated to indicate which room's radiator is calling for heat."
},
"human_like": "Sends a notification to Danny when a radiator has been too cold for 30 minutes and the main heating system isn't already running, with a special check for the office to ensure windows and doors are closed.",
"complexity": "medium"
}
},
{
"id": "'1583797341647'",
"result": {
"structured": "TRIGGER: At 23:30:00. CONDITIONS: Kitchen Lights [light.kitchen_lights] is on. ACTIONS: Execute script.send_to_home_log with a templated message and title, then activate scene Kitchen Main Lights Off [scene.kitchen_main_lights_off] with a 2-second transition.",
"natural_language": {
"trigger": "Every day at 11:30 PM.",
"conditions": "The Kitchen Lights [light.kitchen_lights] must be turned on.",
"action": "First, a debug log entry is created with a formatted message and title. Then, the Kitchen Main Lights Off [scene.kitchen_main_lights_off] scene is activated, turning off the lights with a 2-second fade."
},
"human_like": "Turns off the kitchen lights at 11:30 PM if they are on.",
"complexity": "low"
}
},
{
"id": "'1606652871369'",
"result": {
"structured": "TRIGGER: When kitchen area motion [binary_sensor.kitchen_area_motion] changes from on to off AND remains off for 5 minutes. CONDITIONS: Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] is on. ACTIONS: In parallel: 1) Send a debug log message titled ':cook: Kitchen' with the message ':no_pedestrians: No motion after :city_sunrise: and before :city_sunset:. Turning main lights off.'. 2) Activate Kitchen Main Lights Dim [scene.kitchen_main_lights_dim] with a 2-second transition. 3) Choose based on time: IF (time is after 00:00:00 AND sun is before sunset) THEN send a debug log message titled ':cook: Kitchen' with the message ':no_pedestrians: No motion after :city_sunrise: and before :city_sunset:. Turning ambient lights off.' AND activate Kitchen Ambient Lights Off [scene.kitchen_ambient_lights_off] with a 2-second transition. ELSE IF (sun is after sunset AND time is before 23:59:59) THEN send a debug log message titled ':cook: Kitchen' with the message ':no_pedestrians: No motion after :city_sunset: and before :city_sunrise:. :low_brightness: Dimming ambient :bulb: :low_brightness: lights.' AND activate Kitchen Ambient Lights Dim [scene.kitchen_ambient_lights_dim].",
"natural_language": {
"trigger": "When the kitchen area motion sensor [binary_sensor.kitchen_area_motion] stops detecting motion and remains inactive for five minutes.",
"conditions": "The automation only runs if the Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] is switched on.",
"action": "The automation performs several actions simultaneously. It logs a debug message to the home log about turning off the main lights and then activates the Kitchen Main Lights Dim [scene.kitchen_main_lights_dim] scene with a 2-second fade. Additionally, it checks the time of day: if it is daytime (after sunrise and before sunset), it logs a message about turning off ambient lights and activates the Kitchen Ambient Lights Off [scene.kitchen_ambient_lights_off] scene. If it is nighttime (after sunset and before midnight), it logs a message about dimming ambient lights and activates the Kitchen Ambient Lights Dim [scene.kitchen_ambient_lights_dim] scene."
},
"human_like": "Turns off or dims the kitchen lights after no motion is detected for five minutes, with different behaviors for day and night.",
"complexity": "medium"
}
},
{
"id": "'1606652871370'",
"result": {
"structured": "TRIGGER: When kitchen area motion [binary_sensor.kitchen_area_motion] changes from on to off and remains off for 7 minutes. CONDITIONS: Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] is on. ACTIONS: In parallel: 1. Send a debug log message with title ':cook: Kitchen' and message about no motion during daytime turning main lights off. 2. Turn on Kitchen Main Lights Off [scene.kitchen_main_lights_off] with a 2-second transition. 3. Execute a conditional choice: IF (sun is after sunset AND time is before 23:59:59) THEN send a debug log message with title ':cook: Kitchen' and message about no motion during nighttime turning ambient lights off AND turn on Kitchen Ambient Lights Off [scene.kitchen_ambient_lights_off] with a 2-second transition; OTHERWISE do nothing.",
"natural_language": {
"trigger": "When the kitchen area motion [binary_sensor.kitchen_area_motion] sensor stops detecting motion (changes from 'on' to 'off') and stays in that 'off' state for a continuous period of seven minutes.",
"conditions": "The automation will only run if the Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] switch is turned on.",
"action": "The automation performs several actions at once. First, it logs a debug message to the home log stating that no motion was detected during the day and that the main lights are being turned off. Simultaneously, it activates the 'Kitchen Main Lights Off' [scene.kitchen_main_lights_off] scene, fading the lights off over two seconds. Additionally, it checks if it is currently nighttime (after sunset but before midnight). If it is, it also logs a message about turning off ambient lights for the night and activates the 'Kitchen Ambient Lights Off' [scene.kitchen_ambient_lights_off] scene with a two-second fade."
},
"human_like": "Turns off the kitchen lights after no motion is detected for seven minutes, using different light scenes for day and night.",
"complexity": "medium"
}
},
{
"id": "'1606294735952'",
"result": {
"structured": "TRIGGER: At 09:00:00 (id: weekend) OR At 08:50:00 (id: weekday). CONDITIONS: (Time is Saturday OR Sunday) AND Kitchen Lights [light.kitchen_lights] is on AND Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] is on. ACTIONS: Execute actions in parallel: Choose based on conditions. If (Time is Monday, Tuesday, Wednesday, Thursday, or Friday) AND trigger id is weekday, then: 1. Run script.send_to_home_log with a formatted message about turning ambient lights off. 2. Activate scene Kitchen Ambient Lights Off [scene.kitchen_ambient_lights_off] with a 2-second transition. Else if (Time is Saturday OR Sunday) AND trigger id is weekend, then: 1. Run script.send_to_home_log with a different formatted message about turning ambient lights off. 2. Activate scene Kitchen Ambient Lights Off [scene.kitchen_ambient_lights_off] with a 2-second transition. Otherwise, do nothing.",
"natural_language": {
"trigger": "The automation triggers at 8:50 AM or 9:00 AM, depending on the day of the week.",
"conditions": "The automation only runs if the Kitchen Lights [light.kitchen_lights] are on, the Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] is on, and it is a weekend day (Saturday or Sunday).",
"action": "Depending on the day of the week and which time triggered the automation, it will log a message to the home log and then turn on the Kitchen Ambient Lights Off [scene.kitchen_ambient_lights_off] scene with a 2-second fade. On weekdays (triggered at 8:50 AM), it uses a specific log message format. On weekends (triggered at 9:00 AM), it uses a different log message format."
},
"human_like": "Turns off the kitchen lights in the morning, using different times and log messages for weekdays and weekends.",
"complexity": "medium"
}
},
{
"id": "'1588197104336'",
"result": {
"structured": "TRIGGER: When the sun sets OR at 06:45:00. CONDITIONS: (home mode [input_select.home_mode] is NOT Guest) AND (tracked people group [group.tracked_people] is home). ACTIONS: In parallel: 1. Run script send_to_home_log with a message about dimming kitchen accent lights. 2. Activate Kitchen Dim Accent Lights [scene.kitchen_dim_accent_lights] with a 2-second transition.",
"natural_language": {
"trigger": "The automation runs either at sunset or at 6:45 AM.",
"conditions": "The home must not be set to 'Guest' mode, and at least one tracked person must be home.",
"action": "It logs a debug message to the home log about dimming the kitchen accent lights and simultaneously turns on the 'Kitchen Dim Accent Lights' scene with a smooth 2-second transition."
},
"human_like": "Turns on the dimmed kitchen accent lights at sunset or in the early morning, but only when someone is home and the house is not in guest mode.",
"complexity": "medium"
}
},
{
"id": "'1606158191303'",
"result": {
"structured": "TRIGGER: When kitchen area motion [binary_sensor.kitchen_area_motion] OR Kitchen Motion 2 Occupancy [binary_sensor.kitchen_motion_2_occupancy] OR Kitchen Motion Occupancy [binary_sensor.kitchen_motion_occupancy] changes to on. CONDITIONS: Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] is on AND (Kitchen Table White [light.kitchen_table_white] is off OR (Kitchen Table White [light.kitchen_table_white] is on AND brightness is below 100)). ACTIONS: Run in parallel: 1. Execute script.send_to_home_log with a debug message about motion detection and turning lights on. 2. Activate scene Kitchen Table Lights On [scene.kitchen_table_lights_on].",
"natural_language": {
"trigger": "When any of the motion sensors in the kitchen (kitchen area motion [binary_sensor.kitchen_area_motion], Kitchen Motion 2 Occupancy [binary_sensor.kitchen_motion_2_occupancy], or Kitchen Motion Occupancy [binary_sensor.kitchen_motion_occupancy]) detect motion and turn on.",
"conditions": "The automation is only allowed to run if the Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] switch is on. Furthermore, the Kitchen Table White [light.kitchen_table_white] light must either be off, or if it is already on, its brightness level must be below 100.",
"action": "Two actions are performed simultaneously: a debug message is sent to the home log announcing the motion detection and the action to turn on the lights, and the Kitchen Table Lights On [scene.kitchen_table_lights_on] scene is activated to set the table lights to a bright state."
},
"human_like": "Turns on the kitchen table lights to a bright setting when motion is detected, but only if the lights are off or dim, and the feature is enabled.",
"complexity": "medium"
}
},
{
"id": "'1606158191306'",
"result": {
"structured": "TRIGGER: When kitchen area motion [binary_sensor.kitchen_area_motion] OR Kitchen Motion 2 Occupancy [binary_sensor.kitchen_motion_2_occupancy] OR Kitchen Motion Occupancy [binary_sensor.kitchen_motion_occupancy] changes to on (motion detected). CONDITIONS: Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] is on AND Kitchen Cooker White [light.kitchen_cooker_white] is off AND Kitchen Motion Illuminance [sensor.kitchen_motion_illuminance] < Kitchen Light Level Threshold [input_number.kitchen_light_level_threshold] AND Kitchen Motion 2 Illuminance Lux [sensor.kitchen_motion_2_illuminance_lux] < Kitchen Light Level 2 Threshold [input_number.kitchen_light_level_2_threshold]. ACTIONS: In parallel: 1. Run script.send_to_home_log with a debug message about motion and light levels. 2. Activate scene Kitchen Cooker Lights On [scene.kitchen_cooker_lights_on].",
"natural_language": {
"trigger": "When motion is detected by any of the three sensors: kitchen area motion [binary_sensor.kitchen_area_motion], Kitchen Motion 2 Occupancy [binary_sensor.kitchen_motion_2_occupancy], or Kitchen Motion Occupancy [binary_sensor.kitchen_motion_occupancy].",
"conditions": "The automation will only run if the Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] is switched on, the Kitchen Cooker White [light.kitchen_cooker_white] light is currently off, and the light levels are below the set thresholds. Specifically, the Kitchen Motion Illuminance [sensor.kitchen_motion_illuminance] must be less than the Kitchen Light Level Threshold [input_number.kitchen_light_level_threshold], and the Kitchen Motion 2 Illuminance Lux [sensor.kitchen_motion_2_illuminance_lux] must be less than the Kitchen Light Level 2 Threshold [input_number.kitchen_light_level_2_threshold].",
"action": "Two actions are performed simultaneously: a debug log message is sent to the home log, and the Kitchen Cooker Lights On [scene.kitchen_cooker_lights_on] scene is activated to turn on the cooker lights."
},
"human_like": "Turns on the kitchen cooker lights when motion is detected in the kitchen and the area is dark, provided motion triggers are enabled.",
"complexity": "medium"
}
},
{
"id": "'1606158191309'",
"result": {
"structured": "TRIGGER: When kitchen area motion [binary_sensor.kitchen_area_motion] OR Kitchen Motion 2 Occupancy [binary_sensor.kitchen_motion_2_occupancy] OR Kitchen Motion Occupancy [binary_sensor.kitchen_motion_occupancy] changes to on. CONDITIONS: Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] is on AND Kitchen Cooker White [light.kitchen_cooker_white] is on AND Kitchen Cooker White [light.kitchen_cooker_white] brightness attribute is below 100. ACTIONS: In parallel, run script.send_to_home_log with a debug message and turn on scene Kitchen Cooker Lights On [scene.kitchen_cooker_lights_on].",
"natural_language": {
"trigger": "When motion is detected by any of the kitchen motion sensors: kitchen area motion [binary_sensor.kitchen_area_motion], Kitchen Motion 2 Occupancy [binary_sensor.kitchen_motion_2_occupancy], or Kitchen Motion Occupancy [binary_sensor.kitchen_motion_occupancy].",
"conditions": "The automation must be enabled via Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers]. The Kitchen Cooker White [light.kitchen_cooker_white] light must already be on, but its brightness level must be below 100.",
"action": "Two actions are performed simultaneously: a debug message is sent to the home log, and the Kitchen Cooker Lights On [scene.kitchen_cooker_lights_on] scene is activated to brighten the lights."
},
"human_like": "When motion is detected in the kitchen and the cooker lights are on but dim, it brightens them to a preset level and logs the event.",
"complexity": "medium"
}
},
{
"id": "'1606158191304'",
"result": {
"structured": "TRIGGER: When kitchen area motion [binary_sensor.kitchen_area_motion] changes to on. CONDITIONS: Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] is on AND (Kitchen Cabinets [light.kitchen_cabinets] is on OR Kitchen Down Lights [light.kitchen_down_lights] is on OR Kitchen Draws [light.kitchen_draws] is on). ACTIONS: If (Kitchen Cabinets [light.kitchen_cabinets] brightness is below 100 OR Kitchen Down Lights [light.kitchen_down_lights] brightness is below 100 OR Kitchen Draws [light.kitchen_draws] brightness is below 100) THEN send a debug log message ':paw_prints: Motion detected. Turning up accent :bulb: :high_brightness: lights.' with title ':cook: Kitchen' AND activate scene Kitchen Accent Lights On [scene.kitchen_accent_lights_on] with a 1-second transition. Otherwise, do nothing.",
"natural_language": {
"trigger": "When motion is detected in the kitchen, indicated by the kitchen area motion sensor [binary_sensor.kitchen_area_motion] turning on.",
"conditions": "The automation must be enabled via the Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] switch, and at least one of the main kitchen lights (Kitchen Cabinets [light.kitchen_cabinets], Kitchen Down Lights [light.kitchen_down_lights], or Kitchen Draws [light.kitchen_draws]) must already be on.",
"action": "If any of those main kitchen lights have a brightness level below 100, the system will log a debug message about turning up the accent lights and then activate the 'Kitchen Accent Lights On' scene [scene.kitchen_accent_lights_on] with a smooth 1-second transition. If all relevant lights are already at or above 100 brightness, no action is taken."
},
"human_like": "When motion is detected in the kitchen and the main lights are on, this automation brightens the accent lights if they are dim, making the space more inviting.",
"complexity": "medium"
}
},
{
"id": "'1606158191305'",
"result": {
"structured": "TRIGGER: When kitchen area motion [binary_sensor.kitchen_area_motion] changes to on (motion detected). CONDITIONS: Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] is on AND (Kitchen Cabinets [light.kitchen_cabinets] is off OR Kitchen Down Lights [light.kitchen_down_lights] is off OR Kitchen Draws [light.kitchen_draws] is off). ACTIONS: In parallel: 1. Run script.send_to_home_log with a debug message 'Motion detected. Turning accent lights on.' and title ':cook: Kitchen'. 2. Activate scene Kitchen Dim Accent Lights [scene.kitchen_dim_accent_lights] with a 1-second transition.",
"natural_language": {
"trigger": "When motion is detected by the kitchen area motion [binary_sensor.kitchen_area_motion] sensor.",
"conditions": "The automation must be enabled via the Enable Kitchen Motion Triggers [input_boolean.enable_kitchen_motion_triggers] switch, and at least one of the main kitchen lights (Kitchen Cabinets [light.kitchen_cabinets], Kitchen Down Lights [light.kitchen_down_lights], or Kitchen Draws [light.kitchen_draws]) must be off.",
"action": "Sends a debug notification to the home log stating that motion was detected and accent lights are turning on, and simultaneously activates the Kitchen Dim Accent Lights [scene.kitchen_dim_accent_lights] scene with a smooth one-second transition."
},
"human_like": "Turns on dim accent lights in the kitchen when motion is detected, but only if the main lights are off and the motion triggers are enabled.",
"complexity": "medium"
}
},
{
"id": "'1721248529363'",
"result": {
"structured": "TRIGGER: When Kitchen Cooker Light Input [binary_sensor.kitchen_cooker_light_input] changes state, provided the previous state was not 'unavailable' OR 'unknown' AND the new state is not 'unavailable' OR 'unknown'. CONDITIONS: None. ACTIONS: Toggle Kitchen Cooker White [light.kitchen_cooker_white] with a transition time of 1 second.",
"natural_language": {
"trigger": "Whenever the Kitchen Cooker Light Input [binary_sensor.kitchen_cooker_light_input] changes its state, as long as it is not changing from or to an 'unavailable' or 'unknown' status.",
"conditions": "There are no conditions that must be met.",
"action": "Toggles the Kitchen Cooker White [light.kitchen_cooker_white] light on or off, with a smooth transition lasting one second."
},
"human_like": "Toggles the cooker light whenever the associated input switch is pressed, ignoring unreliable sensor states.",
"complexity": "low"
}
},
{
"id": "'1721248529364'",
"result": {
"structured": "TRIGGER: When Kitchen Table Light Input [binary_sensor.kitchen_table_light_input] changes state, provided the previous state was not 'unavailable' or 'unknown' AND the new state is not 'unavailable' or 'unknown'. CONDITIONS: None. ACTIONS: Toggle Kitchen Table White [light.kitchen_table_white] with a transition time of 1 second.",
"natural_language": {
"trigger": "Whenever the Kitchen Table Light Input [binary_sensor.kitchen_table_light_input] changes its state, as long as it wasn't previously 'unavailable' or 'unknown' and does not change to 'unavailable' or 'unknown'.",
"conditions": "There are no conditions that must be met.",
"action": "Toggles the Kitchen Table White [light.kitchen_table_white] light on or off, with a smooth transition of 1 second."
},
"human_like": "Toggles the kitchen table light whenever its associated input switch is pressed, ignoring unreliable sensor states.",
"complexity": "low"
}
},
{
"id": "'1595678795895'",
"result": {
"structured": "TRIGGER: When Kitchen Fridge Door Contact [binary_sensor.kitchen_fridge_door_contact] changes from closed (off) to open (on). CONDITIONS: None. ACTIONS: Execute script send_to_home_log with parameters: message ':door: :snowflake: Fridge door opened.', title ':cook: Kitchen', log_level Debug.",
"natural_language": {
"trigger": "When the Kitchen Fridge Door Contact [binary_sensor.kitchen_fridge_door_contact] opens, transitioning from a closed to an open state.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a debug-level notification to the home log with the title ':cook: Kitchen' and the message ':door: :snowflake: Fridge door opened.'."
},
"human_like": "Logs a message when the fridge door is opened.",
"complexity": "low"
}
},
{
"id": "'1595678900778'",
"result": {
"structured": "TRIGGER: When Kitchen Fridge Door Contact [binary_sensor.kitchen_fridge_door_contact] changes from open (on) to closed (off). CONDITIONS: None. ACTIONS: Execute the script 'script.send_to_home_log' with the message ':snowflake: Fridge :door: door closed.' and title ':cook: Kitchen' at log level Debug.",
"natural_language": {
"trigger": "When the Kitchen Fridge Door Contact [binary_sensor.kitchen_fridge_door_contact] changes from being open to being closed.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a debug log message to the home log with the title ':cook: Kitchen' and the message ':snowflake: Fridge :door: door closed.'."
},
"human_like": "Logs a message when the fridge door is closed.",
"complexity": "low"
}
},
{
"id": "'1595679010793'",
"result": {
"structured": "TRIGGER: When Kitchen Fridge Door Contact [binary_sensor.kitchen_fridge_door_contact] changes from closed (off) to open (on) AND remains open for 4 minutes OR When Kitchen Fridge Door Contact [binary_sensor.kitchen_fridge_door_contact] is open (on) AND remains open for 30 minutes OR When Kitchen Fridge Door Contact [binary_sensor.kitchen_fridge_door_contact] is open (on) AND remains open for 45 minutes OR When Kitchen Fridge Door Contact [binary_sensor.kitchen_fridge_door_contact] is open (on) AND remains open for 60 minutes. CONDITIONS: None. ACTIONS: Run script.send_direct_notification with a message and title AND Run script.alexa_announce with a message.",
"natural_language": {
"trigger": "The automation triggers when the Kitchen Fridge Door Contact [binary_sensor.kitchen_fridge_door_contact] is detected as open for specific durations: after 4 minutes of being open following a change from closed, or after 30 minutes, 45 minutes, or 60 minutes of being continuously open.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "The automation sends a direct notification with a custom message and title, and simultaneously makes an Alexa announcement stating the freezer door has been open for a specific duration."
},
"human_like": "Sends alerts when the fridge door has been left open for too long, with escalating notifications at different time intervals.",
"complexity": "medium"
}
},
{
"id": "'1595678795896'",
"result": {
"structured": "TRIGGER: When Kitchen Freezer Door Contact [binary_sensor.kitchen_freezer_door_contact] changes from closed (off) to open (on). CONDITIONS: None. ACTIONS: Execute script.send_to_home_log with a debug message ':snowflake: Freezer :door: door opened.' and title ':cook: Kitchen'.",
"natural_language": {
"trigger": "When the Kitchen Freezer Door Contact [binary_sensor.kitchen_freezer_door_contact] opens, changing its state from closed to open.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a debug notification to the home log with the title ':cook: Kitchen' and the message ':snowflake: Freezer :door: door opened.'."
},
"human_like": "Sends a notification when the freezer door in the kitchen is opened.",
"complexity": "low"
}
},
{
"id": "'1595678900779'",
"result": {
"structured": "TRIGGER: When Kitchen Freezer Door Contact [binary_sensor.kitchen_freezer_door_contact] changes from open (on) to closed (off). CONDITIONS: None. ACTIONS: Execute script.send_to_home_log with message ':snowflake: Freezer :door: door closed.' and title ':cook: Kitchen' at log level Debug.",
"natural_language": {
"trigger": "When the Kitchen Freezer Door Contact [binary_sensor.kitchen_freezer_door_contact] changes from being open to closed.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a debug-level log message to the home log with the title ':cook: Kitchen' and the message ':snowflake: Freezer :door: door closed.'."
},
"human_like": "Logs a message when the freezer door is closed.",
"complexity": "low"
}
},
{
"id": "'1595679010796'",
"result": {
"structured": "TRIGGER: When Kitchen Freezer Door Contact [binary_sensor.kitchen_freezer_door_contact] changes from closed (off) to open (on) AND remains open for 4 minutes. CONDITIONS: None. ACTIONS: Execute script.send_direct_notification with the message ':snowflake: Freezer :door: door has been open for more than 4 minutes!' and title ':warning: :cook: Kitchen :warning:'.",
"natural_language": {
"trigger": "When the Kitchen Freezer Door Contact [binary_sensor.kitchen_freezer_door_contact] opens and stays open for more than four minutes.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a direct notification with the title ':warning: :cook: Kitchen :warning:' and the message ':snowflake: Freezer :door: door has been open for more than 4 minutes!'."
},
"human_like": "Sends an alert if the kitchen freezer door is left open for more than four minutes.",
"complexity": "low"
}
},
{
"id": "'1657801925107'",
"result": {
"structured": "TRIGGER: When EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug] remains in state 'unavailable' for 2 minutes. CONDITIONS: None. ACTIONS: Run script.send_to_home_log with message 'Fridge Freezer plug is turned off.' and title ':cook: Kitchen' at log level Debug AND run script.send_direct_notification with message 'Fridge Freezer plug is turned unavailable.' and title ':cook: Kitchen' to person.danny.",
"natural_language": {
"trigger": "When the EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug] is reported as 'unavailable' for a continuous period of two minutes.",
"conditions": "There are no additional conditions for this automation.",
"action": "Sends a debug log entry to the home log with the message 'Fridge Freezer plug is turned off.' and a notification directly to danny person [person.danny] with the message 'Fridge Freezer plug is turned unavailable.' Both messages are titled ':cook: Kitchen'."
},
"human_like": "Sends a notification and logs a message when the kitchen fridge freezer plug has been offline for two minutes.",
"complexity": "low"
}
},
{
"id": "'1688681085048'",
"result": {
"structured": "TRIGGER: When Water Softener Salt Level Average [sensor.water_softener_salt_level_average] remains above input_number.low_water_softener_salt_level for 2 hours. CONDITIONS: None. ACTIONS: Execute script.send_direct_notification with data: message 'Low salt in water softener.', title ':cook: Kitchen', and people person.danny and person.terina.",
"natural_language": {
"trigger": "When the Water Softener Salt Level Average [sensor.water_softener_salt_level_average] stays above the configured low threshold for two consecutive hours.",
"conditions": "There are no additional conditions for this automation.",
"action": "Sends a direct notification with the title ':cook: Kitchen' and the message 'Low salt in water softener.' to the people danny person [person.danny] and terina person [person.terina]."
},
"human_like": "Sends a notification to the household when the water softener salt level has been low for two hours.",
"complexity": "low"
}
},
{
"id": "'1688681085049'",
"result": {
"structured": "TRIGGER: When Water Softener Salt Level Average [sensor.water_softener_salt_level_average] changes to the value of input_number.no_water_softener_salt_level. CONDITIONS: None. ACTIONS: Execute script.send_direct_notification with data: message ':warning: No salt in water softener. :warning:', title ':cook: Kitchen', and people list containing danny person [person.danny] AND terina person [person.terina].",
"natural_language": {
"trigger": "When the Water Softener Salt Level Average [sensor.water_softener_salt_level_average] sensor reports a value that matches the threshold level defined by the input_number.no_water_softener_salt_level.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a direct notification with a warning message about no salt in the water softener, addressed to both danny person [person.danny] and terina person [person.terina], with a title indicating the kitchen."
},
"human_like": "Sends a notification to the household when the water softener salt level is critically low.",
"complexity": "low"
}
},
{
"id": "'1694521590170'",
"result": {
"structured": "TRIGGER: When Oven Channel 1 Power [sensor.oven_channel_1_power] drops below 100. CONDITIONS: Oven Powered On [binary_sensor.oven_powered_on] is on AND Oven Preheated [input_boolean.oven_preheated] is off AND Enable Oven Automations [input_boolean.enable_oven_automations] is on. ACTIONS: In parallel, run script Kitchen Oven Preheated Notification [script.kitchen_oven_preheated_notification] with a custom message, turn on Oven Preheated [input_boolean.oven_preheated], and run script Alexa Announce [script.alexa_announce] with a voice message.",
"natural_language": {
"trigger": "When the power consumption of the oven, measured by Oven Channel 1 Power [sensor.oven_channel_1_power], falls below 100.",
"conditions": "The oven must be powered on, as indicated by Oven Powered On [binary_sensor.oven_powered_on] being on. The automation must not have already marked the oven as preheated, so Oven Preheated [input_boolean.oven_preheated] must be off. Furthermore, the automation feature must be enabled, which requires Enable Oven Automations [input_boolean.enable_oven_automations] to be on.",
"action": "The automation performs three actions simultaneously: it sends a notification via the Kitchen Oven Preheated Notification [script.kitchen_oven_preheated_notification] script, turns on the Oven Preheated [input_boolean.oven_preheated] flag to indicate the oven is ready, and triggers an Alexa announcement to verbally notify that the oven has preheated."
},
"human_like": "Notifies you when the oven has finished preheating by detecting a drop in its power consumption, provided the relevant automations are enabled.",
"complexity": "medium"
}
},
{
"id": "'1694521864037'",
"result": {
"structured": "TRIGGER: When Oven Powered On [binary_sensor.oven_powered_on] remains off for 1 minute. CONDITIONS: Oven Preheated [input_boolean.oven_preheated] is on AND Enable Oven Automations [input_boolean.enable_oven_automations] is on. ACTIONS: In parallel, send a log message with title ':cook: Kitchen' and message 'Turning off oven preheat indicator.' AND turn off Oven Preheated [input_boolean.oven_preheated].",
"natural_language": {
"trigger": "When the Oven Powered On [binary_sensor.oven_powered_on] sensor indicates the oven has been off for at least one minute.",
"conditions": "The Oven Preheated [input_boolean.oven_preheated] indicator must be on, and the Enable Oven Automations [input_boolean.enable_oven_automations] switch must also be on.",
"action": "Sends a notification to the home log with the title ':cook: Kitchen' and the message 'Turning off oven preheat indicator.', and simultaneously turns off the Oven Preheated [input_boolean.oven_preheated] indicator."
},
"human_like": "Automatically clears the oven's preheated status and logs the action when the oven has been off for a minute, provided the relevant automations are enabled.",
"complexity": "low"
}
},
{
"id": "'1694521590172'",
"result": {
"structured": "TRIGGER: When Dishwasher Powered On [binary_sensor.dishwasher_powered_on] turns on. CONDITIONS: Dishwasher Cycle In Progress [input_boolean.dishwasher_cycle_in_progress] is off AND Enable Dishwasher Automations [input_boolean.enable_dishwasher_automations] is on. ACTIONS: In parallel: Send a notification titled ':cook: Kitchen' with the message 'Dishwasher has started.' via script.send_to_home_log AND Turn on Dishwasher Cycle In Progress [input_boolean.dishwasher_cycle_in_progress].",
"natural_language": {
"trigger": "When the Dishwasher Powered On [binary_sensor.dishwasher_powered_on] sensor detects that the dishwasher has been turned on.",
"conditions": "The automation only runs if the Dishwasher Cycle In Progress [input_boolean.dishwasher_cycle_in_progress] is currently off, and the Enable Dishwasher Automations [input_boolean.enable_dishwasher_automations] switch is turned on.",
"action": "It simultaneously sends a notification to the home log with the title ':cook: Kitchen' and the message 'Dishwasher has started.', and it sets the Dishwasher Cycle In Progress [input_boolean.dishwasher_cycle_in_progress] to on to indicate a cycle is running."
},
"human_like": "Notifies you when the dishwasher starts a cycle and marks it as in progress, provided the automations are enabled.",
"complexity": "low"
}
},
{
"id": "'1694521864038'",
"result": {
"structured": "TRIGGER: When Dishwasher Powered On [binary_sensor.dishwasher_powered_on] remains off for 31 minutes. CONDITIONS: Dishwasher Cycle In Progress [input_boolean.dishwasher_cycle_in_progress] is on AND Enable Dishwasher Automations [input_boolean.enable_dishwasher_automations] is on. ACTIONS: In parallel: 1. Run script.send_to_home_log with message 'Dishwasher cycle completed.', title ':cook: Kitchen', and log_level 'Normal'. 2. Turn off Dishwasher Cycle In Progress [input_boolean.dishwasher_cycle_in_progress].",
"natural_language": {
"trigger": "When the Dishwasher Powered On [binary_sensor.dishwasher_powered_on] sensor reports the dishwasher is off and remains off for 31 minutes.",
"conditions": "The automation only runs if the Dishwasher Cycle In Progress [input_boolean.dishwasher_cycle_in_progress] is currently set to on, and the Enable Dishwasher Automations [input_boolean.enable_dishwasher_automations] is also on.",
"action": "It logs a message titled ':cook: Kitchen' to the home log stating 'Dishwasher cycle completed.', and simultaneously turns off the Dishwasher Cycle In Progress [input_boolean.dishwasher_cycle_in_progress] flag."
},
"human_like": "Logs a dishwasher cycle completion and resets its status after the dishwasher has been off for over half an hour.",
"complexity": "low"
}
},
{
"id": "'1595679010797'",
"result": {
"structured": "TRIGGER: When Dishwasher Cycle In Progress [input_boolean.dishwasher_cycle_in_progress] turns on. CONDITIONS: None. ACTIONS: If Dishwasher Clean Cycle [input_boolean.dishwasher_clean_cycle] is off, then: 1. Send a debug log message ':knife_fork_plate: :soap: Dishwasher :arrow_forward: Started.' to the home log with title ':cook: Kitchen'. 2. Execute the command to consume a dishwasher tablet. 3. Update the entity Dishwasher Tablet Stock [sensor.dishwasher_tablet_stock]. 4. If Dishwasher Tablet Stock [sensor.dishwasher_tablet_stock] is below 9, send a direct notification to danny person [person.danny] and terina person [person.terina] with the message 'Dishwasher tablets are running low (X remaining). Consider ordering more.' and title ':cook: Kitchen'. Otherwise (if Dishwasher Clean Cycle [input_boolean.dishwasher_clean_cycle] is on), then: 1. Send a debug log message ':knife_fork_plate: :soap: Dishwasher :arrow_forward: Started in clean mode.' to the home log with title ':cook: Kitchen'. 2. Turn off Dishwasher Clean Cycle [input_boolean.dishwasher_clean_cycle].",
"natural_language": {
"trigger": "When the Dishwasher Cycle In Progress [input_boolean.dishwasher_cycle_in_progress] is turned on, indicating the dishwasher has started a cycle.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "The automation checks if the Dishwasher Clean Cycle [input_boolean.dishwasher_clean_cycle] is off. If it is off, it logs a standard start message, consumes a dishwasher tablet, and updates the tablet stock sensor. If the stock is then found to be below nine tablets, it sends a notification to Danny and Terina to consider ordering more. If the Dishwasher Clean Cycle [input_boolean.dishwasher_clean_cycle] was on instead, it logs a 'clean mode' start message and then turns off the clean cycle indicator."
},
"human_like": "Logs the start of a dishwasher cycle, manages tablet inventory, and notifies the household if supplies are low.",
"complexity": "medium"
}
},
{
"id": "'1595679010798'",
"result": {
"structured": "TRIGGER: When Dishwasher Cycle In Progress [input_boolean.dishwasher_cycle_in_progress] changes from on to off. CONDITIONS: None. ACTIONS: Run script.dishwashing_complete_notification with data: message ':knife_fork_plate: :soap: Dishwasher :checkered_flag: Finished.', title ':cook: Kitchen'.",
"natural_language": {
"trigger": "When the Dishwasher Cycle In Progress [input_boolean.dishwasher_cycle_in_progress] status changes from on to off.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a notification using the script 'dishwashing_complete_notification' with the message ':knife_fork_plate: :soap: Dishwasher :checkered_flag: Finished.' and the title ':cook: Kitchen'."
},
"human_like": "Sends a notification when the dishwasher cycle finishes.",
"complexity": "low"
}
},
{
"id": "'1716112515827'",
"result": {
"structured": "TRIGGER: When Kitchen Paper Draw Contact [binary_sensor.kitchen_paper_draw_contact] changes from closed (off) to open (on). CONDITIONS: None. ACTIONS: Execute script 'script.send_direct_notification' with parameters: title 'Kitchen', message 'Paper draw opened'.",
"natural_language": {
"trigger": "When the Kitchen Paper Draw Contact [binary_sensor.kitchen_paper_draw_contact] opens (changes from closed to open).",
"conditions": "There are no conditions that must be met.",
"action": "Sends a direct notification with the title 'Kitchen' and the message 'Paper draw opened'."
},
"human_like": "Sends a notification when the kitchen paper draw is opened.",
"complexity": "low"
}
},
{
"id": "'1735567472488'",
"result": {
"structured": "TRIGGER: When Grid Power [sensor.grid_power] is above 100. CONDITIONS: kitchen area motion [binary_sensor.kitchen_area_motion] is on AND Kitchen Cooker RGB [light.kitchen_cooker_rgb] is off AND Kitchen Table RGB [light.kitchen_table_rgb] is off AND Growatt SPH Battery State of Charge [sensor.growatt_sph_battery_state_of_charge] is above Growatt Battery Discharge Stop SOC [input_number.growatt_battery_discharge_stop_soc] AND NOT (Growatt SPH Inverter Mode [sensor.growatt_sph_inverter_mode] is Battery first). ACTIONS: In parallel, run script.send_to_home_log with message 'Pulling power from the grid', title ':cook: Kitchen', and log_level Debug AND execute a choose block. The choose block selects the first sequence if (Growatt SPH Battery State of Charge [sensor.growatt_sph_battery_state_of_charge] is above Growatt Battery Discharge Stop SOC [input_number.growatt_battery_discharge_stop_soc] OR Growatt Battery Discharge Power [sensor.growatt_battery_discharge_power] is below 100), which turns on scenes Kitchen Table Ambient Light to Pink [scene.kitchen_table_ambient_light_to_pink] and Kitchen Cooker Ambient Light to Pink [scene.kitchen_cooker_ambient_light_to_pink]. Otherwise, if (Growatt SPH Battery State of Charge [sensor.growatt_sph_battery_state_of_charge] is less than or equal to Growatt Battery Discharge Stop SOC [input_number.growatt_battery_discharge_stop_soc] OR Growatt Battery Discharge Power [sensor.growatt_battery_discharge_power] is below 100), it runs script.kitchen_pulse_ambient_light_pink.",
"natural_language": {
"trigger": "When the Grid Power [sensor.grid_power] sensor reports a value greater than 100.",
"conditions": "Motion is detected in the kitchen area [binary_sensor.kitchen_area_motion], both the Kitchen Cooker RGB [light.kitchen_cooker_rgb] and Kitchen Table RGB [light.kitchen_table_rgb] lights are off, the Growatt SPH Battery State of Charge [sensor.growatt_sph_battery_state_of_charge] is above the configured discharge stop threshold [input_number.growatt_battery_discharge_stop_soc], and the Growatt SPH Inverter Mode [sensor.growatt_sph_inverter_mode] is not set to 'Battery first'.",
"action": "Two actions are performed simultaneously. First, a debug log message titled ':cook: Kitchen' with the text 'Pulling power from the grid' is sent. Second, a conditional action is executed: if the battery has sufficient charge or the discharge power is low, the kitchen ambient lights are set to a pink scene. Otherwise, if the battery charge is at or below the stop threshold or the discharge power is low, a script to pulse the kitchen ambient lights pink is run."
},
"human_like": "When the kitchen is occupied but the main lights are off and the house is drawing significant power from the grid (instead of the battery), this automation logs the event and changes the ambient lighting to pink, with different visual effects based on the current battery status.",
"complexity": "high"
}
},
{
"id": "'1735567472489'",
"result": {
"structured": "TRIGGER: When Grid Power [sensor.grid_power] falls below 100. CONDITIONS: Kitchen Cooker RGB [light.kitchen_cooker_rgb] is on AND Kitchen Table RGB [light.kitchen_table_rgb] is on AND front door [binary_sensor.front_door] is closed (off). ACTIONS: In parallel: 1. Execute script.send_to_home_log with message 'Pulling power from the grid', title ':cook: Kitchen', and log_level 'Debug'. 2. Turn off Kitchen Cooker RGB [light.kitchen_cooker_rgb] AND Kitchen Table RGB [light.kitchen_table_rgb].",
"natural_language": {
"trigger": "When the Grid Power [sensor.grid_power] sensor reports a value below 100.",
"conditions": "The Kitchen Cooker RGB [light.kitchen_cooker_rgb] light must be on, the Kitchen Table RGB [light.kitchen_table_rgb] light must be on, and the front door [binary_sensor.front_door] must be closed.",
"action": "It logs a debug message titled ':cook: Kitchen' with the text 'Pulling power from the grid' and simultaneously turns off both the Kitchen Cooker RGB [light.kitchen_cooker_rgb] and Kitchen Table RGB [light.kitchen_table_rgb] lights."
},
"human_like": "Turns off the kitchen lights and logs a message when grid power is low, but only if the kitchen lights are on and the front door is closed.",
"complexity": "medium"
}
},
{
"id": "'1757836826541'",
"result": {
"structured": "TRIGGER: When Kitchen Smoke Alarm Smoke [binary_sensor.kitchen_smoke_alarm_smoke] changes state to on. CONDITIONS: None. ACTIONS: Run script.send_direct_notification with message ':warning: Smoke alarm triggered :warning:' and title ':warning: :cook: Kitchen :warning:' AND run script.alexa_announce with message 'Warning! Kitchen smoke alarm triggered.' in parallel.",
"natural_language": {
"trigger": "When the Kitchen Smoke Alarm Smoke [binary_sensor.kitchen_smoke_alarm_smoke] detects smoke and turns on.",
"conditions": "There are no conditions; the automation runs immediately when triggered.",
"action": "Sends a direct notification with a warning message and title, and simultaneously makes an Alexa announcement stating that the kitchen smoke alarm has been triggered."
},
"human_like": "Sends an urgent notification and Alexa announcement when the kitchen smoke alarm is triggered.",
"complexity": "low"
}
},
{
"id": "'1617814309728'",
"result": {
"structured": "TRIGGER: When Office TV [media_player.office_tv] changes state from off to on. CONDITIONS: None. ACTIONS: If Office TV [media_player.office_tv] has a source attribute that is not none, then log a message stating the TV turned on and the source. Otherwise, log a message stating the TV turned on.",
"natural_language": {
"trigger": "When the Office TV [media_player.office_tv] is turned on.",
"conditions": "There are no conditions.",
"action": "If the TV is playing a specific source, a log message is created stating the TV turned on and what it is playing. If no source is selected, a simpler log message is created stating the TV turned on."
},
"human_like": "Logs a message when the office TV is turned on, including what is playing if a source is selected.",
"complexity": "low"
}
},
{
"id": "'1617814349289'",
"result": {
"structured": "TRIGGER: When Office TV [media_player.office_tv] changes state from on to off. CONDITIONS: None. ACTIONS: Execute script send_to_home_log with message ':tv: Office TV turned off.' and log level Debug.",
"natural_language": {
"trigger": "When the Office TV [media_player.office_tv] is turned off.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a debug message to the home log stating that the Office TV has been turned off."
},
"human_like": "Logs a message when the office TV is turned off.",
"complexity": "low"
}
},
{
"id": "'1617814753264'",
"result": {
"structured": "TRIGGER: When Office TV [media_player.office_tv] attribute 'source' changes. CONDITIONS: None. ACTIONS: IF (Office TV [media_player.office_tv] source attribute is not None) THEN send a normal log message stating 'Office TV turned on and playing [source value]'. ELSE send a debug log message stating 'Office TV media changed.'.",
"natural_language": {
"trigger": "Whenever the source attribute of the Office TV [media_player.office_tv] changes.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "If the TV's source attribute has a defined value (is not 'None'), it sends a normal priority log message indicating the TV is on and playing that source. If the source attribute is 'None', it sends a lower priority debug log message simply stating the TV media has changed."
},
"human_like": "Logs a message whenever the source on the Office TV changes, providing more detail when a specific source is selected.",
"complexity": "low"
}
},
{
"id": "'1583956425622'",
"result": {
"structured": "TRIGGER: When any of Living Room Area Motion [binary_sensor.living_room_area_motion], Lounge Motion [binary_sensor.lounge_motion], or Living Room Motion Occupancy [binary_sensor.living_room_motion_occupancy] changes to 'on'. CONDITIONS: enable living room motion triggers [input_boolean.enable_living_room_motion_triggers] is 'on'. ACTIONS: Choose between two paths based on conditions. Path 1: If ((Living Room Motion 3 Illuminance [sensor.living_room_motion_3_illuminance] is below Living Room Light Level 2 Threshold [input_number.living_room_light_level_2_threshold] OR Living Room Motion Illuminance [sensor.living_room_motion_illuminance] is below Living Room Light Level 4 Threshold [input_number.living_room_light_level_4_threshold] OR Living Room Motion Illuminance [sensor.living_room_motion_illuminance] is unavailable) AND (Living Room Lamp Left [light.living_room_lamp_left] brightness is below 190 OR Living Room Lamp Right [light.living_room_lamp_right] brightness is below 190 OR Living Room Lamp Left [light.living_room_lamp_left] brightness attribute is none OR Living Room Lamp Right [light.living_room_lamp_right] brightness attribute is none)) then, in parallel: send a debug log message and, if Lounge Ceiling [light.lounge_ceiling] is 'on', turn on Living Room Lights [scene.living_room_lights] with a 1-second transition; otherwise, turn on Living Room Lamps On [scene.living_room_lamps_on] with a 1-second transition. Path 2: If ((Living Room Motion 3 Illuminance [sensor.living_room_motion_3_illuminance] is below Living Room Light Level 2 Threshold [input_number.living_room_light_level_2_threshold] OR Living Room Motion Illuminance [sensor.living_room_motion_illuminance] is below Living Room Light Level 4 Threshold [input_number.living_room_light_level_4_threshold]) AND (Living Room Lamp Left [light.living_room_lamp_left] is 'off' OR Living Room Lamp Right [light.living_room_lamp_right] is 'off' OR Living Room Lamp Left [light.living_room_lamp_left] brightness attribute is none OR Living Room Lamp Right [light.living_room_lamp_right] brightness attribute is none)) then, in parallel: send a debug log message and, in sequence: turn on Living Room Lamps Yellow [scene.living_room_lamps_yellow] with a 0-second transition, delay 1 second, then turn on Living Room Lamps Off [scene.living_room_lamps_off] with a 0-second transition.",
"natural_language": {
"trigger": "When motion is detected by any of the sensors: Living Room Area Motion [binary_sensor.living_room_area_motion], Lounge Motion [binary_sensor.lounge_motion], or Living Room Motion Occupancy [binary_sensor.living_room_motion_occupancy].",
"conditions": "The automation is only active if the master switch, enable living room motion triggers [input_boolean.enable_living_room_motion_triggers], is turned on.",
"action": "The automation checks two sets of conditions to decide what to do. First, it checks if the room is dark enough (using illuminance sensors) and if the main lamps are not already bright. If so, it logs the event and turns on either the full living room lights or just the lamps, depending on whether the ceiling light is already on. Second, if the room is dark but the lamps are off or unresponsive, it logs the event and briefly flashes the lamps yellow before turning them off again. If neither set of conditions is met, no action is taken."
},
"human_like": "Automatically controls living room lights based on motion and ambient light levels, turning them on when it's dark or briefly flashing them if they are off.",
"complexity": "high"
}
},
{
"id": "'1606170045630'",
"result": {
"structured": "TRIGGER: When Living Room Area Motion [binary_sensor.living_room_area_motion] remains off (no motion) for 5 minutes. CONDITIONS: enable living room motion triggers [input_boolean.enable_living_room_motion_triggers] is on. ACTIONS: In parallel: 1. Send a debug log message via script.send_to_home_log. 2. Execute a conditional sequence: IF Living Room Lamps [light.living_room_lamps] is on AND Lounge Ceiling [light.lounge_ceiling] is on THEN activate scene Living Room Dim Lights [scene.living_room_dim_lights] with a 1-second transition. ELSE IF Living Room Lamps [light.living_room_lamps] is on THEN activate scene Living Room Dim Lamps [scene.living_room_dim_lamps] with a 1-second transition. ELSE IF Lounge Ceiling [light.lounge_ceiling] is on THEN activate scene Living Room Dim Ceiling Lights [scene.living_room_dim_ceiling_lights] with a 1-second transition. ELSE do nothing.",
"natural_language": {
"trigger": "When the Living Room Area Motion [binary_sensor.living_room_area_motion] sensor detects no motion for a continuous period of five minutes.",
"conditions": "The automation only runs if the enable living room motion triggers [input_boolean.enable_living_room_motion_triggers] switch is turned on.",
"action": "First, a debug log message is sent to the home log. Then, depending on which lights are currently on, a specific dimming scene is activated. If both the Living Room Lamps [light.living_room_lamps] and the Lounge Ceiling [light.lounge_ceiling] are on, the 'Living Room Dim Lights' scene is activated. If only the Living Room Lamps are on, the 'Living Room Dim Lamps' scene is activated. If only the Lounge Ceiling light is on, the 'Living Room Dim Ceiling Lights' scene is activated. All scene activations use a smooth one-second transition."
},
"human_like": "Dim the living room lights to a lower level if no motion is detected for five minutes, provided the motion trigger feature is enabled.",
"complexity": "medium"
}
},
{
"id": "'1605567425876'",
"result": {
"structured": "TRIGGER: When Living Room Area Motion [binary_sensor.living_room_area_motion] changes from motion detected (on) to no motion (off) AND remains in no motion state for 10 minutes. CONDITIONS: enable living room motion triggers [input_boolean.enable_living_room_motion_triggers] is on. ACTIONS: In parallel: 1. Log a debug message to the home log. 2. Execute a conditional sequence: IF Living Room Lamps [light.living_room_lamps] is on AND Lounge Ceiling [light.lounge_ceiling] is on THEN activate scene Living Room Lights Off [scene.living_room_lights_off] with a 1-second transition. ELSE IF Living Room Lamps [light.living_room_lamps] is on THEN activate scene Living Room Lamps Off [scene.living_room_lamps_off] with a 1-second transition. ELSE IF Lounge Ceiling [light.lounge_ceiling] is on THEN activate scene Living Room Ceiling Lights Off [scene.living_room_ceiling_lights_off] with a 1-second transition.",
"natural_language": {
"trigger": "When the Living Room Area Motion [binary_sensor.living_room_area_motion] stops detecting motion and remains inactive for 10 minutes.",
"conditions": "The automation is only allowed to run if the enable living room motion triggers [input_boolean.enable_living_room_motion_triggers] is switched on.",
"action": "The automation performs two actions simultaneously. First, it sends a debug log message to the home log. Second, it checks the state of the lights and turns them off accordingly. If both the Living Room Lamps [light.living_room_lamps] and the Lounge Ceiling [light.lounge_ceiling] are on, it activates the 'Living Room Lights Off' scene. If only the lamps are on, it activates the 'Living Room Lamps Off' scene. If only the ceiling light is on, it activates the 'Living Room Ceiling Lights Off' scene. Each scene activation uses a 1-second transition."
},
"human_like": "Turns off the living room lights after no motion is detected for 10 minutes, provided the feature is enabled, and logs the action.",
"complexity": "medium"
}
},
{
"id": "'1714512650107'",
"result": {
"structured": "TRIGGER: When Living Room Lamps [light.living_room_lamps] remains in any state for 10 minutes. CONDITIONS: The time elapsed since Living Room Lamps [light.living_room_lamps] last changed state is at least 360 seconds (6 minutes). ACTIONS: In parallel: 1. Send a debug log message with title ':couch_and_lamp: Living Room' and content 'Lights on for 10 minutes with no motion. Turning lights off.' via script.send_to_home_log. 2. Turn on the scene Living Room Lamps Off [scene.living_room_lamps_off].",
"natural_language": {
"trigger": "When the Living Room Lamps [light.living_room_lamps] have been in their current state for 10 minutes.",
"conditions": "The lights must have last changed their state at least 6 minutes ago.",
"action": "It sends a debug notification to the home log stating that the lights have been on with no motion and are being turned off, and simultaneously activates the 'Living Room Lamps Off' [scene.living_room_lamps_off] scene to turn the lights off."
},
"human_like": "Automatically turns off the living room lamps if they have been on and unchanged for a while, logging the action for reference.",
"complexity": "medium"
}
},
{
"id": "'1610409803685'",
"result": {
"structured": "TRIGGER: When TV Plug Power [sensor.tv_plug_power] remains below the threshold defined by input_number.tv_plug_powered_on_threshold for 10 minutes. CONDITIONS: Living Room Lamps [light.living_room_lamps] is on AND Living Room Area Motion [binary_sensor.living_room_area_motion] is off AND Living Room Area Motion [binary_sensor.living_room_area_motion] remains off for 10 minutes AND Doug [device_tracker.doug] is not_home. ACTIONS: In parallel: 1. Log a debug message via script.send_to_home_log. 2. Execute a conditional action: IF (Living Room Lamps [light.living_room_lamps] is on AND Lounge Ceiling [light.lounge_ceiling] is on) THEN activate scene Living Room Lights Off [scene.living_room_lights_off] with a 1-second transition. ELSE IF (Living Room Lamps [light.living_room_lamps] is on) THEN activate scene Living Room Lamps Off [scene.living_room_lamps_off] with a 1-second transition. ELSE IF (Lounge Ceiling [light.lounge_ceiling] is on) THEN activate scene Living Room Ceiling Lights Off [scene.living_room_ceiling_lights_off] with a 1-second transition. ELSE do nothing.",
"natural_language": {
"trigger": "When the TV's power consumption, measured by TV Plug Power [sensor.tv_plug_power], stays below a specific threshold for 10 minutes, indicating the TV has been off for that duration.",
"conditions": "The Living Room Lamps [light.living_room_lamps] must be on, the Living Room Area Motion [binary_sensor.living_room_area_motion] must be off and have been off for the last 10 minutes, and Doug [device_tracker.doug] must be away from home.",
"action": "First, a debug message is logged to the home log. Then, depending on which lights are on, the appropriate scene is activated to turn them off: if both the living room lamps and the lounge ceiling light are on, the 'Living Room Lights Off' scene is used; if only the living room lamps are on, the 'Living Room Lamps Off' scene is used; if only the lounge ceiling light is on, the 'Living Room Ceiling Lights Off' scene is used. The lights fade off over a 1-second transition."
},
"human_like": "Turns off the living room lights when the TV has been off for 10 minutes, no motion is detected, and the homeowner is away.",
"complexity": "medium"
}
},
{
"id": "'1588859622571'",
"result": {
"structured": "TRIGGER: When Lounge Motion [binary_sensor.lounge_motion] turns on OR when Stairs Motion Occupancy [binary_sensor.stairs_motion_occupancy] turns on. CONDITIONS: Enable Morning Routine [input_boolean.enable_morning_routine] is on AND tracked people group [group.tracked_people] is home AND house alarm [alarm_control_panel.house_alarm] is armed_home AND the current time is between 05:00:00 and 23:00:00. ACTIONS: Execute script.morning_script.",
"natural_language": {
"trigger": "When motion is detected by either the Lounge Motion [binary_sensor.lounge_motion] sensor or the Stairs Motion Occupancy [binary_sensor.stairs_motion_occupancy] sensor.",
"conditions": "The automation requires that the Enable Morning Routine [input_boolean.enable_morning_routine] is switched on, all tracked people are at home as indicated by the tracked people group [group.tracked_people], the house alarm [alarm_control_panel.house_alarm] is set to armed_home mode, and the current time is between 5:00 AM and 11:00 PM.",
"action": "Runs the morning routine script, script.morning_script."
},
"human_like": "Runs the morning routine script when motion is detected in the living room or stairs during the morning or day, provided everyone is home and the alarm is set.",
"complexity": "medium"
}
},
{
"id": "'1611063957341'",
"result": {
"structured": "TRIGGER: When Server Fan [switch.server_fan] remains on for 1 hour. CONDITIONS: None. ACTIONS: Execute two actions in parallel: 1. Send a log message with title ':couch_and_lamp: Living Room' and content 'Server fan has been running for more than 1 hour. Consider turning Fan off.' 2. If Enable Direct Notifications [input_boolean.enable_direct_notifications] is on, send an actionable notification to danny person [person.danny] with title 'Server fan on for over 1 hour', message 'Turn off server fan?', and two buttons: 'Yes' (action server_fan_off) and 'No' (action ignore).",
"natural_language": {
"trigger": "When the Server Fan [switch.server_fan] has been switched on and remains in the on state for at least one hour.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "Two actions are performed simultaneously. First, a log entry is created with a reminder that the server fan has been running for over an hour. Second, if the Enable Direct Notifications [input_boolean.enable_direct_notifications] is turned on, an interactive notification is sent to danny person [person.danny] asking if the fan should be turned off, providing 'Yes' and 'No' buttons for a response."
},
"human_like": "Sends a reminder and optional notification if the server fan has been left running for more than an hour.",
"complexity": "medium"
}
},
{
"id": "'1677711735249'",
"result": {
"structured": "TRIGGER: At 07:30:00. CONDITIONS: Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] is on AND Living Room Windows [binary_sensor.living_room_windows] is closed (off). ACTIONS: In parallel: 1) Log a debug message to the home log with a dynamic clock icon and a message about opening blinds partially. 2) Set the tilt position to 25% for Living Room Blinds Left [cover.living_room_blinds_left], Living Room Blinds Middle [cover.living_room_blinds_middle], and Living Room Blinds Right [cover.living_room_blinds_right].",
"natural_language": {
"trigger": "The automation triggers daily at 7:30 AM.",
"conditions": "The automation only runs if the Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] is turned on, and the Living Room Windows [binary_sensor.living_room_windows] are closed.",
"action": "The automation performs two actions simultaneously: it sends a debug log message to the home log with a custom clock icon and a note that the blinds are being opened partially, and it sets all three living room blinds (Left, Middle, and Right) to a 25% open tilt position."
},
"human_like": "Opens the living room blinds partially at 7:30 AM, but only if the windows are closed and the automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1677711735250'",
"result": {
"structured": "TRIGGER: When the time is 08:00:00. CONDITIONS: Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] is on AND Living Room Windows [binary_sensor.living_room_windows] is closed (off). ACTIONS: In parallel: 1. Execute script.send_to_home_log with a message containing a dynamic clock icon and the text 'Opening blinds fully.', and 2. Set the tilt position to 50% for Living Room Blinds Left [cover.living_room_blinds_left], Living Room Blinds Middle [cover.living_room_blinds_middle], and Living Room Blinds Right [cover.living_room_blinds_right].",
"natural_language": {
"trigger": "At 8:00 AM every day.",
"conditions": "If the 'Enable Living Room Blind Automations' [input_boolean.enable_living_room_blind_automations] switch is turned on, and the Living Room Windows [binary_sensor.living_room_windows] are closed.",
"action": "Logs a debug message with a dynamic clock icon and the text 'Opening blinds fully.' to the home log, and simultaneously sets the tilt position to 50% for all three living room blinds: the left, middle, and right sets."
},
"human_like": "Opens the living room blinds to a 50% tilt at 8 AM, but only if the windows are closed and the automation is enabled.",
"complexity": "low"
}
},
{
"id": "'1677969986112'",
"result": {
"structured": "TRIGGER: When the sun sets OR at 20:00:00. CONDITIONS: Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] is on AND Living Room Windows [binary_sensor.living_room_windows] is closed (off) AND (Living Room Blinds Left [cover.living_room_blinds_left] tilt_position > 25 OR Living Room Blinds Middle [cover.living_room_blinds_middle] tilt_position > 25 OR Living Room Blinds Right [cover.living_room_blinds_right] tilt_position > 25). ACTIONS: In parallel: 1. Send a debug log message to Home Log with a title ':couch_and_lamp: Living Room' and a message containing a clock emoji and 'Partially closing blinds.' 2. Set the tilt position to 25 for Living Room Blinds Left [cover.living_room_blinds_left], Living Room Blinds Middle [cover.living_room_blinds_middle], and Living Room Blinds Right [cover.living_room_blinds_right].",
"natural_language": {
"trigger": "The automation triggers either at sunset or at 8:00 PM.",
"conditions": "The automation requires that the 'Enable Living Room Blind Automations' [input_boolean.enable_living_room_blind_automations] is turned on, the Living Room Windows [binary_sensor.living_room_windows] are closed, and at least one of the three blinds (Left, Middle, or Right) has a tilt position greater than 25% open.",
"action": "The automation logs a debug message to the Home Log with a title and a message indicating it is partially closing the blinds, and simultaneously sets the tilt position of all three blinds (Left, Middle, and Right) to 25%."
},
"human_like": "Partially closes the living room blinds in the evening if the windows are closed and the automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1677969986113'",
"result": {
"structured": "TRIGGER: When sunset occurs with a 1-hour offset OR when the time is 21:00:00. CONDITIONS: Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] is on AND Living Room Windows [binary_sensor.living_room_windows] is off. ACTIONS: In parallel: 1. Execute script.send_to_home_log with a dynamic message containing the current hour and minute details and the text 'Closing blinds fully.' 2. Set the tilt position to 0 (fully closed) for Living Room Blinds Left [cover.living_room_blinds_left], Living Room Blinds Middle [cover.living_room_blinds_middle], and Living Room Blinds Right [cover.living_room_blinds_right].",
"natural_language": {
"trigger": "The automation triggers either one hour after sunset or at 9:00 PM.",
"conditions": "It requires that the Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] is switched on, and that the Living Room Windows [binary_sensor.living_room_windows] are closed.",
"action": "It performs two actions simultaneously: it logs a detailed message to the home log with the current time and a note about closing the blinds, and it fully closes the tilt of all three living room blinds."
},
"human_like": "Closes the living room blinds in the evening, either after sunset or at 9 PM, but only if the windows are shut and the automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1680528200298'",
"result": {
"structured": "TRIGGER: When the Sun [sun.sun] azimuth attribute falls below the threshold set by Living Room Blinds Morning Sun Azimuth Threshold [input_number.living_room_blinds_morning_sun_azimuth_threshold]. CONDITIONS: Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] is on AND the current time is after 08:10:00 AND the current time is before sunset AND Living Room Windows [binary_sensor.living_room_windows] is closed (off) AND (Living Room Blinds Left [cover.living_room_blinds_left] current_tilt_position is below 50 OR Living Room Blinds Middle [cover.living_room_blinds_middle] current_tilt_position is below 50 OR Living Room Blinds Right [cover.living_room_blinds_right] current_tilt_position is below 50). ACTIONS: In parallel, run the script send_to_home_log with a message about the sun position and open the Living Room blinds (Living Room Blinds Left [cover.living_room_blinds_left], Living Room Blinds Middle [cover.living_room_blinds_middle], Living Room Blinds Right [cover.living_room_blinds_right]) by setting their tilt position to 50.",
"natural_language": {
"trigger": "When the sun's azimuth falls below the threshold value set by the Living Room Blinds Morning Sun Azimuth Threshold [input_number.living_room_blinds_morning_sun_azimuth_threshold].",
"conditions": "The automation is only enabled if the Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] switch is on, the current time is after 8:10 AM but before sunset, and the Living Room Windows [binary_sensor.living_room_windows] are closed. Additionally, at least one of the three blinds (Left, Middle, or Right) must be tilted to a position below 50%.",
"action": "The automation performs two actions simultaneously: it sends a detailed log message to the home log with the current sun position, and it sets the tilt position of all three living room blinds (Left, Middle, and Right) to 50%."
},
"human_like": "Opens the living room blinds to 50% in the morning when the sun is no longer shining directly into the room, provided the windows are closed and the automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1680528200296'",
"result": {
"structured": "TRIGGER: When Sun [sun.sun] azimuth exceeds Living Room Blinds Afternoon Sun Azimuth Threshold [input_number.living_room_blinds_afternoon_sun_azimuth_threshold] OR when Sun [sun.sun] elevation exceeds Living Room Blinds Afternoon Sun Elevation Threshold [input_number.living_room_blinds_afternoon_sun_elevation_threshold]. CONDITIONS: Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] is on AND Sun [sun.sun] azimuth exceeds Living Room Blinds Afternoon Sun Azimuth Threshold [input_number.living_room_blinds_afternoon_sun_azimuth_threshold] AND Sun [sun.sun] elevation exceeds Living Room Blinds Afternoon Sun Elevation Threshold [input_number.living_room_blinds_afternoon_sun_elevation_threshold] AND Living Room Windows [binary_sensor.living_room_windows] are closed (off) AND (Living Room Blinds Left [cover.living_room_blinds_left] current tilt position is below 50 OR Living Room Blinds Middle [cover.living_room_blinds_middle] current tilt position is below 50 OR Living Room Blinds Right [cover.living_room_blinds_right] current tilt position is below 50). ACTIONS: Send a debug log message to Home Log with sun position details AND set the tilt position to 50 for Living Room Blinds Left [cover.living_room_blinds_left], Living Room Blinds Middle [cover.living_room_blinds_middle], and Living Room Blinds Right [cover.living_room_blinds_right].",
"natural_language": {
"trigger": "When the sun's azimuth rises above the configured threshold, or when the sun's elevation rises above its configured threshold.",
"conditions": "The automation must be enabled via the Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] switch. The sun's azimuth and elevation must both be above their respective thresholds. The Living Room Windows [binary_sensor.living_room_windows] must be closed. Finally, at least one of the three blinds (Left, Middle, or Right) must have its tilt position set to less than 50.",
"action": "Sends a detailed debug message to the home log, reporting the current sun position and the thresholds. It then opens all three living room blinds to a tilt position of 50."
},
"human_like": "Opens the living room blinds in the afternoon when the sun is high enough and out of the way, provided the windows are closed and the automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1678300398735'",
"result": {
"structured": "TRIGGER: When Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] remains above the value of input_number.blind_low_brightness_threshold for 1 minute. CONDITIONS: (Sun [sun.sun] is after sunrise) AND (time is after 08:00:30) AND (Sun [sun.sun] is before sunset) AND (Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] is below the value of input_number.blind_high_brightness_threshold) AND (Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] is on) AND (Living Room Windows [binary_sensor.living_room_windows] is off) AND (Sun [sun.sun] azimuth is above the value of input_number.living_room_blinds_morning_sun_azimuth_threshold AND Sun [sun.sun] azimuth is below the value of input_number.living_room_blinds_afternoon_sun_azimuth_threshold AND Sun [sun.sun] elevation is below the value of input_number.living_room_blinds_afternoon_sun_elevation_threshold) AND ((Living Room Blinds Middle [cover.living_room_blinds_middle] current_tilt_position is NOT 25) OR (Living Room Blinds Right [cover.living_room_blinds_right] current_tilt_position is NOT 25)) AND ((Family Computer [group.family_computer] is home) OR ((time is a weekday (Monday to Friday)) AND (Terinas Work Computer [group.terinas_work_computer] is home))). ACTIONS: In parallel, run script.send_to_home_log with a debug message about brightness and partially closing blinds, and set the tilt position of Living Room Blinds Middle [cover.living_room_blinds_middle] and Living Room Blinds Right [cover.living_room_blinds_right] to 25.",
"natural_language": {
"trigger": "When the Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] stays above a low brightness threshold for at least one minute.",
"conditions": "It must be daytime (after sunrise and before sunset), and the current time must be after 8:00:30 AM. The outdoor brightness must also be below a high brightness threshold. The automation for the living room blinds must be enabled, and the living room windows must be closed. The sun's position must be within a specific azimuth range (between morning and afternoon thresholds) and below a specific elevation threshold. At least one of the two blinds (middle or right) must not already be tilted to position 25. Finally, either someone is home using the family computer, or, on weekdays, Terina's work computer is home.",
"action": "Logs a debug message to the home log stating it's bright outside and that the middle and right blinds are being partially closed, and simultaneously sets the tilt position of both the Living Room Blinds Middle [cover.living_room_blinds_middle] and Living Room Blinds Right [cover.living_room_blinds_right] to 25."
},
"human_like": "Partially closes the living room blinds when it's bright outside during the day, but only if the room is occupied and the sun is in a specific position to avoid glare.",
"complexity": "high"
}
},
{
"id": "'1678300398734'",
"result": {
"structured": "TRIGGER: When Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] remains above the value of input_number.blind_high_brightness_threshold for 1 minute. CONDITIONS: (Sun [sun.sun] is after sunrise) AND (Time is after 08:00:30) AND (Sun [sun.sun] is before sunset) AND (Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] is on) AND (Living Room Windows [binary_sensor.living_room_windows] is off) AND (Sun [sun.sun] azimuth is above Living Room Blinds Morning Sun Azimuth Threshold [input_number.living_room_blinds_morning_sun_azimuth_threshold] AND Sun [sun.sun] azimuth is below Living Room Blinds Afternoon Sun Azimuth Threshold [input_number.living_room_blinds_afternoon_sun_azimuth_threshold] AND Sun [sun.sun] elevation is below Living Room Blinds Afternoon Sun Elevation Threshold [input_number.living_room_blinds_afternoon_sun_elevation_threshold]) AND (Living Room Blinds Middle [cover.living_room_blinds_middle] current_tilt_position is above 0 OR Living Room Blinds Right [cover.living_room_blinds_right] current_tilt_position is above 0) AND (Family Computer [group.family_computer] state is home OR (Time is on a weekday (Monday to Friday) AND Terinas Work Computer [group.terinas_work_computer] state is home)). ACTIONS: In parallel: 1. Run script.send_to_home_log with a debug message stating the illuminance and that blinds are closing. 2. Set the tilt position of Living Room Blinds Middle [cover.living_room_blinds_middle] and Living Room Blinds Right [cover.living_room_blinds_right] to 0 (fully closed).",
"natural_language": {
"trigger": "When the Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] sensor reports a brightness level above a configured high threshold for at least one minute.",
"conditions": "The automation runs only if it is daytime (after sunrise and before sunset), the current time is after 8:00:30 AM, the living room blind automations are enabled, and the living room windows are closed. Additionally, the sun must be within a specific azimuth range (between morning and afternoon thresholds) and below a specific elevation threshold, indicating the sun's position could cause glare. At least one of the living room blinds must be open (tilt position above zero). Finally, either the family computer is marked as being at home, or it is a weekday and Terina's work computer is marked as being at home.",
"action": "The automation performs two actions in parallel: it logs a debug message to the home log stating the current brightness and that the blinds are closing, and it closes the tilt slats of both the middle and right living room blinds to a position of zero."
},
"human_like": "Closes the living room blinds to block bright sunlight when it's very bright outside, but only during the day, when someone is likely home, and the sun is in a position that could cause glare.",
"complexity": "high"
}
},
{
"id": "'1678637987423'",
"result": {
"structured": "TRIGGER: When Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] remains below the value of input_number.blind_low_brightness_threshold for 5 minutes. CONDITIONS: (It is after sunrise) AND (The time is after 08:00:30) AND (It is before sunset) AND (Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] is on) AND (Living Room Windows [binary_sensor.living_room_windows] are closed (off)) AND (Family Computer [group.family_computer] is not_home) AND (Terinas Work Computer [group.terinas_work_computer] is not_home) AND (Living Room Blinds Left [cover.living_room_blinds_left] current_tilt_position is below 50 OR Living Room Blinds Right [cover.living_room_blinds_right] current_tilt_position is below 50 OR Living Room Blinds Middle [cover.living_room_blinds_middle] current_tilt_position is below 50). ACTIONS: In parallel: 1. Run script.send_to_home_log with a debug message stating the illuminance and that blinds are opening. 2. Set the tilt position of Living Room Blinds Left [cover.living_room_blinds_left], Living Room Blinds Middle [cover.living_room_blinds_middle], and Living Room Blinds Right [cover.living_room_blinds_right] to 50.",
"natural_language": {
"trigger": "When the Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] stays below a specific low brightness threshold for five minutes.",
"conditions": "The automation runs only during the day, specifically after sunrise and before sunset, and after 8:00:30 AM. It also requires that the living room blind automations are enabled [input_boolean.enable_living_room_blind_automations], the living room windows are closed [binary_sensor.living_room_windows], and no one is using the family computer [group.family_computer] or Terina's work computer [group.terinas_work_computer]. Finally, at least one of the three living room blinds (left, middle, or right) must be tilted to a position below 50% open.",
"action": "It logs a debug message to the home log stating the current illuminance and that the blinds are opening, and simultaneously sets all three living room blinds to a 50% open tilt position."
},
"human_like": "Opens the living room blinds to let in more light when it gets dark outside, but only during the daytime when the room is unoccupied and the windows are closed.",
"complexity": "medium"
}
},
{
"id": "'1630015457540'",
"result": {
"structured": "TRIGGER: When Living Room Person [binary_sensor.living_room_person] changes from off to on. CONDITIONS: None. ACTIONS: Take a snapshot from Living Room [camera.living_room] and save it to the file path stored in Latest Frigate Lounge Person File Path [input_text.latest_frigate_lounge_person_file_path]. Then, run the script send_home_log_with_local_attachments with a message 'Frigate detected a person in the lounge.', a title ':bust_in_silhouette: Person detected in :couch_and_lamp: lounge', and the same file path.",
"natural_language": {
"trigger": "When the Living Room Person [binary_sensor.living_room_person] sensor first detects a person, changing its state from off to on.",
"conditions": "There are no conditions that must be met.",
"action": "First, it captures a snapshot from the Living Room [camera.living_room] camera and saves the image to the file path specified by the Latest Frigate Lounge Person File Path [input_text.latest_frigate_lounge_person_file_path]. Then, it sends a notification using a script, which includes the message 'Frigate detected a person in the lounge.', a title with emojis, and attaches the saved snapshot."
},
"human_like": "When a person is detected in the living room, it takes a camera snapshot and sends a notification with the picture.",
"complexity": "low"
}
},
{
"id": "'1610918759041'",
"result": {
"structured": "TRIGGER: At 03:00:00. CONDITIONS: (Day is Monday) AND (TV Powered On [binary_sensor.tv_powered_on] is off). ACTIONS: Send debug log message ':TV: Restarting Harmony hub.' with title ':couch_and_lamp: Living Room' via script.send_to_home_log, THEN turn off Harmony Hub Plug [switch.harmony_hub_plug], THEN wait for 1 minute, THEN turn on Harmony Hub Plug [switch.harmony_hub_plug].",
"natural_language": {
"trigger": "Every day at 3:00 AM.",
"conditions": "The day must be a Monday, and the TV Powered On [binary_sensor.tv_powered_on] sensor must be reporting that the TV is off.",
"action": "First, a debug log message is sent to the home log stating that the Harmony hub is restarting. Then, the Harmony Hub Plug [switch.harmony_hub_plug] is turned off. After a one-minute delay, the plug is turned back on."
},
"human_like": "Restarts the Harmony Hub every Monday at 3 AM if the TV is off, by power-cycling its plug.",
"complexity": "medium"
}
},
{
"id": "'1610388192224'",
"result": {
"structured": "TRIGGER: When TV Powered On [binary_sensor.tv_powered_on] turns on. CONDITIONS: None. ACTIONS: Execute the following actions in parallel: 1. Run script.send_to_home_log with message ':tv: TV Turned on.', title ':couch_and_lamp: Living Room', and log_level Debug. 2. Choose based on condition: IF Playstation Powered On [binary_sensor.playstation_powered_on] is on, THEN run script.living_room_select_game_input; OTHERWISE do nothing.",
"natural_language": {
"trigger": "When the TV Powered On [binary_sensor.tv_powered_on] sensor detects that the TV has been turned on.",
"conditions": "There are no conditions that must be met.",
"action": "Two actions are performed simultaneously. First, a debug message is sent to the home log stating that the TV has been turned on. Second, a check is made: if the Playstation Powered On [binary_sensor.playstation_powered_on] sensor indicates the PlayStation is also on, then a script is run to select the game input on the living room TV. If the PlayStation is off, nothing further happens."
},
"human_like": "Logs when the TV is turned on and, if the PlayStation is also on, automatically switches the TV to the game input.",
"complexity": "medium"
}
},
{
"id": "'1610388192225'",
"result": {
"structured": "TRIGGER: When TV Powered On [binary_sensor.tv_powered_on] changes from on to off AND remains off for 30 seconds. CONDITIONS: None. ACTIONS: (Send a debug log message ':tv: TV Turned off.' with title ':couch_and_lamp: Living Room' to the home log) AND (IF TV Backlight [light.tv_backlight] is on THEN (Send a debug log message 'Turning off :tv: TV backlight (WLED).' with title ':couch_and_lamp: Living Room' to the home log AND Turn off TV Backlight [light.tv_backlight])).",
"natural_language": {
"trigger": "When the TV Powered On [binary_sensor.tv_powered_on] sensor indicates the TV has been turned off and remains off for 30 seconds.",
"conditions": "There are no conditions that must be met.",
"action": "The automation logs a debug message stating the TV was turned off. Then, it checks if the TV Backlight [light.tv_backlight] is on. If it is, it logs another debug message about turning off the backlight and proceeds to turn off the TV Backlight [light.tv_backlight]."
},
"human_like": "Turns off the TV backlight and logs a message when the TV has been off for 30 seconds.",
"complexity": "medium"
}
},
{
"id": "'1754839043037'",
"result": {
"structured": "TRIGGER: When Living Room Ceiling Lights Input 0 [binary_sensor.living_room_ceiling_lights_input_0] changes state, provided the previous state is not 'unavailable' or 'unknown' AND the new state is not 'unavailable' or 'unknown'. CONDITIONS: None. ACTIONS: In parallel: 1. Execute script.send_to_home_log with a debug message 'Light switch flipped' and title ':couch_and_lamp: Living Room'. 2. Check the state of Living Room Ceiling [light.living_room_ceiling]. If it is off, activate the scene Living Room Ceiling Lights On [scene.living_room_ceiling_lights_on]. If it is not off (i.e., on), activate the scene Living Room Ceiling Lights Off [scene.living_room_ceiling_lights_off].",
"natural_language": {
"trigger": "Whenever the Living Room Ceiling Lights Input 0 [binary_sensor.living_room_ceiling_lights_input_0] changes its state, as long as it is not changing from or to an 'unavailable' or 'unknown' status.",
"conditions": "There are no conditions that must be met.",
"action": "The automation performs two actions simultaneously. First, it sends a debug log entry titled ':couch_and_lamp: Living Room' with the message 'Light switch flipped'. Second, it checks the current state of the Living Room Ceiling [light.living_room_ceiling]. If the light is off, it turns on the scene called Living Room Ceiling Lights On [scene.living_room_ceiling_lights_on]. If the light is on, it turns on the scene called Living Room Ceiling Lights Off [scene.living_room_ceiling_lights_off]."
},
"human_like": "Toggles the living room ceiling lights on or off, and logs the event, whenever the physical light switch is flipped.",
"complexity": "medium"
}
},
{
"id": "'1654005357582'",
"result": {
"structured": "TRIGGER: When Terinas Work Computer [group.terinas_work_computer] changes state to 'not_home' AND the previous state was NOT 'unavailable'. CONDITIONS: None. ACTIONS: Run script.send_to_home_log with message 'Terina's work laptop turned off.' and title ':couch_and_lamp: Living Room' at Debug level AND run script.check_terinas_work_laptop_status.",
"natural_language": {
"trigger": "When the group Terinas Work Computer [group.terinas_work_computer] changes to a state of 'not_home', provided it was not previously 'unavailable'.",
"conditions": "There are no additional conditions for this automation.",
"action": "Two actions are performed in parallel: first, a debug log message is sent with the title ':couch_and_lamp: Living Room' stating 'Terina's work laptop turned off.'; second, the script 'check_terinas_work_laptop_status' is executed."
},
"human_like": "Logs a message and runs a status check when Terina's work laptop is detected as turned off.",
"complexity": "low"
}
},
{
"id": "'1654005357583'",
"result": {
"structured": "TRIGGER: When Terinas Work Computer [group.terinas_work_computer] changes state to not_home, provided its previous state was not unavailable. CONDITIONS: None. ACTIONS: In parallel, run script.send_to_home_log with a message 'Terina's work laptop turned on.' and title ':couch_and_lamp: Living Room' at log level Debug, AND run script.check_terinas_work_laptop_status.",
"natural_language": {
"trigger": "When the group representing Terina's work computer [group.terinas_work_computer] becomes 'not_home', as long as it wasn't previously in an 'unavailable' state.",
"conditions": "There are no conditions for this automation.",
"action": "It performs two actions simultaneously: it logs a debug message to the home log stating 'Terina's work laptop turned on.' with the title ':couch_and_lamp: Living Room', and it runs the script 'check_terinas_work_laptop_status'."
},
"human_like": "Logs a message and runs a status check when Terina's work laptop is detected as being turned on.",
"complexity": "low"
}
},
{
"id": "'1678741966793'",
"result": {
"structured": "TRIGGER: When Family Computer [group.family_computer] OR Terinas Work Computer [group.terinas_work_computer] changes from state 'home' to state 'not_home' AND remains in 'not_home' for 5 minutes. CONDITIONS: Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] is on AND the current time is after sunrise AND the current time is after 08:00:30 AND the current time is before sunset AND Family Computer [group.family_computer] state is 'not_home' AND Terinas Work Computer [group.terinas_work_computer] state is 'not_home' AND (Living Room Blinds Left [cover.living_room_blinds_left] attribute current_tilt_position is 50 OR Living Room Blinds Middle [cover.living_room_blinds_middle] attribute current_tilt_position is 50 OR Living Room Blinds Right [cover.living_room_blinds_right] attribute current_tilt_position is 50). ACTIONS: Send a debug log message 'All computers turned off. Opening blinds.' via script.send_to_home_log AND, in parallel, for each blind (Living Room Blinds Left, Living Room Blinds Middle, Living Room Blinds Right) IF its current_tilt_position is 50, THEN set its tilt_position to 50.",
"natural_language": {
"trigger": "When either the Family Computer [group.family_computer] or Terinas Work Computer [group.terinas_work_computer] changes from being 'home' to 'not_home' and stays in that 'not_home' state for five minutes.",
"conditions": "The Enable Living Room Blind Automations [input_boolean.enable_living_room_blind_automations] switch must be on. The automation only runs during the day, specifically after sunrise, after 8:00:30 AM, and before sunset. Both the Family Computer [group.family_computer] and Terinas Work Computer [group.terinas_work_computer] must be in the 'not_home' state. Additionally, at least one of the living room blinds (Left, Middle, or Right) must have its slats tilted to a position of 50.",
"action": "Sends a debug log message stating 'All computers turned off. Opening blinds.' to the home log. Then, for each of the three living room blinds, if that specific blind's slats are currently at position 50, it sets the slats to position 50 again (effectively ensuring they are open to that specific angle)."
},
"human_like": "Opens the living room blinds to a specific angle when all computers have been turned off for five minutes during the daytime, provided the automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1652029607668'",
"result": {
"structured": "TRIGGER: When Meater Probe Target [sensor.meater_probe_target] is above Meater Probe Internal [sensor.meater_probe_internal]. CONDITIONS: None. ACTIONS: Execute script.send_to_home_log with a message containing the current state of Meater Probe Cooking [sensor.meater_probe_cooking].",
"natural_language": {
"trigger": "When the target temperature, measured by Meater Probe Target [sensor.meater_probe_target], exceeds the internal temperature, measured by Meater Probe Internal [sensor.meater_probe_internal].",
"conditions": "There are no conditions that must be met.",
"action": "Sends a notification to the home log stating that the item being cooked, as indicated by Meater Probe Cooking [sensor.meater_probe_cooking], has reached its target temperature."
},
"human_like": "Sends a notification when the target cooking temperature is reached.",
"complexity": "low"
}
},
{
"id": "'1652029734731'",
"result": {
"structured": "TRIGGER: When Meater Probe Cook State [sensor.meater_probe_cook_state] changes to 'started'. CONDITIONS: None. ACTIONS: Execute script 'send_to_home_log' with a message containing the current state of Meater Probe Cooking [sensor.meater_probe_cooking].",
"natural_language": {
"trigger": "When the Meater Probe Cook State [sensor.meater_probe_cook_state] changes to 'started'.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a notification to the home log with a message stating that the item being monitored by the Meater Probe Cooking [sensor.meater_probe_cooking] has started cooking."
},
"human_like": "Logs a message to the home log when cooking begins on the Meater probe.",
"complexity": "low"
}
},
{
"id": "'1625924056779'",
"result": {
"structured": "TRIGGER: When a mobile app notification action event occurs. CONDITIONS: None. ACTIONS: Choose one action sequence based on the notification action: If action is 'set_bedroom_blinds_30' AND bedroom blinds [cover.bedroom_blinds] current_position is above 30, then log message and set bedroom blinds [cover.bedroom_blinds] position to 30. If action is 'server_fan_off', then log message and turn off server fan [switch.server_fan]. If action is 'switch_on_office_fan', then log message and turn on office fan [switch.office_fan]. If action is 'switch_on_fridge_freezer', then log message and turn on EcoFlow Kitchen Plug [switch.ecoflow_kitchen_plug]. If action is 'switch_on_freezer', then log message and turn on freezer [switch.freezer]. If action is 'guest_mode_arm_alarm_and_turn_off_devices', then log message, set alarm to away mode, lock front door, and execute everybody leave home script. If action is 'guest_mode_arm_alarm_away' AND home mode [input_select.home_mode] is Guest, then log message, set alarm to away mode, and lock front door. If action is 'guest_mode_turn_off_devices', then log message and execute everybody leave home script. If action is 'switch_off_alarm', then log message and set alarm to disarmed mode. If action is 'switch_off_attic_lights', then log message and turn off attic light [light.attic]. If action is 'update_home_assistant', then log message and install Home Assistant Core Update [update.home_assistant_core_update] with backup. If action is 'zappi_stop', then log message and set MyEnergi Zappi Charge Mode [select.myenergi_zappi_charge_mode] to Stopped. Otherwise, do nothing.",
"natural_language": {
"trigger": "When a notification action is received from the mobile app.",
"conditions": "There are no global conditions for this automation.",
"action": "Depending on the specific action received, the automation will perform different tasks. If the action is to set the bedroom blinds to 30% and they are currently open more than 30%, it logs a message and closes them to 30%. If the action is to turn off the server fan, it logs and turns it off. If the action is to turn on the office fan, it logs and turns it on. If the action is to turn on the fridge freezer, it logs and turns on the EcoFlow Kitchen Plug. If the action is to turn on the freezer, it logs and turns on the freezer switch. If the action is for guest mode to arm the alarm and turn off devices, it logs, sets the alarm to away, locks the front door, and runs a script to turn off devices. If the action is for guest mode to arm the alarm in away mode and the home mode is set to 'Guest', it logs, sets the alarm to away, and locks the door. If the action is for guest mode to only turn off devices, it logs and runs the device turn-off script. If the action is to switch off the alarm, it logs and disarms the alarm. If the action is to switch off the attic lights, it logs and turns them off. If the action is to update Home Assistant, it logs and installs the core update with a backup. If the action is to stop the Zappi charger, it logs and sets its charge mode to 'Stopped'. If the action doesn't match any of these, nothing happens."
},
"human_like": "Routes various mobile notification actions to control blinds, fans, appliances, lights, the alarm system, and software updates throughout the home.",
"complexity": "medium"
}
},
{
"id": "'1701033189010'",
"result": {
"structured": "TRIGGER: When front door lock [lock.front_door] changes state, excluding changes from the 'unlocked' state. CONDITIONS: front door [binary_sensor.front_door] is closed (off) AND Enable Front Door Lock Automations [input_boolean.enable_front_door_lock_automations] is on. ACTIONS: If front door lock [lock.front_door] is 'locking' OR 'unlocking', then in parallel: run script Front Door Lock Status [script.front_door_lock_status] AND send a log message to the home log with title 'Porch' and message 'Front door \"{{ states('lock.front_door') }}\"'. Otherwise, if front door lock [lock.front_door] is 'locked' OR 'unlocked', then: send a log message to the home log with title 'Porch' and message 'Front door \"{{ states('lock.front_door') }}\"' AND turn off script Front Door Lock Status [script.front_door_lock_status].",
"natural_language": {
"trigger": "When the front door lock [lock.front_door] changes to any state, as long as it wasn't previously unlocked.",
"conditions": "The front door [binary_sensor.front_door] must be closed, and the automation switch Enable Front Door Lock Automations [input_boolean.enable_front_door_lock_automations] must be turned on.",
"action": "If the lock is in the process of locking or unlocking, it will simultaneously run the Front Door Lock Status [script.front_door_lock_status] script and send a notification to the home log. If the lock reaches a final state of locked or unlocked, it will send a notification to the home log and then stop the Front Door Lock Status [script.front_door_lock_status] script."
},
"human_like": "Logs the status of the front door lock and manages a status script when the door is closed and lock automations are enabled.",
"complexity": "medium"
}
},
{
"id": "'1752928735125'",
"result": {
"structured": "TRIGGER: When front door lock [lock.front_door] remains in any state for 5 minutes. CONDITIONS: None. ACTIONS: In parallel, press Front Door Reboot Nuki [button.front_door_reboot_nuki] AND run script.send_to_home_log with message 'Nuki hub is unavailable. Restarting Hub.', title 'Nuki', and log_level 'Debug'.",
"natural_language": {
"trigger": "When the front door lock [lock.front_door] remains in its current state, without any change, for a continuous period of five minutes.",
"conditions": "There are no additional conditions that must be met for this automation to proceed.",
"action": "Simultaneously, it presses the Front Door Reboot Nuki [button.front_door_reboot_nuki] button and sends a debug log message titled 'Nuki' with the text 'Nuki hub is unavailable. Restarting Hub.' to the home log."
},
"human_like": "Restarts the Nuki hub and logs a message if the front door lock becomes unresponsive for five minutes.",
"complexity": "low"
}
},
{
"id": "'1608655560832'",
"result": {
"structured": "TRIGGER: When Octoprint Printing [binary_sensor.octoprint_printing] changes from off to on. CONDITIONS: Enable 3D Printer Automations [input_boolean.enable_3d_printer_automations] is on. ACTIONS: Wait up to 60 seconds for OctoPrint Estimated Finish Time [sensor.octoprint_estimated_finish_time] to be above 0. Then, in parallel: 1. Turn on Prusa Fan [switch.prusa_fan]. 2. Execute script 'send_to_home_log' with a priming message. 3. Wait up to 60 seconds for OctoPrint Estimated Finish Time [sensor.octoprint_estimated_finish_time] to be above 0. 4. Execute script 'send_to_home_log' with a start message including the estimated time. 5. Choose a light action based on time of day and light state: IF after sunset OR before sunrise, execute script 'send_to_home_log' with a night message and turn on scene 3D Printer Light On [scene.3d_printer_light_on]. ELSE IF after sunrise AND before sunset AND Prusa [light.prusa] is on, execute script 'send_to_home_log' with a day message and turn on scene 3D Printer Light Off [scene.3d_printer_light_off]. OTHERWISE, execute script 'send_to_home_log' with a sunrise message and turn on scene 3D Printer Light Off [scene.3d_printer_light_off].",
"natural_language": {
"trigger": "When the Octoprint Printing [binary_sensor.octoprint_printing] sensor indicates that printing has started, changing from off to on.",
"conditions": "The automation must be enabled, meaning the Enable 3D Printer Automations [input_boolean.enable_3d_printer_automations] switch is turned on.",
"action": "First, the automation waits for the printer to provide a valid estimated finish time. Once that is received, it performs several actions simultaneously: it turns on the Prusa Fan [switch.prusa_fan], sends a notification that the printer is priming, waits again for the estimated finish time to be confirmed, and then sends a second notification with the estimated completion time. It also manages the printer light based on the time of day: if it's after sunset or before sunrise, it turns the light on and logs a message. If it's daytime and the light is already on, it turns the light off and logs a message. In all other cases, it turns the light off and logs a message about printing after sunrise."
},
"human_like": "This automation manages the 3D printer's fan and lighting when a print job starts, sending notifications and adjusting the light based on the time of day.",
"complexity": "high"
}
},
{
"id": "'1619873649348'",
"result": {
"structured": "TRIGGER: When OctoPrint Job Percentage [sensor.octoprint_job_percentage] exceeds 50%. CONDITIONS: Enable 3D Printer Automations [input_boolean.enable_3d_printer_automations] is on. ACTIONS: Execute script Send To Home Log [script.send_to_home_log] with a message stating the job is 50% complete and due to finish at the value of OctoPrint Estimated Finish Time [sensor.octoprint_estimated_finish_time].",
"natural_language": {
"trigger": "When the OctoPrint Job Percentage [sensor.octoprint_job_percentage] rises above 50%.",
"conditions": "The Enable 3D Printer Automations [input_boolean.enable_3d_printer_automations] switch must be turned on.",
"action": "Sends a notification to the home log, reporting that the 3D print job is 50% complete and providing its estimated finish time."
},
"human_like": "Sends a notification when the 3D printer job passes the halfway point, provided the automation feature is enabled.",
"complexity": "low"
}
},
{
"id": "'1623087278802'",
"result": {
"structured": "TRIGGER: When the time pattern matches every 30 minutes (minutes: /30, hours: *, seconds: *) OR When sunset occurs OR When sunrise occurs. CONDITIONS: None. ACTIONS: If Prusa [light.prusa] is on, then run script.3d_printer_check_turn_off_light; otherwise, run script.3d_printer_check_turn_on_light.",
"natural_language": {
"trigger": "The automation triggers every 30 minutes, at sunset, and at sunrise.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "If the Prusa light [light.prusa] is on, it runs a script to turn the light off. If the light is off, it runs a script to turn the light on."
},
"human_like": "Checks the 3D printer light every 30 minutes and at sunrise/sunset, turning it on or off as needed.",
"complexity": "medium"
}
},
{
"id": "'1613321560216'",
"result": {
"structured": "TRIGGER: When Octoprint Printing [binary_sensor.octoprint_printing] changes from on to off. CONDITIONS: Enable 3D Printer Automations [input_boolean.enable_3d_printer_automations] is on. ACTIONS: Execute script.send_to_home_log with a message containing the start time from OctoPrint Start Time [sensor.octoprint_start_time].",
"natural_language": {
"trigger": "When the Octoprint Printing [binary_sensor.octoprint_printing] sensor changes from indicating printing is active (on) to inactive (off).",
"conditions": "The Enable 3D Printer Automations [input_boolean.enable_3d_printer_automations] switch must be turned on.",
"action": "Sends a notification to the home log, reporting that the 3D print job has completed and including the time the print job started, which is retrieved from the OctoPrint Start Time [sensor.octoprint_start_time] sensor."
},
"human_like": "Sends a notification when the 3D printer finishes a print job, but only if the related automations are enabled.",
"complexity": "low"
}
},
{
"id": "'1656239435552'",
"result": {
"structured": "TRIGGER: When Prusa [light.prusa] remains on for 5 minutes. CONDITIONS: Enable 3D Printer Automations [input_boolean.enable_3d_printer_automations] is on. ACTIONS: Execute script.3d_printer_check_turn_off_light.",
"natural_language": {
"trigger": "When the Prusa light [light.prusa] has been turned on and stays on for five minutes.",
"conditions": "The automation must be enabled, meaning the Enable 3D Printer Automations [input_boolean.enable_3d_printer_automations] switch is set to on.",
"action": "Runs a script named '3d_printer_check_turn_off_light'."
},
"human_like": "Checks if the 3D printer light has been left on for five minutes and, if enabled, runs a script to potentially turn it off.",
"complexity": "low"
}
},
{
"id": "'168962611780'",
"result": {
"structured": "TRIGGER: When Octopus Energy Electricity Current Rate [sensor.octopus_energy_electricity_current_rate] changes state. CONDITIONS: None. ACTIONS: Execute the following actions in parallel: 1. IF Enable Solar Assistant Automations [input_boolean.enable_solar_assistant_automations] is on AND Growatt SPH Work Mode Priority [select.growatt_sph_work_mode_priority] is NOT unavailable THEN run script.solar_assistant_check_charging_mode with current electricity rate data. 2. IF Enable Zappi Automations [input_boolean.enable_zappi_automations] is on AND MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] is NOT EV Disconnected THEN run script.zappi_check_ev_charge with current electricity rate data. 3. IF MyEnergi Eddi Operating Mode [select.myenergi_eddi_operating_mode] is NOT Stopped AND home mode [input_select.home_mode] is NOT Holiday AND Enable Hot Water Automations [input_boolean.enable_hot_water_automations] is on THEN run script.hvac_check_eddi_boost_hot_water with current electricity rate data. 4. IF Enable Ecoflow Automations [input_boolean.enable_ecoflow_automations] is on THEN run script.ecoflow_check_charging_mode with current electricity rate data. 5. IF Enable Conservatory Under Floor Heating Automations [input_boolean.enable_conservatory_under_floor_heating_automations] is on THEN run script.conservatory_electricity_rate_change with current electricity rate data. 6. IF Model Y Charger [binary_sensor.model_y_charger] is Unplugged AND MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] is EV Disconnected AND Enable Tesla Automations [input_boolean.enable_tesla_automations] is on THEN run script.tesla_notify_low_electricity_rates. 7. IF Enable Conservatory Airer When Cost Below Nothing [input_boolean.enable_conservatory_airer_when_cost_below_nothing] is on OR Enable Conservatory Airer When Cost Nothing [input_boolean.enable_conservatory_airer_when_cost_nothing] is on THEN run script.check_conservatory_airer with current electricity rate data.",
"natural_language": {
"trigger": "Whenever the Octopus Energy Electricity Current Rate [sensor.octopus_energy_electricity_current_rate] sensor updates its value.",
"conditions": "There are no global conditions; each parallel action has its own set of checks.",
"action": "Several independent checks and actions are performed simultaneously. If solar assistant automations are enabled and the inverter is available, it checks the solar charging mode. If Zappi automations are enabled and an electric vehicle is connected, it checks the EV charging mode. If the Eddi water heater is not stopped, the house is not in holiday mode, and hot water automations are enabled, it checks for a hot water boost. If Ecoflow automations are enabled, it checks the battery charging mode. If conservatory underfloor heating automations are enabled, it adjusts the heating based on the rate. If both the Tesla and Zappi show no vehicle is plugged in and Tesla automations are enabled, it sends a notification about low rates. Finally, if either of the conservatory airer cost-based automations are enabled, it checks whether to operate the airer. All these actions use the latest electricity import and export rates from the trigger sensor."
},
"human_like": "When electricity rates change, this automation coordinates various home systems—like EV charging, hot water heating, battery storage, and underfloor heating—to optimize for cost, and can notify you if rates are low and your car isn't plugged in.",
"complexity": "high"
}
},
{
"id": "'168962611781'",
"result": {
"structured": "TRIGGER: When MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] changes to any state other than 'EV Disconnected' OR every 3 minutes (time pattern). CONDITIONS: MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] is NOT 'EV Disconnected'. ACTIONS: Execute script.refresh_octopus_intelligent_dispatching.",
"natural_language": {
"trigger": "The automation triggers when the MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] changes to any state except 'EV Disconnected', or it triggers every 3 minutes based on a repeating time pattern.",
"conditions": "The automation only proceeds if the MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] is not currently 'EV Disconnected'.",
"action": "Calls the script 'refresh_octopus_intelligent_dispatching' to refresh intelligent dispatch data from Octopus Energy."
},
"human_like": "Refreshes intelligent charging schedules from Octopus Energy when the electric vehicle is plugged in, checking every 3 minutes.",
"complexity": "medium"
}
},
{
"id": "'1744064001680'",
"result": {
"structured": "TRIGGER: When Danny S Phone [device_tracker.danny_s_phone] changes state. CONDITIONS: None. ACTIONS: Publish an MQTT message to the topic 'owntracks/danny/iphone' with a JSON payload containing location data (latitude, longitude, altitude, vertical_accuracy, gps_accuracy, speed, course, and a timestamp) derived from the attributes of Danny S Phone [device_tracker.danny_s_phone]. The message is retained.",
"natural_language": {
"trigger": "Whenever the state of Danny S Phone [device_tracker.danny_s_phone] changes.",
"conditions": "There are no conditions that must be met.",
"action": "Publishes a location update message to the MQTT topic 'owntracks/danny/iphone'. The message contains the phone's current GPS coordinates, altitude, accuracy, speed, and direction, along with the current timestamp, and is set to be retained by the MQTT broker."
},
"human_like": "Forwards the location of Danny's phone to an OwnTracks MQTT topic whenever it updates.",
"complexity": "low"
}
},
{
"id": "'1744064001681'",
"result": {
"structured": "TRIGGER: When Oneplus 10 [device_tracker.oneplus_10] changes state. CONDITIONS: None. ACTIONS: Publish an MQTT message to the topic 'owntracks/terina/oneplus' with a JSON payload containing the location data (latitude, longitude, altitude, vertical_accuracy, gps_accuracy, speed, course, and timestamp) from Oneplus 10 [device_tracker.oneplus_10] and set the retain flag to true.",
"natural_language": {
"trigger": "Whenever the state of the Oneplus 10 [device_tracker.oneplus_10] device tracker changes.",
"conditions": "There are no conditions for this automation.",
"action": "Publishes the current location data from the Oneplus 10 [device_tracker.oneplus_10] device tracker to the MQTT topic 'owntracks/terina/oneplus'. The data includes latitude, longitude, altitude, accuracy, speed, and direction, and the message is retained on the broker."
},
"human_like": "Sends the location from Terina's OnePlus 10 phone to an OwnTracks MQTT topic whenever the device's state updates.",
"complexity": "low"
}
},
{
"id": "'1744064001682'",
"result": {
"structured": "TRIGGER: When the state of Leos Iphone [device_tracker.leos_iphone] changes. CONDITIONS: None. ACTIONS: Publish a JSON payload to the MQTT topic 'owntracks/leo/iphone' with the following location data from Leos Iphone [device_tracker.leos_iphone]: latitude, longitude, altitude (default 0), vertical accuracy (default 0), GPS accuracy (default 0), speed (default 0), course (default 0), and a current timestamp. The message is retained.",
"natural_language": {
"trigger": "Whenever the state of the device tracker for Leos Iphone [device_tracker.leos_iphone] updates.",
"conditions": "There are no conditions; the action runs every time the trigger fires.",
"action": "Publishes a detailed location update for Leo's iPhone to the MQTT topic 'owntracks/leo/iphone'. The message includes the phone's current latitude, longitude, altitude, accuracy metrics, speed, direction, and a timestamp, and is set to be retained by the MQTT broker."
},
"human_like": "Forwards the location of Leo's iPhone to an OwnTracks MQTT topic whenever it updates, to replace Google Maps Timeline functionality.",
"complexity": "medium"
}
},
{
"id": "'1661076689668'",
"result": {
"structured": "TRIGGER: When Growatt SPH Battery State of Charge [sensor.growatt_sph_battery_state_of_charge] rises above the value of input_number.battery_charged_notification. CONDITIONS: (Total Solar Forecast Estimated Energy Production This Hour [sensor.total_solar_forecast_estimated_energy_production_this_hour] is above 0 OR Total Solar Forecast Estimated Energy Production Next Hour [sensor.total_solar_forecast_estimated_energy_production_next_hour] is above 0) AND NOT (Growatt SPH Inverter Mode [sensor.growatt_sph_inverter_mode] is Battery first) AND (the trigger state change is NOT from an 'unknown' state). ACTIONS: Run script energy_notify_excess_solar.",
"natural_language": {
"trigger": "When the battery's state of charge, measured by Growatt SPH Battery State of Charge [sensor.growatt_sph_battery_state_of_charge], exceeds a user-defined threshold set by input_number.battery_charged_notification.",
"conditions": "If there is forecasted solar energy production, meaning either the Total Solar Forecast Estimated Energy Production This Hour [sensor.total_solar_forecast_estimated_energy_production_this_hour] or the Total Solar Forecast Estimated Energy Production Next Hour [sensor.total_solar_forecast_estimated_energy_production_next_hour] is greater than zero. Also, the inverter must not be in 'Battery first' mode, as indicated by Growatt SPH Inverter Mode [sensor.growatt_sph_inverter_mode]. Finally, the automation only runs if the battery's state of charge was not previously 'unknown' before the change.",
"action": "Executes the script 'energy_notify_excess_solar' to send a notification or perform related actions."
},
"human_like": "Notifies when the battery is fully charged and there is excess solar energy forecasted, so the energy can be used elsewhere.",
"complexity": "medium"
}
},
{
"id": "'1660858653319'",
"result": {
"structured": "TRIGGER: At 21:00:00 daily. CONDITIONS: The tariff code for event.octopus_energy_electricity_current_day_rates contains the substring 'AGILE' (case-insensitive). ACTIONS: First, run script.update_solcast. Then, in parallel: 1. If Total Solar Forecast Estimated Energy Production Tomorrow [sensor.total_solar_forecast_estimated_energy_production_tomorrow] is below Solar Generation Minimum Threshold [input_number.solar_generation_minimum_threshold], then run script.send_to_home_log with a formatted message and increment Consecutive Forecast Days Below Solar Generation [input_number.consecutive_forecast_days_below_solar_generation] by 1. Otherwise, set Consecutive Forecast Days Below Solar Generation [input_number.consecutive_forecast_days_below_solar_generation] to 0. 2. Run script.energy_notify_tomorrows_solar_forecast.",
"natural_language": {
"trigger": "Every day at 9:00 PM.",
"conditions": "The current electricity tariff from Octopus Energy must be an 'AGILE' tariff.",
"action": "First, the automation updates the solar forecast data. Then, it performs two actions in parallel: It checks if the forecasted solar energy production for tomorrow is below a set minimum threshold. If it is, it logs a detailed message to the home log and increases a counter that tracks consecutive days of low forecasts. If the forecast is not below the threshold, it resets that counter to zero. Simultaneously, it sends a notification about tomorrow's solar forecast."
},
"human_like": "Checks the solar forecast each evening and logs or resets a counter based on whether the forecast is low, while also sending a forecast notification.",
"complexity": "medium"
}
},
{
"id": "'1664743590782'",
"result": {
"structured": "TRIGGER: When Growatt SPH Battery State of Charge [sensor.growatt_sph_battery_state_of_charge] exceeds the value of Growatt Battery Charged Threshold [input_number.growatt_battery_charged_threshold]. CONDITIONS: Battery Charged Today [input_boolean.battery_charged_today] is off. ACTIONS: Log a debug message to the home log with title ':sunny: :zap: Solar' and message 'Battery charged today'. Turn on Battery Charged Today [input_boolean.battery_charged_today]. IF Consecutive Days Battery Not Charged [input_number.consecutive_days_battery_not_charged] is greater than 0, THEN log a debug message 'Resetting days not fully charged.' and set Consecutive Days Battery Not Charged [input_number.consecutive_days_battery_not_charged] to 0.",
"natural_language": {
"trigger": "When the battery's state of charge, reported by Growatt SPH Battery State of Charge [sensor.growatt_sph_battery_state_of_charge], rises above a user-defined threshold set in Growatt Battery Charged Threshold [input_number.growatt_battery_charged_threshold].",
"conditions": "The automation only runs if the flag Battery Charged Today [input_boolean.battery_charged_today] is currently off, indicating the battery has not been marked as charged yet today.",
"action": "The automation logs a debug message titled ':sunny: :zap: Solar' stating 'Battery charged today' to the home log. It then turns on the flag Battery Charged Today [input_boolean.battery_charged_today]. Additionally, if the counter for Consecutive Days Battery Not Charged [input_number.consecutive_days_battery_not_charged] is greater than zero, it logs another debug message about resetting the counter and sets the counter's value back to zero."
},
"human_like": "Marks the battery as having been charged for the day when its charge level exceeds a set threshold, and resets a counter tracking days without a full charge.",
"complexity": "medium"
}
},
{
"id": "'1664743700827'",
"result": {
"structured": "TRIGGER: At midnight (00:00:00). CONDITIONS: None. ACTIONS: If Battery Charged Today [input_boolean.battery_charged_today] is on, then in parallel: log 'Resetting battery charged today.' via script.send_to_home_log AND turn off Battery Charged Today [input_boolean.battery_charged_today]. If Battery Charged Today [input_boolean.battery_charged_today] is off, then: log 'Battery did not fully charge today (> [value of Growatt Battery Charged Threshold [input_number.growatt_battery_charged_threshold]]). Adding a day to count ([value of Consecutive Days Battery Not Charged [input_number.consecutive_days_battery_not_charged]]).' via script.send_to_home_log AND increment Consecutive Days Battery Not Charged [input_number.consecutive_days_battery_not_charged] by 1.",
"natural_language": {
"trigger": "The automation runs every day at midnight.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "The automation checks the status of Battery Charged Today [input_boolean.battery_charged_today]. If it is on, it logs a debug message stating 'Resetting battery charged today.' and then turns it off. If it is off, it logs a debug message stating that the battery did not fully charge above the threshold set by Growatt Battery Charged Threshold [input_number.growatt_battery_charged_threshold] and increments the counter Consecutive Days Battery Not Charged [input_number.consecutive_days_battery_not_charged] by one."
},
"human_like": "Resets the daily battery charge flag at midnight, logging the action and tracking consecutive days the battery hasn't fully charged.",
"complexity": "medium"
}
},
{
"id": "'1663589154517'",
"result": {
"structured": "TRIGGER: When Total Solar Forecast Estimated Energy Production Today [sensor.total_solar_forecast_estimated_energy_production_today] exceeds the value of Solar Generation Minimum Threshold [input_number.solar_generation_minimum_threshold]. CONDITIONS: None. ACTIONS: Execute the script send_to_home_log with a debug message 'Production above threshold. Resetting Forecast' and title ':sunny: :zap: Solar'.",
"natural_language": {
"trigger": "When the sensor for the total solar forecast estimated energy production today [sensor.total_solar_forecast_estimated_energy_production_today] rises above the value set in the Solar Generation Minimum Threshold [input_number.solar_generation_minimum_threshold].",
"conditions": "There are no additional conditions that must be met.",
"action": "Sends a debug message to the home log with the title ':sunny: :zap: Solar' and the text 'Production above threshold. Resetting Forecast'."
},
"human_like": "Logs a debug message when the day's solar production forecast exceeds a set minimum threshold.",
"complexity": "low"
}
},
{
"id": "'1664744505278'",
"result": {
"structured": "TRIGGER: When Consecutive Days Battery Not Charged [input_number.consecutive_days_battery_not_charged] is above 6. CONDITIONS: None. ACTIONS: Execute script.send_direct_notification with data: message 'It has been {{ states('input_number.consecutive_days_battery_not_charged') }} days where the battery has not been charged fully.', title ':sunny: :zap: Solar', and people entity_id list containing person.danny.",
"natural_language": {
"trigger": "When the value of Consecutive Days Battery Not Charged [input_number.consecutive_days_battery_not_charged] rises above 6.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a direct notification to Danny [person.danny] with the title ':sunny: :zap: Solar' and a message stating how many consecutive days the battery has not been fully charged."
},
"human_like": "Sends a solar battery alert to Danny when the battery hasn't been fully charged for more than six consecutive days.",
"complexity": "low"
}
},
{
"id": "'1663588514009'",
"result": {
"structured": "TRIGGER: When Consecutive Forecast Days Below Solar Generation [input_number.consecutive_forecast_days_below_solar_generation] is above 6. CONDITIONS: None. ACTIONS: Execute script.send_direct_notification with a message containing the current value of Consecutive Forecast Days Below Solar Generation [input_number.consecutive_forecast_days_below_solar_generation] and a title, targeting danny person [person.danny].",
"natural_language": {
"trigger": "When the number of consecutive forecast days with low solar generation, tracked by Consecutive Forecast Days Below Solar Generation [input_number.consecutive_forecast_days_below_solar_generation], exceeds 6.",
"conditions": "There are no conditions that need to be met.",
"action": "Sends a direct notification to danny person [person.danny] with a message stating how many days there have been with low solar generation and a title related to solar energy."
},
"human_like": "Sends a notification when the forecast predicts low solar generation for more than six consecutive days.",
"complexity": "low"
}
},
{
"id": "'1674508693884'",
"result": {
"structured": "TRIGGER: At 15:55:00 daily. CONDITIONS: Growatt SPH Battery State of Charge [sensor.growatt_sph_battery_state_of_charge] is greater than (Growatt SPH Load First Stop Discharge [number.growatt_sph_load_first_stop_discharge] + 1). ACTIONS: Execute script.send_direct_notification with a message containing the current battery percentage and remaining charge duration to person danny [person.danny].",
"natural_language": {
"trigger": "Every day at 3:55 PM.",
"conditions": "If the current battery state of charge, reported by Growatt SPH Battery State of Charge [sensor.growatt_sph_battery_state_of_charge], is more than one percentage point above the value set in Growatt SPH Load First Stop Discharge [number.growatt_sph_load_first_stop_discharge].",
"action": "Sends a direct notification to danny [person.danny] with the current battery percentage and the estimated remaining charge time."
},
"human_like": "Sends a daily battery status notification in the afternoon if the battery charge is sufficiently high.",
"complexity": "low"
}
},
{
"id": "'1704121569476'",
"result": {
"structured": "TRIGGER: When the time is 14:00:00 OR when the time is 15:00:00. CONDITIONS: (Battery Charge Remaining Hours [sensor.battery_charge_remaining_hours] projected runtime is less than the time today at 19:00) AND (Growatt SPH Inverter Mode [sensor.growatt_sph_inverter_mode] is NOT in state 'Battery first') AND (The tariff code attribute of event.octopus_energy_electricity_current_day_rates contains 'AGILE'). ACTIONS: Execute script.send_direct_notification with a message indicating the battery will not last beyond 19:00, directed to danny person [person.danny].",
"natural_language": {
"trigger": "The automation triggers daily at 2:00 PM and again at 3:00 PM.",
"conditions": "It checks if the projected battery runtime is less than the time 7:00 PM today, if the inverter is not currently set to 'Battery first' mode, and if the current electricity tariff is an Agile tariff.",
"action": "Sends a direct notification to Danny, warning that the battery may not last until the end of the peak time and suggesting to consider charging it."
},
"human_like": "Sends a reminder to Danny in the afternoon if the battery is predicted to run out before the evening peak ends and it's not already charging.",
"complexity": "medium"
}
},
{
"id": "'1680444237958'",
"result": {
"structured": "TRIGGER: When Growatt SPH Load Power [sensor.growatt_sph_load_power] becomes 0 and remains 0 for 1 minute. CONDITIONS: None. ACTIONS: Run the script script.send_direct_notification with a message 'No electricity consumption detected for over a minute. Check for power cut.' and title ':warning: :zap: :house_with_garden: House :warning:'.",
"natural_language": {
"trigger": "When the Growatt SPH Load Power [sensor.growatt_sph_load_power] sensor reads zero watts for a continuous period of one minute.",
"conditions": "There are no additional conditions.",
"action": "Sends a direct notification with the title ':warning: :zap: :house_with_garden: House :warning:' and the message 'No electricity consumption detected for over a minute. Check for power cut.'."
},
"human_like": "Sends an alert if the house's electricity consumption drops to zero for a minute, warning of a possible power cut.",
"complexity": "low"
}
},
{
"id": "'1712404842177'",
"result": {
"structured": "TRIGGER: When House Current [sensor.house_current] exceeds the value of Grid Max Import Power Warning [sensor.grid_max_import_power_warning]. CONDITIONS: None. ACTIONS: Execute script send_direct_notification with a message containing the warning threshold and the cut-out fuse size, and send it to danny person [person.danny] and terina person [person.terina].",
"natural_language": {
"trigger": "When the House Current [sensor.house_current] sensor reports a value higher than the current value of the Grid Max Import Power Warning [sensor.grid_max_import_power_warning] sensor.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a direct notification to both danny person [person.danny] and terina person [person.terina]. The notification includes a warning that the current power draw is close to the configured warning limit and the cut-out fuse size, suggesting they consider turning devices off."
},
"human_like": "Sends a warning notification to the household members when the home's power consumption gets too high, to help avoid tripping the main fuse.",
"complexity": "low"
}
},
{
"id": "'1719080490915'",
"result": {
"structured": "TRIGGER: When Octopus Energy Octoplus Saving Sessions [binary_sensor.octopus_energy_octoplus_saving_sessions] changes to on, provided its previous state was not unavailable. CONDITIONS: None. ACTIONS: Execute script 'send_direct_notification' with parameters: message 'Energy Saver Session Started', title 'Energy', and recipients danny person [person.danny] AND terina person [person.terina].",
"natural_language": {
"trigger": "When the Octopus Energy Octoplus Saving Sessions [binary_sensor.octopus_energy_octoplus_saving_sessions] sensor turns on, but only if it was not previously in an 'unavailable' state.",
"conditions": "There are no additional conditions that must be met.",
"action": "Sends a direct notification with the title 'Energy' and the message 'Energy Saver Session Started' to both danny person [person.danny] and terina person [person.terina]."
},
"human_like": "Sends a notification to Danny and Terina when an energy-saving session from Octopus Energy begins.",
"complexity": "low"
}
},
{
"id": "'1719080490916'",
"result": {
"structured": "TRIGGER: When Octopus Energy Octoplus Saving Sessions [binary_sensor.octopus_energy_octoplus_saving_sessions] changes state to off, provided its previous state was not unavailable. CONDITIONS: None. ACTIONS: Execute script.send_direct_notification with data: message 'Energy Saver Session Finished', title 'Energy', and send to people danny person [person.danny] AND terina person [person.terina].",
"natural_language": {
"trigger": "When the Octopus Energy Octoplus Saving Sessions [binary_sensor.octopus_energy_octoplus_saving_sessions] turns off, as long as it wasn't previously in an unavailable state.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a direct notification with the title 'Energy' and the message 'Energy Saver Session Finished' to both danny person [person.danny] and terina person [person.terina]."
},
"human_like": "Sends a notification to Danny and Terina when an energy-saving session from Octopus Energy has ended.",
"complexity": "low"
}
},
{
"id": "'1606428361967'",
"result": {
"structured": "TRIGGER: When Office Motion 2 Presence [binary_sensor.office_motion_2_presence] changes to on OR When Office Motion 2 Target Distance [sensor.office_motion_2_target_distance] becomes greater than 0.1. CONDITIONS: Enable Office Motion Triggers [input_boolean.enable_office_motion_triggers] is on AND (Office 2 [light.office_2] is on OR Office 3 [light.office_3] is on). ACTIONS: Choose based on conditions: 1. IF (It is before sunset (with a 1-hour offset) AND Office Motion 2 Illuminance [sensor.office_motion_2_illuminance] is greater than Office Light Level Threshold [input_number.office_light_level_threshold] AND Office Motion 2 Illuminance [sensor.office_motion_2_illuminance] is not unavailable) THEN send a debug log message and cancel Office Lights Off [timer.office_lights_off]. 2. ELSE IF (Office Motion 2 Illuminance [sensor.office_motion_2_illuminance] is less than Office Light Level Threshold [input_number.office_light_level_threshold] AND (Office 2 [light.office_2] brightness is less than 200 OR Office 3 [light.office_3] brightness is less than 200)) THEN turn on Office Main Light On [scene.office_main_light_on], send a debug log message, and cancel Office Lights Off [timer.office_lights_off]. 3. ELSE IF ((Office Motion 2 Illuminance [sensor.office_motion_2_illuminance] is greater than Office Light Level Threshold [input_number.office_light_level_threshold] OR Office Motion 2 Illuminance [sensor.office_motion_2_illuminance] is unavailable) AND (Office 2 [light.office_2] brightness is less than 200 OR Office 3 [light.office_3] brightness is less than 200)) THEN turn on Office Main Light Off [scene.office_main_light_off], send a debug log message, and cancel Office Lights Off [timer.office_lights_off]. 4. ELSE IF Office Lights Off [timer.office_lights_off] is active THEN turn on Office Main Light Off [scene.office_main_light_off], send a debug log message, and cancel Office Lights Off [timer.office_lights_off]. 5. ELSE do nothing.",
"natural_language": {
"trigger": "When motion is detected by Office Motion 2 Presence [binary_sensor.office_motion_2_presence], or when the target distance measured by Office Motion 2 Target Distance [sensor.office_motion_2_target_distance] exceeds 0.1 units.",
"conditions": "The automation must be enabled via Enable Office Motion Triggers [input_boolean.enable_office_motion_triggers] being on, and at least one of the office lights, Office 2 [light.office_2] or Office 3 [light.office_3], must be turned on.",
"action": "Depending on the current light and environmental conditions, the automation will either log a message and cancel a timer, turn on a bright light scene, or turn off the lights. If it's bright enough before sunset, it logs the event. If it's dark and the lights are dim, it turns on the bright scene. If it's bright (or the sensor is unavailable) and the lights are dim, it turns off the lights. If a timer for turning off the lights is already running, it cancels it and turns the lights off. All actions include sending a debug log message and cancelling the Office Lights Off [timer.office_lights_off] timer."
},
"human_like": "Adjusts the office lighting based on motion, ambient brightness, and the current state of the lights, ensuring lights are only turned on when needed and turned off when it's bright enough.",
"complexity": "high"
}
},
{
"id": "'1632064858461'",
"result": {
"structured": "TRIGGER: When Office Motion 2 Presence [binary_sensor.office_motion_2_presence] changes to on OR When Office Motion 2 Target Distance [sensor.office_motion_2_target_distance] becomes greater than 0.1. CONDITIONS: Enable Office Motion Triggers [input_boolean.enable_office_motion_triggers] is on AND (Office 2 [light.office_2] is off OR Office 3 [light.office_3] is off). ACTIONS: Choose based on conditions. If (before sunset with a 1-hour offset AND Office Motion 2 Illuminance [sensor.office_motion_2_illuminance] is greater than Office Light Level Threshold [input_number.office_light_level_threshold]) OR Office Motion 2 Illuminance [sensor.office_motion_2_illuminance] is unavailable, then in parallel: send a debug log message, cancel Office Lights Off [timer.office_lights_off], and sequentially activate Office Room Brightness Above Threshold [scene.office_room_brightness_above_threshold] then after 1 second turn off Office 4 [light.office_4]. Otherwise (default), in parallel: activate Office Main Light On [scene.office_main_light_on], send a debug log message, and cancel Office Lights Off [timer.office_lights_off].",
"natural_language": {
"trigger": "When motion is detected by the Office Motion 2 Presence [binary_sensor.office_motion_2_presence] or when the target distance measured by Office Motion 2 Target Distance [sensor.office_motion_2_target_distance] exceeds 0.1.",
"conditions": "The automation must be enabled via Enable Office Motion Triggers [input_boolean.enable_office_motion_triggers] being on, and at least one of the main office lights, Office 2 [light.office_2] or Office 3 [light.office_3], must be off.",
"action": "If it is before sunset (with a one-hour offset) and the room illuminance from Office Motion 2 Illuminance [sensor.office_motion_2_illuminance] is above the set threshold, or if the illuminance sensor is unavailable, the automation logs a debug message, cancels any pending light-off timer, sets a specific brightness scene, and turns off the Office 4 [light.office_4] light after a short delay. Otherwise, it turns on the main office light scene, logs a message, and cancels the light-off timer."
},
"human_like": "Turns on the office lights when motion is detected and it's dark enough, but only logs a message and adjusts a secondary light if it's still bright or the sensor is unavailable.",
"complexity": "high"
}
},
{
"id": "'1587044886896'",
"result": {
"structured": "TRIGGER: When Office Motion 2 Target Distance [sensor.office_motion_2_target_distance] remains below 0.01 for 2 minutes. CONDITIONS: Enable Office Motion Triggers [input_boolean.enable_office_motion_triggers] is on AND Office Motion 2 Target Distance [sensor.office_motion_2_target_distance] is below 0.01 AND Office Motion 2 Presence [binary_sensor.office_motion_2_presence] is off. ACTIONS: In parallel: Send a debug log message with title ':office: Office' and message ':no_pedestrians: No motion in the office. Starting :hourglass_flowing_sand: timer for 2 minutes before turning lights off.' AND Start timer Office Lights Off [timer.office_lights_off] with a duration of 1 minute.",
"natural_language": {
"trigger": "When the Office Motion 2 Target Distance [sensor.office_motion_2_target_distance] stays below 0.01 for a continuous period of two minutes.",
"conditions": "If the Enable Office Motion Triggers [input_boolean.enable_office_motion_triggers] is switched on, the Office Motion 2 Target Distance [sensor.office_motion_2_target_distance] is currently below 0.01, and the Office Motion 2 Presence [binary_sensor.office_motion_2_presence] is not detecting any presence.",
"action": "Sends a debug notification to the home log stating that no motion has been detected and a timer has been started, and simultaneously starts the Office Lights Off [timer.office_lights_off] timer for one minute."
},
"human_like": "Starts a one-minute countdown to turn off the office lights when no motion has been detected for two minutes and motion triggers are enabled.",
"complexity": "medium"
}
},
{
"id": "'1587044886897'",
"result": {
"structured": "TRIGGER: When timer Office Lights Off [timer.office_lights_off] finishes. CONDITIONS: Enable Office Motion Triggers [input_boolean.enable_office_motion_triggers] is on. ACTIONS: Run two actions in parallel: 1) Execute script send_to_home_log with a debug message stating no motion in the office for 2 minutes and turning lights off. 2) Turn on scene Office Main Light Off [scene.office_main_light_off].",
"natural_language": {
"trigger": "When the timer named Office Lights Off [timer.office_lights_off] finishes.",
"conditions": "The automation is only allowed to run if the switch Enable Office Motion Triggers [input_boolean.enable_office_motion_triggers] is turned on.",
"action": "Two actions are performed simultaneously: a debug message is sent to the home log stating that there has been no motion in the office for two minutes and the lights are being turned off, and the scene Office Main Light Off [scene.office_main_light_off] is activated to turn off the office lights."
},
"human_like": "Turns off the office lights and logs a message when a timer expires, provided motion-based automation is enabled.",
"complexity": "low"
}
},
{
"id": "'1622584959878'",
"result": {
"structured": "TRIGGER: When Office Area Mean Temperature [sensor.office_area_mean_temperature] rises above 26°C OR When Office Area Mean Temperature [sensor.office_area_mean_temperature] remains above 29°C for 1 minute OR When Office Area Mean Temperature [sensor.office_area_mean_temperature] remains above 31°C for 1 minute. CONDITIONS: Office Fan [switch.office_fan] is off. ACTIONS: Choose from the following options based on conditions: 1) IF (tracked people group [group.tracked_people] is home) AND (time is after 08:30:00 AND before 22:00:00) THEN send a debug log message and turn on Office Fan [switch.office_fan]. 2) ELSE IF Office Area Mean Temperature [sensor.office_area_mean_temperature] is above 29°C THEN send a debug log message and send a notification to danny person [person.danny] asking to turn on the fan. 3) ELSE IF Office Area Mean Temperature [sensor.office_area_mean_temperature] is above 31°C THEN send a debug log message and turn on Office Fan [switch.office_fan]. 4) OTHERWISE do nothing.",
"natural_language": {
"trigger": "The automation triggers when the Office Area Mean Temperature [sensor.office_area_mean_temperature] exceeds 26°C, or when it remains above 29°C for one minute, or when it remains above 31°C for one minute.",
"conditions": "The automation only runs if the Office Fan [switch.office_fan] is currently switched off.",
"action": "Depending on the situation, the automation will perform one of three actions. If someone is home and it's between 8:30 AM and 10:00 PM, it will turn on the fan and log a message. If the temperature is above 29°C, it will send a notification to Danny asking if the fan should be turned on. If the temperature is above 31°C, it will turn the fan on automatically and log a warning."
},
"human_like": "Automatically manages the office fan based on temperature, turning it on when it's hot, and sends a notification for approval at a high temperature if someone is home during the day.",
"complexity": "medium"
}
},
{
"id": "'1728046359271'",
"result": {
"structured": "TRIGGER: At 03:00:00. CONDITIONS: Office Fan [switch.office_fan] is on. ACTIONS: Turn off Office Fan [switch.office_fan].",
"natural_language": {
"trigger": "Every day at 3:00 AM.",
"conditions": "If the Office Fan [switch.office_fan] is currently switched on.",
"action": "Turns the Office Fan [switch.office_fan] off."
},
"human_like": "Automatically turns off the office fan at 3 AM if it was left on.",
"complexity": "low"
}
},
{
"id": "'1619865008647'",
"result": {
"structured": "TRIGGER: When jd computer group [group.jd_computer] changes state from not_home to home. CONDITIONS: None. ACTIONS: In parallel: 1) Execute script.send_to_home_log with message ':level_slider: Turned on GoXLR.', title ':desktop_computer: Computer', and log_level Debug. 2) Check if Office Monitor Bar [switch.office_monitor_bar] is off. If true, then: a) Turn on Office Monitor Bar [switch.office_monitor_bar]. b) Execute script.send_to_home_log with message 'Turned on monitor light.', title ':desktop_computer: Computer', and log_level Debug.",
"natural_language": {
"trigger": "When the jd computer group [group.jd.computer] changes from a 'not_home' state to a 'home' state.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "The automation performs two tasks simultaneously. First, it logs a debug message to the home log stating that the GoXLR has been turned on. Second, it checks if the Office Monitor Bar [switch.office_monitor_bar] is off. If it is, the automation turns the monitor bar on and logs another debug message confirming the action."
},
"human_like": "Turns on the GoXLR and the monitor light when the computer is detected as being on.",
"complexity": "medium"
}
},
{
"id": "'1606256309890'",
"result": {
"structured": "TRIGGER: When jd computer group [group.jd_computer] changes from home to not_home AND remains in not_home for 10 minutes. CONDITIONS: Udm Pro [device_tracker.udm_pro] is NOT unavailable. ACTIONS: Execute the following actions in parallel: 1. Run script.send_to_home_log with message 'Turned off for more than 10 minutes.', title ':desktop_computer: Computer', and log_level Debug. 2. Activate scene Office Desk Lights Off [scene.office_desk_lights_off]. 3. Run script.send_to_home_log with message 'Turned off desk lights.' and log_level Debug. 4. Run script.send_to_home_log with message 'Turned off for more than 10 minutes. Turned off :level_slider: goXLR', title ':desktop_computer: Computer', and log_level Debug. 5. Run script.office_turn_off_backup_drive. 6. Run script.ecoflow_office_turn_off_plug.",
"natural_language": {
"trigger": "When the jd computer group [group.jd_computer] changes from being 'home' to 'not_home' and stays in the 'not_home' state for at least 10 minutes.",
"conditions": "The Udm Pro [device_tracker.udm_pro] device tracker must be available; it cannot be in an 'unavailable' state.",
"action": "The automation performs several actions simultaneously: it logs a debug message about the computer being off for more than 10 minutes, turns off the office desk lights by activating the 'Office Desk Lights Off' scene [scene.office_desk_lights_off], logs a message confirming the desk lights are off, logs another debug message about turning off the goXLR device, runs a script to turn off a backup drive, and runs a script to turn off an EcoFlow plug in the office."
},
"human_like": "Turns off office lights and devices when the computer has been off for 10 minutes, ensuring the network router is available.",
"complexity": "medium"
}
},
{
"id": "'1678741966796'",
"result": {
"structured": "TRIGGER: When jd computer group [group.jd_computer] changes from state 'home' to state 'not_home' AND remains in 'not_home' for 1 minute. CONDITIONS: None. ACTIONS: IF Dannys Work Computer [group.dannys_work_computer] is 'not_home' THEN execute in parallel: 1. Run script.send_to_home_log with message 'Computer turned off. Turning monitor light off.', title ':office: Office', and log level 'Debug'. 2. Turn off Office Monitor Bar [switch.office_monitor_bar].",
"natural_language": {
"trigger": "When the jd computer group [group.jd_computer] changes from being at home to being away and stays away for one minute.",
"conditions": "There are no additional conditions.",
"action": "If Dannys Work Computer [group.dannys_work_computer] is also away, then two actions are performed simultaneously: a debug log message is sent stating 'Computer turned off. Turning monitor light off.', and the Office Monitor Bar [switch.office_monitor_bar] is turned off."
},
"human_like": "Turns off the office monitor light when the computer has been away for a minute, but only if the work computer is also away.",
"complexity": "medium"
}
},
{
"id": "'1678741966794'",
"result": {
"structured": "TRIGGER: When jd computer group [group.jd_computer] changes from 'home' to 'not_home' AND remains in 'not_home' for 5 minutes. CONDITIONS: Enable Office Blind Automations [input_boolean.enable_office_blind_automations] is 'on' AND the current time is after sunrise AND the current time is after 08:00:30 AND the current time is before sunset. ACTIONS: Run script.send_to_home_log with message 'Computer turned off. Opening blinds.' and title ':office: Office' AND run script.office_open_blinds.",
"natural_language": {
"trigger": "When the jd computer group [group.jd_computer] changes from being 'home' to 'not_home' and stays in the 'not_home' state for five minutes.",
"conditions": "If the Enable Office Blind Automations [input_boolean.enable_office_blind_automations] is switched on, the current time is after sunrise, it is after 8:00:30 in the morning, and it is still before sunset.",
"action": "Sends a debug log message titled ':office: Office' stating 'Computer turned off. Opening blinds.' and simultaneously runs the script to open the office blinds."
},
"human_like": "Opens the office blinds when the computer is turned off during daylight hours, provided the automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1619865008649'",
"result": {
"structured": "TRIGGER: When Dannys Work Computer [group.dannys_work_computer] changes state from not_home to home. CONDITIONS: Office Monitor Bar [switch.office_monitor_bar] is off. ACTIONS: Turn on Office Monitor Bar [switch.office_monitor_bar] AND run script.send_to_home_log with message 'Turned on monitor light.'.",
"natural_language": {
"trigger": "When the Dannys Work Computer [group.dannys_work_computer] becomes present (changes from 'not_home' to 'home').",
"conditions": "The Office Monitor Bar [switch.office_monitor_bar] must be off.",
"action": "Turns on the Office Monitor Bar [switch.office_monitor_bar] and sends a debug log message titled ':desktop_computer: Computer' stating 'Turned on monitor light.'."
},
"human_like": "Turns on the monitor light in the office when the work computer is detected as being in use.",
"complexity": "low"
}
},
{
"id": "'1678741966795'",
"result": {
"structured": "TRIGGER: When Dannys Work Computer [group.dannys_work_computer] changes from state 'home' to state 'not_home' AND remains in 'not_home' for 1 minute. CONDITIONS: None. ACTIONS: IF jd computer group [group.jd_computer] is in state 'not_home' THEN execute in parallel: 1. Run script.send_to_home_log with message 'Danny's work computer turned off. Turning monitor light off.', title ':office: Office', and log_level 'Debug'. 2. Turn off Office Monitor Bar [switch.office_monitor_bar].",
"natural_language": {
"trigger": "When Dannys Work Computer [group.dannys_work_computer] has been away (not_home) for one full minute after being home.",
"conditions": "There are no global conditions. The action includes a conditional check.",
"action": "If the jd computer group [group.jd_computer] is also away (not_home), then the automation will log a debug message titled ':office: Office' and turn off the Office Monitor Bar [switch.office_monitor_bar]."
},
"human_like": "Turns off the office monitor light when both computers have been away for a minute.",
"complexity": "medium"
}
},
{
"id": "'1622374444832'",
"result": {
"structured": "TRIGGER: At 08:00:00. CONDITIONS: None. ACTIONS: First, get hourly weather forecasts for weather home [weather.home]. Then, choose one of the following sequences based on conditions: 1. IF (Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] is above input_number.blind_high_brightness_threshold) AND (jd computer group [group.jd_computer] is home OR Dannys Work Computer [group.dannys_work_computer] is home) THEN send a debug log message to home log stating 'Keeping blinds closed.' 2. ELSE IF (Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] is above input_number.blind_low_brightness_threshold AND below input_number.blind_high_brightness_threshold) AND (jd computer group [group.jd_computer] is home OR Dannys Work Computer [group.dannys_work_computer] is home) THEN, in parallel, send a debug log message stating it's bright and partially opening blinds, and set Office Blinds [cover.office_blinds] tilt position to 25. 3. OTHERWISE (default), in parallel, send a debug log message stating 'Opening blinds.' and run script.office_open_blinds.",
"natural_language": {
"trigger": "The automation triggers every day at 8:00 AM.",
"conditions": "There are no global conditions; the decision logic is handled within the action sequence.",
"action": "First, it fetches the hourly weather forecast. Then, it checks the current brightness level from the Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] and whether either the jd computer group [group.jd_computer] or Dannys Work Computer [group.dannys_work_computer] is marked as home. If it's very bright and someone is home, it logs a message to keep the blinds closed. If it's moderately bright and someone is home, it logs a message and partially opens the Office Blinds [cover.office_blinds] to a 25% tilt. Otherwise, it logs a message and fully opens the blinds using a script."
},
"human_like": "Automatically opens or adjusts the office blinds at 8 AM based on how bright it is outside and whether someone is using the computers in the office.",
"complexity": "medium"
}
},
{
"id": "'1622374233312'",
"result": {
"structured": "TRIGGER: When the sun sets. CONDITIONS: Enable Office Blind Automations [input_boolean.enable_office_blind_automations] is on AND Office Blinds [cover.office_blinds] current_tilt_position is above 25. ACTIONS: If Office Windows [binary_sensor.office_windows] is open (on), then send a debug log message stating the window is open and blinds will not close. Otherwise, in parallel, send a debug log message stating it's getting dark and closing the blinds, and set Office Blinds [cover.office_blinds] tilt position to 25.",
"natural_language": {
"trigger": "The automation runs at sunset.",
"conditions": "It requires that the Enable Office Blind Automations [input_boolean.enable_office_blind_automations] is switched on, and the Office Blinds [cover.office_blinds] are currently tilted open more than 25%.",
"action": "If the Office Windows [binary_sensor.office_windows] are detected as open, a debug log message is sent to notify that the blinds will not be closed because the window is open. If the windows are closed, the automation sends a debug log message announcing it is closing the blinds because it's getting dark, and then sets the Office Blinds [cover.office_blinds] tilt position to 25%."
},
"human_like": "Closes the office blinds at sunset if the automation is enabled and the blinds are open enough, but checks first if the window is open to avoid closing them unnecessarily.",
"complexity": "medium"
}
},
{
"id": "'1622374233310'",
"result": {
"structured": "TRIGGER: When sunset occurs with an offset of 1 hour. CONDITIONS: Enable Office Blind Automations [input_boolean.enable_office_blind_automations] is on AND Office Blinds [cover.office_blinds] current_tilt_position is above 0. ACTIONS: If Office Windows [binary_sensor.office_windows] is on, then send a debug log message stating the office window is still open and not closing blinds. Otherwise, in parallel, send a debug log message stating it's getting dark and closing office blinds, and run script.office_close_blinds.",
"natural_language": {
"trigger": "The automation triggers one hour after sunset.",
"conditions": "It requires that the Enable Office Blind Automations [input_boolean.enable_office_blind_automations] is turned on, and the Office Blinds [cover.office_blinds] are currently tilted open (their tilt position is greater than 0).",
"action": "If the Office Windows [binary_sensor.office_windows] are reported as open, the automation sends a debug log message to the home log, warning that the blinds will not be closed because the window is open. If the windows are not open, the automation performs two actions in parallel: it sends a debug log message announcing that it is getting dark and the office blinds are being closed, and it executes the script 'office_close_blinds' to physically close the blinds."
},
"human_like": "Closes the office blinds an hour after sunset if the automation is enabled and the blinds are open, but only if the office windows are shut.",
"complexity": "medium"
}
},
{
"id": "'1622666920056'",
"result": {
"structured": "TRIGGER: When Office Windows [binary_sensor.office_windows] changes from open (on) to closed (off) AND remains closed for 1 minute. CONDITIONS: Enable Office Blind Automations [input_boolean.enable_office_blind_automations] is on AND (it is after sunset with a 1-hour offset OR it is before sunrise). ACTIONS: In parallel, run script.send_to_home_log with a debug message and run script.office_close_blinds.",
"natural_language": {
"trigger": "When the Office Windows [binary_sensor.office_windows] sensor changes from open to closed and stays closed for one minute.",
"conditions": "If the Enable Office Blind Automations [input_boolean.enable_office_blind_automations] switch is turned on, and if the current time is either after sunset (with a one-hour offset) or before sunrise.",
"action": "Sends a debug notification to the home log stating the window is closed and it's dark, and then runs a script to close the office blinds. These actions are performed simultaneously."
},
"human_like": "Automatically closes the office blinds when the window is closed at night, provided the automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1680528200295'",
"result": {
"structured": "TRIGGER: When the Sun [sun.sun] azimuth attribute falls below the threshold set by Living Room Blinds Morning Sun Azimuth Threshold [input_number.living_room_blinds_morning_sun_azimuth_threshold]. CONDITIONS: Enable Office Blind Automations [input_boolean.enable_office_blind_automations] is on AND Office Blinds [cover.office_blinds] current_tilt_position is below 50 AND the current time is after 08:10:00 AND it is before sunset AND Office Windows [binary_sensor.office_windows] is closed (off). ACTIONS: In parallel, run the script 'send_to_home_log' with a debug message about the sun's position and run the script 'office_open_blinds'.",
"natural_language": {
"trigger": "When the sun's azimuth falls below a specific threshold defined by the Living Room Blinds Morning Sun Azimuth Threshold [input_number.living_room_blinds_morning_sun_azimuth_threshold].",
"conditions": "The automation is only active if the Enable Office Blind Automations [input_boolean.enable_office_blind_automations] is turned on, the Office Blinds [cover.office_blinds] are tilted less than 50%, the current time is after 8:10 AM, it is still daytime (before sunset), and the Office Windows [binary_sensor.office_windows] are closed.",
"action": "Logs a debug message to the home log with details about the sun's position and then opens the office blinds by running the 'office_open_blinds' script."
},
"human_like": "Opens the office blinds in the morning once the sun has moved past a certain point to avoid direct sunlight, provided the windows are closed and automations are enabled.",
"complexity": "medium"
}
},
{
"id": "'1680528200297'",
"result": {
"structured": "TRIGGER: When Sun [sun.sun] azimuth is above Office Blinds Afternoon Sun Azimuth Threshold [input_number.office_blinds_afternoon_sun_azimuth_threshold] OR when Sun [sun.sun] elevation is above Office Blinds Afternoon Sun Elevation Threshold [input_number.office_blinds_afternoon_sun_elevation_threshold]. CONDITIONS: Enable Office Blind Automations [input_boolean.enable_office_blind_automations] is on AND Sun [sun.sun] azimuth is above Office Blinds Afternoon Sun Azimuth Threshold [input_number.office_blinds_afternoon_sun_azimuth_threshold] AND Sun [sun.sun] elevation is above Office Blinds Afternoon Sun Elevation Threshold [input_number.office_blinds_afternoon_sun_elevation_threshold] AND Office Blinds [cover.office_blinds] current_tilt_position is below 50 AND Office Windows [binary_sensor.office_windows] are closed (off) AND Office Key Lights [light.office_key_lights] are off. ACTIONS: Send a debug log message with sun position details and then execute script.office_open_blinds.",
"natural_language": {
"trigger": "When the sun's azimuth rises above the set threshold for the office blinds in the afternoon, or when the sun's elevation rises above its corresponding threshold.",
"conditions": "If the automation for office blinds is enabled, the sun's azimuth and elevation are both above their respective thresholds, the office blinds are tilted less than 50%, the office windows are closed, and the office key lights are turned off.",
"action": "Sends a debug log message containing the current sun position and the configured thresholds, then runs a script to open the office blinds."
},
"human_like": "Opens the office blinds in the afternoon when the sun is high enough and not causing direct sunlight, provided the windows are closed and the lights are off.",
"complexity": "medium"
}
},
{
"id": "'1678300398737'",
"result": {
"structured": "TRIGGER: When Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] remains above the value of input_number.blind_low_brightness_threshold for 1 minute. CONDITIONS: (Sun [sun.sun] is after sunrise) AND (Time is after 08:10:00) AND (Sun [sun.sun] is before sunset) AND (Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] is above the value of input_number.blind_high_brightness_threshold) AND (Sun [sun.sun] azimuth is above the value of input_number.office_blinds_morning_sun_azimuth_threshold) AND (Sun [sun.sun] azimuth is below the value of input_number.office_blinds_afternoon_sun_azimuth_threshold) AND (Sun [sun.sun] elevation is below the value of input_number.office_blinds_afternoon_sun_elevation_threshold) AND (Enable Office Blind Automations [input_boolean.enable_office_blind_automations] is on) AND (Office Blinds [cover.office_blinds] current_tilt_position is above 25) AND (Office Windows [binary_sensor.office_windows] is off) AND (Dannys Work Computer [group.dannys_work_computer] is home OR jd computer group [group.jd_computer] is home). ACTIONS: In parallel, run script.send_to_home_log with a debug message containing illuminance, azimuth, and elevation values, and set Office Blinds [cover.office_blinds] tilt_position to 25.",
"natural_language": {
"trigger": "When the Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] sensor reports a brightness level above a low threshold for at least one minute.",
"conditions": "It must be daytime, specifically after sunrise and before sunset, and the current time must be after 8:10 AM. The outdoor brightness must also be above a higher threshold. The sun's position must be within a specific window: its azimuth must be between a morning and an afternoon threshold, and its elevation must be below an afternoon threshold. The automation for the office blinds must be enabled. The current tilt position of the Office Blinds [cover.office_blinds] must be greater than 25, and the Office Windows [binary_sensor.office_windows] must be closed. Finally, at least one of the computers, either Dannys Work Computer [group.dannys_work_computer] or jd computer group [group.jd_computer], must be active and considered 'home'.",
"action": "Logs a debug message to the home log with details about the brightness and sun position, and simultaneously adjusts the Office Blinds [cover.office_blinds] to a tilt position of 25."
},
"human_like": "Partially closes the office blinds to reduce glare when it's bright outside, the sun is in a specific position, and someone is using a computer in the office.",
"complexity": "high"
}
},
{
"id": "'1678300398736'",
"result": {
"structured": "TRIGGER: When Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] remains above the value of input_number.blind_high_brightness_threshold for 1 minute. CONDITIONS: (Sun [sun.sun] is after sunrise) AND (Time is after 08:00:30) AND (Sun [sun.sun] is before sunset) AND (Enable Office Blind Automations [input_boolean.enable_office_blind_automations] is on) AND (Office Blinds [cover.office_blinds] current_tilt_position is above 0) AND (Sun [sun.sun] azimuth is above the value of input_number.office_blinds_morning_sun_azimuth_threshold) AND (Sun [sun.sun] azimuth is below the value of input_number.office_blinds_afternoon_sun_azimuth_threshold) AND (Office Windows [binary_sensor.office_windows] is off) AND (Dannys Work Computer [group.dannys_work_computer] is home OR jd computer group [group.jd_computer] is home). ACTIONS: Run script.send_to_home_log with a debug message and run script.office_close_blinds in parallel.",
"natural_language": {
"trigger": "When the Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] sensor reports a brightness level above a configured high threshold for at least one minute.",
"conditions": "The automation only runs during the day, after sunrise and before sunset, and specifically after 8:00:30 AM. The feature must be enabled via Enable Office Blind Automations [input_boolean.enable_office_blind_automations]. The Office Blinds [cover.office_blinds] must be at least partially open (tilt position above 0). The sun's position must be within a specific morning-to-afternoon azimuth window, defined by two thresholds. The Office Windows [binary_sensor.office_windows] must be closed. Finally, either Dannys Work Computer [group.dannys_work_computer] or jd computer group [group.jd_computer] must be marked as being at home.",
"action": "Sends a debug log message noting the high brightness level and then closes the office blinds."
},
"human_like": "Closes the office blinds when it gets very bright outside, but only during the day, when someone is working in the office, and the windows are closed.",
"complexity": "high"
}
},
{
"id": "'1678637987424'",
"result": {
"structured": "TRIGGER: When Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] remains below input_number.blind_low_brightness_threshold for 5 minutes. CONDITIONS: (Sun [sun.sun] is after sunrise) AND (Time is after 08:00:30) AND (Sun [sun.sun] is before sunset) AND (Office Blinds [cover.office_blinds] current_tilt_position is below 50) AND (Enable Office Blind Automations [input_boolean.enable_office_blind_automations] is on) AND (Office Windows [binary_sensor.office_windows] is off) AND (Office Key Lights [light.office_key_lights] is off) AND (Sun [sun.sun] elevation is above input_number.office_blinds_afternoon_sun_elevation_threshold). ACTIONS: Run script.send_to_home_log with a debug message and run script.office_open_blinds in parallel.",
"natural_language": {
"trigger": "When the Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] reports a brightness level below the configured low brightness threshold for a continuous period of five minutes.",
"conditions": "If it is daytime (after sunrise and before sunset), the current time is after 8:00:30 AM, the Office Blinds [cover.office_blinds] are tilted down (position below 50%), the automation feature is enabled via Enable Office Blind Automations [input_boolean.enable_office_blind_automations], the Office Windows [binary_sensor.office_windows] are closed, the Office Key Lights [light.office_key_lights] are off, and the sun's elevation is above the configured afternoon threshold.",
"action": "Sends a debug notification to the home log stating the current brightness and opens the Office Blinds by running the office_open_blinds script."
},
"human_like": "Automatically opens the office blinds when it gets dark outside during the day, provided the windows are closed, lights are off, and other conditions are met.",
"complexity": "medium"
}
},
{
"id": "'1719349686247'",
"result": {
"structured": "TRIGGER: When Office Area Lights [light.office_area_lights] remains on for 1 hour. CONDITIONS: The sun is above the horizon (after sunrise AND before sunset) AND Office Area Mean Light Level [sensor.office_area_mean_light_level] is above the value of Office Light Level Threshold [input_number.office_light_level_threshold]. ACTIONS: In parallel, turn off Office 3 [light.office_3] and Office 2 [light.office_2] with a 1-second transition, AND sequentially activate Office Room Brightness Above Threshold [scene.office_room_brightness_above_threshold], wait 1 second, then turn off Office 4 [light.office_4].",
"natural_language": {
"trigger": "When the Office Area Lights [light.office_area_lights] have been turned on and remain on for a full hour.",
"conditions": "The automation only runs during daylight hours, when the sun is up (after sunrise and before sunset). It also requires that the measured Office Area Mean Light Level [sensor.office_area_mean_light_level] is higher than the user-defined threshold set by Office Light Level Threshold [input_number.office_light_level_threshold].",
"action": "The automation performs two sets of actions simultaneously. First, it turns off the Office 2 [light.office_2] and Office 3 [light.office_3] lights with a smooth one-second fade. At the same time, it runs a sequence: it activates the Office Room Brightness Above Threshold [scene.office_room_brightness_above_threshold] scene, waits for one second, and then turns off the Office 4 [light.office_4] light."
},
"human_like": "During the day, if the office lights have been on for an hour and the room is already bright enough, it adjusts the lighting by turning off some lights and applying a specific brightness scene.",
"complexity": "medium"
}
},
{
"id": "'1721434316175'",
"result": {
"structured": "TRIGGER: When Fly Zapper [switch.fly_zapper] remains in its current state for 2 hours. CONDITIONS: None. ACTIONS: In parallel, run script.send_to_home_log with a message 'Turning off fly zapper after 2 hours.' and title ':office: Office' at Debug level AND turn off Fly Zapper [switch.fly_zapper].",
"natural_language": {
"trigger": "When the Fly Zapper [switch.fly_zapper] has been in any state for a continuous period of two hours.",
"conditions": "There are no conditions that must be met.",
"action": "Log a debug message titled ':office: Office' stating 'Turning off fly zapper after 2 hours.' and simultaneously turn off the Fly Zapper [switch.fly_zapper]."
},
"human_like": "Automatically turns off the fly zapper after it has been running for two hours and logs the action.",
"complexity": "low"
}
},
{
"id": "'1722108194998'",
"result": {
"structured": "TRIGGER: When Ashlee's Bedroom Remote Device [device_id: 589ffdf441f33bc8f72a6f9faf153da2] sends an MQTT action of type 'open'. CONDITIONS: None. ACTIONS: In parallel, run script.send_to_home_log with message 'Remote command received: toggle key lights.' and title ':office: Office' at Debug level AND toggle Office Key Lights [light.office_key_lights].",
"natural_language": {
"trigger": "When the remote device named Ashlee's Bedroom Remote Device [device_id: 589ffdf441f33bc8f72a6f9faf153da2] sends an 'open' action command via MQTT.",
"conditions": "There are no conditions for this automation.",
"action": "Two actions are performed simultaneously: first, a debug log entry is created with the message 'Remote command received: toggle key lights.' and the title ':office: Office'. Second, the Office Key Lights [light.office_key_lights] are toggled on or off."
},
"human_like": "Toggles the office key lights and logs the action when a remote button is pressed.",
"complexity": "low"
}
},
{
"id": "'1722108194999'",
"result": {
"structured": "TRIGGER: When the device Ashlee's Bedroom Remote Device [device_id: 589ffdf441f33bc8f72a6f9faf153da2] sends an MQTT action of type 'close'. CONDITIONS: None. ACTIONS: In parallel, run the script 'send_to_home_log' with the message 'Remote command received: toggle fan.' and title ':office: Office' at Debug log level AND toggle the state of Office Fan [switch.office_fan].",
"natural_language": {
"trigger": "When a specific remote device, Ashlee's Bedroom Remote Device [device_id: 589ffdf441f33bc8f72a6f9faf153da2], sends a 'close' action command via MQTT.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "Two actions are performed simultaneously: a debug message is sent to the home log stating 'Remote command received: toggle fan.' with the title ':office: Office', and the Office Fan [switch.office_fan] is toggled on or off."
},
"human_like": "Toggles the office fan and logs the action when a remote button is pressed.",
"complexity": "low"
}
},
{
"id": "'1743186662871'",
"result": {
"structured": "TRIGGER: When Office Light [light.office_light] remains on for 3 minutes OR when Office Light [light.office_light] remains on for 5 minutes. CONDITIONS: front door [binary_sensor.front_door] is closed (off). ACTIONS: Turn off Office Light [light.office_light].",
"natural_language": {
"trigger": "When the Office Light [light.office_light] has been turned on and stays on for either 3 minutes or 5 minutes.",
"conditions": "The front door [binary_sensor.front_door] must be closed.",
"action": "Turn off the Office Light [light.office_light]."
},
"human_like": "Turns off the office light if it's been left on for a few minutes while the front door is closed.",
"complexity": "medium"
}
},
{
"id": "'1687019771710'",
"result": {
"structured": "TRIGGER: When a webhook with ID 5dc5fc04-365e-4834-97e9-c6967bda3909 is received via POST. CONDITIONS: None. ACTIONS: Execute the script send_direct_notification with a custom message containing the document ID, name, correspondent, download URL, and tags from the webhook payload, and send it to danny person [person.danny].",
"natural_language": {
"trigger": "The automation is triggered when a specific webhook (ID: 5dc5fc04-365e-4834-97e9-c6967bda3909) is called via an HTTP POST request.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "Sends a direct notification to danny person [person.danny] using a script. The notification includes details about a new document, such as its ID, name, correspondent, download link, and tags, all extracted from the webhook data."
},
"human_like": "Sends a notification to Danny whenever a new document is added to Paperless.",
"complexity": "low"
}
},
{
"id": "'1630082312356'",
"result": {
"structured": "TRIGGER: When Pi Hole [switch.pi_hole] OR Pi Hole 2 [switch.pi_hole_2] OR Pi Holes [switch.pi_holes] changes state. CONDITIONS: None. ACTIONS: Run script send_to_home_log with a message containing the name of the entity that changed and its new state.",
"natural_language": {
"trigger": "When the state of any of the Pi Hole switches (Pi Hole [switch.pi_hole], Pi Hole 2 [switch.pi_hole_2], or Pi Holes [switch.pi_holes]) changes.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a notification to the home log stating that network filtering on the specific Pi-Hole has been turned on or off."
},
"human_like": "Logs a message whenever any Pi-Hole ad-blocking service is turned on or off.",
"complexity": "low"
}
},
{
"id": "'1737283018707'",
"result": {
"structured": "TRIGGER: When porch motion occupancy [binary_sensor.porch_motion_occupancy] changes to on. CONDITIONS: porch motion occupancy [binary_sensor.porch_motion_occupancy] is off. ACTIONS: Turn on Porch [light.porch] to 100% brightness AND cancel Porch Light [timer.porch_light].",
"natural_language": {
"trigger": "When motion is detected, indicated by the porch motion occupancy [binary_sensor.porch_motion_occupancy] sensor turning on.",
"conditions": "The automation only runs if the porch motion occupancy [binary_sensor.porch_motion_occupancy] sensor is currently in the 'off' state.",
"action": "Turns on the Porch [light.porch] light to full brightness and simultaneously cancels any running Porch Light [timer.porch_light] timer."
},
"human_like": "Turns on the porch light at full brightness when motion is first detected, and stops the porch light timer.",
"complexity": "low"
}
},
{
"id": "'1737283018708'",
"result": {
"structured": "TRIGGER: When porch motion occupancy [binary_sensor.porch_motion_occupancy] remains off (no motion detected) for 1 minute. CONDITIONS: None. ACTIONS: In parallel, execute script.send_to_home_log with message 'No motion. Starting :bulb: light timer.' and title 'Porch' at log level Debug AND start timer.porch_light [timer.porch_light] for a duration of 1 minute.",
"natural_language": {
"trigger": "When the porch motion occupancy [binary_sensor.porch_motion_occupancy] sensor reports no motion for a continuous period of one minute.",
"conditions": "There are no conditions that must be met.",
"action": "It performs two actions simultaneously: it sends a debug log message titled 'Porch' stating 'No motion. Starting :bulb: light timer.' and it starts a one-minute countdown on the Porch Light [timer.porch_light] timer."
},
"human_like": "Starts a porch light timer and logs a message when no motion has been detected on the porch for one minute.",
"complexity": "low"
}
},
{
"id": "'1737283018709'",
"result": {
"structured": "TRIGGER: When timer Porch Light [timer.porch_light] finishes. CONDITIONS: None. ACTIONS: In parallel: 1. Run script send_to_home_log with message 'Timer finished. Turning light off.', title 'Porch', and log level 'Debug'. 2. Turn off light Porch [light.porch].",
"natural_language": {
"trigger": "When the Porch Light [timer.porch_light] timer finishes.",
"conditions": "There are no conditions for this automation.",
"action": "It performs two actions simultaneously: it logs a debug message titled 'Porch' stating 'Timer finished. Turning light off.', and it turns off the Porch [light.porch] light."
},
"human_like": "Turns off the porch light and logs a message when its timer expires.",
"complexity": "low"
}
},
{
"id": "'1606157753577'",
"result": {
"structured": "TRIGGER: When front door [binary_sensor.front_door] opens (state changes to on). CONDITIONS: None. ACTIONS: Execute the following actions in parallel: 1. Choose: If Porch Motion Illuminance [sensor.porch_motion_illuminance] is below 100, then: send a debug log message, turn on the scene Porch Light On [scene.porch_light_on], and cancel timer Porch Light [timer.porch_light]. Otherwise, do nothing. 2. Send a debug log message about incrementing the counter. 3. Increment Front Door Opened Closed [counter.front_door_opened_closed]. 4. Wait for 2 seconds.",
"natural_language": {
"trigger": "When the front door [binary_sensor.front_door] opens.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "Several actions are performed simultaneously. First, it checks if the porch is dark by looking at the Porch Motion Illuminance [sensor.porch_motion_illuminance] sensor. If the light level is below 100, it logs a debug message, turns on the porch lights using the Porch Light On [scene.porch_light_on] scene, and cancels any running Porch Light [timer.porch_light] timer. Regardless of the light level, it then logs a debug message about incrementing a door counter, increments the Front Door Opened Closed [counter.front_door_opened_closed] counter, and finally waits for 2 seconds."
},
"human_like": "When the front door opens, it turns on the porch light if it's dark, logs the event, counts the opening, and waits briefly.",
"complexity": "medium"
}
},
{
"id": "'1614033445487'",
"result": {
"structured": "TRIGGER: When front door [binary_sensor.front_door] changes from closed (off) to open (on) AND remains open for 20 seconds. CONDITIONS: Front Door Opened Closed [counter.front_door_opened_closed] value is below 2. ACTIONS: Send a debug log message to the home log with the title 'Porch' and a message containing the current counter value, then reset Front Door Opened Closed [counter.front_door_opened_closed] to 0.",
"natural_language": {
"trigger": "When the front door [binary_sensor.front_door] opens and stays open for more than 20 seconds.",
"conditions": "The Front Door Opened Closed [counter.front_door_opened_closed] counter must have a value less than 2.",
"action": "Sends a debug log entry titled 'Porch' with a message stating the front door has been open and resets the Front Door Opened Closed [counter.front_door_opened_closed] counter to zero."
},
"human_like": "Resets the front door open/close counter if the door stays open for more than 20 seconds and the counter is low, logging the event.",
"complexity": "low"
}
},
{
"id": "'1611931052908'",
"result": {
"structured": "TRIGGER: When front door [binary_sensor.front_door] changes from closed (off) to open (on). CONDITIONS: tracked people group [group.tracked_people] is home. ACTIONS: Execute script.send_to_home_log with a message and title 'Porch' AND execute script.front_door_open_notification.",
"natural_language": {
"trigger": "When the front door [binary_sensor.front_door] opens.",
"conditions": "At least one person is home, as indicated by the tracked people group [group.tracked_people] being in the 'home' state.",
"action": "Logs a debug message to the home log stating the front door is open and someone is home, and runs the front door open notification script."
},
"human_like": "When someone is home and the front door opens, it logs the event and triggers a notification.",
"complexity": "low"
}
},
{
"id": "'1615224190495'",
"result": {
"structured": "TRIGGER: When front door [binary_sensor.front_door] changes from open (on) to closed (off) AND remains closed for 20 seconds. CONDITIONS: None. ACTIONS: In parallel, execute script.send_to_home_log with a debug message and reset Front Door Opened Closed [counter.front_door_opened_closed] to 0.",
"natural_language": {
"trigger": "When the front door [binary_sensor.front_door] changes from being open to closed and stays closed for at least 20 seconds.",
"conditions": "There are no additional conditions.",
"action": "It logs a debug message to the home log stating the door has been closed for more than 20 seconds and resets the Front Door Opened Closed [counter.front_door_opened_closed] counter to zero. These actions happen at the same time."
},
"human_like": "Resets the front door open/close counter after the door has been securely closed for 20 seconds.",
"complexity": "low"
}
},
{
"id": "'1611931640441'",
"result": {
"structured": "TRIGGER: When front door [binary_sensor.front_door] changes from open (on) to closed (off). CONDITIONS: None. ACTIONS: Run script.send_to_home_log with message 'Front :door: door closed.', title 'Porch', and log_level 'Debug' AND Run script.front_door_closed_notification.",
"natural_language": {
"trigger": "When the front door [binary_sensor.front_door] changes from being open to being closed.",
"conditions": "There are no conditions that must be met.",
"action": "Logs a debug message titled 'Porch' stating the front door is closed, and sends a notification that the front door is closed."
},
"human_like": "Logs a message and sends a notification when the front door is closed.",
"complexity": "low"
}
},
{
"id": "'1606157835544'",
"result": {
"structured": "TRIGGER: When front door [binary_sensor.front_door] changes from open (on) to closed (off). CONDITIONS: None. ACTIONS: In parallel: Start Porch Light [timer.porch_light] timer for 1 minute, Send a debug log message 'Front :door: door closed. Starting timer.' to the home log, AND Choose: If stairs light [light.stairs] is on, then send a debug log message 'Front door closed. Turning stairs light off as fall back.' to the home log AND turn on the Stairs Light Off [scene.stairs_light_off] scene. Otherwise, do nothing.",
"natural_language": {
"trigger": "When the front door [binary_sensor.front_door] closes.",
"conditions": "There are no conditions that must be met.",
"action": "Three actions are performed simultaneously: a one-minute timer for the Porch Light [timer.porch_light] is started, a debug message is sent to the home log, and a check is made. If the stairs light [light.stairs] is on, a second debug message is logged and the Stairs Light Off [scene.stairs_light_off] scene is activated to turn the light off. If the stairs light is already off, no further action is taken for that part."
},
"human_like": "When the front door closes, it starts a porch light timer and, if the stairs light is on, turns it off as a fallback.",
"complexity": "medium"
}
},
{
"id": "'1708895092115'",
"result": {
"structured": "TRIGGER: When Porch [light.porch] remains on for 5 minutes. CONDITIONS: front door [binary_sensor.front_door] is closed (off) AND Porch Light [timer.porch_light] is NOT active. ACTIONS: Run script.send_to_home_log with a debug message 'Light has been on for 5 minutes and :door: is closed. Turning light off.' AND Turn off Porch [light.porch] with a 2-second transition.",
"natural_language": {
"trigger": "When the Porch light [light.porch] has been turned on and stays on for five minutes.",
"conditions": "The front door [binary_sensor.front_door] must be closed, and the Porch Light timer [timer.porch_light] must not be currently running.",
"action": "Sends a debug message to the home log stating the porch light is being turned off because it has been on for five minutes with the door closed, and then turns off the Porch light [light.porch] with a two-second fade."
},
"human_like": "Automatically turns off the porch light after it has been on for five minutes with the front door closed, provided no porch light timer is active.",
"complexity": "medium"
}
},
{
"id": "'1700940016581'",
"result": {
"structured": "TRIGGER: When Porch Main Light Input [binary_sensor.porch_main_light_input] changes state, provided the previous state is not 'unknown' or 'unavailable' AND the new state is not 'unknown' or 'unavailable'. CONDITIONS: None. ACTIONS: Execute the following actions in parallel: 1) Log a debug message 'Light switch changed' for the Porch. 2) If Porch [light.porch] is off, then activate the scene Porch Light On [scene.porch_light_on]; otherwise, turn off Porch [light.porch] with a 2-second transition. 3) Cancel the timer Porch Light [timer.porch_light].",
"natural_language": {
"trigger": "Whenever the Porch Main Light Input [binary_sensor.porch_main_light_input] changes its state, as long as the change is not from or to an 'unknown' or 'unavailable' status.",
"conditions": "There are no conditions that must be met.",
"action": "Three actions are performed simultaneously: first, a debug log entry is created for the Porch with the message 'Light switch changed'. Second, it checks the current state of the Porch [light.porch]; if the light is off, it turns on the Porch Light On [scene.porch_light_on] scene. If the light is already on, it turns the light off with a 2-second fade-out. Third, it cancels the Porch Light [timer.porch_light] timer."
},
"human_like": "Toggles the porch light on or off when the light switch is pressed, logging the event and cancelling any existing light timer.",
"complexity": "medium"
}
},
{
"id": "'1750929784418'",
"result": {
"structured": "TRIGGER: When the time is 08:00:00. CONDITIONS: None. ACTIONS: Execute script.send_direct_notification with a message derived from the 'text' attribute of predbat.plan_html [predbat.plan_html], formatted by replacing HTML list tags and percentage symbols, and send it to danny person [person.danny] with the title 'Predbat'.",
"natural_language": {
"trigger": "Every day at 8:00 AM.",
"conditions": "There are no conditions; the automation runs unconditionally at the scheduled time.",
"action": "Sends a formatted daily summary notification to danny person [person.danny]. The notification message is created by taking the text content from the predbat.plan_html [predbat.plan_html] entity, removing HTML list formatting, and sending it with the title 'Predbat'."
},
"human_like": "Sends a formatted daily summary from Predbat to Danny every morning at 8 AM.",
"complexity": "low"
}
},
{
"id": "'1752209130762'",
"result": {
"structured": "TRIGGER: When Predbat Status [predbat.status] changes state. CONDITIONS: Enable Predbat Automations [input_boolean.enable_predbat_automations] is on. ACTIONS: If Predbat Status [predbat.status] is Demand AND Growatt SPH Inverter Mode [sensor.growatt_sph_inverter_mode] is NOT Load first, then run script.send_direct_notification with message 'inverter is not in the right mode', title 'Predbat', and notify danny person [person.danny].",
"natural_language": {
"trigger": "Whenever the Predbat Status [predbat.status] sensor changes its state.",
"conditions": "The automation only runs if the Enable Predbat Automations [input_boolean.enable_predbat_automations] switch is turned on.",
"action": "If the Predbat Status [predbat.status] is 'Demand' and the Growatt SPH Inverter Mode [sensor.growatt_sph_inverter_mode] is not 'Load first', then send a direct notification titled 'Predbat' with the message 'inverter is not in the right mode' to danny person [person.danny]."
},
"human_like": "Sends a notification to Danny if the battery system is in demand mode but the inverter is not set correctly.",
"complexity": "medium"
}
},
{
"id": "'1689193654844'",
"result": {
"structured": "TRIGGER: When a webhook with ID '-aPu0u0W8nvlYImwa85lwDMoo' is received via POST or PUT. CONDITIONS: None. ACTIONS: In parallel: 1) Log the webhook data (user_id, user_name, channel_id, channel_name, command, text, response_url) to the home log with title 'Slack' and level 'Debug'. 2) If the channel_name from the trigger is not 'privategroup', then: IF the user_id from the trigger matches the value stored in Danny's Slack ID [input_text.dannys_slack_id], THEN: a) Process the text from the trigger using the conversation agent specified by Danny's Selected Conversation Agent [input_text.dannys_selected_conversation_agent] and store the result. b) IF the response from the conversation agent has a response_type of 'error', THEN in parallel: i) Post a Slack notification with a random 'thinking' message. ii) Re-process the text using the conversation agent specified by Danny's Secondary Selected Conversation Agent [input_text.dannys_secondary_selected_conversation_agent] and store the result. c) Post a Slack notification containing the final processed response. OTHERWISE (if the user_id does not match), log the webhook data to the home log with title 'Slack' and level 'Normal'. If the channel_name from the trigger is 'privategroup', log the webhook data to the home log with title 'Slack' and level 'Normal'.",
"natural_language": {
"trigger": "The automation is triggered when a specific Slack webhook is received.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "When triggered, the automation first logs the details of the incoming webhook for debugging. Then, it checks if the message came from a public channel (not a private group named 'privategroup'). If it's from a public channel, it checks if the sender's user ID matches the one stored in Danny's Slack ID [input_text.dannys_slack_id]. If it's a match, the automation sends the message text to a primary conversation agent (specified by Danny's Selected Conversation Agent [input_text.dannys_selected_conversation_agent]) to generate a response. If the primary agent returns an error, it posts a 'thinking' message to Slack and tries again with a secondary conversation agent (specified by Danny's Secondary Selected Conversation Agent [input_text.dannys_secondary_selected_conversation_agent]). Finally, it posts the agent's response back to the Slack channel. If the user ID doesn't match, or if the message was from a private group, the automation simply logs the webhook details normally without processing the message."
},
"human_like": "This automation processes Slack commands, using AI conversation agents to generate and post responses for a specific user in public channels, with a fallback agent for errors.",
"complexity": "high"
}
},
{
"id": "'1614285576722'",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sleep_as_android' is received. CONDITIONS: None. ACTIONS: Set the value of Sleep as Android [input_text.sleep_as_android] to the event data from the webhook. AND, in parallel, based on the state of Sleep as Android Notification Level [input_select.sleep_as_android_notification_level]: If it is 'Start/Stop' AND the webhook event is 'sleep_tracking_started' OR 'sleep_tracking_stopped', then run the log script with the event. If it is 'Start/Stop/Alarms' AND (the webhook event contains 'alarm' OR the webhook event is 'sleep_tracking_started' OR 'sleep_tracking_stopped'), then run the log script with the event. If it is 'All', then run the log script with the event. Otherwise, do nothing.",
"natural_language": {
"trigger": "When the Home Assistant system receives a webhook request with the specific ID 'sleep_as_android'.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "The automation first updates the Sleep as Android [input_text.sleep_as_android] text field with the event type received from the webhook. At the same time, it checks the current setting of Sleep as Android Notification Level [input_select.sleep_as_android_notification_level]. Depending on this setting, it may also log a notification. If the level is set to 'Start/Stop', it logs only for the 'sleep_tracking_started' or 'sleep_tracking_stopped' events. If the level is 'Start/Stop/Alarms', it logs for those same events or any event containing the word 'alarm'. If the level is 'All', it logs for every webhook event received. The log message includes the event type."
},
"human_like": "This automation processes sleep tracking events from the Sleep as Android app, updates a text field with the event type, and logs notifications based on a user-defined notification level.",
"complexity": "medium"
}
},
{
"id": "'1658438667856'",
"result": {
"structured": "TRIGGER: When Sleep as Android [input_text.sleep_as_android] changes to state 'sleep_tracking_started'. CONDITIONS: None. ACTIONS: First, a conditional action (choose) is executed. If person.danny [person.danny] is at home, then two parallel actions are performed: 1) Start Sleep [timer.sleep] with a duration calculated from Sleep Timer Duration [input_number.sleep_timer_duration] (value in minutes multiplied by 60 to get seconds, formatted as HH:MM:SS). 2) Execute script.send_to_home_log with a message indicating the timer start and the calculated duration. If the condition is not met, no action is taken for this choose block. Second, another conditional action (alias: Turn on bedroom fan) is executed. If Bedroom Area Mean Temperature [sensor.bedroom_area_mean_temperature] is above 22.5 AND person.danny [person.danny] is at home AND bedroom fan [switch.bedroom_fan] is off, then two parallel actions are performed: 1) Execute script.send_to_home_log with a debug message about the temperature and fan action. 2) Turn on bedroom fan [switch.bedroom_fan].",
"natural_language": {
"trigger": "The automation is triggered when the Sleep as Android [input_text.sleep_as_android] text input changes to the specific state 'sleep_tracking_started'.",
"conditions": "There are no global conditions for the entire automation. However, the actions themselves contain internal conditional checks.",
"action": "The automation performs two main sets of actions. First, if Danny [person.danny] is home, it starts a sleep timer [timer.sleep] for a duration based on the Sleep Timer Duration [input_number.sleep_timer_duration] setting and logs this event. If Danny is not home, this step is skipped. Second, if the Bedroom Area Mean Temperature [sensor.bedroom_area_mean_temperature] is above 22.5 degrees, Danny [person.danny] is home, and the bedroom fan [switch.bedroom_fan] is off, it turns on the bedroom fan and logs a debug message explaining why."
},
"human_like": "When sleep tracking starts via the Sleep as Android app, this automation starts a sleep timer if the user is home and turns on the bedroom fan if the room is too warm.",
"complexity": "medium"
}
},
{
"id": "'1658843567854'",
"result": {
"structured": "TRIGGER: When Sleep as Android [input_text.sleep_as_android] changes to the state 'awake'. CONDITIONS: Sleep [timer.sleep] is active. ACTIONS: In parallel, pause Sleep [timer.sleep] AND execute the script send_to_home_log with a message containing the remaining time of Sleep [timer.sleep].",
"natural_language": {
"trigger": "When the Sleep as Android [input_text.sleep_as_android] text input changes to the value 'awake'.",
"conditions": "The Sleep [timer.sleep] timer must be currently running.",
"action": "Pauses the Sleep [timer.sleep] timer and simultaneously sends a notification to the home log, reporting that the sleep timer was paused and showing the remaining time."
},
"human_like": "Pauses the sleep timer and logs a message when the Sleep as Android app reports the user is awake.",
"complexity": "medium"
}
},
{
"id": "'1658843828191'",
"result": {
"structured": "TRIGGER: When Sleep as Android [input_text.sleep_as_android] changes from state 'awake'. CONDITIONS: Sleep [timer.sleep] is paused. ACTIONS: In parallel: 1. Start Sleep [timer.sleep] with a duration calculated as: (remaining time of Sleep [timer.sleep] + (Sleep as Android Time to Add [input_number.sleep_as_android_time_to_add] minutes)) but capped at Sleep Timer Duration [input_number.sleep_timer_duration] minutes. 2. Run script.send_to_home_log with a message indicating the user fell back asleep, the timer was unpaused, and the added minutes.",
"natural_language": {
"trigger": "When the Sleep as Android [input_text.sleep_as_android] status changes from 'awake' to any other state.",
"conditions": "The Sleep [timer.sleep] timer must currently be in a paused state.",
"action": "The automation performs two actions simultaneously. First, it restarts the Sleep [timer.sleep] timer. The new duration is calculated by taking the timer's current remaining time, adding a configurable number of minutes from Sleep as Android Time to Add [input_number.sleep_as_android_time_to_add], and ensuring the total does not exceed a maximum limit defined by Sleep Timer Duration [input_number.sleep_timer_duration]. Second, it logs a detailed message to the home log, confirming the user fell back asleep, noting the timer was unpaused, and stating the new calculated remaining time."
},
"human_like": "Restarts the sleep timer and logs an event when the Sleep as Android app reports the user has fallen back asleep.",
"complexity": "medium"
}
},
{
"id": "'1659861914053'",
"result": {
"structured": "TRIGGER: When Danny Asleep [binary_sensor.danny_asleep] remains on for 15 minutes. CONDITIONS: Sleep [timer.sleep] is active. ACTIONS: First, log a message 'Asleep for 15 minutes. Taking 5 minutes off the timer.' via script.send_to_home_log. Then, pause Sleep [timer.sleep]. Then, IF (the remaining time of Sleep [timer.sleep] plus the value of Sleep as Android Time to Add [input_number.sleep_as_android_time_to_add] minus (the value of Sleep as Android Time to Subtract [input_number.sleep_as_android_time_to_subtract] multiplied by 60 seconds) is greater than 0) THEN start Sleep [timer.sleep] with a new duration calculated as (remaining time + Sleep as Android Time to Add [input_number.sleep_as_android_time_to_add] - (Sleep as Android Time to Subtract [input_number.sleep_as_android_time_to_subtract] * 60 seconds), but not less than zero) AND log a message with the new remaining time. ELSE log a message indicating the remaining time was less than the time to subtract.",
"natural_language": {
"trigger": "When the Danny Asleep [binary_sensor.danny_asleep] sensor indicates Danny has been asleep for a continuous period of 15 minutes.",
"conditions": "The Sleep [timer.sleep] timer must be currently active.",
"action": "First, a message is logged to the home log. Then, the Sleep [timer.sleep] timer is paused. Next, a calculation is performed: if the timer's remaining time, after adding the value from Sleep as Android Time to Add [input_number.sleep_as_android_time_to_add] and subtracting the value from Sleep as Android Time to Subtract [input_number.sleep_as_android_time_to_subtract] (converted to minutes), is still positive, the timer is restarted with this new, reduced duration and a confirmation log is created. If the calculation results in zero or a negative time, a different log message is sent, noting that the timer had less time remaining than the amount to be subtracted."
},
"human_like": "Adjusts the sleep timer when Danny has been asleep for 15 minutes, reducing the remaining time by a configured amount if possible, and logs the action.",
"complexity": "high"
}
},
{
"id": "'1658842750488'",
"result": {
"structured": "TRIGGER: When timer Sleep [timer.sleep] finishes. CONDITIONS: None. ACTIONS: Execute script send_to_home_log with message 'Sleep timer finished. Turning everything off.' and title ':zzz: Sleep as :robot_face: Android'. Execute script bedroom_sleep. If bedroom fan [switch.bedroom_fan] is on, then in parallel: execute script send_to_home_log with message 'Bedroom is warm ({{ states('sensor.bedroom_area_mean_temperature') }} > 21c). Turning on bedroom fan.' and title ':zzz: Sleep as :robot_face: Android', AND turn on bedroom fan [switch.bedroom_fan].",
"natural_language": {
"trigger": "When the Sleep [timer.sleep] timer finishes.",
"conditions": "There are no conditions.",
"action": "First, it logs a message to the home log stating 'Sleep timer finished. Turning everything off.' with a specific title. Then, it runs the 'bedroom_sleep' script. Finally, it checks if the bedroom fan [switch.bedroom_fan] is on. If it is, it simultaneously logs a debug message about the bedroom temperature and turns the bedroom fan [switch.bedroom_fan] on."
},
"human_like": "When the sleep timer ends, it turns everything off for sleep and ensures the bedroom fan is on if it was already running.",
"complexity": "medium"
}
},
{
"id": "'1644769166837'",
"result": {
"structured": "TRIGGER: When Sleep as Android [input_text.sleep_as_android] changes state to 'alarm_alert_start'. CONDITIONS: None. ACTIONS: Execute two actions in parallel. First, a conditional choice: IF (person.danny [person.danny] is home) AND (enable bedroom blind automations [input_boolean.enable_bedroom_blind_automations] is on) AND (bedroom blinds [cover.bedroom_blinds] current_position is below blind closed position threshold [input_number.blind_closed_position_threshold]) THEN send log message ':alarm_clock: Alarm triggered. Opening bedroom blinds in 1 minute.', wait 5 minutes, THEN open bedroom blinds [cover.bedroom_blinds]. ELSE IF (person.danny [person.danny] is home) THEN send log message ':bed: :alarm_clock: alarm triggered.'. ELSE do nothing. Second, IF bedroom clock matrix [light.bedroom_clock_matrix] is off THEN turn on bedroom clock matrix [light.bedroom_clock_matrix].",
"natural_language": {
"trigger": "When the Sleep as Android [input_text.sleep_as_android] app reports that an alarm has started.",
"conditions": "There are no global conditions for this automation.",
"action": "The automation performs two sets of actions simultaneously. First, it makes a decision: if Danny [person.danny] is at home, bedroom blind automations are enabled [input_boolean.enable_bedroom_blind_automations], and the bedroom blinds [cover.bedroom_blinds] are currently closed (their position is below a set threshold [input_number.blind_closed_position_threshold]), then it logs a message about opening the blinds in 5 minutes, waits for 5 minutes, and then opens the blinds. If Danny is home but the other conditions aren't met, it simply logs that an alarm was triggered. The second action runs at the same time: if the bedroom clock matrix light [light.bedroom_clock_matrix] is off, it turns it on."
},
"human_like": "This automation responds to a phone alarm by logging the event, turning on a bedroom clock light, and, if conditions are right, opening the bedroom blinds after a short delay.",
"complexity": "medium"
}
},
{
"id": "'1646778676345'",
"result": {
"structured": "TRIGGER: When Nest Protect Living Room CO Status [binary_sensor.nest_protect_living_room_co_status] changes to on. CONDITIONS: None. ACTIONS: Execute in parallel: 1. Run script.send_direct_notification with message ':skull_and_crossbones: Carbon Monoxide detected on the living room.' and title ':skull_and_crossbones: CO Detected on the living room'. 2. Run script.set_central_heating_to_off. 3. Run script.set_hot_water_to_home_mode.",
"natural_language": {
"trigger": "When the Nest Protect Living Room CO Status [binary_sensor.nest_protect_living_room_co_status] detects carbon monoxide and changes its state to 'on'.",
"conditions": "There are no conditions that must be met.",
"action": "Three actions are performed simultaneously: a direct notification is sent with a warning message and title about carbon monoxide detection in the living room, the central heating system is turned off, and the hot water system is set to home mode."
},
"human_like": "Sends an urgent CO alert and turns off heating while setting hot water to a safe mode when carbon monoxide is detected in the living room.",
"complexity": "low"
}
},
{
"id": "'1646778927330'",
"result": {
"structured": "TRIGGER: When Nest Protect Living Room Smoke Status [binary_sensor.nest_protect_living_room_smoke_status] changes to on. CONDITIONS: None. ACTIONS: Execute in parallel: Run script.send_direct_notification with message ':smoking: Smoke detected on the living room.' and title ':smoking: Smoke detected on the living room', Run script.set_central_heating_to_off, Run script.set_hot_water_to_home_mode.",
"natural_language": {
"trigger": "When the Nest Protect Living Room Smoke Status [binary_sensor.nest_protect_living_room_smoke_status] detects smoke and changes its state to on.",
"conditions": "There are no conditions; the automation runs immediately when the trigger occurs.",
"action": "Sends a notification with a smoking emoji and the message 'Smoke detected on the living room', turns off the central heating, and sets the hot water system to home mode. These actions are performed simultaneously."
},
"human_like": "Sends a smoke alert and adjusts heating and hot water settings when smoke is detected in the living room.",
"complexity": "low"
}
},
{
"id": "'1646778627153'",
"result": {
"structured": "TRIGGER: When Nest Protect Office CO Status [binary_sensor.nest_protect_office_co_status] changes to on. CONDITIONS: None. ACTIONS: Execute in parallel: 1. Run script.send_direct_notification with title ':skull_and_crossbones: CO Detected in the office' and message ':skull_and_crossbones: Carbon Monoxide detected in the :office: office.' 2. Run script.set_central_heating_to_off. 3. Run script.set_hot_water_to_home_mode.",
"natural_language": {
"trigger": "When the Nest Protect Office CO Status [binary_sensor.nest_protect_office_co_status] detects carbon monoxide and changes its state to 'on'.",
"conditions": "There are no conditions that must be met.",
"action": "Three actions are performed simultaneously: a notification is sent with a warning message about carbon monoxide detection in the office, the central heating system is turned off, and the hot water system is set to home mode."
},
"human_like": "Sends an alert and turns off heating systems when carbon monoxide is detected in the office.",
"complexity": "low"
}
},
{
"id": "'1646778909669'",
"result": {
"structured": "TRIGGER: When Nest Protect Office Smoke Status [binary_sensor.nest_protect_office_smoke_status] changes to on. CONDITIONS: None. ACTIONS: Execute in parallel: 1. Run script.send_direct_notification with title ':smoking: Smoke detected in the office' and message ':smoking: Smoke detected in the :office: office.', 2. Run script.set_central_heating_to_off, 3. Run script.set_hot_water_to_home_mode.",
"natural_language": {
"trigger": "When the Nest Protect Office Smoke Status [binary_sensor.nest_protect_office_smoke_status] detects smoke and changes its state to 'on'.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "Three actions are performed simultaneously: a direct notification is sent with a title and message about smoke in the office, the central heating is turned off via a script, and the hot water system is set to 'home mode' via another script."
},
"human_like": "When smoke is detected in the office, it sends an alert, turns off the heating, and sets the hot water to a safe mode.",
"complexity": "low"
}
},
{
"id": "'1646778676344'",
"result": {
"structured": "TRIGGER: When Nest Protect Upstairs CO Status [binary_sensor.nest_protect_upstairs_co_status] changes to on. CONDITIONS: None. ACTIONS: Run script.send_direct_notification with title ':skull_and_crossbones: CO Detected on the stairs' and message ':skull_and_crossbones: Carbon Monoxide detected on the stairs.' AND Run script.set_central_heating_to_off AND Run script.set_hot_water_to_home_mode.",
"natural_language": {
"trigger": "When the Nest Protect Upstairs CO Status [binary_sensor.nest_protect_upstairs_co_status] detects carbon monoxide and changes its state to 'on'.",
"conditions": "There are no conditions for this automation.",
"action": "It sends a direct notification with a warning message about carbon monoxide detection on the stairs, turns off the central heating system, and sets the hot water system to home mode."
},
"human_like": "Sends a critical alert and shuts down heating systems when carbon monoxide is detected on the stairs.",
"complexity": "low"
}
},
{
"id": "'1646778927329'",
"result": {
"structured": "TRIGGER: When Nest Protect Upstairs Smoke Status [binary_sensor.nest_protect_upstairs_smoke_status] changes to on (smoke detected). CONDITIONS: None. ACTIONS: Execute in parallel: 1. Run script.send_direct_notification with title ':smoking: Smoke detected on the stairs' and message ':smoking: Smoke detected on the stairs.' 2. Run script.set_central_heating_to_off. 3. Run script.set_hot_water_to_home_mode.",
"natural_language": {
"trigger": "When the Nest Protect Upstairs Smoke Status [binary_sensor.nest_protect_upstairs_smoke_status] detects smoke and changes its state to on.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "Three actions are performed simultaneously: a direct notification is sent with a smoke alert message, the central heating is turned off, and the hot water system is set to home mode."
},
"human_like": "When smoke is detected on the stairs, it sends an alert, turns off the heating, and sets the hot water to a safe mode.",
"complexity": "low"
}
},
{
"id": "'1691009694611'",
"result": {
"structured": "TRIGGER: When the time pattern matches minutes 1 OR minutes 5 OR minutes 31 OR minutes 35 OR When Growatt SPH Inverter Mode [sensor.growatt_sph_inverter_mode] changes from unknown OR When Growatt SPH Inverter Mode [sensor.growatt_sph_inverter_mode] changes from unavailable OR When Predbat Status [predbat.status] changes to null. CONDITIONS: (Enable Solar Assistant Automations [input_boolean.enable_solar_assistant_automations] is on OR Enable Predbat Automations [input_boolean.enable_predbat_automations] is on) AND NOT (Growatt SPH Work Mode Priority [select.growatt_sph_work_mode_priority] is unavailable OR Growatt SPH Inverter Mode [sensor.growatt_sph_inverter_mode] is unknown OR Growatt SPH Inverter Mode [sensor.growatt_sph_inverter_mode] is unavailable). ACTIONS: If the trigger is an event AND Electricity Previous Rate [sensor.electricity_previous_rate] is above Octopus Energy Electricity Export Current Rate [sensor.octopus_energy_electricity_export_current_rate] AND Octopus Energy Electricity Current Rate [sensor.octopus_energy_electricity_current_rate] is above Octopus Energy Electricity Export Current Rate [sensor.octopus_energy_electricity_export_current_rate], then run script.solar_assistant_check_charging_mode with data. Otherwise, if the trigger is time_backup, then run script.solar_assistant_check_charging_mode with data. If neither condition is met, do nothing.",
"natural_language": {
"trigger": "The automation triggers on a specific time schedule (at minutes 1, 5, 31, and 35 past the hour), or when the Growatt SPH Inverter Mode [sensor.growatt_sph_inverter_mode] changes from an unknown or unavailable state, or when the Predbat Status [predbat.status] changes to null.",
"conditions": "At least one of the automation toggles must be enabled: either Enable Solar Assistant Automations [input_boolean.enable_solar_assistant_automations] or Enable Predbat Automations [input_boolean.enable_predbat_automations] must be on. Additionally, the Growatt SPH Work Mode Priority [select.growatt_sph_work_mode_priority] must not be unavailable, and the Growatt SPH Inverter Mode [sensor.growatt_sph_inverter_mode] must not be in an unknown or unavailable state.",
"action": "If the automation was triggered by an event (inverter mode or status change) and the current and previous electricity import rates are both higher than the current export rate, a script is called to check the solar charging mode. If the automation was triggered by the backup time pattern, the same script is called. In all other cases, no action is taken."
},
"human_like": "This automation periodically checks and adjusts the solar system's charging mode based on electricity rates and system status, but only when the relevant automations are enabled and the inverter data is reliable.",
"complexity": "high"
}
},
{
"id": "'1691767286139'",
"result": {
"structured": "TRIGGER: At 08:00:00 daily. CONDITIONS: None. ACTIONS: Execute the script update_solcast.",
"natural_language": {
"trigger": "Every day at 8:00 AM.",
"conditions": "There are no conditions that must be met.",
"action": "Runs the script named 'update_solcast'."
},
"human_like": "Updates the solar forecast from Solcast every morning at 8 AM.",
"complexity": "low"
}
},
{
"id": "'1612998168529'",
"result": {
"structured": "TRIGGER: When Spotify Danny [media_player.spotify_danny] changes state to playing. CONDITIONS: None. ACTIONS: If (media_position, media_duration, media_title, and media_artist attributes of Spotify Danny [media_player.spotify_danny] are all not none) THEN call script.send_to_home_log with a detailed message including the track title, artist, playback position, duration, and completion percentage. OTHERWISE call script.send_to_home_log with a generic message stating the media_content_type.",
"natural_language": {
"trigger": "When the Spotify Danny [media_player.spotify_danny] starts playing.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "If the currently playing track has complete metadata (including position, duration, title, and artist), it sends a detailed log message with the track title, artist, current position, total duration, and the percentage of the track completed. If the metadata is incomplete, it sends a simpler log message stating the type of media being played."
},
"human_like": "Logs detailed information about the currently playing Spotify track, or a simpler message if the track details are unavailable.",
"complexity": "medium"
}
},
{
"id": "'1624918278463'",
"result": {
"structured": "TRIGGER: When Stairs Motion Occupancy [binary_sensor.stairs_motion_occupancy] changes from off to on. CONDITIONS: None. ACTIONS: Execute the following actions in parallel: (IF (sun is after sunrise) AND (stairs 2 light [light.stairs_2] is off) AND (enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on) THEN send a debug log message and turn on scene Stairs Light 2 On [scene.stairs_light_2_on] with a 0.5-second transition) OR (IF (time is after 00:00:00) AND (sun is before sunrise) AND (stairs 2 light [light.stairs_2] is off) AND (enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on) THEN send a debug log message and turn on scene Stairs Light 2 Dim [scene.stairs_light_2_dim] with a 0.5-second transition).",
"natural_language": {
"trigger": "When motion is first detected on the stairs, indicated by the Stairs Motion Occupancy [binary_sensor.stairs_motion_occupancy] sensor changing from off to on.",
"conditions": "There are no global conditions for this automation.",
"action": "The automation runs two potential sequences in parallel, choosing between them based on the time of day. If it is daytime (after sunrise), the stairs 2 light [light.stairs_2] is off, and the enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on, it will log a message and turn on the Stairs Light 2 On [scene.stairs_light_2_on] scene. If it is nighttime (any time after midnight but before sunrise), the stairs 2 light [light.stairs_2] is off, and the enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on, it will log a message and turn on the dimmed Stairs Light 2 Dim [scene.stairs_light_2_dim] scene."
},
"human_like": "Turns on ambient stair lighting at different brightness levels when motion is detected, depending on whether it's day or night.",
"complexity": "medium"
}
},
{
"id": "'1598726353326'",
"result": {
"structured": "TRIGGER: When upstairs area motion [binary_sensor.upstairs_area_motion] changes from off to on OR When Upstairs Motion Occupancy [binary_sensor.upstairs_motion_occupancy] changes from off to on. CONDITIONS: (Stairs Motion Illuminance [sensor.stairs_motion_illuminance] is below Stairs Light Level Threshold [input_number.stairs_light_level_threshold]) AND (enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on) AND (current time is after 07:00:00 AND before childrens bed time [input_datetime.childrens_bed_time]) AND (stairs light [light.stairs] is off). ACTIONS: (Run script.send_to_home_log with a debug message AND Turn on scene Stairs Light On [scene.stairs_light_on]) in parallel.",
"natural_language": {
"trigger": "When motion is detected upstairs, either by the upstairs area motion sensor [binary_sensor.upstairs_area_motion] or the Upstairs Motion Occupancy sensor [binary_sensor.upstairs_motion_occupancy].",
"conditions": "The automation runs only if the measured light level from the Stairs Motion Illuminance sensor [sensor.stairs_motion_illuminance] is below the set Stairs Light Level Threshold [input_number.stairs_light_level_threshold], the enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is turned on, the current time is between 7:00 AM and the set childrens bed time [input_datetime.childrens_bed_time], and the stairs light [light.stairs] is currently off.",
"action": "Sends a debug notification to the home log and simultaneously turns on the Stairs Light On [scene.stairs_light_on] scene to illuminate the stairs."
},
"human_like": "Turns on the stairs light when motion is detected upstairs during the day before bedtime, but only if it's dark enough and the feature is enabled.",
"complexity": "medium"
}
},
{
"id": "'1598726353327'",
"result": {
"structured": "TRIGGER: When upstairs area motion [binary_sensor.upstairs_area_motion] changes from off to on OR When Upstairs Motion Occupancy [binary_sensor.upstairs_motion_occupancy] changes from off to on. CONDITIONS: (Stairs Motion Illuminance [sensor.stairs_motion_illuminance] is below Stairs Light Level Threshold [input_number.stairs_light_level_threshold]) AND (enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on) AND (current time is after 07:00:00 AND before childrens bed time [input_datetime.childrens_bed_time]) AND (stairs light [light.stairs] is on) AND (brightness attribute of stairs light [light.stairs] is below 5). ACTIONS: Execute script.send_to_home_log with a debug message and turn on Stairs Light On [scene.stairs_light_on].",
"natural_language": {
"trigger": "When motion is detected in the upstairs area, either by the primary sensor (upstairs area motion [binary_sensor.upstairs_area_motion]) or by a fallback sensor (Upstairs Motion Occupancy [binary_sensor.upstairs_motion_occupancy]), as they change from no motion to motion.",
"conditions": "The automation runs only if the measured light level (Stairs Motion Illuminance [sensor.stairs_motion_illuminance]) is below a configured threshold (Stairs Light Level Threshold [input_number.stairs_light_level_threshold]), the motion trigger feature is enabled (enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers]), the current time is between 7:00 AM and the set children's bedtime (childrens bed time [input_datetime.childrens_bed_time]), the stairs light [light.stairs] is already on, but its brightness is set very low (below 5).",
"action": "Sends a debug log message to the home log describing the event and then activates a scene (Stairs Light On [scene.stairs_light_on]) to brighten the stairs light."
},
"human_like": "Brightens the dimmed stairs light when motion is detected upstairs during the day before bedtime, but only if it's dark enough and the feature is enabled.",
"complexity": "medium"
}
},
{
"id": "'1587595659605'",
"result": {
"structured": "TRIGGER: When Upstairs area motion [binary_sensor.upstairs_area_motion] changes from off to on OR When Upstairs Motion Occupancy [binary_sensor.upstairs_motion_occupancy] changes from off to on. CONDITIONS: (Stairs Motion Illuminance [sensor.stairs_motion_illuminance] is below Stairs Light Level Threshold [input_number.stairs_light_level_threshold]) AND (enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on) AND (current time is after childrens bed time [input_datetime.childrens_bed_time]) AND (stairs light [light.stairs] is off). ACTIONS: Execute the following actions in parallel: Choose one action sequence based on conditions: 1. If home mode [input_select.home_mode] is No Children, then send a debug log message and turn on Stairs Light On [scene.stairs_light_on]. 2. ELSE IF (home mode [input_select.home_mode] is NOT No Children) AND (Enable Leos Door Automations [input_boolean.enable_leos_door_automations] is on) AND (Enable Ashlees Door Automations [input_boolean.enable_ashlees_door_automations] is on) AND (Childrens Bedroom Doors [binary_sensor.childrens_bedroom_doors] is off), then send a debug log message and turn on Stairs Light On [scene.stairs_light_on]. 3. ELSE IF (home mode [input_select.home_mode] is NOT No Children) AND (Enable Leos Door Automations [input_boolean.enable_leos_door_automations] is on) AND (Enable Ashlees Door Automations [input_boolean.enable_ashlees_door_automations] is on) AND (Childrens Bedroom Doors [binary_sensor.childrens_bedroom_doors] is on), then send a debug log message and turn on Stairs Light Dim [scene.stairs_light_dim]. 4. ELSE IF (home mode [input_select.home_mode] is NOT No Children) AND (Enable Leos Door Automations [input_boolean.enable_leos_door_automations] is on) AND (Enable Ashlees Door Automations [input_boolean.enable_ashlees_door_automations] is off) AND (leos bedroom door contact [binary_sensor.leos_bedroom_door_contact] is off), then send a debug log message and turn on Stairs Light Dim [scene.stairs_light_dim]. 5. ELSE IF (home mode [input_select.home_mode] is NOT No Children) AND (Enable Leos Door Automations [input_boolean.enable_leos_door_automations] is off) AND (Enable Ashlees Door Automations [input_boolean.enable_ashlees_door_automations] is on) AND (ashlees bedroom door contact [binary_sensor.ashlees_bedroom_door_contact] is off), then send a debug log message and turn on Stairs Light On [scene.stairs_light_on]. 6. Otherwise, do nothing.",
"natural_language": {
"trigger": "When motion is detected upstairs, either by the Upstairs area motion [binary_sensor.upstairs_area_motion] sensor or the Upstairs Motion Occupancy [binary_sensor.upstairs_motion_occupancy] sensor.",
"conditions": "The automation runs only if the current light level measured by Stairs Motion Illuminance [sensor.stairs_motion_illuminance] is below the threshold set by Stairs Light Level Threshold [input_number.stairs_light_level_threshold], the enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is turned on, the current time is after the childrens bed time [input_datetime.childrens_bed_time], and the stairs light [light.stairs] is currently off.",
"action": "Depending on the home mode and door statuses, the automation will either turn the stairs light on brightly, turn it on dimly, or do nothing. It will also send a corresponding debug log message. If the home mode [input_select.home_mode] is set to 'No Children', it turns the light on brightly. If children are present, it checks the status of door automation switches and the children's bedroom doors to decide between a bright light, a dim light, or no action. The specific logic prioritizes a bright light if both children's doors are closed and their automations are enabled, a dim light if the doors are open, and individual door checks if only one child's automation is enabled."
},
"human_like": "Turns on the stairs light at a safe brightness level when motion is detected upstairs after bedtime, depending on whether children are home and if their bedroom doors are open or closed.",
"complexity": "high"
}
},
{
"id": "'1587595659608'",
"result": {
"structured": "TRIGGER: When Upstairs area motion [binary_sensor.upstairs_area_motion] changes from off to on OR When Upstairs Motion Occupancy [binary_sensor.upstairs_motion_occupancy] changes from off to on. CONDITIONS: (Stairs Motion Illuminance [sensor.stairs_motion_illuminance] is below Stairs Light Level Threshold [input_number.stairs_light_level_threshold]) AND (enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on) AND (current time is after childrens bed time [input_datetime.childrens_bed_time]) AND (stairs light [light.stairs] is on) AND (stairs light [light.stairs] brightness attribute is below 5). ACTIONS: Execute a parallel action set. If home mode [input_select.home_mode] is No Children, then send a debug log message and turn on Stairs Light On [scene.stairs_light_on]. ELSE IF (home mode [input_select.home_mode] is NOT No Children) AND (Enable Leos Door Automations [input_boolean.enable_leos_door_automations] is on) AND (Enable Ashlees Door Automations [input_boolean.enable_ashlees_door_automations] is on) AND (Childrens Bedroom Doors [binary_sensor.childrens_bedroom_doors] is off), then send a debug log message and turn on Stairs Light On [scene.stairs_light_on]. ELSE IF (home mode [input_select.home_mode] is NOT No Children) AND (Enable Leos Door Automations [input_boolean.enable_leos_door_automations] is on) AND (Enable Ashlees Door Automations [input_boolean.enable_ashlees_door_automations] is on) AND (Childrens Bedroom Doors [binary_sensor.childrens_bedroom_doors] is on), then send a debug log message and turn on Stairs Light Dim [scene.stairs_light_dim]. ELSE IF (home mode [input_select.home_mode] is NOT No Children) AND (Enable Leos Door Automations [input_boolean.enable_leos_door_automations] is on) AND (Enable Ashlees Door Automations [input_boolean.enable_ashlees_door_automations] is off) AND (leos bedroom door contact [binary_sensor.leos_bedroom_door_contact] is off), then send a debug log message and turn on Stairs Light On [scene.stairs_light_on]. ELSE IF (home mode [input_select.home_mode] is NOT No Children) AND (Enable Leos Door Automations [input_boolean.enable_leos_door_automations] is off) AND (Enable Ashlees Door Automations [input_boolean.enable_ashlees_door_automations] is on) AND (ashlees bedroom door contact [binary_sensor.ashlees_bedroom_door_contact] is off), then send a debug log message and turn on Stairs Light On [scene.stairs_light_on]. Otherwise, do nothing.",
"natural_language": {
"trigger": "When motion is first detected upstairs, either by the Upstairs area motion [binary_sensor.upstairs_area_motion] or the Upstairs Motion Occupancy [binary_sensor.upstairs_motion_occupancy] sensor.",
"conditions": "The automation runs only if several conditions are met: the light level measured by Stairs Motion Illuminance [sensor.stairs_motion_illuminance] is below a set threshold, the enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on, the current time is after the childrens bed time [input_datetime.childrens_bed_time], the stairs light [light.stairs] is already on, and its brightness is set very low (below 5).",
"action": "Based on the home mode and door statuses, the automation will either turn the stairs light to full brightness or a dimmed level, and log a corresponding message. If the home is in 'No Children' mode, it turns the light to full brightness. If children are present, it checks the status of their bedroom doors. If both children's door automations are enabled and their combined door sensor is closed, it turns the light to full brightness. If the combined door sensor is open, it dims the light. If only one child's door automation is enabled and that specific door is closed, it turns the light to full brightness. If no other conditions match, no action is taken."
},
"human_like": "This automation brightens or dims the stairs light when motion is detected upstairs after bedtime, adjusting the brightness based on whether children are home and if their bedroom doors are open.",
"complexity": "high"
}
},
{
"id": "'1587595659606'",
"result": {
"structured": "TRIGGER: When upstairs area motion [binary_sensor.upstairs_area_motion] changes from off to on OR When Upstairs Motion Occupancy [binary_sensor.upstairs_motion_occupancy] changes from off to on. CONDITIONS: Stairs Motion Illuminance [sensor.stairs_motion_illuminance] is below the value of Stairs Light Level Threshold [input_number.stairs_light_level_threshold] AND enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on AND (the time is before sunrise OR the time is before 07:00:00) AND stairs light [light.stairs] is off. ACTIONS: In parallel, execute a choice: If bedroom lamps [light.bedroom_lamps] is on, then send a debug log message and turn on the scene Stairs Light On [scene.stairs_light_on]. Otherwise, if Enable Stairs Night Light [input_boolean.enable_stairs_night_light] is on, then send a debug log message and turn on the scene Stairs Night Light [scene.stairs_night_light]. Otherwise (default), send a debug log message and turn on the scene Stairs Light On [scene.stairs_light_on].",
"natural_language": {
"trigger": "When motion is detected upstairs, either by the upstairs area motion sensor [binary_sensor.upstairs_area_motion] or the Upstairs Motion Occupancy sensor [binary_sensor.upstairs_motion_occupancy], changing from no motion to motion.",
"conditions": "The light level measured by the Stairs Motion Illuminance sensor [sensor.stairs_motion_illuminance] must be below the threshold set by the Stairs Light Level Threshold [input_number.stairs_light_level_threshold]. The automation must be enabled via the enable stairs motion triggers switch [input_boolean.enable_stairs_motion_triggers]. The time must be either before sunrise or before 7:00 AM. Finally, the stairs light [light.stairs] must currently be off.",
"action": "Depending on other conditions, the automation will turn on a light scene for the stairs. If the bedroom lamps [light.bedroom_lamps] are on, it logs a message and turns on the bright Stairs Light On scene [scene.stairs_light_on]. If the bedroom lights are off but the night light mode is enabled via Enable Stairs Night Light [input_boolean.enable_stairs_night_light], it logs a message and turns on the dim Stairs Night Light scene [scene.stairs_night_light]. If neither condition is met, it defaults to logging a message and turning on the bright Stairs Light On scene [scene.stairs_light_on]."
},
"human_like": "Turns on the stairs light (either bright or dim) when motion is detected in the dark, late at night or early morning, but only if the automation is enabled and the light is currently off.",
"complexity": "medium"
}
},
{
"id": "'1587595659607'",
"result": {
"structured": "TRIGGER: When upstairs area motion [binary_sensor.upstairs_area_motion] changes from off to on OR When Upstairs Motion Occupancy [binary_sensor.upstairs_motion_occupancy] changes from off to on. CONDITIONS: Stairs Motion Illuminance [sensor.stairs_motion_illuminance] is below Stairs Light Level Threshold [input_number.stairs_light_level_threshold] AND enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on AND (the time is before sunrise OR the time is before 07:00:00) AND stairs light [light.stairs] is on AND the brightness attribute of stairs light [light.stairs] is below 5. ACTIONS: Execute the following actions in parallel: If bedroom lamps [light.bedroom_lamps] is on, then send a debug log message and turn on Stairs Light On [scene.stairs_light_on]. Otherwise, if Enable Stairs Night Light [input_boolean.enable_stairs_night_light] is on, then send a debug log message and turn on Stairs Night Light [scene.stairs_night_light]. Otherwise (default), send a debug log message and turn on Stairs Light On [scene.stairs_light_on].",
"natural_language": {
"trigger": "When motion is first detected by either the upstairs area motion [binary_sensor.upstairs_area_motion] or the Upstairs Motion Occupancy [binary_sensor.upstairs_motion_occupancy] sensor.",
"conditions": "The automation runs only if the light level measured by the Stairs Motion Illuminance [sensor.stairs_motion_illuminance] is below the threshold set by Stairs Light Level Threshold [input_number.stairs_light_level_threshold], the enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is switched on, it is before sunrise or before 7:00 AM, the stairs light [light.stairs] is already on, and its brightness is set very low (below 5).",
"action": "Depending on other conditions, it will log a message and turn on a scene. If the bedroom lamps [light.bedroom_lamps] are on, it turns the stairs light to full brightness using the Stairs Light On [scene.stairs_light_on] scene. If the bedroom lights are off but the night light mode is enabled via Enable Stairs Night Light [input_boolean.enable_stairs_night_light], it turns on a dimmed night light using the Stairs Night Light [scene.stairs_night_light] scene. If neither condition is met, it defaults to turning on the full brightness scene."
},
"human_like": "Turns on the stairs light appropriately when motion is detected at night, choosing between a bright light if bedroom lights are on or a dim night light based on user settings.",
"complexity": "medium"
}
},
{
"id": "'1592062695452'",
"result": {
"structured": "TRIGGER: When Living Room Area Motion [binary_sensor.living_room_area_motion] turns on OR when Stairs Motion Occupancy [binary_sensor.stairs_motion_occupancy] turns on. CONDITIONS: Magic Mirror Plug [switch.magic_mirror_plug] is off AND Enable Magic Mirror Automations [input_boolean.enable_magic_mirror_automations] is on AND enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on. ACTIONS: In parallel, turn on Magic Mirror Plug [switch.magic_mirror_plug] and run script.send_to_home_log with a message 'Turning on :mirror: Magic Mirror.' and title ':paw_prints: Motion on the :ladder: stairs/lounge'.",
"natural_language": {
"trigger": "When motion is detected by either the Living Room Area Motion [binary_sensor.living_room_area_motion] sensor or the Stairs Motion Occupancy [binary_sensor.stairs_motion_occupancy] sensor.",
"conditions": "If the Magic Mirror Plug [switch.magic_mirror_plug] is currently off, and the automation toggles for the Magic Mirror and the stairs motion triggers are both enabled (Enable Magic Mirror Automations [input_boolean.enable_magic_mirror_automations] and enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] are on).",
"action": "Simultaneously turns on the Magic Mirror Plug [switch.magic_mirror_plug] and sends a debug log message to the home log stating that the Magic Mirror is being turned on due to motion on the stairs or lounge."
},
"human_like": "Turns on the Magic Mirror when motion is detected on the stairs or in the living room, provided the relevant automations are enabled.",
"complexity": "medium"
}
},
{
"id": "'1587595847618'",
"result": {
"structured": "TRIGGER: When upstairs area motion [binary_sensor.upstairs_area_motion] remains off for 1 minute OR When Stairs Motion Occupancy [binary_sensor.stairs_motion_occupancy] remains off for 1 minute. CONDITIONS: enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on. ACTIONS: In parallel: 1. Send a debug log message to Porch with the text ':no_pedestrians: No motion at the top of the stairs for 1 minute. Turning light off.'. 2. Activate scene Stairs Light Off [scene.stairs_light_off] with a 1-second transition. 3. Choose: If stairs 2 light [light.stairs_2] is on, then in parallel: a. Send a debug log message to Porch with the text ':no_pedestrians: No motion at the bottom of the stairs for 1 minute. Turning ambient light off.'. b. Activate scene Stairs Light 2 Off [scene.stairs_light_2_off] with a 2-second transition. c. Wait 1 second. d. Turn off stairs 2 light [light.stairs_2]. Otherwise, do nothing.",
"natural_language": {
"trigger": "When the upstairs area motion sensor [binary_sensor.upstairs_area_motion] has not detected motion for one minute, or when the Stairs Motion Occupancy sensor [binary_sensor.stairs_motion_occupancy] has not detected motion for one minute.",
"conditions": "The automation is only allowed to run if the enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is switched on.",
"action": "The automation performs several actions simultaneously. It logs a debug message to the 'Porch' log stating that there has been no motion at the top of the stairs for a minute and that the light is being turned off. It then activates the 'Stairs Light Off' scene [scene.stairs_light_off] with a one-second fade. Finally, it checks if the stairs 2 light [light.stairs_2] is on. If it is, it also logs a message about no motion at the bottom of the stairs, activates the 'Stairs Light 2 Off' scene [scene.stairs_light_2_off] with a two-second fade, waits one second, and then turns off the stairs 2 light [light.stairs_2] directly."
},
"human_like": "Turns off the stairway lights when no motion is detected at the top or bottom of the stairs for a minute, provided the motion trigger feature is enabled.",
"complexity": "medium"
}
},
{
"id": "'1624918387840'",
"result": {
"structured": "TRIGGER: When Stairs Motion Occupancy [binary_sensor.stairs_motion_occupancy] remains in the 'off' state (no motion) for 1 minute. CONDITIONS: enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is 'on' AND stairs 2 light [light.stairs_2] is 'on'. ACTIONS: In parallel: 1. Execute script send_to_home_log with a debug message stating 'No motion at the bottom of the stairs for 1 minute. Turning light off.' and title 'Porch'. 2. Activate scene Stairs Light 2 Off [scene.stairs_light_2_off] with a transition time of 2 seconds.",
"natural_language": {
"trigger": "When the Stairs Motion Occupancy [binary_sensor.stairs_motion_occupancy] sensor detects no motion for a continuous period of one minute.",
"conditions": "The automation will only proceed if the enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] switch is turned on, and if the stairs 2 light [light.stairs_2] is currently on.",
"action": "Two actions are performed simultaneously: a debug message is sent to the home log stating that there has been no motion at the bottom of the stairs for a minute and the light is being turned off. At the same time, the Stairs Light 2 Off [scene.stairs_light_2_off] scene is activated, which will turn off the light over a two-second fade."
},
"human_like": "Turns off the stairs light after no motion has been detected for a minute, provided the motion trigger feature is enabled.",
"complexity": "low"
}
},
{
"id": "'1591553945554'",
"result": {
"structured": "TRIGGER: When Stairs Motion Occupancy [binary_sensor.stairs_motion_occupancy] remains off (no motion) for 3 minutes OR at 23:30:00. CONDITIONS: The current time is between 23:00:00 and 05:00:00 AND Magic Mirror Plug [switch.magic_mirror_plug] is on AND Enable Magic Mirror Automations [input_boolean.enable_magic_mirror_automations] is on. ACTIONS: Turn off Magic Mirror Plug [switch.magic_mirror_plug] AND run script Send To Home Log [script.send_to_home_log] with a custom message about turning off the Magic Mirror due to no motion.",
"natural_language": {
"trigger": "When the Stairs Motion Occupancy [binary_sensor.stairs_motion_occupancy] sensor reports no motion for a continuous period of three minutes, or when the clock reaches 11:30 PM.",
"conditions": "The automation only runs if the current time is between 11:00 PM and 5:00 AM, the Magic Mirror Plug [switch.magic_mirror_plug] is currently switched on, and the Enable Magic Mirror Automations [input_boolean.enable_magic_mirror_automations] toggle is set to on.",
"action": "It turns off the Magic Mirror Plug [switch.magic_mirror_plug] to power down the mirror and simultaneously sends a debug log message to the home log, which includes a formatted timestamp and a note explaining the action was taken due to no motion being detected."
},
"human_like": "Turns off the Magic Mirror during the night if no motion is detected on the stairs for a few minutes, helping to save power when it's not needed.",
"complexity": "medium"
}
},
{
"id": "'1714869692076'",
"result": {
"structured": "TRIGGER: When Stairs Light Input 0 Input [binary_sensor.stairs_light_input_0_input] changes state, provided the previous state is not 'unknown' or 'unavailable' AND the new state is not 'unknown' or 'unavailable'. CONDITIONS: None. ACTIONS: Toggle stairs light [light.stairs] with a transition of 1 second and brightness set to 255.",
"natural_language": {
"trigger": "Whenever the Stairs Light Input 0 Input [binary_sensor.stairs_light_input_0_input] changes its state, as long as it's not changing to or from an 'unknown' or 'unavailable' status.",
"conditions": "There are no additional conditions.",
"action": "Toggle the stairs light [light.stairs] on or off, with a smooth one-second transition and the brightness set to maximum."
},
"human_like": "Toggles the stairs light on or off whenever the associated input switch is pressed.",
"complexity": "low"
}
},
{
"id": "'1615849889104'",
"result": {
"structured": "TRIGGER: When leos bedroom door contact [binary_sensor.leos_bedroom_door_contact] changes from closed (off) to open (on) OR When ashlees bedroom door contact [binary_sensor.ashlees_bedroom_door_contact] changes from closed (off) to open (on). CONDITIONS: The current time is after childrens bed time [input_datetime.childrens_bed_time] AND before 23:59:59. AND stairs light [light.stairs] is on. AND home mode [input_select.home_mode] is NOT No Children. ACTIONS: In parallel, evaluate two possible action sequences. If Enable Leos Door Automations [input_boolean.enable_leos_door_automations] is on AND leos bedroom door contact [binary_sensor.leos_bedroom_door_contact] is on, then: 1. Send a debug log message with a specific text. 2. Activate scenes Stairs Light Dim [scene.stairs_light_dim] and Stairs Light 2 On [scene.stairs_light_2_on] with a 0.5 second transition. OR If Enable Ashlees Door Automations [input_boolean.enable_ashlees_door_automations] is on AND ashlees bedroom door contact [binary_sensor.ashlees_bedroom_door_contact] is on, then: 1. Send a debug log message with a specific text. 2. Activate scenes Stairs Light On [scene.stairs_light_on] and Stairs Light 2 On [scene.stairs_light_2_on] with a 0.5 second transition.",
"natural_language": {
"trigger": "The automation is triggered when either Leo's bedroom door [binary_sensor.leos_bedroom_door_contact] or Ashlee's bedroom door [binary_sensor.ashlees_bedroom_door_contact] opens.",
"conditions": "The automation only runs if the current time is after the set children's bedtime [input_datetime.childrens_bed_time] and before midnight, the stairs light [light.stairs] is on, and the home mode [input_select.home_mode] is not set to 'No Children'.",
"action": "Depending on which door opened and which automation is enabled, the system will log a debug message and set specific lighting scenes on the stairs. If Leo's door automation is enabled and his door is open, it dims the stairs lights. If Ashlee's door automation is enabled and her door is open, it turns the stairs lights on to a brighter setting. Both actions also turn on a second stairs light scene."
},
"human_like": "When a child's bedroom door opens after bedtime while the stairs light is on, this automation adjusts the stairs lighting to a suitable level and logs the event.",
"complexity": "medium"
}
},
{
"id": "'1615850302527'",
"result": {
"structured": "TRIGGER: When leos bedroom door contact [binary_sensor.leos_bedroom_door_contact] changes from open (on) to closed (off) OR When ashlees bedroom door contact [binary_sensor.ashlees_bedroom_door_contact] changes from open (on) to closed (off). CONDITIONS: The current time is after childrens bed time [input_datetime.childrens_bed_time] AND before 23:59:59 AND stairs light [light.stairs] is on AND home mode [input_select.home_mode] is Normal. ACTIONS: Execute the following actions in parallel: Based on the state of enable_ashlees_door_automations [input_boolean.enable_ashlees_door_automations] and enable_leos_door_automations [input_boolean.enable_leos_door_automations], choose one of three sequences: 1. If both automations are enabled AND Childrens Bedroom Doors [binary_sensor.childrens_bedroom_doors] is closed (off), then send a debug log message and turn on scenes Stairs Light On [scene.stairs_light_on] and Stairs Light 2 On [scene.stairs_light_2_on] with a 0.5-second transition. 2. If only leos automations are enabled AND leos bedroom door contact [binary_sensor.leos_bedroom_door_contact] is closed (off), then send a debug log message and turn on the same scenes. 3. If only ashlees automations are enabled AND ashlees bedroom door contact [binary_sensor.ashlees_bedroom_door_contact] is closed (off), then send a debug log message and turn on the same scenes. If none of the above conditions are met, do nothing.",
"natural_language": {
"trigger": "When Leo's bedroom door [binary_sensor.leos_bedroom_door_contact] closes, or when Ashlee's bedroom door [binary_sensor.ashlees_bedroom_door_contact] closes.",
"conditions": "The automation runs only if the current time is after the configured children's bed time [input_datetime.childrens_bed_time] and before midnight, the stairs light [light.stairs] is already on, and the home mode [input_select.home_mode] is set to 'Normal'.",
"action": "Depending on which child's door automation is enabled and the state of the doors, the system will log a debug message and then turn on both the Stairs Light On [scene.stairs_light_on] and Stairs Light 2 On [scene.stairs_light_2_on] scenes with a smooth transition. If both children's door automations are on and the combined children's bedroom doors sensor [binary_sensor.childrens_bedroom_doors] shows closed, it logs a message about both children. If only Leo's automation is on and his door is closed, it logs a message for Leo. If only Ashlee's automation is on and her door is closed, it logs a message for Ashlee. If none of these specific conditions are true, no action is taken."
},
"human_like": "After the children's bedtime, if a child's bedroom door closes while the stairs light is on, it brightens the stairway lights and logs which child's door triggered it.",
"complexity": "medium"
}
},
{
"id": "'1588856667889'",
"result": {
"structured": "TRIGGER: When Stairs Motion Occupancy [binary_sensor.stairs_motion_occupancy] changes from on to off AND remains off for 5 minutes. CONDITIONS: (Current time is between 09:00:00 and 17:30:00) AND (Current day is Monday, Tuesday, Wednesday, Thursday, or Friday) AND (Enable Magic Mirror Automations [input_boolean.enable_magic_mirror_automations] is on) AND (enable stairs motion triggers [input_boolean.enable_stairs_motion_triggers] is on). ACTIONS: Turn off Magic Mirror Plug [switch.magic_mirror_plug] AND send a debug log message to Home Log with title 'Porch' and content ':no_pedestrians: No motioned detected. Turning off :mirror: Magic Mirror based on time of the day.'.",
"natural_language": {
"trigger": "When the Stairs Motion Occupancy [binary_sensor.stairs_motion_occupancy] sensor stops detecting motion and remains inactive for five minutes.",
"conditions": "The automation only runs if the current time is between 9:00 AM and 5:30 PM on a weekday (Monday through Friday). Additionally, both the 'Enable Magic Mirror Automations' [input_boolean.enable_magic_mirror_automations] and 'enable stairs motion triggers' [input_boolean.enable_stairs_motion_triggers] switches must be turned on.",
"action": "Turns off the Magic Mirror Plug [switch.magic_mirror_plug] and sends a debug notification to the home log with a message stating that the Magic Mirror was turned off due to no motion being detected during the specified time window."
},
"human_like": "Turns off the Magic Mirror during weekday business hours if no motion is detected on the stairs for five minutes, provided the relevant automations are enabled.",
"complexity": "medium"
}
},
{
"id": "'1630760046947'",
"result": {
"structured": "TRIGGER: At sunset with a 1-hour offset. CONDITIONS: Stairs Blinds [cover.stairs_blinds] is open AND Enable Stairs Blind Automations [input_boolean.enable_stairs_blind_automations] is on. ACTIONS: Send a debug log message with title 'Porch' and message ':city_sunrise: :window: Closing blinds.' AND Close Stairs Blinds [cover.stairs_blinds].",
"natural_language": {
"trigger": "One hour after sunset.",
"conditions": "The Stairs Blinds [cover.stairs_blinds] must be open, and the automation must be enabled via the Enable Stairs Blind Automations [input_boolean.enable_stairs_blind_automations] switch.",
"action": "Sends a debug notification to the home log with a message about closing the blinds and then closes the Stairs Blinds [cover.stairs_blinds]."
},
"human_like": "Closes the stairs blinds one hour after sunset, but only if they are open and the automation is enabled.",
"complexity": "low"
}
},
{
"id": "'1630760149356'",
"result": {
"structured": "TRIGGER: At 08:00:00. CONDITIONS: Stairs Blinds [cover.stairs_blinds] is closed AND Enable Stairs Blind Automations [input_boolean.enable_stairs_blind_automations] is on. ACTIONS: In parallel: Send a debug log message titled 'Porch' with content ':sunrise: Opening blinds.' AND Open Stairs Blinds [cover.stairs_blinds].",
"natural_language": {
"trigger": "At 8:00 AM every day.",
"conditions": "If the Stairs Blinds [cover.stairs_blinds] are currently closed and the automation switch Enable Stairs Blind Automations [input_boolean.enable_stairs_blind_automations] is turned on.",
"action": "Sends a debug notification to the home log with the message ':sunrise: Opening blinds.' and simultaneously opens the Stairs Blinds [cover.stairs_blinds]."
},
"human_like": "Automatically opens the stairs blinds at 8 AM if they are closed and the automation is enabled.",
"complexity": "low"
}
},
{
"id": "'1630015410190'",
"result": {
"structured": "TRIGGER: When Stairs Person Detected [binary_sensor.stairs_person_detected] changes from off to on. CONDITIONS: house alarm [alarm_control_panel.house_alarm] is armed_away. ACTIONS: In parallel: 1) Take a snapshot from Stairs High Resolution Channel [camera.stairs_high_resolution_channel] and save it to the file path stored in Latest Frigate Upstairs Person File Path [input_text.latest_frigate_upstairs_person_file_path]. 2) Run the script send_home_log_with_local_attachments with a title 'Person detected on stairs', a message 'Frigate detected a person on the stairs.', and the same file path.",
"natural_language": {
"trigger": "When the Stairs Person Detected [binary_sensor.stairs_person_detected] sensor first detects a person, changing its state from off to on.",
"conditions": "The house alarm [alarm_control_panel.house_alarm] must be in the 'armed_away' mode.",
"action": "Two actions are performed simultaneously. First, a snapshot is taken from the Stairs High Resolution Channel [camera.stairs_high_resolution_channel] and saved to the file path specified by the Latest Frigate Upstairs Person File Path [input_text.latest_frigate_upstairs_person_file_path]. Second, a notification script is run, sending a log entry titled 'Person detected on stairs' with the message 'Frigate detected a person on the stairs.' and attaching the image from the same file path."
},
"human_like": "When a person is detected on the stairs while the house alarm is set to away, it takes a snapshot and sends an alert with the picture.",
"complexity": "low"
}
},
{
"id": "'1743186662872'",
"result": {
"structured": "TRIGGER: When stairs ambient light [light.stairs_ambient] remains on for 3 minutes OR When stairs ambient light [light.stairs_ambient] remains on for 5 minutes. CONDITIONS: front door [binary_sensor.front_door] is closed (off). ACTIONS: Turn off Office Light [light.office_light].",
"natural_language": {
"trigger": "When the stairs ambient light [light.stairs_ambient] has been turned on and stays on for either 3 minutes or 5 minutes.",
"conditions": "The front door [binary_sensor.front_door] must be closed.",
"action": "Turns off the Office Light [light.office_light]."
},
"human_like": "Turns off the office light if the stairs ambient light stays on for a few minutes while the front door is closed.",
"complexity": "medium"
}
},
{
"id": "'1619254173099'",
"result": {
"structured": "TRIGGER: When Steam Danny [sensor.steam_danny] changes state. CONDITIONS: Enable Steam Notifications [input_boolean.enable_steam_notifications] is on. ACTIONS: Execute script.send_home_log_with_url with parameters: title ':video_game: Steam', message 'Steam status changed to [new state]', and URL from the entity_picture attribute of Steam Danny [sensor.steam_danny].",
"natural_language": {
"trigger": "Whenever the Steam Danny [sensor.steam_danny] sensor changes its state.",
"conditions": "The Enable Steam Notifications [input_boolean.enable_steam_notifications] switch must be turned on.",
"action": "Sends a notification to the home log with the title ':video_game: Steam', a message stating the Steam status changed to the new state, and includes a URL from the Steam Danny [sensor.steam_danny] sensor's picture attribute."
},
"human_like": "Sends a notification when the Steam status changes, but only if Steam notifications are enabled.",
"complexity": "low"
}
},
{
"id": "'1619254173097'",
"result": {
"structured": "TRIGGER: When the game attribute of Steam Danny [sensor.steam_danny] changes. CONDITIONS: (The new state's game attribute is not empty) AND (Enable Steam Notifications [input_boolean.enable_steam_notifications] is on). ACTIONS: Execute script.send_home_log_with_url with a message containing the game name and a title, using the game_image_main attribute as the URL if available.",
"natural_language": {
"trigger": "When the game attribute of the Steam Danny [sensor.steam_danny] sensor changes.",
"conditions": "If the new game attribute value is not empty, and if the Enable Steam Notifications [input_boolean.enable_steam_notifications] toggle is switched on.",
"action": "Sends a notification log with a title and a message stating which game is being played, and includes an image URL from the game's attributes if one is available."
},
"human_like": "Sends a notification when a Steam game starts playing, provided notifications are enabled.",
"complexity": "medium"
}
},
{
"id": "'1674411819883'",
"result": {
"structured": "TRIGGER: When File Editor Running [binary_sensor.file_editor_running] turns on. CONDITIONS: Enable Stop Add Ons [input_boolean.enable_stop_add_ons] is on. ACTIONS: Start timer Stop Add On File Editor [timer.stop_add_on_file_editor] for 1 hour AND send a log message with title ':heavy_plus_sign: Add-on' and content 'File Editor started.'.",
"natural_language": {
"trigger": "When the File Editor Running [binary_sensor.file_editor_running] sensor indicates the File Editor add-on has started.",
"conditions": "The automation only runs if the Enable Stop Add Ons [input_boolean.enable_stop_add_ons] switch is turned on.",
"action": "It starts a one-hour timer called Stop Add On File Editor [timer.stop_add_on_file_editor] and simultaneously posts a log entry titled ':heavy_plus_sign: Add-on' with the message 'File Editor started.'."
},
"human_like": "Starts a one-hour timer and logs a message when the File Editor add-on is launched, provided the feature is enabled.",
"complexity": "low"
}
},
{
"id": "'1638101465298'",
"result": {
"structured": "TRIGGER: When timer Stop Add On File Editor [timer.stop_add_on_file_editor] finishes. CONDITIONS: Enable Stop Add Ons [input_boolean.enable_stop_add_ons] is on. ACTIONS: Execute script stop_add_on with data: addonEntityId = core_configurator, message = ':writing_hand: File editor has been on for more than an hour. Turning File editor off.'.",
"natural_language": {
"trigger": "When the timer named Stop Add On File Editor [timer.stop_add_on_file_editor] completes its countdown.",
"conditions": "The automation only runs if the switch Enable Stop Add Ons [input_boolean.enable_stop_add_ons] is turned on.",
"action": "Runs a script to stop the 'core_configurator' add-on, with a notification message stating that the file editor has been on for over an hour and is being turned off."
},
"human_like": "Automatically turns off the File Editor add-on after a timer expires, if the feature is enabled.",
"complexity": "low"
}
},
{
"id": "'1674411819884'",
"result": {
"structured": "TRIGGER: When Advanced SSH Web Terminal Running [binary_sensor.advanced_ssh_web_terminal_running] turns on. CONDITIONS: Enable Stop Add Ons [input_boolean.enable_stop_add_ons] is on. ACTIONS: Start timer Stop Add On Terminal SSH [timer.stop_add_on_terminal_ssh] for 1 hour AND send a log message with title ':heavy_plus_sign: Add-on' and content 'Terminal SSH started.' at Normal log level.",
"natural_language": {
"trigger": "When the Advanced SSH Web Terminal Running [binary_sensor.advanced_ssh_web_terminal_running] becomes active (turns on).",
"conditions": "If the switch Enable Stop Add Ons [input_boolean.enable_stop_add_ons] is turned on.",
"action": "Starts a one-hour timer on Stop Add On Terminal SSH [timer.stop_add_on_terminal_ssh] and simultaneously posts a log entry titled ':heavy_plus_sign: Add-on' with the message 'Terminal SSH started.' at a normal priority level."
},
"human_like": "Starts a one-hour shutdown timer and logs a notification when the SSH terminal add-on is launched, provided the auto-stop feature is enabled.",
"complexity": "low"
}
},
{
"id": "'1638101748990'",
"result": {
"structured": "TRIGGER: When timer Stop Add On Terminal SSH [timer.stop_add_on_terminal_ssh] finishes. CONDITIONS: Enable Stop Add Ons [input_boolean.enable_stop_add_ons] is on. ACTIONS: Execute script stop_add_on with parameters: addonEntityId = a0d7b954_ssh, message = 'SSH has been on for more than an hour. Turning SSH off.'.",
"natural_language": {
"trigger": "When the timer named Stop Add On Terminal SSH [timer.stop_add_on_terminal_ssh] finishes.",
"conditions": "The automation only runs if the toggle Enable Stop Add Ons [input_boolean.enable_stop_add_ons] is switched on.",
"action": "Runs a script called 'stop_add_on' to disable the SSH add-on (identified as a0d7b954_ssh), providing the message 'SSH has been on for more than an hour. Turning SSH off.'."
},
"human_like": "Automatically turns off the SSH add-on after a timer expires, but only if the feature is enabled.",
"complexity": "low"
}
},
{
"id": "'1638101748992'",
"result": {
"structured": "TRIGGER: When Zigbee2MQTT Proxy Running [binary_sensor.zigbee2mqtt_proxy_running] changes to on. CONDITIONS: Enable Stop Add Ons [input_boolean.enable_stop_add_ons] is on. ACTIONS: (Send a debug log message 'Zigbee 2 MQTT Proxy started.' with title ':heavy_plus_sign: Add-on') AND (Start timer Stop Add On Zigbee 2 MQTT Proxy [timer.stop_add_on_zigbee_2_mqtt_proxy] for 30 minutes).",
"natural_language": {
"trigger": "When the Zigbee2MQTT Proxy Running [binary_sensor.zigbee2mqtt_proxy_running] sensor indicates the add-on has started.",
"conditions": "If the Enable Stop Add Ons [input_boolean.enable_stop_add_ons] switch is turned on.",
"action": "Logs a debug message to the home log announcing the add-on start and simultaneously starts a 30-minute timer named Stop Add On Zigbee 2 MQTT Proxy [timer.stop_add_on_zigbee_2_mqtt_proxy]."
},
"human_like": "Logs the start of the Zigbee2MQTT Proxy add-on and starts a 30-minute timer to potentially stop it later, but only if the feature to stop add-ons is enabled.",
"complexity": "low"
}
},
{
"id": "'1638101748993'",
"result": {
"structured": "TRIGGER: When timer Stop Add On Zigbee 2 MQTT Proxy [timer.stop_add_on_zigbee_2_mqtt_proxy] finishes. CONDITIONS: Enable Stop Add Ons [input_boolean.enable_stop_add_ons] is on. ACTIONS: Execute script 'stop_add_on' with parameters: addonEntityId '45df7312_zigbee2mqtt_proxy' and message 'Zigbee2MQTT Proxy has been on for more than an hour. Turning Zigbee2MQTT Proxy off.'.",
"natural_language": {
"trigger": "When the timer named Stop Add On Zigbee 2 MQTT Proxy [timer.stop_add_on_zigbee_2_mqtt_proxy] finishes.",
"conditions": "The automation only runs if the switch Enable Stop Add Ons [input_boolean.enable_stop_add_ons] is turned on.",
"action": "It runs a script called 'stop_add_on' to stop the Zigbee2MQTT Proxy add-on, providing the add-on's entity ID and a message stating it was on for over an hour."
},
"human_like": "Automatically turns off the Zigbee2MQTT Proxy add-on after a timer expires, but only if the feature is enabled.",
"complexity": "low"
}
},
{
"id": "'1700062541454'",
"result": {
"structured": "TRIGGER: When File Editor Newest Version [sensor.file_editor_newest_version] changes state. CONDITIONS: NOT (File Editor Newest Version [sensor.file_editor_newest_version] state equals File Editor Version [sensor.file_editor_version] state). ACTIONS: In parallel: 1. Run script.send_to_home_log with a message stating the update from the current to the new version. 2. Install the update for File Editor Update [update.file_editor_update].",
"natural_language": {
"trigger": "Whenever the sensor tracking the newest available version of the File Editor [sensor.file_editor_newest_version] changes its state.",
"conditions": "The automation only proceeds if the newest available version [sensor.file_editor_newest_version] is different from the currently installed version [sensor.file_editor_version].",
"action": "It logs a message to the home log announcing the update and then proceeds to install the update for the File Editor [update.file_editor_update]."
},
"human_like": "Automatically updates the File Editor add-on when a new version is detected and logs the change.",
"complexity": "low"
}
},
{
"id": "'1700062541455'",
"result": {
"structured": "TRIGGER: When Advanced SSH Web Terminal Newest Version [sensor.advanced_ssh_web_terminal_newest_version] changes state. CONDITIONS: Advanced SSH Web Terminal Newest Version [sensor.advanced_ssh_web_terminal_newest_version] is NOT equal to Advanced SSH Web Terminal Version [sensor.advanced_ssh_web_terminal_version]. ACTIONS: In parallel, log a message to the home log indicating the update and install the update for Advanced SSH Web Terminal Update [update.advanced_ssh_web_terminal_update].",
"natural_language": {
"trigger": "Whenever the sensor that tracks the newest available version of the Advanced SSH Web Terminal [sensor.advanced_ssh_web_terminal_newest_version] changes its value.",
"conditions": "The automation only proceeds if the newest available version is different from the currently installed version [sensor.advanced_ssh_web_terminal_version].",
"action": "It performs two actions simultaneously: it logs a notification to the home log detailing the version change, and it triggers the installation of the available update for the Advanced SSH Web Terminal [update.advanced_ssh_web_terminal_update]."
},
"human_like": "Automatically updates the Advanced SSH Web Terminal add-on when a new version becomes available and logs the change.",
"complexity": "low"
}
},
{
"id": "'1700062541456'",
"result": {
"structured": "TRIGGER: When ESPHome Newest Version [sensor.esphome_newest_version] changes state. CONDITIONS: NOT (ESPHome Newest Version [sensor.esphome_newest_version] state equals ESPHome Version [sensor.esphome_version] state). ACTIONS: In parallel: 1. Execute script.send_to_home_log with a message reporting the update from the old to the new version. 2. Perform update.install on ESPHome Update [update.esphome_update].",
"natural_language": {
"trigger": "Whenever the sensor tracking the newest available ESPHome version [sensor.esphome_newest_version] changes its value.",
"conditions": "The automation only runs if the newest available version [sensor.esphome_newest_version] is different from the currently installed version [sensor.esphome_version].",
"action": "It logs a notification message to the home log detailing the version change and then proceeds to install the update for the ESPHome add-on [update.esphome_update]."
},
"human_like": "Automatically updates the ESPHome add-on and logs the change when a new version becomes available.",
"complexity": "low"
}
},
{
"id": "'1700062541457'",
"result": {
"structured": "TRIGGER: When Zigbee2MQTT Proxy Newest Version [sensor.zigbee2mqtt_proxy_newest_version] changes state. CONDITIONS: NOT (Zigbee2MQTT Proxy Newest Version [sensor.zigbee2mqtt_proxy_newest_version] is equal to Zigbee2MQTT Proxy Version [sensor.zigbee2mqtt_proxy_version]). ACTIONS: In parallel: 1) Run script.send_to_home_log with a message stating the version update. 2) Install the update for Zigbee2MQTT Proxy Update [update.zigbee2mqtt_proxy_update].",
"natural_language": {
"trigger": "Whenever the sensor reporting the newest available version for the Zigbee2MQTT Proxy add-on changes its state.",
"conditions": "The automation runs only if the newest available version is different from the currently installed version.",
"action": "It logs a message to the home log detailing the version change and then proceeds to install the available update for the Zigbee2MQTT Proxy add-on."
},
"human_like": "Automatically updates the Zigbee2MQTT Proxy add-on and logs the change when a new version becomes available.",
"complexity": "low"
}
},
{
"id": "'1700062541458'",
"result": {
"structured": "TRIGGER: When Log Viewer Newest Version [sensor.log_viewer_newest_version] changes state. CONDITIONS: NOT (Log Viewer Newest Version [sensor.log_viewer_newest_version] state equals Log Viewer Version [sensor.log_viewer_version] state). ACTIONS: In parallel: 1. Execute script.send_to_home_log with a message stating the version change. 2. Perform update.install on Log Viewer Update [update.log_viewer_update].",
"natural_language": {
"trigger": "When the sensor tracking the newest available version of the Log Viewer add-on, Log Viewer Newest Version [sensor.log_viewer_newest_version], changes its state.",
"conditions": "The automation only runs if the version number reported by Log Viewer Newest Version [sensor.log_viewer_newest_version] is different from the currently installed version reported by Log Viewer Version [sensor.log_viewer_version].",
"action": "It performs two actions simultaneously: it sends a notification to the home log announcing the version update, and it installs the available update for the Log Viewer add-on via the Log Viewer Update [update.log_viewer_update] entity."
},
"human_like": "Automatically updates the Log Viewer add-on and logs the change when a new version becomes available.",
"complexity": "low"
}
},
{
"id": "'1700062541459'",
"result": {
"structured": "TRIGGER: When Visual Studio Code Newest Version [sensor.visual_studio_code_newest_version] changes state. CONDITIONS: Visual Studio Code Newest Version [sensor.visual_studio_code_newest_version] is NOT equal to Visual Studio Code Version [sensor.visual_studio_code_version]. ACTIONS: In parallel: 1. Send a log message via script.send_to_home_log with the update details. 2. Install the update for Studio Code Server Update [update.studio_code_server_update].",
"natural_language": {
"trigger": "Whenever the Visual Studio Code Newest Version [sensor.visual_studio_code_newest_version] sensor changes its state.",
"conditions": "The automation runs only if the current version reported by Visual Studio Code Newest Version [sensor.visual_studio_code_newest_version] is different from the installed version reported by Visual Studio Code Version [sensor.visual_studio_code_version].",
"action": "It performs two actions simultaneously: it sends a notification to the home log announcing the version change, and it installs the available update for the Studio Code Server Update [update.studio_code_server_update] entity."
},
"human_like": "Automatically updates the Visual Studio Code add-on and logs the change when a new version is detected.",
"complexity": "medium"
}
},
{
"id": "'1653739708849'",
"result": {
"structured": "TRIGGER: When a telegram_command event occurs. CONDITIONS: None. ACTIONS: If the event's command equals 'get_camera', then log a message 'Getting camera [args]' via script.send_to_home_log. Otherwise, log a detailed debug message containing the event data via script.send_to_home_log.",
"natural_language": {
"trigger": "Whenever a Telegram command event is received.",
"conditions": "There are no conditions that must be met.",
"action": "The automation checks the command sent in the event. If the command is 'get_camera', it logs a simple message stating it is getting the camera with the provided arguments. For any other command, it logs a detailed debug message containing all the event data such as the command, arguments, sender information, and chat details."
},
"human_like": "Logs incoming Telegram commands, providing a simple message for camera requests and detailed debug information for all other commands.",
"complexity": "medium"
}
},
{
"id": "'1653739708850'",
"result": {
"structured": "TRIGGER: When a telegram_text event occurs. CONDITIONS: None. ACTIONS: IF the event data contains a text field THEN in parallel: 1. Run script.send_to_home_log with a debug message containing the Telegram event details. 2. Choose a path based on the sender: IF the event's user_id matches the value stored in Danny's Telegram Chat ID [input_text.dannys_telegram_chat_id] THEN: a. Process the message text with the conversation agent llama3_2_vision, storing the result in variable 'assist'. b. IF the assist response type is 'error' THEN in parallel: i. Send a random 'thinking' message via Telegram. ii. Reprocess the message text with the conversation agent home_assistant, storing the result in variable 'assist'. c. Send the final assist response speech via Telegram. OTHERWISE (default path): a. Process the message text with the conversation agent llama3_2_vision, storing the result in variable 'assist'. b. IF the assist response type is 'error' THEN in parallel: i. Send a random 'thinking' message via Telegram. ii. Reprocess the message text with the conversation agent home_assistant, storing the result in variable 'assist'. c. Send the final assist response speech via Telegram.",
"natural_language": {
"trigger": "When a Telegram message is received (triggered by a telegram_text event).",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "First, it logs the full details of the Telegram event to the home log for debugging. Then, it checks if the message is from Danny by comparing the sender's user ID to the value stored in Danny's Telegram Chat ID [input_text.dannys_telegram_chat_id]. If it is from Danny, it sends the message text to the 'llama3_2_vision' conversation agent for processing. If that agent returns an error, it sends a random 'thinking' message back to the user and tries again using the 'home_assistant' conversation agent. Finally, it sends the agent's text response back via Telegram. If the message is from anyone else, it follows the same steps: processing with 'llama3_2_vision', handling errors by trying 'home_assistant', and then sending the response."
},
"human_like": "Automatically replies to Telegram messages using AI conversation agents, with special handling for messages from Danny.",
"complexity": "high"
}
},
{
"id": "'1653739708851'",
"result": {
"structured": "TRIGGER: When a telegram_callback event occurs. CONDITIONS: None. ACTIONS: Execute script.send_to_home_log with a message containing formatted details of the received Telegram event, including data, message, from_first, from_last, user_id, id, chat_id, and text.",
"natural_language": {
"trigger": "Whenever a Telegram callback event is received by Home Assistant.",
"conditions": "There are no conditions; the automation runs every time the trigger occurs.",
"action": "Sends a detailed debug log entry to the home log, containing all the data from the Telegram event, such as the message content, sender information, user ID, and chat ID."
},
"human_like": "Logs detailed information about incoming Telegram callback events for debugging purposes.",
"complexity": "low"
}
},
{
"id": "'1726077652711'",
"result": {
"structured": "TRIGGER: When a webhook with ID teslausb is received via POST request. CONDITIONS: None. ACTIONS: Run script.send_to_home_log with a message containing the value of trigger.json.value2, a title of Tesla, and a log level of Normal.",
"natural_language": {
"trigger": "When a specific webhook named 'teslausb' is received by the Home Assistant system.",
"conditions": "There are no conditions; the action will run whenever the trigger occurs.",
"action": "Sends a log entry to the Home Assistant log with the title 'Tesla', a log level of 'Normal', and a message containing the value from the webhook data field 'value2'."
},
"human_like": "Logs a message from a Tesla USB archive webhook to the Home Assistant log.",
"complexity": "low"
}
},
{
"id": "'1750161174574'",
"result": {
"structured": "TRIGGER: At 23:00:00 daily. CONDITIONS: Model 3 Windows [binary_sensor.model_3_windows] is on. ACTIONS: Execute script.send_direct_notification with title 'Car :car:' and message 'Model 3 windows :window: are open.' to person danny person [person.danny].",
"natural_language": {
"trigger": "Every day at 11:00 PM.",
"conditions": "The Model 3 Windows [binary_sensor.model_3_windows] sensor reports that the windows are open (on).",
"action": "Sends a direct notification to danny person [person.danny] with the title 'Car :car:' and the message 'Model 3 windows :window: are open.'."
},
"human_like": "Sends a nightly notification if the Tesla Model 3 windows are left open.",
"complexity": "low"
}
},
{
"id": "'1622667704047'",
"result": {
"structured": "TRIGGER: When the time is 22:00:00. CONDITIONS: alarmed doors and windows [binary_sensor.alarmed_doors_and_windows] is on. ACTIONS: Execute the script send_to_home_log with a message that includes a warning, a dynamic clock icon based on the current time, and a list of the friendly names of the specific door and window sensors (from the entity_id attribute of alarmed doors and windows [binary_sensor.alarmed_doors_and_windows]) that are currently in the 'on' state.",
"natural_language": {
"trigger": "At 10:00 PM every night.",
"conditions": "The binary sensor 'alarmed doors and windows' [binary_sensor.alarmed_doors_and_windows] must be in the 'on' state, indicating that at least one monitored door or window is open.",
"action": "Sends a detailed warning message to the home log. The message includes a warning emoji, a clock icon reflecting the current hour (and half-hour if applicable), and a bulleted list of the specific doors or windows (using their friendly names) that are currently reported as open."
},
"human_like": "Sends a nightly reminder at 10 PM if any doors or windows are still open.",
"complexity": "medium"
}
},
{
"id": "'1619466600288'",
"result": {
"structured": "TRIGGER: Every 2 hours (time pattern hours: /2). CONDITIONS: None. ACTIONS: In parallel: 1) Execute script.send_to_home_log with a dynamic message indicating the current time and that camera files are being deleted. 2) Execute delete.files_in_folder on folder /config/camera/, scanning subfolders, deleting files older than 14400 seconds (4 hours), while preserving a list of specific files.",
"natural_language": {
"trigger": "The automation runs every two hours, based on a time pattern.",
"conditions": "There are no conditions; the automation runs whenever the trigger occurs.",
"action": "The automation performs two actions in parallel. First, it logs a debug message to the home log with a dynamic clock icon based on the current hour and a camera icon, announcing the deletion of camera files. Second, it deletes files in the /config/camera/ folder and its subfolders that are older than 4 hours, but it protects a specific list of files from being deleted, such as .gitignore, README.md, and various deepstack object detection images."
},
"human_like": "This automation cleans up old camera files every two hours, keeping only essential system and detection images.",
"complexity": "medium"
}
},
{
"id": "'1588859384208'",
"result": {
"structured": "TRIGGER: At 04:59:00. CONDITIONS: None. ACTIONS: Turn on Enable Morning Routine [input_boolean.enable_morning_routine] AND execute script.send_to_home_log with a dynamic debug message.",
"natural_language": {
"trigger": "The automation runs every day at 4:59 AM.",
"conditions": "There are no conditions for this automation.",
"action": "It turns on the Enable Morning Routine [input_boolean.enable_morning_routine] switch and sends a debug message to the home log. The message includes a dynamic clock emoji based on the current hour and a sun emoji, stating that the morning routine run flag has been reset."
},
"human_like": "Resets the morning routine flag just before 5 AM each day to prepare for the next morning's routine.",
"complexity": "low"
}
},
{
"id": "'1582406380123'",
"result": {
"structured": "TRIGGER: When the time is 02:00:00 (id: 2am) OR When the time is 03:00:00 OR When the time is 04:00:00. CONDITIONS: NOT (Today is Sunday AND the triggered time is 02:00:00). ACTIONS: In parallel, run script.send_to_home_log with a dynamic message and turn on the scene Turn Off Downstairs Lights [scene.turn_off_downstairs_lights].",
"natural_language": {
"trigger": "The automation triggers at 2 AM, 3 AM, or 4 AM.",
"conditions": "The automation will not run if it is Sunday and the trigger that fired was specifically the 2 AM one.",
"action": "It logs a debug message with a dynamic clock icon based on the current time and activates the 'Turn Off Downstairs Lights' scene [scene.turn_off_downstairs_lights]."
},
"human_like": "Turns off all downstairs lights at 2, 3, or 4 AM, except at 2 AM on Sundays.",
"complexity": "medium"
}
},
{
"id": "'1745396436913'",
"result": {
"structured": "TRIGGER: When the time reaches 1 hour and 15 minutes before the time set in childrens bed time [input_datetime.childrens_bed_time] OR When the time reaches 15 minutes before the time set in childrens bed time [input_datetime.childrens_bed_time]. CONDITIONS: (leo person [person.leo] is home OR Ashlee [person.ashlee] is home) AND (home mode [input_select.home_mode] is NOT No Children) AND (the current day is Monday, Tuesday, Wednesday, Thursday, or Sunday). ACTIONS: If the trigger was the 1-hour-before time, then in parallel: log a debug message 'Sending bed time notification' via script.send_to_home_log AND announce via script.alexa_announce 'It's one hour before bedtime.'. If the trigger was the 15-minutes-before time, then in parallel: log a debug message 'Sending bed time notification' via script.send_to_home_log AND announce via script.alexa_announce 'It's bed time. Don't forget your reading book.'.",
"natural_language": {
"trigger": "The automation triggers at two specific times relative to a scheduled bedtime: one hour and fifteen minutes before the set bedtime, and fifteen minutes before the set bedtime. The bedtime is defined by the childrens bed time [input_datetime.childrens_bed_time] entity.",
"conditions": "At least one of the people, leo person [person.leo] or Ashlee [person.ashlee], must be home. The home mode [input_select.home_mode] must not be set to 'No Children'. The automation only runs on weekdays Monday through Thursday and on Sunday.",
"action": "Depending on which trigger fired, a different announcement is made. If it's one hour before bedtime, the system logs a debug message and announces 'It's one hour before bedtime.' via Alexa. If it's fifteen minutes before bedtime, it logs a similar debug message and announces 'It's bed time. Don't forget your reading book.' via Alexa. Both actions within each trigger are performed simultaneously."
},
"human_like": "This automation provides bedtime reminders for children, announcing when it's one hour and fifteen minutes before bedtime, but only when the children are likely home and the schedule is active.",
"complexity": "medium"
}
},
{
"id": "'1588609147280'",
"result": {
"structured": "TRIGGER: When tracked people group [group.tracked_people] changes state from not_home to home. CONDITIONS: house alarm [alarm_control_panel.house_alarm] is armed_away AND Enable Home Presence Detection [input_boolean.enable_home_presence_detection] is on. ACTIONS: Execute two parallel sequences. Sequence 1: If house alarm [alarm_control_panel.house_alarm] is armed_away AND Enable Morning Routine [input_boolean.enable_morning_routine] is off, then run script.send_to_home_log with message ':house: :running: Someone arrived home.' and then run script.set_alarm_to_disarmed_mode. If Enable Morning Routine [input_boolean.enable_morning_routine] is on, then run script.send_to_home_log with message ':house: :running: Someone arrived home before :city_sunrise: sunrise.' and then run script.set_alarm_to_disarmed_mode. Sequence 2: If thermostat [climate.thermostat] is off, then run script.send_to_home_log with message 'Heating is off. Turning heating on.' and title ':hotsprings: :droplet: Boiler', and then run script.set_central_heating_to_home_mode.",
"natural_language": {
"trigger": "When the tracked people group [group.tracked_people] changes from being away (not_home) to being at home (home).",
"conditions": "The house alarm [alarm_control_panel.house_alarm] must be set to armed_away, and the Enable Home Presence Detection [input_boolean.enable_home_presence_detection] feature must be turned on.",
"action": "Two sets of actions are performed in parallel. First, a log message is sent and the alarm is disarmed. If the morning routine is disabled, a standard arrival message is logged. If the morning routine is enabled, a message noting the arrival before sunrise is logged. Second, if the thermostat [climate.thermostat] is off, a log message about turning on the heating is sent, and the central heating is set to home mode."
},
"human_like": "When someone arrives home, this automation disarms the house alarm and turns on the heating if needed, with different log messages depending on whether the morning routine is active.",
"complexity": "medium"
}
},
{
"id": "'1655063863297'",
"result": {
"structured": "TRIGGER: When danny home nearest distance [sensor.danny_home_nearest_distance] falls below the value of input_number.distance_close_to_home OR when terina home nearest distance [sensor.terina_home_nearest_distance] falls below the value of input_number.distance_close_to_home. CONDITIONS: None. ACTIONS: If home mode [input_select.home_mode] is Holiday AND (Danny Home Nearest Direction of Travel [sensor.danny_home_nearest_direction_of_travel] is towards OR Terina Home Nearest Direction of Travel [sensor.terina_home_nearest_direction_of_travel] is towards), then set origin address [input_text.origin_address] to the person entity corresponding to the trigger, set destination address [input_text.destination_address] to zone.home, update Google Travel Time By Car [sensor.google_travel_time_by_car], send a debug log message with travel details, and if home mode [input_select.home_mode] is still Holiday, change home mode [input_select.home_mode] to Normal and log the change. Otherwise, if home mode [input_select.home_mode] is Holiday (and the previous condition block's direction condition was not met), send a direct notification to person.danny with travel details.",
"natural_language": {
"trigger": "When either Danny's distance from home [sensor.danny_home_nearest_distance] or Terina's distance from home [sensor.terina_home_nearest_distance] drops below a configured close-to-home threshold.",
"conditions": "There are no global conditions for this automation.",
"action": "If the home is currently in Holiday mode, the automation checks if either Danny or Terina is traveling towards home. If so, it logs their travel details, updates a travel time sensor, and if the home is still in Holiday mode, it switches the mode to Normal. If the home is in Holiday mode but neither person is traveling towards home, it sends a direct notification to Danny with the travel details instead."
},
"human_like": "When someone gets close to home while the house is in holiday mode, it updates travel info and may switch the house back to normal mode if they are heading home.",
"complexity": "medium"
}
},
{
"id": "'1680450183660'",
"result": {
"structured": "TRIGGER: When danny home nearest distance [sensor.danny_home_nearest_distance] falls below the value of input_number.distance_almost_to_home OR When terina home nearest distance [sensor.terina_home_nearest_distance] falls below the value of input_number.distance_almost_to_home. CONDITIONS: (Danny Home Nearest Direction of Travel [sensor.danny_home_nearest_direction_of_travel] is towards OR Terina Home Nearest Direction of Travel [sensor.terina_home_nearest_direction_of_travel] is towards) AND (danny person [person.danny] is home OR terina person [person.terina] is home). ACTIONS: 1. Set Origin Address [input_text.origin_address] to 'person.danny' if the trigger was sensor.danny_home_nearest_distance, or to 'person.terina' if the trigger was sensor.terina_home_nearest_distance. 2. Set Destination Address [input_text.destination_address] to 'zone.home'. 3. Update Google Travel Time By Car [sensor.google_travel_time_by_car]. 4. If danny person [person.danny] is home, run script.send_to_home_log with a message containing the name of the person who triggered the automation, their distance from home, and the updated travel time, and notify terina person [person.terina]. 5. If terina person [person.terina] is home, run script.send_to_home_log with a message containing the name of the person who triggered the automation, their distance from home, and the updated travel time, and notify danny person [person.danny].",
"natural_language": {
"trigger": "When either Danny's distance from home [sensor.danny_home_nearest_distance] or Terina's distance from home [sensor.terina_home_nearest_distance] drops below a configured threshold (input_number.distance_almost_to_home).",
"conditions": "The person whose distance triggered the automation must be traveling towards home, as indicated by their direction of travel sensor. Additionally, at least one of the two people (Danny or Terina) must already be at home.",
"action": "The automation sets up a travel time calculation by specifying the origin (the person who is near home) and the destination (home). It then updates the travel time sensor. Finally, it sends a notification to the person who is already at home, informing them that the other person is a certain distance away and will arrive in a specific travel time."
},
"human_like": "Notifies the person at home when the other person is getting close to home and provides an estimated arrival time.",
"complexity": "medium"
}
},
{
"id": "'1595524992207'",
"result": {
"structured": "TRIGGER: When tracked people group [group.tracked_people] remains in state 'not_home' for 1 minute. CONDITIONS: Enable Home Presence Detection [input_boolean.enable_home_presence_detection] is on AND Udm Pro [device_tracker.udm_pro] is NOT unavailable. ACTIONS: Execute the following actions in parallel: 1. Run script.lock_house. 2. Run script.3d_printer_left_unattended. 3. Fetch events from family calendar [calendar.family] and tsang children calendar [calendar.tsang_children] for the next hour, storing the result in variable 'calendar'. 4. If the fetched calendar data shows at least one event in family calendar [calendar.family] AND that event has no location defined, then run script.send_direct_notification to person.danny with a message containing the event details. 5. If the fetched calendar data shows at least one event in tsang children calendar [calendar.tsang_children], then run script.send_direct_notification to person.danny with a message containing the event details.",
"natural_language": {
"trigger": "When the group of tracked people [group.tracked_people] has been away from home for at least one minute.",
"conditions": "The automation is only allowed to run if the feature 'Enable Home Presence Detection' [input_boolean.enable_home_presence_detection] is switched on, and the Udm Pro device tracker [device_tracker.udm_pro] is available (not in an 'unavailable' state).",
"action": "When triggered, the automation performs several tasks simultaneously: it locks the house, handles the 3D printer being left unattended, and checks the family and children's calendars for events in the next hour. If a family calendar event is found without a specified location, a detailed notification is sent to Danny [person.danny]. Separately, if any event is found on the children's calendar, a notification with those details is also sent to Danny."
},
"human_like": "When everyone leaves home, this automation secures the house, checks for unattended devices, and notifies Danny about any upcoming family or children's calendar events.",
"complexity": "high"
}
},
{
"id": "'1655063863296'",
"result": {
"structured": "TRIGGER: When danny home nearest distance [sensor.danny_home_nearest_distance] is above long distance away from home [input_number.long_distance_away_from_home] OR When terina home nearest distance [sensor.terina_home_nearest_distance] is above long distance away from home [input_number.long_distance_away_from_home]. CONDITIONS: None. ACTIONS: If terina home nearest distance [sensor.terina_home_nearest_distance] is above long distance away from home [input_number.long_distance_away_from_home] AND danny home nearest distance [sensor.danny_home_nearest_distance] is above long distance away from home [input_number.long_distance_away_from_home] THEN in parallel: log 'Everyone is far away from home.' AND if home mode [input_select.home_mode] is NOT Holiday THEN in parallel: log 'Changing to holiday mode.' with title 'Home Mode' AND set home mode [input_select.home_mode] to Holiday.",
"natural_language": {
"trigger": "The automation triggers when either Danny's distance from home [sensor.danny_home_nearest_distance] or Terina's distance from home [sensor.terina_home_nearest_distance] exceeds the configured long distance threshold [input_number.long_distance_away_from_home].",
"conditions": "There are no global conditions for this automation.",
"action": "When the automation runs, it checks if both Danny and Terina are far from home. If they are, it logs a message saying 'Everyone is far away from home.' and, if the current home mode [input_select.home_mode] is not already set to 'Holiday', it also logs a message titled 'Home Mode' about changing to holiday mode and then actually changes the home mode to 'Holiday'. These actions are performed simultaneously."
},
"human_like": "Sets the house to holiday mode and logs a message when both Danny and Terina are far away from home.",
"complexity": "medium"
}
},
{
"id": "'1674735382445'",
"result": {
"structured": "TRIGGER: When danny home nearest distance [sensor.danny_home_nearest_distance] is below the value of input_number.arriving_home_threshold. CONDITIONS: enable alarm automations [input_boolean.enable_alarm_automations] is on AND house alarm [alarm_control_panel.house_alarm] is armed_home AND Danny Home Nearest Direction of Travel [sensor.danny_home_nearest_direction_of_travel] is towards. ACTIONS: In parallel, run script.send_to_home_log with message 'Danny is arriving home. Turning alarm off.' and title ':man: Danny' and log_level Normal AND run script.set_alarm_to_disarmed_mode.",
"natural_language": {
"trigger": "When the distance from Danny to home, as measured by danny home nearest distance [sensor.danny_home_nearest_distance], falls below a specific threshold.",
"conditions": "The automation must be enabled via enable alarm automations [input_boolean.enable_alarm_automations] being on, the house alarm [alarm_control_panel.house_alarm] must be in armed_home mode, and Danny must be traveling towards home, as indicated by Danny Home Nearest Direction of Travel [sensor.danny_home_nearest_direction_of_travel].",
"action": "Logs a message to the home log stating 'Danny is arriving home. Turning alarm off.' and simultaneously runs a script to disarm the alarm."
},
"human_like": "Disarms the house alarm and logs a message when Danny gets close to home and is heading towards it.",
"complexity": "medium"
}
},
{
"id": "'1581867286886'",
"result": {
"structured": "TRIGGER: When Danny [person.danny] changes state from not_home to home. CONDITIONS: Enable Home Presence Detection [input_boolean.enable_home_presence_detection] is on. ACTIONS: Execute the following actions in parallel: IF Living Room Lamps [light.living_room_lamps] is off, THEN run script Front Door Lock Status [script.front_door_lock_status]; run script send_to_home_log with a message about arriving home and turning on lights; run script announce_delayed_notifications for person Danny [person.danny].",
"natural_language": {
"trigger": "When Danny [person.danny] arrives home, transitioning from a 'not_home' state to 'home'.",
"conditions": "The automation only runs if the Enable Home Presence Detection [input_boolean.enable_home_presence_detection] is switched on.",
"action": "When triggered, several actions run simultaneously: if the Living Room Lamps [light.living_room_lamps] are off, it runs the Front Door Lock Status [script.front_door_lock_status] script. It also logs a message about arriving home and turning on lights, and runs a script to announce any delayed notifications for Danny [person.danny]."
},
"human_like": "When Danny arrives home, this automation logs his arrival, checks the front door lock if it's dark, and announces any pending notifications.",
"complexity": "medium"
}
},
{
"id": "'1582456019025'",
"result": {
"structured": "TRIGGER: When danny person [person.danny] changes state from home to not_home. CONDITIONS: tracked people group [group.tracked_people] is not_home. ACTIONS: In parallel, activate the scene Turn Off Downstairs Lights [scene.turn_off_downstairs_lights] AND activate the scene Office All Lights Off [scene.office_all_lights_off] AND execute the script send_to_home_log with a message that Danny has left the house and no one is home.",
"natural_language": {
"trigger": "When Danny [person.danny] leaves home, changing his status from home to not_home.",
"conditions": "The group of tracked people [group.tracked_people] must show that everyone is not home.",
"action": "It simultaneously turns off the downstairs lights by activating the 'Turn Off Downstairs Lights' scene [scene.turn_off_downstairs_lights], turns off the office lights by activating the 'Office All Lights Off' scene [scene.office_all_lights_off], and sends a notification to the home log stating that Danny has left and the house is empty."
},
"human_like": "When Danny is the last person to leave the house, it turns off all the lights downstairs and in the office, and logs the event.",
"complexity": "low"
}
},
{
"id": "'1674735382446'",
"result": {
"structured": "TRIGGER: When terina home nearest distance [sensor.terina_home_nearest_distance] falls below the value of input_number.arriving_home_threshold. CONDITIONS: enable alarm automations [input_boolean.enable_alarm_automations] is on AND house alarm [alarm_control_panel.house_alarm] is armed_home AND Danny Home Nearest Direction of Travel [sensor.danny_home_nearest_direction_of_travel] is towards. ACTIONS: In parallel, run script.send_to_home_log with message 'Terina is arriving home. Turning alarm off.' and title ':woman: Terina' and log_level Normal AND run script.set_alarm_to_disarmed_mode.",
"natural_language": {
"trigger": "When the distance from Terina to home, as measured by the sensor terina home nearest distance [sensor.terina_home_nearest_distance], becomes less than a configured threshold.",
"conditions": "The automation must be enabled via the switch enable alarm automations [input_boolean.enable_alarm_automations], the house alarm [alarm_control_panel.house_alarm] must be set to 'armed_home', and Danny's travel direction, as reported by Danny Home Nearest Direction of Travel [sensor.danny_home_nearest_direction_of_travel], must be 'towards' home.",
"action": "Logs a message to the home log stating 'Terina is arriving home. Turning alarm off.' and simultaneously runs a script to disarm the house alarm."
},
"human_like": "Disarms the house alarm and logs a notification when Terina is arriving home and the system is in the correct armed state.",
"complexity": "medium"
}
},
{
"id": "'1582754128581'",
"result": {
"structured": "TRIGGER: When terina person [person.terina] changes state from not_home to home. CONDITIONS: Living Room Motion 3 Illuminance [sensor.living_room_motion_3_illuminance] is below 55. ACTIONS: Execute the following actions in parallel: IF Living Room Lamps [light.living_room_lamps] is off THEN run Front Door Lock Status [script.front_door_lock_status]; run script.send_to_home_log with a specific message; run script.announce_delayed_notifications for person.terina.",
"natural_language": {
"trigger": "When Terina's presence status changes from 'not home' to 'home'.",
"conditions": "The illuminance level reported by the Living Room Motion 3 Illuminance [sensor.living_room_motion_3_illuminance] sensor is below 55 lux.",
"action": "Several actions are performed simultaneously: First, if the Living Room Lamps [light.living_room_lamps] are off, the Front Door Lock Status [script.front_door_lock_status] script is executed. Then, a log message is sent to the home log announcing Terina's arrival and the lighting action. Finally, a script to announce any delayed notifications for Terina is run."
},
"human_like": "When Terina arrives home and it's dark, this automation turns on the living room and kitchen ambient lights, checks the front door lock, and announces her arrival.",
"complexity": "medium"
}
},
{
"id": "'1582456025977'",
"result": {
"structured": "TRIGGER: When terina person [person.terina] changes state from home to not_home. CONDITIONS: tracked people group [group.tracked_people] is not_home. ACTIONS: Activate scene Turn Off Downstairs Lights [scene.turn_off_downstairs_lights] AND activate scene Office All Lights Off [scene.office_all_lights_off] AND execute script send_to_home_log with message ':house: :dancer: Left the house and no one is home.', title ':woman: Terina', and log level Normal.",
"natural_language": {
"trigger": "When Terina [person.terina] leaves home, changing her state from home to not_home.",
"conditions": "If the group of tracked people [group.tracked_people] shows that everyone is not home.",
"action": "Turn off the downstairs lights by activating the 'Turn Off Downstairs Lights' scene [scene.turn_off_downstairs_lights], turn off the office lights by activating the 'Office All Lights Off' scene [scene.office_all_lights_off], and send a notification to the home log with the message ':house: :dancer: Left the house and no one is home.', titled ':woman: Terina', at a normal log level."
},
"human_like": "When Terina leaves and nobody else is home, it turns off the downstairs and office lights and logs her departure.",
"complexity": "low"
}
},
{
"id": "'1582456025978'",
"result": {
"structured": "TRIGGER: When leo person [person.leo] changes state from home to not_home. CONDITIONS: tracked people group [group.tracked_people] is not_home. ACTIONS: Activate Turn Off Downstairs Lights [scene.turn_off_downstairs_lights] AND Activate Office All Lights Off [scene.office_all_lights_off] AND Execute script.send_to_home_log with message ':house: :boy: Left the house and no one is home.', title ':boy: Leo', and log_level Normal.",
"natural_language": {
"trigger": "When Leo [person.leo] leaves home, changing his state from home to not_home.",
"conditions": "The group of tracked people [group.tracked_people] must show that everyone is not home.",
"action": "Turns off the lights by activating the 'Turn Off Downstairs Lights' [scene.turn_off_downstairs_lights] and 'Office All Lights Off' [scene.office_all_lights_off] scenes, and sends a notification to the home log with the message ':house: :boy: Left the house and no one is home.' and the title ':boy: Leo'."
},
"human_like": "When Leo is the last person to leave the house, it turns off the downstairs and office lights and logs the departure.",
"complexity": "low"
}
},
{
"id": "'1712574983598'",
"result": {
"structured": "TRIGGER: When Leos Nintendo Switch [device_tracker.leos_nintendo_switch] changes state from not_home to home. CONDITIONS: None. ACTIONS: If home mode [input_select.home_mode] is set to No Children, then in parallel: execute script.send_to_home_log with a debug message and set home mode [input_select.home_mode] to Normal.",
"natural_language": {
"trigger": "When Leo's Nintendo Switch [device_tracker.leos_nintendo_switch] returns home, changing its state from 'not_home' to 'home'.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "If the current home mode [input_select.home_mode] is set to 'No Children', the automation will perform two actions simultaneously: it will log a debug message to the home log stating that the switch came home while in No Children mode, and it will change the home mode to 'Normal'."
},
"human_like": "When Leo's Nintendo Switch comes home, it automatically switches the house out of 'No Children' mode back to 'Normal' mode.",
"complexity": "low"
}
},
{
"id": "'1722162099476'",
"result": {
"structured": "TRIGGER: When Danny's Phone BLE Area [sensor.dannys_phone_ble_area] changes to any state that is not 'unknown'. CONDITIONS: Spotify Danny [media_player.spotify_danny] is playing. ACTIONS: Set variable 'target_source' to the current state of Danny's Phone BLE Area [sensor.dannys_phone_ble_area]. Set variable 'adjusted_source' to: if target_source is 'office' AND jd computer group [group.jd_computer] is 'home' then 'JD', else if target_source is 'office' then 'Office Echo Show', else if target_source is 'living room' then 'DO NOT CAST', else target_source. Then, IF adjusted_source is not equal to the current source of Spotify Danny [media_player.spotify_danny] AND adjusted_source is in the source list of Spotify Danny [media_player.spotify_danny], THEN select adjusted_source as the source for Spotify Danny [media_player.spotify_danny].",
"natural_language": {
"trigger": "Whenever Danny's Phone BLE Area [sensor.dannys_phone_ble_area] changes to a known location (any state other than 'unknown').",
"conditions": "The Spotify Danny [media_player.spotify_danny] media player must currently be playing.",
"action": "First, it determines a target source based on Danny's location. If the location is 'office', it checks if the jd computer group [group.jd_computer] is 'home' to decide between 'JD' and 'Office Echo Show'. If the location is 'living room', it sets the source to 'DO NOT CAST'. For any other location, it uses the location name directly. Then, if this calculated source is different from the media player's current source and is available in its list of sources, it changes the Spotify Danny [media_player.spotify_danny] player to use that new source."
},
"human_like": "Automatically redirects Danny's Spotify playback to a speaker in his current location, with special rules for the office and living room.",
"complexity": "medium"
}
},
{
"id": "'1757534420170'",
"result": {
"structured": "TRIGGER: When a webhook with ID 'personal-vehicles' is received via POST. CONDITIONS: Enable Unifi Protect Events Automations [input_boolean.enable_unifi_protect_events_automations] is on. ACTIONS: Execute script 'send_to_home_log' with a message containing 'Personal vehicles detected', the trigger value, and event ID, titled 'Front Garden' at log level 'Normal'.",
"natural_language": {
"trigger": "When the Home Assistant system receives a specific webhook request named 'personal-vehicles'.",
"conditions": "The automation is only allowed to run if the switch 'Enable Unifi Protect Events Automations' [input_boolean.enable_unifi_protect_events_automations] is turned on.",
"action": "Sends a formatted log entry to the home log. The log entry has the title 'Front Garden', a normal priority level, and a message that states 'Personal vehicles detected' along with details extracted from the webhook data."
},
"human_like": "Logs a notification when a Unifi Protect camera detects personal vehicles, provided the feature is enabled.",
"complexity": "low"
}
},
{
"id": "'1757533154370'",
"result": {
"structured": "TRIGGER: When a webhook with ID 'known-faces' is received via POST method and local_only is true. CONDITIONS: Enable Unifi Protect Events Automations [input_boolean.enable_unifi_protect_events_automations] is on. ACTIONS: If home mode [input_select.home_mode] is Holiday, then run script.send_direct_notification with a message containing event details from the webhook trigger data, sent to danny person [person.danny]. Otherwise, do nothing.",
"natural_language": {
"trigger": "When a specific local webhook named 'known-faces' is triggered by a POST request.",
"conditions": "The automation only runs if the switch Enable Unifi Protect Events Automations [input_boolean.enable_unifi_protect_events_automations] is turned on.",
"action": "If the home mode [input_select.home_mode] is set to 'Holiday', a notification containing event details from the webhook is sent to danny person [person.danny]. If the home mode is not 'Holiday', no action is taken."
},
"human_like": "Sends a notification to Danny about unknown person detections from Unifi Protect when the house is in Holiday mode.",
"complexity": "medium"
}
},
{
"id": "'1757533154371'",
"result": {
"structured": "TRIGGER: When a webhook with ID 'unknown-faces' is received via POST request. CONDITIONS: Enable Unifi Protect Events Automations [input_boolean.enable_unifi_protect_events_automations] is on AND home mode [input_select.home_mode] is Holiday. ACTIONS: Execute script.send_direct_notification with a message containing event details (Event ID, Event Path, Event Local Link) and target person.danny [person.danny].",
"natural_language": {
"trigger": "When the Home Assistant system receives a specific webhook notification, identified as 'unknown-faces', from the UniFi Protect system.",
"conditions": "The automation only runs if the 'Enable Unifi Protect Events Automations' [input_boolean.enable_unifi_protect_events_automations] switch is turned on, and if the current 'home mode' [input_select.home_mode] is set to 'Holiday'.",
"action": "Sends a direct notification to Danny [person.danny] containing details about the unknown face detection event, including the event ID, file path, and a local link to the recording."
},
"human_like": "Sends a notification to Danny when an unknown face is detected by the security cameras while the house is in 'Holiday' mode.",
"complexity": "medium"
}
},
{
"id": "'1591963855737'",
"result": {
"structured": "TRIGGER: When any of the following UPS status sensors changes to the state 'unavailable': lounge ups status data [sensor.lounge_ups_status_data], Computer UPS Status [sensor.computer_ups_status], server ups status data [sensor.server_ups_status_data], Threedprinterups Status Data [sensor.threedprinterups_status_data], or Familycomputerups Status Data [sensor.familycomputerups_status_data]. CONDITIONS: None. ACTIONS: Choose the first matching condition set: If the state of the triggering entity is 'OB DISCHRG', 'OL OFF', or 'ALARM OL RB', then send a direct notification with a battery status message and a title indicating an error for the specific UPS device. Else, if the state of the triggering entity is 'unavailable', 'OB DISCHRG', 'OL OFF', or 'ALARM OL RB', then log a warning message to the home log with a title indicating a warning for the specific UPS device. Else, if the state of the triggering entity is 'OL CHRG', then send a direct notification with a battery status message and a title indicating a return to normal for the specific UPS device. Else, if the state of the triggering entity is 'OL', then log a normal message to the home log with a title for the specific UPS device.",
"natural_language": {
"trigger": "When any of the UPS status sensors for the living room, computer, server, 3D printer, or family computer becomes unavailable.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "Depending on the new status of the UPS, the automation will either send a notification or log a message. If the status is an error like 'OB DISCHRG', 'OL OFF', or 'ALARM OL RB', it sends an urgent notification. If the status is 'unavailable' or one of those errors, it logs a warning. If the status returns to 'OL CHRG', it sends a positive notification. If the status is simply 'OL', it logs a normal status update. The messages are tailored to identify which specific UPS device triggered the change."
},
"human_like": "Sends notifications or logs messages when the status of any monitored UPS (Uninterruptible Power Supply) changes, alerting you to errors, warnings, or a return to normal operation.",
"complexity": "medium"
}
},
{
"id": "'1741438466512'",
"result": {
"structured": "TRIGGER: When Utility [binary_sensor.utility] changes to on OR When Utility Room Motion Occupancy [binary_sensor.utility_room_motion_occupancy] changes to on OR When Utility Room Light Trigger [binary_sensor.utility_room_light_trigger] changes to on. CONDITIONS: None. ACTIONS: In parallel, run script.send_to_home_log with message ':paw_prints: Motion detected. Turning :bulb: light off.' and title ':fountain: Utility Room' AND turn on Utility Room Light [light.utility_room_light].",
"natural_language": {
"trigger": "When any of the following sensors in the Utility Room detect activity and change their state to 'on': the Utility sensor [binary_sensor.utility], the Utility Room Motion Occupancy sensor [binary_sensor.utility_room_motion_occupancy], or the Utility Room Light Trigger sensor [binary_sensor.utility_room_light_trigger].",
"conditions": "There are no conditions that must be met.",
"action": "Two actions are performed simultaneously: a debug log message is sent to the home log stating 'Motion detected. Turning light off.', and the Utility Room Light [light.utility_room_light] is turned on."
},
"human_like": "Turns on the utility room light and logs a message whenever motion or activity is detected by any of the room's sensors.",
"complexity": "low"
}
},
{
"id": "'1741438515604'",
"result": {
"structured": "TRIGGER: When Utility Room Light Trigger [binary_sensor.utility_room_light_trigger] remains off for 2 minutes. CONDITIONS: None. ACTIONS: In parallel, execute script.send_to_home_log with message ':no_pedestrians: No motion detected. Turning light off.' and title ':fountain: Utility Room' at log level Debug AND turn off Utility Room Light [light.utility_room_light].",
"natural_language": {
"trigger": "When the Utility Room Light Trigger [binary_sensor.utility_room_light_trigger] has been off for two minutes.",
"conditions": "There are no conditions for this automation.",
"action": "It simultaneously sends a debug log message to the home log stating 'No motion detected. Turning light off.' and turns off the Utility Room Light [light.utility_room_light]."
},
"human_like": "Turns off the utility room light and logs a message when no motion has been detected for two minutes.",
"complexity": "low"
}
},
{
"id": "'1595678795894'",
"result": {
"structured": "TRIGGER: When Utility Freezer Door Contact [binary_sensor.utility_freezer_door_contact] changes from closed (off) to open (on). CONDITIONS: None. ACTIONS: Execute script.send_to_home_log with message ':door: :snowflake: Freezer door is open.', title ':fountain: Utility Room', and log level Debug.",
"natural_language": {
"trigger": "When the Utility Freezer Door Contact [binary_sensor.utility_freezer_door_contact] opens, meaning it changes from a closed to an open state.",
"conditions": "There are no conditions that must be met for this automation to proceed.",
"action": "Sends a debug log message to the home log with the title ':fountain: Utility Room' and the message ':door: :snowflake: Freezer door is open.'."
},
"human_like": "Sends a notification to the home log when the freezer door in the utility room is opened.",
"complexity": "low"
}
},
{
"id": "'1595678900777'",
"result": {
"structured": "TRIGGER: When Utility Freezer Door Contact [binary_sensor.utility_freezer_door_contact] changes from open (on) to closed (off). CONDITIONS: None. ACTIONS: Execute script.send_to_home_log with message ':door: :snowflake: Freezer door closed' and title ':fountain: Utility Room' at Debug log level.",
"natural_language": {
"trigger": "When the Utility Freezer Door Contact [binary_sensor.utility_freezer_door_contact] changes from being open to closed.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a debug notification to the home log with the message ':door: :snowflake: Freezer door closed' and the title ':fountain: Utility Room'."
},
"human_like": "Logs a debug message when the freezer door is closed.",
"complexity": "low"
}
},
{
"id": "'1595679010792'",
"result": {
"structured": "TRIGGER: When Utility Freezer Door Contact [binary_sensor.utility_freezer_door_contact] changes from closed (off) to open (on) AND remains open for 4 minutes OR When Utility Freezer Door Contact [binary_sensor.utility_freezer_door_contact] remains open (on) for 30 minutes OR When Utility Freezer Door Contact [binary_sensor.utility_freezer_door_contact] remains open (on) for 45 minutes OR When Utility Freezer Door Contact [binary_sensor.utility_freezer_door_contact] remains open (on) for 60 minutes. CONDITIONS: None. ACTIONS: In parallel, run script.send_direct_notification with a message containing the duration the freezer door has been open and run script.alexa_announce with an announcement containing the duration the freezer door has been open.",
"natural_language": {
"trigger": "The automation triggers when the Utility Freezer Door Contact [binary_sensor.utility_freezer_door_contact] is detected as open for specific durations. It can trigger if the door opens and stays open for 4 minutes, or if it remains open for 30 minutes, 45 minutes, or 60 minutes.",
"conditions": "There are no conditions that need to be met for this automation to run.",
"action": "When triggered, the automation simultaneously sends a direct notification and makes an Alexa announcement. Both messages alert that the freezer door in the Utility Room has been open for a specific duration, calculated from the last time the door state changed."
},
"human_like": "Sends alerts if the freezer door is left open for extended periods to prevent energy waste and food spoilage.",
"complexity": "medium"
}
},
{
"id": "'1657801925106'",
"result": {
"structured": "TRIGGER: When Freezer [switch.freezer] remains off for 1 minute. CONDITIONS: None. ACTIONS: In parallel: 1. Run script.send_to_home_log with message 'Freezer plug is turned off.', title ':fountain: Utility Room', and log_level Normal. 2. Run script.send_actionable_notification_with_2_buttons with message 'Freezer plug is turned off. Turn on?', title ':fountain: Utility Room', log_level Normal, targeting person danny person [person.danny], with button options 'Yes' (action switch_on_freezer) and 'No' (action ignore).",
"natural_language": {
"trigger": "When the Freezer [switch.freezer] switch remains in the off state for one minute.",
"conditions": "There are no conditions for this automation.",
"action": "The automation performs two actions simultaneously: it logs a message to the home log stating the freezer plug is off, and it sends an actionable notification to danny person [person.danny] asking if the freezer should be turned back on, providing 'Yes' and 'No' buttons for a response."
},
"human_like": "Alerts you if the freezer has been off for a minute by logging the event and sending a notification with options to turn it back on.",
"complexity": "low"
}
},
{
"id": "'1595679010892'",
"result": {
"structured": "TRIGGER: When Utility Fridge Door Contact [binary_sensor.utility_fridge_door_contact] changes from closed (off) to open (on) AND remains open for 4 minutes OR When Utility Fridge Door Contact [binary_sensor.utility_fridge_door_contact] remains open (on) for 30 minutes OR When Utility Fridge Door Contact [binary_sensor.utility_fridge_door_contact] remains open (on) for 45 minutes OR When Utility Fridge Door Contact [binary_sensor.utility_fridge_door_contact] remains open (on) for 60 minutes. CONDITIONS: None. ACTIONS: In parallel, execute script.send_direct_notification with a message and title, AND execute script.alexa_announce with a message.",
"natural_language": {
"trigger": "The automation triggers when the Utility Fridge Door Contact [binary_sensor.utility_fridge_door_contact] opens and stays open for 4 minutes, or if it remains open for 30, 45, or 60 minutes.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "Sends a direct notification and makes an Alexa announcement to alert that the freezer door has been open for a specific duration, calculated from when the door was last closed."
},
"human_like": "Sends escalating alerts if the freezer door is left open for extended periods to prevent energy waste and food spoilage.",
"complexity": "medium"
}
},
{
"id": "'1657801925107'",
"result": {
"structured": "TRIGGER: When Utility Fridge [switch.utility_fridge] remains off for 1 minute. CONDITIONS: None. ACTIONS: In parallel: 1) Execute script send_to_home_log with message 'Fridge plug is turned off.' and title ':fountain: Utility Room'. 2) Execute script send_actionable_notification_with_2_buttons with message 'Fridge plug is turned off. Turn on?', title ':fountain: Utility Room', targeting person danny person [person.danny], with button 'Yes' triggering action 'switch_on_fridge' and button 'No' triggering action 'ignore'.",
"natural_language": {
"trigger": "When the Utility Fridge [switch.utility_fridge] is turned off and stays off for one minute.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a log message to the home log stating the fridge plug is off, and simultaneously sends a notification to danny person [person.danny] asking if the plug should be turned back on, providing 'Yes' and 'No' buttons for a response."
},
"human_like": "Alerts the user when the fridge plug has been off for a minute, logging the event and asking if it should be turned back on.",
"complexity": "low"
}
},
{
"id": "'1595679010794'",
"result": {
"structured": "TRIGGER: When Washing Machine Powered On [binary_sensor.washing_machine_powered_on] turns on. CONDITIONS: None. ACTIONS: Execute script.send_to_home_log with a message ':shirt: :soap: Washing Machine :arrow_forward: Started.' for the Utility Room at Debug log level.",
"natural_language": {
"trigger": "When the Washing Machine Powered On [binary_sensor.washing_machine_powered_on] sensor detects the washing machine has been powered on.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a notification to the home log with the message ':shirt: :soap: Washing Machine :arrow_forward: Started.', titled 'Utility Room', at the Debug log level."
},
"human_like": "Sends a log notification when the washing machine starts running.",
"complexity": "low"
}
},
{
"id": "'1595679010795'",
"result": {
"structured": "TRIGGER: When Washing Machine Powered On [binary_sensor.washing_machine_powered_on] changes from on to off. CONDITIONS: None. ACTIONS: Execute script.washing_complete_notification with data: message ':shirt: :soap: Washing Machine :checkered_flag: Finished.', title 'Utility Room'.",
"natural_language": {
"trigger": "When the Washing Machine Powered On [binary_sensor.washing_machine_powered_on] sensor changes from being on to being off.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a notification with the title 'Utility Room' and the message ':shirt: :soap: Washing Machine :checkered_flag: Finished.' by running the script.washing_complete_notification."
},
"human_like": "Sends a notification when the washing machine finishes its cycle and turns off.",
"complexity": "low"
}
},
{
"id": "'1622374233311'",
"result": {
"structured": "TRIGGER: When weather home [weather.home] temperature attribute is above forecast high temperature [input_number.forecast_high_temperature] OR When Temperature Forecast Next Hour [sensor.temperature_forecast_next_hour] is above forecast high temperature [input_number.forecast_high_temperature] OR When Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] OR back garden motion illuminance [sensor.back_garden_motion_illuminance] is above close blinds brightness threshold [input_number.close_blinds_brightness_threshold]. CONDITIONS: (weather home [weather.home] temperature attribute is above forecast high temperature [input_number.forecast_high_temperature] OR Temperature Forecast Next Hour [sensor.temperature_forecast_next_hour] is above forecast high temperature [input_number.forecast_high_temperature]) AND Season [sensor.season] is summer. ACTIONS: Execute actions in parallel: If Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] is above close blinds brightness threshold [input_number.close_blinds_brightness_threshold], run script.bedroom_close_blinds_by_weather and script.ashlees_bedroom_close_blinds_by_weather with temperature and weather_condition data from the triggering entity. If back garden motion illuminance [sensor.back_garden_motion_illuminance] is above close blinds brightness threshold [input_number.close_blinds_brightness_threshold], run script.leos_bedroom_close_blinds_by_weather with temperature and weather_condition data from the triggering entity.",
"natural_language": {
"trigger": "The automation triggers if the current temperature from weather home [weather.home] exceeds the forecast high temperature [input_number.forecast_high_temperature], or if the next hour's forecast temperature from Temperature Forecast Next Hour [sensor.temperature_forecast_next_hour] exceeds that threshold, or if the illuminance from either the Front Garden Motion Illuminance [sensor.front_garden_motion_illuminance] or the back garden motion illuminance [sensor.back_garden_motion_illuminance] is brighter than the close blinds brightness threshold [input_number.close_blinds_brightness_threshold].",
"conditions": "The automation only proceeds if it is currently summer, as indicated by Season [sensor.season], and if either the current weather temperature or the next hour's forecast temperature is above the forecast high temperature [input_number.forecast_high_temperature] threshold.",
"action": "The automation performs two sets of actions in parallel. If the front garden is sufficiently bright, it runs scripts to close the blinds in the main bedroom and Ashlee's bedroom, passing data about the temperature and weather condition from the entity that triggered the automation. If the back garden is sufficiently bright, it runs a script to close the blinds in Leo's bedroom, also passing the same temperature and weather condition data."
},
"human_like": "Closes bedroom blinds when the weather forecast is hot and it's bright outside, helping to keep the house cool during summer.",
"complexity": "medium"
}
},
{
"id": "'1645568214221'",
"result": {
"structured": "TRIGGER: When Met Office RSS Weather Warnings [sensor.met_office_rss_weather_warnings] has a numeric state greater than 0. CONDITIONS: None. ACTIONS: Execute script send_direct_notification_with_url with data: message containing the title and link of the first entry from the sensor's entries attribute, title set to ':cloud: Weather', people set to danny person [person.danny] AND terina person [person.terina], and url set to the href of the second link from the first entry.",
"natural_language": {
"trigger": "When the Met Office RSS Weather Warnings [sensor.met_office_rss_weather_warnings] sensor indicates there is at least one active weather warning.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a direct notification to danny person [person.danny] and terina person [person.terina] with the title ':cloud: Weather', a message containing the title and link of the first weather warning entry, and a URL link to more details."
},
"human_like": "Sends a weather warning notification to Danny and Terina when active warnings are issued by the Met Office.",
"complexity": "low"
}
},
{
"id": "'1734968573793'",
"result": {
"structured": "TRIGGER: When Bedroom Air Pressure Difference [sensor.bedroom_air_pressure_difference] rises above 4. CONDITIONS: None. ACTIONS: Execute script 'send_direct_notification' with parameters: message ':thunder_cloud_and_rain: Storm Alert', title ':cloud: Weather', and target person danny person [person.danny].",
"natural_language": {
"trigger": "When the Bedroom Air Pressure Difference [sensor.bedroom_air_pressure_difference] sensor reports a value greater than 4.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a direct notification to danny person [person.danny] with the title ':cloud: Weather' and the message ':thunder_cloud_and_rain: Storm Alert'."
},
"human_like": "Sends a storm warning notification when a significant air pressure difference is detected.",
"complexity": "low"
}
},
{
"id": "'1712086876964'",
"result": {
"structured": "TRIGGER: When EV Charger Schedule 1 [binary_sensor.ev_charger_schedule_1] OR EV Charger Schedule 2 [binary_sensor.ev_charger_schedule_2] turns on. CONDITIONS: Enable Zappi Automations [input_boolean.enable_zappi_automations] is on AND NOT (MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] is EV Disconnected) AND ((Enable EV Charger Schedule 1 [input_boolean.enable_ev_charger_schedule_1] is on AND EV Charger Schedule 1 [binary_sensor.ev_charger_schedule_1] is on) OR (Enable EV Charger Schedule 2 [input_boolean.enable_ev_charger_schedule_2] is on AND EV Charger Schedule 2 [binary_sensor.ev_charger_schedule_2] is on)). ACTIONS: Execute script Zappi Check EV Charge [script.zappi_check_ev_charge] with data parameters for the current electricity import rate and export rate.",
"natural_language": {
"trigger": "When either the EV Charger Schedule 1 [binary_sensor.ev_charger_schedule_1] or the EV Charger Schedule 2 [binary_sensor.ev_charger_schedule_2] becomes active (turns on).",
"conditions": "The automation must be enabled via the Enable Zappi Automations [input_boolean.enable_zappi_automations] switch. The electric vehicle must be connected, meaning the MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] is not 'EV Disconnected'. Furthermore, for the specific schedule that triggered the automation, its corresponding enable switch must be on. So, if schedule 1 triggered, then Enable EV Charger Schedule 1 [input_boolean.enable_ev_charger_schedule_1] must be on. If schedule 2 triggered, then Enable EV Charger Schedule 2 [input_boolean.enable_ev_charger_schedule_2] must be on.",
"action": "Runs a script called Zappi Check EV Charge [script.zappi_check_ev_charge] to evaluate charging conditions, providing it with the current electricity import and export rates from the Octopus Energy sensors."
},
"human_like": "Starts the EV charging check process when a scheduled charging time begins, but only if the car is plugged in and the relevant automation is enabled.",
"complexity": "medium"
}
},
{
"id": "'1712086876965'",
"result": {
"structured": "TRIGGER: When EV Charger Schedule 1 [binary_sensor.ev_charger_schedule_1] changes from on to off OR When EV Charger Schedule 2 [binary_sensor.ev_charger_schedule_2] changes from on to off. CONDITIONS: Enable Zappi Automations [input_boolean.enable_zappi_automations] is on AND MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] is NOT EV Disconnected AND MyEnergi Zappi Status [sensor.myenergi_zappi_status] is NOT Paused AND (Enable EV Charger Schedule 1 [input_boolean.enable_ev_charger_schedule_1] is on OR Enable EV Charger Schedule 2 [input_boolean.enable_ev_charger_schedule_2] is on). ACTIONS: Send a direct notification to terina person [person.terina] with title 'Zappi: Charging Scheduled Stop' and message 'Charging schedule stopped from <friendly_name of the triggering entity>', then execute a 1 kWh boost on MyEnergi Zappi Charge Mode [select.myenergi_zappi_charge_mode], and finally set MyEnergi Zappi Charge Mode [select.myenergi_zappi_charge_mode] to Eco+.",
"natural_language": {
"trigger": "When either the EV Charger Schedule 1 [binary_sensor.ev_charger_schedule_1] or the EV Charger Schedule 2 [binary_sensor.ev_charger_schedule_2] changes from being active (on) to inactive (off).",
"conditions": "The automation is only allowed to run if the Enable Zappi Automations [input_boolean.enable_zappi_automations] is switched on. Additionally, the electric vehicle must be connected, meaning the MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] is not 'EV Disconnected'. The charger itself must not be in a 'Paused' state, as indicated by the MyEnergi Zappi Status [sensor.myenergi_zappi_status]. Finally, at least one of the schedule toggles, Enable EV Charger Schedule 1 [input_boolean.enable_ev_charger_schedule_1] or Enable EV Charger Schedule 2 [input_boolean.enable_ev_charger_schedule_2], must be enabled.",
"action": "Sends a notification to Terina [person.terina] stating which schedule stopped, initiates a short 1 kWh boost charge on the Zappi charger, and then sets the charger's mode to 'Eco+'."
},
"human_like": "When a predefined EV charging schedule ends, this automation notifies the user, gives the car a quick boost of energy, and switches the charger to its efficient Eco+ mode, provided the car is still plugged in and ready.",
"complexity": "medium"
}
},
{
"id": "'1712435997060'",
"result": {
"structured": "TRIGGER: When MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] changes from 'EV Disconnected' to 'EV Connected'. CONDITIONS: Enable Zappi Automations [input_boolean.enable_zappi_automations] is on. ACTIONS: Execute script.zappi_check_ev_charge with data parameters: current_electricity_import_rate set to the state of Octopus Energy Electricity Current Rate [sensor.octopus_energy_electricity_current_rate] and current_electricity_import_rate_unit set to its unit_of_measurement attribute, and current_electricity_export_rate set to the state of Octopus Energy Electricity Export Current Rate [sensor.octopus_energy_electricity_export_current_rate].",
"natural_language": {
"trigger": "When the MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] changes from 'EV Disconnected' to 'EV Connected', indicating an electric vehicle has been plugged in.",
"conditions": "The Enable Zappi Automations [input_boolean.enable_zappi_automations] switch must be turned on.",
"action": "Runs a script named 'zappi_check_ev_charge', passing in the current electricity import rate and its unit from Octopus Energy Electricity Current Rate [sensor.octopus_energy_electricity_current_rate], and the current electricity export rate from Octopus Energy Electricity Export Current Rate [sensor.octopus_energy_electricity_export_current_rate]."
},
"human_like": "When an electric vehicle is plugged into the Zappi charger, this automation checks the current electricity rates to decide on a charging strategy, but only if the feature is enabled.",
"complexity": "low"
}
},
{
"id": "'1715345710884'",
"result": {
"structured": "TRIGGER: When MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] changes from 'EV Disconnected' to any state except 'unavailable' and remains in the new state for 15 minutes. CONDITIONS: Enable Zappi Automations [input_boolean.enable_zappi_automations] is on AND Model Y Charger [binary_sensor.model_y_charger] is off AND Model 3 Charger [binary_sensor.model_3_charger] is off AND Guest EV [input_boolean.guest_ev] is off. ACTIONS: Execute the script 'send_direct_notification' with a message 'Vehicle connected and it's not a recognized car.', title 'Zappi', and send to danny person [person.danny] and terina person [person.terina].",
"natural_language": {
"trigger": "When the MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] changes from 'EV Disconnected' to any other available state and stays in that new state for 15 minutes.",
"conditions": "The automation must be enabled via Enable Zappi Automations [input_boolean.enable_zappi_automations] being on. Additionally, neither the Model Y Charger [binary_sensor.model_y_charger] nor the Model 3 Charger [binary_sensor.model_3_charger] are active, and the Guest EV [input_boolean.guest_ev] flag is not set to on.",
"action": "Sends a direct notification to Danny and Terina with the title 'Zappi' and the message 'Vehicle connected and it's not a recognized car.'"
},
"human_like": "Sends an alert when an unknown vehicle is connected to the Zappi charger for 15 minutes, provided no known cars or guest mode are active.",
"complexity": "medium"
}
},
{
"id": "'1715345710885'",
"result": {
"structured": "TRIGGER: When MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] changes to 'EV Disconnected'. CONDITIONS: Enable Zappi Automations [input_boolean.enable_zappi_automations] is on. ACTIONS: Execute the following actions in parallel: 1. Run script 'send_to_home_log' with message 'Vehicle disconnected.', title 'Zappi', and debug 'Debug'. 2. If Guest EV [input_boolean.guest_ev] is on, then turn off Guest EV [input_boolean.guest_ev]. 3. If Enable Predbat Automations [input_boolean.enable_predbat_automations] is on, then set Predbat Mode [select.predbat_mode] to 'Control charge & discharge'.",
"natural_language": {
"trigger": "When the MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] changes to indicate the vehicle is disconnected.",
"conditions": "The automation only runs if the master switch Enable Zappi Automations [input_boolean.enable_zappi_automations] is turned on.",
"action": "When triggered, it performs several actions simultaneously: it logs a message to the home log stating 'Vehicle disconnected.', it turns off the Guest EV [input_boolean.guest_ev] mode if it was on, and if the Enable Predbat Automations [input_boolean.enable_predbat_automations] is on, it changes the Predbat Mode [select.predbat_mode] to 'Control charge & discharge'."
},
"human_like": "Logs a vehicle disconnect event, disables guest charging mode, and updates the energy management system when an electric vehicle is unplugged from the charger.",
"complexity": "medium"
}
},
{
"id": "'1748515764878'",
"result": {
"structured": "TRIGGER: When MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] changes to EV Connected OR when Model Y Charger [binary_sensor.model_y_charger] changes to on. CONDITIONS: MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] is EV Connected AND Model Y Charger [binary_sensor.model_y_charger] is on AND the current weekday is Sunday, Monday, Tuesday, Wednesday, or Thursday AND Octopus Energy Intelligent Target Time [select.octopus_energy_intelligent_target_time] is NOT 08:00. ACTIONS: If Model Y Charger [binary_sensor.model_y_charger] is on, then run the script send_direct_notification to send a notification titled 'MyEnergi' with the message 'Changing Zappi target ready by time to 08:00.' to terina person [person.terina].",
"natural_language": {
"trigger": "The automation triggers when either the MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] reports that the EV is connected, or when the Model Y Charger [binary_sensor.model_y_charger] is turned on.",
"conditions": "All of the following must be true: the MyEnergi Zappi Plug Status [sensor.myenergi_zappi_plug_status] must be 'EV Connected', the Model Y Charger [binary_sensor.model_y_charger] must be on, the current day must be a weekday from Sunday through Thursday, and the Octopus Energy Intelligent Target Time [select.octopus_energy_intelligent_target_time] must not already be set to 08:00.",
"action": "If the Model Y Charger [binary_sensor.model_y_charger] is confirmed to be on, the system sends a direct notification to terina person [person.terina] with the title 'MyEnergi' and a message stating that the Zappi target ready-by time is being changed to 08:00."
},
"human_like": "On weekdays, if the car is connected and charging but the target charge time isn't already set, it notifies the user that the Zappi charger's target time is being updated to 08:00.",
"complexity": "medium"
}
},
{
"id": "'1741294780206'",
"result": {
"structured": "TRIGGER: When Zigbee2MQTT Bridge Connection State [binary_sensor.zigbee2mqtt_bridge_connection_state] becomes unavailable and remains so for 1 minute. CONDITIONS: None. ACTIONS: Execute script send_direct_notification with data: message 'Zigbee coordinator became unavailable.' and people entity person.danny.",
"natural_language": {
"trigger": "When the Zigbee2MQTT Bridge Connection State [binary_sensor.zigbee2mqtt_bridge_connection_state] sensor reports an unavailable state and stays that way for one minute.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a direct notification to danny person [person.danny] with the message 'Zigbee coordinator became unavailable.'."
},
"human_like": "Sends a notification to Danny if the Zigbee coordinator is unavailable for one minute.",
"complexity": "low"
}
}
]