AutomationDataset/tyriis/automation-descriptions.json

548 lines
72 KiB
JSON

[
{
"id": "alexroom_light_switch",
"result": {
"structured": "TRIGGER: When alexroom light switch [sensor.senic_wall_switch_alexroom_action] changes to press_1 OR press_2 OR press_3 OR press_4 OR When alexroom aqara switch [sensor.aqara_switch_alexroom_action] changes to single OR double. CONDITIONS: None. ACTIONS: Choose action based on trigger: IF alexroom light switch [sensor.senic_wall_switch_alexroom_action] state is press_2 THEN toggle alexroom light [switch.shelly_1gen4_light_alexroom] AND log info message 'Light toggled by Senic Wall Switch'. IF alexroom aqara switch [sensor.aqara_switch_alexroom_action] state is single OR double THEN toggle alexroom light [switch.shelly_1gen4_light_alexroom] AND log info message 'Light toggled by Aqara Button Switch'.",
"natural_language": {
"trigger": "When the alexroom light switch [sensor.senic_wall_switch_alexroom_action] reports any of the actions press_1, press_2, press_3, or press_4, or when the alexroom aqara switch [sensor.aqara_switch_alexroom_action] reports a single or double press.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "If the action from the alexroom light switch [sensor.senic_wall_switch_alexroom_action] is press_2, the automation will toggle the alexroom light [switch.shelly_1gen4_light_alexroom] and log an informational message stating the light was toggled by the Senic Wall Switch. If the action from the alexroom aqara switch [sensor.aqara_switch_alexroom_action] is either a single or double press, the automation will also toggle the alexroom light [switch.shelly_1gen4_light_alexroom] and log a message stating the light was toggled by the Aqara Button Switch."
},
"human_like": "Toggles the light in the alexroom when specific buttons are pressed on either the Senic Wall Switch or the Aqara Button Switch.",
"complexity": "medium"
}
},
{
"id": "alexroom_nanoleaf_lines",
"result": {
"structured": "TRIGGER: When alexroom wall outlet power [sensor.aqara_wall_outlet_alexroom_power] is above 40 OR When alexroom wall outlet power [sensor.aqara_wall_outlet_alexroom_power] is below 40 for 10 seconds. ACTIONS: Choose based on condition: IF alexroom wall outlet power [sensor.aqara_wall_outlet_alexroom_power] is above 40 THEN turn on nanoleaf lines [light.lines_5c30]. IF alexroom wall outlet power [sensor.aqara_wall_outlet_alexroom_power] is below 40 THEN turn off nanoleaf lines [light.lines_5c30].",
"natural_language": {
"trigger": "When the power consumption measured by the alexroom wall outlet power [sensor.aqara_wall_outlet_alexroom_power] rises above 40 watts, or when it stays below 40 watts for at least 10 seconds.",
"conditions": "There are no explicit conditions outside the action selection logic.",
"action": "If the power consumption is above 40 watts, the nanoleaf lines [light.lines_5c30] are turned on. If the power consumption is below 40 watts, the nanoleaf lines [light.lines_5c30] are turned off."
},
"human_like": "Automatically turns the Nanoleaf lights on or off based on the power consumption of a wall outlet in Alex's room.",
"complexity": "medium"
}
},
{
"id": "basement_light",
"result": {
"structured": "TRIGGER: When motion basement group [group.motion_basement] becomes on OR When motion basement group [group.motion_basement] becomes off AND remains off for 10 minutes OR At 08:00:01 OR At 23:00:01. CONDITIONS: None. ACTIONS: Choose based on conditions: 1. IF (motion basement group [group.motion_basement] is on) AND (time is after 08:00:00 AND before 23:00:00) AND ((basement stairs light [light.gledopto_dimmer_stairs_basement] is off) OR (basement light [light.basement] is off) OR (basement light [light.basement] brightness is below 235 AND above 235)) THEN Turn on basement stairs light [light.gledopto_dimmer_stairs_basement] with brightness 255 AND Turn on basement working scene [scene.basement_working] AND Log info message. 2. IF (motion basement group [group.motion_basement] is on) AND (time is after 23:00:00 AND before 08:00:00) AND ((basement stairs light [light.gledopto_dimmer_stairs_basement] is off) OR (basement light [light.basement] is off) OR (basement light [light.basement] brightness is below 115 AND above 115)) THEN Turn on basement stairs light [light.gledopto_dimmer_stairs_basement] with brightness 255 AND Turn on basement relax scene [scene.basement_relax] AND Log info message. 3. IF (motion basement group [group.motion_basement] is off AND remains off for 10 minutes) AND ((basement stairs light [light.gledopto_dimmer_stairs_basement] is on) OR (basement light [light.basement] is on)) THEN Turn off basement light [light.basement] AND basement stairs light [light.gledopto_dimmer_stairs_basement] AND Log info message.",
"natural_language": {
"trigger": "The automation can be triggered in four ways: when motion is detected in the basement (the motion basement group [group.motion_basement] turns on), when motion has been absent in the basement for ten minutes (the motion basement group [group.motion_basement] turns off and stays off for ten minutes), or at the fixed times of 8:00:01 AM and 11:00:01 PM.",
"conditions": "There are no global conditions for the automation; all logic is handled within the action's choose block.",
"action": "The automation performs one of three sequences based on the state of motion and the time of day. If motion is detected during daytime hours (between 8:00 AM and 11:00 PM) and the basement lights are off or dimmed below a specific threshold, it turns on the basement stairs light [light.gledopto_dimmer_stairs_basement] to full brightness and activates the basement working scene [scene.basement_working]. If motion is detected during nighttime hours (between 11:00 PM and 8:00 AM) and the lights are off or dimmed below a different threshold, it turns on the stairs light to full brightness and activates the basement relax scene [scene.basement_relax]. If no motion has been detected for ten minutes and any of the basement lights are on, it turns off both the basement light [light.basement] and the basement stairs light [light.gledopto_dimmer_stairs_basement]. Each action logs a corresponding informational message."
},
"human_like": "Automatically controls the basement lights based on motion and time of day, turning on a bright working scene during the day, a relaxing scene at night, and turning the lights off after a period of inactivity.",
"complexity": "high"
}
},
{
"id": "basement_light_relay",
"result": {
"structured": "TRIGGER: When basement light relay [switch.switch_basement_relay] turns off. CONDITIONS: None. ACTIONS: Turn on basement light relay [switch.switch_basement_relay].",
"natural_language": {
"trigger": "When the basement light relay [switch.switch_basement_relay] is turned off.",
"conditions": "There are no conditions that must be met.",
"action": "Turns the basement light relay [switch.switch_basement_relay] back on."
},
"human_like": "Ensures the basement light relay is always on by immediately turning it back on if it gets turned off.",
"complexity": "low"
}
},
{
"id": "bathroom_nanoleaf",
"result": {
"structured": "TRIGGER: When bathroom motion sensor [binary_sensor.sensor_bathroom_sr501_pir_motion] detects motion (on) OR When bathroom motion sensor [binary_sensor.sensor_bathroom_sr501_pir_motion] stops detecting motion (off) for 10 minutes. CONDITIONS: None. ACTIONS: Choose one of the following sequences based on conditions: 1. IF bathroom motion sensor [binary_sensor.sensor_bathroom_sr501_pir_motion] is on AND time is between 08:00:00 and 00:00:00 (i.e., from 8 AM to midnight) AND bathroom skylight [light.skylight_8a41] is off THEN turn on bathroom skylight [light.skylight_8a41] with brightness 255 AND log an info message. 2. IF bathroom motion sensor [binary_sensor.sensor_bathroom_sr501_pir_motion] is on AND time is between 00:00:00 and 08:00:00 (i.e., from midnight to 8 AM) AND bathroom skylight [light.skylight_8a41] is off THEN turn on bathroom skylight [light.skylight_8a41] with brightness 77 AND log an info message. 3. IF bathroom motion sensor [binary_sensor.sensor_bathroom_sr501_pir_motion] is off AND remains off for 10 minutes AND bathroom skylight [light.skylight_8a41] is on THEN turn off bathroom skylight [light.skylight_8a41] AND log an info message.",
"natural_language": {
"trigger": "The automation is triggered either when the bathroom motion sensor [binary_sensor.sensor_bathroom_sr501_pir_motion] detects motion, or when it reports no motion for a continuous period of 10 minutes.",
"conditions": "There are no global conditions; the automation proceeds directly to evaluate its action choices.",
"action": "Based on the trigger and the current state, the automation selects one of three possible actions. If motion is detected during the day (from 8 AM to midnight) and the bathroom skylight [light.skylight_8a41] is off, it turns the light on at full brightness (255) and logs the action. If motion is detected at night (from midnight to 8 AM) and the light is off, it turns the light on at a lower brightness (77) and logs it. If no motion has been detected for 10 minutes and the light is on, it turns the light off and logs that event."
},
"human_like": "Automatically controls the bathroom skylight based on motion, turning it on at a bright level during the day and a dim level at night, and turning it off after 10 minutes of no motion.",
"complexity": "medium"
}
},
{
"id": "bedroom_aqara_switches",
"result": {
"structured": "TRIGGER: When bedroom aqara switch 1 [sensor.aqara_switch_bedroom_1_action] changes state OR when bedroom aqara switch 2 [sensor.aqara_switch_bedroom_2_action] changes state. CONDITIONS: The new state of the triggered entity is 'single' OR 'double'. ACTIONS: If the action_type is 'single', toggle bedroom skylight [light.skylight_9aa7]. If the action_type is 'double', then if the current brightness of bedroom skylight [light.skylight_9aa7] is greater than or equal to 50, set its brightness to 50; otherwise, set its brightness to 120.",
"natural_language": {
"trigger": "When either the bedroom aqara switch 1 [sensor.aqara_switch_bedroom_1_action] or the bedroom aqara switch 2 [sensor.aqara_switch_bedroom_2_action] reports a new action.",
"conditions": "The reported action from the switch must be either 'single' or 'double'.",
"action": "If the action is a single press, the bedroom skylight [light.skylight_9aa7] is toggled on or off. If the action is a double press, the brightness of the skylight is adjusted: if the light's current brightness is 50 or higher, it is dimmed to 50; if it is below 50, it is brightened to 120."
},
"human_like": "Uses Aqara wall switches to control the bedroom skylight: a single press toggles the light on/off, and a double press cycles between two brightness levels.",
"complexity": "medium"
}
},
{
"id": "bedroom_galaxy_light_projector_auto_on",
"result": {
"structured": "TRIGGER: When bedroom door contact [binary_sensor.aqara_contact_door_bedroom_contact] remains closed (off) for 5 minutes. CONDITIONS: (galaxy projector lock status [sensor.galaxy_projector_bedroom_lock_status] is not 'locked') AND (galaxy light projector [light.galaxy_light_projector_2] is off) AND (bedroom door contact [binary_sensor.aqara_contact_door_bedroom_contact] is off) AND (the current hour is 22 or later OR the current hour is 1 or earlier). ACTIONS: Execute the service 'rest_command.create_lock' with data (name: bedroom_galaxy_light_projector, owner: homeassistant-automation, duration: 9h) AND Turn on galaxy light projector [light.galaxy_light_projector_2] AND Write a system log entry with level 'info' and message 'Bedroom Galaxy Light Projector turned on after door closed at night.'.",
"natural_language": {
"trigger": "When the bedroom door contact [binary_sensor.aqara_contact_door_bedroom_contact] has been closed for a continuous period of five minutes.",
"conditions": "If the galaxy projector lock status [sensor.galaxy_projector_bedroom_lock_status] is not showing as 'locked', the galaxy light projector [light.galaxy_light_projector_2] is currently off, the bedroom door contact [binary_sensor.aqara_contact_door_bedroom_contact] is still closed, and the current time is between 10:00 PM and 1:59 AM (i.e., from 22:00 until 01:59).",
"action": "First, it calls a custom service to create a lock for the projector, specifying its name, owner, and a duration of nine hours. Then, it turns on the galaxy light projector [light.galaxy_light_projector_2]. Finally, it records an informational log message stating that the projector was turned on after the door was closed at night."
},
"human_like": "Automatically turns on the bedroom galaxy light projector five minutes after the door is closed late at night, provided it's not already locked or on.",
"complexity": "medium"
}
},
{
"id": "bedroom_light_relay",
"result": {
"structured": "TRIGGER: When bedroom wall switch [switch.aqara_wall_switch_bedroom] turns off. CONDITIONS: None. ACTIONS: Turn on bedroom wall switch [switch.aqara_wall_switch_bedroom].",
"natural_language": {
"trigger": "When the bedroom wall switch [switch.aqara_wall_switch_bedroom] is turned off.",
"conditions": "There are no conditions.",
"action": "Turns the bedroom wall switch [switch.aqara_wall_switch_bedroom] back on."
},
"human_like": "Automatically turns the bedroom light switch back on if it gets turned off.",
"complexity": "low"
}
},
{
"id": "climate_bedroom_auto_off_at_night",
"result": {
"structured": "TRIGGER: Every 5 minutes. CONDITIONS: (bedroom climate [climate.bedroom] is in 'cool' mode) AND (bedroom ac automation block status [sensor.hisense_ac_bedroom_automation_block_status] is 'allowed') AND (current hour is 23 or later OR current hour is before 6). ACTIONS: Call service 'rest_command.release_lock' with data {name: hisense_ac_bedroom}, turn off bedroom climate [climate.bedroom], and log an info message 'Bedroom AC turned off after 23:00.'.",
"natural_language": {
"trigger": "The automation runs every 5 minutes.",
"conditions": "The bedroom climate [climate.bedroom] must be set to cool mode, the bedroom ac automation block status [sensor.hisense_ac_bedroom_automation_block_status] must be 'allowed', and the current time must be at or after 11 PM (23:00) or before 6 AM.",
"action": "It releases the lock for the bedroom AC, turns off the bedroom climate [climate.bedroom], and logs a message confirming the action."
},
"human_like": "Turns off the bedroom air conditioner during the night if it's cooling and not blocked, running a check every 5 minutes.",
"complexity": "medium"
}
},
{
"id": "climate_bedroom_auto_off_on_target_temp",
"result": {
"structured": "TRIGGER: When the time matches a pattern every 5 minutes OR When bedroom temperature [sensor.qingping_bedroom_temperature] is below 22°C AND remains so for 5 minutes. CONDITIONS: (bedroom climate [climate.bedroom] is in 'cool' mode) AND (bedroom temperature [sensor.qingping_bedroom_temperature] is less than or equal to 22°C) AND (the runtime calculated from climate bedroom start time [input_datetime.climate_bedroom_start_time] is greater than 30 minutes). ACTIONS: Release lock 'hisense_ac_bedroom' via REST command, then create a new lock 'hisense_ac_bedroom' owned by 'homeassistant-automation' for 20 minutes, then turn off bedroom climate [climate.bedroom], then write an info log message 'Bedroom AC turned off due to target temp reached.'.",
"natural_language": {
"trigger": "The automation triggers either every 5 minutes based on a time pattern, or when the bedroom temperature [sensor.qingping_bedroom_temperature] drops below 22°C and stays there for at least 5 minutes.",
"conditions": "All of the following must be true: the bedroom climate [climate.bedroom] is set to cooling mode, the bedroom temperature [sensor.qingping_bedroom_temperature] is 22°C or lower, and the air conditioner has been running for more than 30 minutes based on the start time stored in climate bedroom start time [input_datetime.climate_bedroom_start_time].",
"action": "It first releases a lock named 'hisense_ac_bedroom', then immediately creates a new 20-minute lock for the same device owned by the automation. Next, it turns off the bedroom climate [climate.bedroom]. Finally, it logs an informational message stating that the bedroom AC was turned off because the target temperature was reached."
},
"human_like": "Automatically turns off the bedroom air conditioner when the room has cooled down to the target temperature and it has run for at least half an hour.",
"complexity": "medium"
}
},
{
"id": "climate_bedroom_auto_off_on_window_open",
"result": {
"structured": "TRIGGER: When the time pattern matches every 5 minutes OR When bedroom window contact [binary_sensor.aqara_contact_window_bedroom_contact] becomes open (on) AND remains open for 5 minutes. CONDITIONS: (bedroom climate [climate.bedroom] is on) AND (bedroom window contact [binary_sensor.aqara_contact_window_bedroom_contact] is on) AND (the last_changed timestamp of bedroom window contact [binary_sensor.aqara_contact_window_bedroom_contact] is not none) AND (the time elapsed since the last_changed timestamp of bedroom window contact [binary_sensor.aqara_contact_window_bedroom_contact] is greater than 300 seconds). ACTIONS: IF (bedroom window contact [binary_sensor.aqara_contact_window_bedroom_contact] is on) AND (the last_changed timestamp of bedroom window contact [binary_sensor.aqara_contact_window_bedroom_contact] is not none AND the time elapsed since that timestamp is greater than 300 seconds) THEN call service rest_command.release_lock with data name: hisense_ac_bedroom, THEN turn off bedroom climate [climate.bedroom], THEN write an info log message 'Bedroom AC turned off due to open window for more than 5 minutes'.",
"natural_language": {
"trigger": "The automation triggers either every five minutes based on a time pattern, or when the bedroom window contact [binary_sensor.aqara_contact_window_bedroom_contact] changes to an open state and remains open for five minutes.",
"conditions": "The automation proceeds only if the bedroom climate [climate.bedroom] is currently on, the bedroom window contact [binary_sensor.aqara_contact_window_bedroom_contact] is open, and the window has been open for more than five minutes (calculated by checking the time elapsed since the window sensor last changed state).",
"action": "If the window is still open and has been open for more than five minutes, the action first releases a lock for the 'hisense_ac_bedroom' device, then turns off the bedroom climate [climate.bedroom], and finally logs an informational message stating the AC was turned off due to the open window."
},
"human_like": "Turns off the bedroom air conditioner if the window has been open for more than five minutes, helping to save energy.",
"complexity": "medium"
}
},
{
"id": "climatge_bedroom_auto_on",
"result": {
"structured": "TRIGGER: Every 5 minutes (time_pattern). CONDITIONS: (Current time is between 07:30 and 22:00 on weekdays OR between 08:30 and 23:00 on weekends) AND bedroom temperature [sensor.qingping_bedroom_temperature] > 23°C AND bedroom window contact [binary_sensor.aqara_contact_window_bedroom_contact] is closed (off) AND weather forecast temperature [sensor.weather_forecast_temperature_forecast] > 25°C AND bedroom ac lock status [sensor.hisense_ac_bedroom_lock_status] is not 'locked' AND bedroom ac automation block status [sensor.hisense_ac_bedroom_automation_block_status] is 'allowed'. ACTIONS: Execute script cool_bedroom with reason 'hot day and bedroom temperature to high'.",
"natural_language": {
"trigger": "The automation triggers every 5 minutes.",
"conditions": "If the current time is within the allowed window (7:30 AM to 10:00 PM on weekdays, or 8:30 AM to 11:00 PM on weekends), the bedroom temperature [sensor.qingping_bedroom_temperature] is above 23°C, the bedroom window contact [binary_sensor.aqara_contact_window_bedroom_contact] is closed, the weather forecast temperature [sensor.weather_forecast_temperature_forecast] is above 25°C, the bedroom ac lock status [sensor.hisense_ac_bedroom_lock_status] is not locked, and the bedroom ac automation block status [sensor.hisense_ac_bedroom_automation_block_status] is set to allowed.",
"action": "Runs the 'cool_bedroom' script to turn on the air conditioning, with the reason 'hot day and bedroom temperature to high'."
},
"human_like": "Automatically turns on the bedroom air conditioning on hot days when the room is warm, the window is closed, and the system is not locked, but only during daytime and evening hours.",
"complexity": "medium"
}
},
{
"id": "climate_bedroom_manual_control",
"result": {
"structured": "TRIGGER: When climate.bedroom [climate.bedroom] state changes to 'on' OR when climate.bedroom [climate.bedroom] state changes to 'off'. CONDITIONS: (trigger.from_state is not none AND trigger.from_state.state is 'on' OR 'off' AND trigger.to_state.state is 'on' OR 'off' AND trigger.from_state.state != trigger.to_state.state) AND (trigger.to_state.context.user_id is not none OR trigger.to_state.context.id is none OR (trigger.to_state.context.id does NOT contain 'climate_bedroom_auto_off_on_window_open' AND does NOT contain 'climate_bedroom_auto_off_on_target_temp' AND does NOT contain 'climate_bedroom_auto_on' AND does NOT contain 'cool_bedroom')). ACTIONS: Log the manual control event. IF trigger is manual_on THEN release lock 'hisense_ac_bedroom', create a new lock 'hisense_ac_bedroom' with owner 'homeassistant-{{ trigger.to_state.context.user_id }}' for 1 hour, and log 'Bedroom cooling manual started by user'. IF trigger is manual_off THEN release lock 'hisense_ac_bedroom', create a new lock 'hisense_ac_bedroom' with owner 'homeassistant-{{ trigger.to_state.context.user_id }}' for 1 hour, and log 'Bedroom cooling manual stoped by user'.",
"natural_language": {
"trigger": "When the bedroom climate [climate.bedroom] is manually turned on or off.",
"conditions": "The state change must be a valid transition between 'on' and 'off' states. The change must be initiated by a manual user action (via the UI or app) or a physical button press, and must not originate from specific, known automation contexts that manage the bedroom climate automatically.",
"action": "First, the automation logs detailed information about the manual control event. Then, depending on whether the climate was turned on or off, it releases any existing lock for the 'hisense_ac_bedroom' air conditioner and creates a new one-hour lock owned by the user who initiated the action, preventing other automations from interfering. It also logs a simple message indicating the manual start or stop of bedroom cooling."
},
"human_like": "This automation manages manual control of the bedroom air conditioner, ensuring user overrides are respected by creating temporary locks to prevent other automations from changing the settings.",
"complexity": "high"
}
},
{
"id": "climate_bedroom_track_start_time",
"result": {
"structured": "TRIGGER: When bedroom climate [climate.bedroom] changes from state 'off' to any other state. CONDITIONS: The new state of bedroom climate [climate.bedroom] is not 'off', 'unknown', or 'unavailable'. ACTIONS: Set climate bedroom start time [input_datetime.climate_bedroom_start_time] to the current datetime AND write an info log message stating 'Updated Bedroom AC start time: mode changed from off to [new state]'.",
"natural_language": {
"trigger": "Whenever the bedroom climate [climate.bedroom] changes from being off to any other mode.",
"conditions": "The new state of the bedroom climate [climate.bedroom] must be a valid active mode, meaning it cannot be 'off', 'unknown', or 'unavailable'.",
"action": "It records the current time by updating the climate bedroom start time [input_datetime.climate_bedroom_start_time] and logs an informational message confirming the mode change."
},
"human_like": "Records the start time when the bedroom air conditioning is turned on from an off state.",
"complexity": "low"
}
},
{
"id": "climate_livingroom_auto_off_at_night",
"result": {
"structured": "TRIGGER: Every 5 minutes. CONDITIONS: (livingroom climate [climate.livingroom] is in 'cool' mode) AND (livingroom ac automation block status [sensor.hisense_ac_livingroom_automation_block_status] is 'allowed') AND (current hour is 23 or later OR current hour is before 6). ACTIONS: Execute REST command 'release_lock' for 'hisense_ac_livingroom', then turn off livingroom climate [climate.livingroom], then write an info log message.",
"natural_language": {
"trigger": "The automation runs every five minutes.",
"conditions": "The livingroom climate [climate.livingroom] must be set to cool mode, the livingroom ac automation block status [sensor.hisense_ac_livingroom_automation_block_status] must be 'allowed', and the current time must be at or after 11:00 PM or before 6:00 AM.",
"action": "It first releases a lock for the living room AC, then turns off the livingroom climate [climate.livingroom], and finally logs an informational message stating the AC was turned off."
},
"human_like": "Automatically turns off the living room air conditioner during the night if it's cooling and not blocked by other automations.",
"complexity": "medium"
}
},
{
"id": "climate_livingroom_auto_off_on_target_temp",
"result": {
"structured": "TRIGGER: When the time matches a pattern every 5 minutes OR When livingroom temperature [sensor.qingping_livingroom_temperature] remains below 22°C for 5 minutes. CONDITIONS: (livingroom climate [climate.livingroom] is in 'cool' mode) AND (livingroom temperature [sensor.qingping_livingroom_temperature] is less than or equal to 22) AND (the elapsed time since climate livingroom start time [input_datetime.climate_livingroom_start_time] is greater than 30 minutes). ACTIONS: Call the 'rest_command.release_lock' service for 'hisense_ac_livingroom', then call the 'rest_command.create_lock' service for 'hisense_ac_livingroom' with owner 'homeassistant-automation' and duration '20m', then turn off livingroom climate [climate.livingroom], then log an informational message.",
"natural_language": {
"trigger": "The automation triggers either every five minutes, or when the livingroom temperature [sensor.qingping_livingroom_temperature] stays below 22°C for at least five minutes.",
"conditions": "The automation will only proceed if the livingroom climate [climate.livingroom] is currently set to cool mode, the livingroom temperature [sensor.qingping_livingroom_temperature] is 22°C or lower, and the air conditioner has been running for more than 30 minutes (calculated from the climate livingroom start time [input_datetime.climate_livingroom_start_time]).",
"action": "First, it releases any existing lock for the 'hisense_ac_livingroom' device. Then, it creates a new 20-minute lock for the same device, owned by 'homeassistant-automation'. Next, it turns off the livingroom climate [climate.livingroom] air conditioner. Finally, it writes an informational log entry stating the AC was turned off because the target temperature was reached."
},
"human_like": "Automatically turns off the living room air conditioner when it has cooled the room to the target temperature and has run for at least 30 minutes.",
"complexity": "medium"
}
},
{
"id": "climatge_livingroom_auto_on",
"result": {
"structured": "TRIGGER: Every 5 minutes (time pattern). CONDITIONS: (Current time is between 08:30 and 23:00 on weekends OR between 07:30 and 22:00 on weekdays) AND (livingroom temperature [sensor.qingping_livingroom_temperature] > 23) AND (weather forecast temperature [sensor.weather_forecast_temperature_forecast] > 25) AND (livingroom ac lock status [sensor.hisense_ac_livingroom_lock_status] is not 'locked') AND (livingroom ac automation block status [sensor.hisense_ac_livingroom_automation_block_status] is 'allowed'). ACTIONS: Execute script cool_livingroom with reason 'hot day and livingroom temperature to high'.",
"natural_language": {
"trigger": "The automation runs every 5 minutes.",
"conditions": "It checks if the current time is within the allowed window (from 08:30 to 23:00 on weekends, or from 07:30 to 22:00 on weekdays). It also requires that the livingroom temperature [sensor.qingping_livingroom_temperature] is above 23°C, the weather forecast temperature [sensor.weather_forecast_temperature_forecast] is above 25°C, the livingroom ac lock status [sensor.hisense_ac_livingroom_lock_status] is not 'locked', and the livingroom ac automation block status [sensor.hisense_ac_livingroom_automation_block_status] is 'allowed'.",
"action": "If all conditions are met, it runs the 'cool_livingroom' script to turn on the air conditioning, with the reason 'hot day and livingroom temperature to high'."
},
"human_like": "Automatically turns on the living room air conditioning on hot days when the room is too warm, but only during allowed time windows.",
"complexity": "medium"
}
},
{
"id": "climate_livingroom_manual_control",
"result": {
"structured": "TRIGGER: When livingroom climate [climate.livingroom] changes to on OR when livingroom climate [climate.livingroom] changes to off. CONDITIONS: (The state change is a valid transition from on to off or off to on) AND (The change originated from a manual user interaction, a physical button, or an external control, but NOT from specific known automation contexts). ACTIONS: Log the manual control event details. Then, IF the trigger was manual_on, release the hisense_ac_livingroom lock, create a new hisense_ac_livingroom lock for 60 minutes, and log the start. IF the trigger was manual_off, release the hisense_ac_livingroom lock, create a new hisense_ac_livingroom lock for 60 minutes, and log the stop.",
"natural_language": {
"trigger": "When the livingroom climate [climate.livingroom] is turned on or off.",
"conditions": "The state change must be a valid switch between 'on' and 'off' states. Additionally, the change must be identified as a manual action, either from a user in the UI, a physical button press, or an external control system, while explicitly excluding changes caused by specific, predefined automations.",
"action": "First, the automation logs detailed information about the manual control event. Then, depending on whether the climate was turned on or off, it will release any existing lock named 'hisense_ac_livingroom', create a new 60-minute lock for the same name to prevent other automations from interfering, and log a corresponding message about the manual start or stop."
},
"human_like": "This automation handles manual control of the living room air conditioning, ensuring user overrides are respected by creating a temporary lock to prevent other automations from taking over.",
"complexity": "medium"
}
},
{
"id": "climate_livingroom_track_start_time",
"result": {
"structured": "TRIGGER: When livingroom climate [climate.livingroom] changes state from off to any other state. CONDITIONS: The new state of livingroom climate [climate.livingroom] is not off, unknown, or unavailable. ACTIONS: Set climate livingroom start time [input_datetime.climate_livingroom_start_time] to the current date and time AND write an info log message stating 'Updated Livingroom AC start time: mode changed from off to [new state]'.",
"natural_language": {
"trigger": "When the livingroom climate [climate.livingroom] changes from being off to any other state.",
"conditions": "The new state of the livingroom climate [climate.livingroom] must be a valid active mode, meaning it is not off, unknown, or unavailable.",
"action": "Sets the climate livingroom start time [input_datetime.climate_livingroom_start_time] to the current moment and logs an informational message confirming the update."
},
"human_like": "Records the start time whenever the living room air conditioning is turned on from an off state.",
"complexity": "low"
}
},
{
"id": "domiroom_ceiling_light",
"result": {
"structured": "TRIGGER: When domiroom motion group [group.motion_domiroom] becomes on. CONDITIONS: Time is between 09:00:00 AND before 20:00:00 AND domiroom wall outlet power [sensor.aqara_wall_outlet_dominikroom_power] is below 50. ACTIONS: Turn on domiroom ceiling light [light.led_ceiling_light_domiroom].",
"natural_language": {
"trigger": "When motion is detected in the domiroom, indicated by the domiroom motion group [group.motion_domiroom] turning on.",
"conditions": "The automation only runs if the current time is between 9:00 AM and 8:00 PM, and the power consumption of the domiroom wall outlet [sensor.aqara_wall_outlet_dominikroom_power] is below 50 watts.",
"action": "Turns on the domiroom ceiling light [light.led_ceiling_light_domiroom]."
},
"human_like": "Turns on the ceiling light in the domiroom when motion is detected during daytime hours, but only if the room's power usage is low.",
"complexity": "medium"
}
},
{
"id": "domiroom_nanoleaf",
"result": {
"structured": "TRIGGER: When domiroom wall outlet power [sensor.aqara_wall_outlet_dominikroom_power] is above 100 OR When domiroom wall outlet power [sensor.aqara_wall_outlet_dominikroom_power] is below 100 for 10 seconds. CONDITIONS: None. ACTIONS: If domiroom wall outlet power [sensor.aqara_wall_outlet_dominikroom_power] is above 100, then turn on nanoleaf shapes [light.shapes_a6dc]. If domiroom wall outlet power [sensor.aqara_wall_outlet_dominikroom_power] is below 100, then turn off nanoleaf shapes [light.shapes_a6dc].",
"natural_language": {
"trigger": "The automation triggers when the power consumption of the domiroom wall outlet power [sensor.aqara_wall_outlet_dominikroom_power] exceeds 100 watts, or when it drops below 100 watts and stays there for at least 10 seconds.",
"conditions": "There are no additional conditions that must be met.",
"action": "If the power consumption is above 100 watts, the nanoleaf shapes [light.shapes_a6dc] are turned on. If the power consumption is below 100 watts, the nanoleaf shapes [light.shapes_a6dc] are turned off."
},
"human_like": "Turns the Nanoleaf light on when the computer is drawing significant power, and turns it off when the computer is off or idle.",
"complexity": "medium"
}
},
{
"id": "entrance_nuki_autolock",
"result": {
"structured": "TRIGGER: When entrance door contact [binary_sensor.aqara_contact_door_entrance_contact] becomes closed (off) AND remains closed for 30 seconds OR When nuki lock [lock.nuki] becomes unlocked AND remains unlocked for 2 minutes. CONDITIONS: nuki lock [lock.nuki] is unlocked AND entrance door contact [binary_sensor.aqara_contact_door_entrance_contact] is closed (off). ACTIONS: Lock nuki lock [lock.nuki].",
"natural_language": {
"trigger": "When the entrance door contact [binary_sensor.aqara_contact_door_entrance_contact] is closed and stays closed for 30 seconds, or when the nuki lock [lock.nuki] is unlocked and stays unlocked for 2 minutes.",
"conditions": "The nuki lock [lock.nuki] must be unlocked, and the entrance door contact [binary_sensor.aqara_contact_door_entrance_contact] must be closed.",
"action": "Locks the nuki lock [lock.nuki]."
},
"human_like": "Automatically locks the front door when it has been closed for 30 seconds or left unlocked for 2 minutes.",
"complexity": "medium"
}
},
{
"id": "frontdoor_camera_motion_snapshots",
"result": {
"structured": "TRIGGER: When front door motion [binary_sensor.front_door_motion] changes to on. CONDITIONS: None. ACTIONS: While front door motion [binary_sensor.front_door_motion] remains on, repeat the following sequence: 1. Press front door snapshot button [button.front_door_take_snapshot]. 2. Wait 3 seconds. 3. Update front door snapshot camera [camera.front_door_snapshot]. 4. Take a snapshot from front door snapshot camera [camera.front_door_snapshot] and save it to /data/ring-snapshots/ with a timestamp and loop index. 5. Wait 15 seconds.",
"natural_language": {
"trigger": "When motion is detected at the front door, indicated by the front door motion [binary_sensor.front_door_motion] sensor turning on.",
"conditions": "There are no additional conditions that must be met.",
"action": "As long as motion continues to be detected, the automation repeatedly performs a sequence of actions: it presses the front door snapshot button [button.front_door_take_snapshot], waits three seconds, updates the front door snapshot camera [camera.front_door_snapshot], takes a snapshot from that camera and saves it with a timestamp and sequence number, and then waits fifteen seconds before starting the sequence again."
},
"human_like": "Takes repeated snapshots from the front door camera for as long as motion is detected, creating a time-stamped series of images.",
"complexity": "medium"
}
},
{
"id": "garden_herb_irrigation",
"result": {
"structured": "TRIGGER: When sunrise occurs with a 1-hour offset. CONDITIONS: (Trigger is morning_watering) AND (precipitation sensor [sensor.openmeteo_precipitation] reports a value NOT greater than 0) AND (garden irrigation automation block status [sensor.woox_irrigation_garden_automation_block_status] is 'allowed'). ACTIONS: Execute Start Herb Watering [script.start_herb_watering] with reason 'Morning watering after sunrise'.",
"natural_language": {
"trigger": "One hour after sunrise.",
"conditions": "The trigger must be the scheduled morning watering event. It must not be raining, meaning the precipitation sensor [sensor.openmeteo_precipitation] must report a value of 0 or less. The garden's automation system must also be in an 'allowed' state, as indicated by the garden irrigation automation block status [sensor.woox_irrigation_garden_automation_block_status].",
"action": "Starts the herb watering routine by calling the Start Herb Watering [script.start_herb_watering] script, logging the reason as 'Morning watering after sunrise'."
},
"human_like": "Waters the garden herbs in the morning if it's not raining and the system is not blocked.",
"complexity": "medium"
}
},
{
"id": "garden_herb_irrigation_auto_off",
"result": {
"structured": "TRIGGER: Every minute (time pattern). CONDITIONS: garden irrigation switch [switch.woox_irrigation_garden] is on AND garden irrigation lock status [sensor.woox_irrigation_garden_lock_status] is not 'locked'. ACTIONS: If garden irrigation lock status [sensor.woox_irrigation_garden_lock_status] is 'unlocked', then turn off garden irrigation switch [switch.woox_irrigation_garden] and log an info message. Otherwise, if garden irrigation lock status [sensor.woox_irrigation_garden_lock_status] is not 'locked' and not 'unlocked' and its state has remained unchanged for more than 180 seconds, then turn off garden irrigation switch [switch.woox_irrigation_garden] and log a warning message.",
"natural_language": {
"trigger": "The automation runs every minute.",
"conditions": "The garden irrigation switch [switch.woox_irrigation_garden] must be on, and the garden irrigation lock status [sensor.woox_irrigation_garden_lock_status] must not be in the 'locked' state.",
"action": "If the lock status is 'unlocked', the system turns off the irrigation switch and logs an informational message about normal lock expiration. If the lock status is neither 'locked' nor 'unlocked' and has been in that state for over three minutes, the system turns off the irrigation switch and logs a warning message about an emergency shutdown due to an unknown lock state."
},
"human_like": "Automatically turns off the garden irrigation if its control lock expires or enters a malfunctioning state, ensuring the system doesn't run unsupervised.",
"complexity": "medium"
}
},
{
"id": "garden_herb_irrigation_manual_control",
"result": {
"structured": "TRIGGER: When garden irrigation switch [switch.woox_irrigation_garden] turns on OR When garden irrigation switch [switch.woox_irrigation_garden] turns off. CONDITIONS: (The state change is a valid transition from on to off or off to on) AND (The change was initiated by a manual user action, a physical button, an external control, or another automation not related to garden herb irrigation). ACTIONS: Log the state change details. Then, if triggered by turning on: release any existing lock for woox_irrigation_garden, create a new 15-minute lock owned by the user, increment daily herb watering counter [counter.daily_herb_watering_count], and log the start. If triggered by turning off: release any existing lock for woox_irrigation_garden, create a new 1-hour lock owned by the user, and log the stop.",
"natural_language": {
"trigger": "When the garden irrigation switch [switch.woox_irrigation_garden] is turned on or off.",
"conditions": "The switch must have changed from a valid previous state (on or off) to the opposite state. Additionally, the change must have been initiated by a manual user action via the UI or app, a physical button press, an external control, or another automation that is not one of the specific garden herb irrigation automations.",
"action": "First, the automation logs detailed information about the state change. Then, depending on the trigger: if the switch was turned on, it releases any existing lock on the irrigation system, creates a new 15-minute lock owned by the user who initiated the action, increments the daily herb watering counter [counter.daily_herb_watering_count], and logs that manual irrigation has started. If the switch was turned off, it releases any existing lock, creates a new 1-hour lock owned by the user, and logs that manual irrigation has been stopped, which will block automated irrigation for one hour."
},
"human_like": "Handles manual control of the garden herb irrigation, managing locks and logging when users turn the system on or off, while preventing interference from other automated irrigation processes.",
"complexity": "medium"
}
},
{
"id": "garden_tomato_irrigation",
"result": {
"structured": "TRIGGER: When sunrise occurs with a 30-minute offset. CONDITIONS: (precipitation sensor [sensor.openmeteo_precipitation] reports 0 mm of precipitation) AND (garden irrigation 2 automation block status [sensor.woox_irrigation_garden2_automation_block_status] is 'allowed'). ACTIONS: Execute Start Tomato Watering [script.start_tomato_watering] with reason 'Morning watering after sunrise'.",
"natural_language": {
"trigger": "The automation triggers 30 minutes after sunrise.",
"conditions": "It requires that there is no precipitation reported by the precipitation sensor [sensor.openmeteo_precipitation] and that the garden irrigation 2 automation block status [sensor.woox_irrigation_garden2_automation_block_status] is set to 'allowed'.",
"action": "It starts the tomato watering routine by executing the Start Tomato Watering [script.start_tomato_watering] script, logging the reason as 'Morning watering after sunrise'."
},
"human_like": "Waters the garden tomatoes in the morning after sunrise, but only if it's not raining and the irrigation system is not blocked.",
"complexity": "medium"
}
},
{
"id": "garden_tomato_irrigation_auto_off",
"result": {
"structured": "TRIGGER: Every minute (time pattern). CONDITIONS: garden irrigation 2 switch [switch.woox_irrigation_garden2] is on AND garden irrigation 2 lock status [sensor.woox_irrigation_garden2_lock_status] is not 'locked'. ACTIONS: Choose based on condition: IF garden irrigation 2 lock status [sensor.woox_irrigation_garden2_lock_status] is 'unlocked' THEN turn off garden irrigation 2 switch [switch.woox_irrigation_garden2] AND log an info message. ELSE IF garden irrigation 2 lock status [sensor.woox_irrigation_garden2_lock_status] is not 'locked' AND not 'unlocked' AND its state has remained unchanged for more than 180 seconds THEN turn off garden irrigation 2 switch [switch.woox_irrigation_garden2] AND log a warning message.",
"natural_language": {
"trigger": "The automation runs every minute.",
"conditions": "The garden irrigation 2 switch [switch.woox_irrigation_garden2] must be on, and the garden irrigation 2 lock status [sensor.woox_irrigation_garden2_lock_status] must not be in the 'locked' state.",
"action": "If the lock status is 'unlocked', the system turns off the irrigation switch and logs an informational message about normal lock expiration. If the lock status is neither 'locked' nor 'unlocked' (an unknown state) and has remained in that state for more than three minutes, the system turns off the irrigation switch and logs a warning message about an emergency shutdown due to a prolonged unknown lock state."
},
"human_like": "Automatically turns off the garden irrigation system if its lock expires normally or if it gets stuck in an unknown malfunction state for too long.",
"complexity": "medium"
}
},
{
"id": "garden_tomato_irrigation_manual_control",
"result": {
"structured": "TRIGGER: When garden irrigation 2 switch [switch.woox_irrigation_garden2] turns on OR When garden irrigation 2 switch [switch.woox_irrigation_garden2] turns off. CONDITIONS: (The state change is a valid transition from on to off or off to on) AND (The change was initiated by a manual user action via UI/app, a physical button, an external control, or another automation not related to garden tomato irrigation). ACTIONS: Log the state change details. IF the trigger was manual_on THEN release any existing lock for woox_irrigation_garden2, create a new lock owned by the user for 30 minutes, increment daily tomato watering counter [counter.daily_tomato_watering_count], and log that manual irrigation started. IF the trigger was manual_off THEN release any existing lock for woox_irrigation_garden2, create a new lock owned by the user for 1 hour, and log that manual irrigation stopped and automation is blocked for 1 hour.",
"natural_language": {
"trigger": "When the garden irrigation 2 switch [switch.woox_irrigation_garden2] is turned on or off.",
"conditions": "The state change must be a valid transition between 'on' and 'off' states. Additionally, the change must be caused by a manual user action from the Home Assistant UI or app, a physical button press, an external control, or another automation that is not one of the specific garden tomato irrigation automations. This ensures the automation only responds to intentional manual overrides.",
"action": "First, the automation logs detailed information about the state change, including the context. Then, depending on the direction of the change: If the switch was turned on, it releases any existing lock on the irrigation system, creates a new 30-minute lock owned by the user who triggered it, increments the daily tomato watering counter [counter.daily_tomato_watering_count], and logs the start of manual irrigation. If the switch was turned off, it releases any existing lock, creates a new 1-hour lock to block automated irrigation, and logs that manual irrigation has stopped."
},
"human_like": "Handles manual control of the garden tomato irrigation, allowing users to override automated schedules and temporarily block them while tracking watering activity.",
"complexity": "high"
}
},
{
"id": "kitchen_nanoleaf",
"result": {
"structured": "TRIGGER: When kitchen motion occupancy [binary_sensor.mijia_motion_kitchen_occupancy] detects motion (on) OR When kitchen motion occupancy [binary_sensor.mijia_motion_kitchen_occupancy] stops detecting motion (off) for 5 minutes OR When motion downstairs group [group.motion_downstairs] is off for 20 minutes. CONDITIONS: None. ACTIONS: Choose one sequence based on conditions: 1. IF (kitchen motion occupancy [binary_sensor.mijia_motion_kitchen_occupancy] is on) AND (time is between 07:00:00 and 00:00:00) AND (kitchen skylight [light.skylight_8a30] is off OR its brightness is below 255) THEN turn on kitchen skylight [light.skylight_8a30] with brightness 255 AND log the action. 2. IF (kitchen motion occupancy [binary_sensor.mijia_motion_kitchen_occupancy] is on) AND (time is between 00:00:00 and 07:00:00) AND (kitchen skylight [light.skylight_8a30] is off OR its brightness is above 51) THEN turn on kitchen skylight [light.skylight_8a30] with brightness 51 AND log the action. 3. IF (kitchen motion occupancy [binary_sensor.mijia_motion_kitchen_occupancy] is off for 5 minutes) AND (kitchen skylight [light.skylight_8a30] is on) AND (kitchen skylight [light.skylight_8a30] brightness is above 51) THEN turn on kitchen skylight [light.skylight_8a30] with brightness 51 AND log the action. 4. IF (motion downstairs group [group.motion_downstairs] is off for 15 minutes) AND (kitchen skylight [light.skylight_8a30] is on) THEN turn off kitchen skylight [light.skylight_8a30] AND log the action.",
"natural_language": {
"trigger": "The automation can be triggered in three ways: when motion is first detected by the kitchen motion occupancy [binary_sensor.mijia_motion_kitchen_occupancy], when motion has been absent in the kitchen for five minutes, or when there has been no motion detected anywhere downstairs for twenty minutes.",
"conditions": "There are no global conditions that apply to all triggers; the conditions are evaluated within the action choices.",
"action": "Depending on the trigger and the current state, the automation will perform one of four actions. If motion is detected during the day (between 7 AM and midnight) and the kitchen skylight [light.skylight_8a30] is off or dim, it will turn the light on to full brightness. If motion is detected at night (midnight to 7 AM) and the light is off or brighter than a low level, it will turn the light on to a low brightness. If motion has been absent in the kitchen for five minutes and the light is on and brighter than the low level, it will dim the light to the low brightness. Finally, if there has been no motion anywhere downstairs for fifteen minutes and the light is on, it will turn the light off. All actions are logged to the system log."
},
"human_like": "Automatically controls the kitchen skylight based on motion, using different brightness levels for day and night, and eventually turning it off when the whole downstairs is empty.",
"complexity": "medium"
}
},
{
"id": "laundryroom_light",
"result": {
"structured": "TRIGGER: When laundryroom motion occupancy [binary_sensor.mijia_motion_laundryroom_occupancy] detects motion (on) OR When laundryroom motion occupancy [binary_sensor.mijia_motion_laundryroom_occupancy] stops detecting motion (off) AND remains off for 5 minutes. CONDITIONS: None. ACTIONS: Choose based on conditions. IF (laundryroom motion occupancy [binary_sensor.mijia_motion_laundryroom_occupancy] is on) AND (laundryroom light switch [switch.shelly_1gen4_light_laundryroom] is off) THEN turn on laundryroom light switch [switch.shelly_1gen4_light_laundryroom] AND log info message. ELSE IF (laundryroom motion occupancy [binary_sensor.mijia_motion_laundryroom_occupancy] is off AND remains off for 5 minutes) AND (laundryroom light switch [switch.shelly_1gen4_light_laundryroom] is on) THEN turn off laundryroom light switch [switch.shelly_1gen4_light_laundryroom] AND log info message.",
"natural_language": {
"trigger": "When motion is first detected by the laundryroom motion occupancy [binary_sensor.mijia_motion_laundryroom_occupancy], or when motion has not been detected for a continuous period of five minutes.",
"conditions": "There are no global conditions for this automation.",
"action": "The automation will perform one of two sequences. If motion is detected and the laundryroom light switch [switch.shelly_1gen4_light_laundryroom] is off, it will turn the light on and log a message. If motion has been absent for five minutes and the laundryroom light switch [switch.shelly_1gen4_light_laundryroom] is on, it will turn the light off and log a message."
},
"human_like": "Automatically turns the laundry room light on when motion is detected and turns it off after five minutes of no motion.",
"complexity": "medium"
}
},
{
"id": "laundryroom_light_switch",
"result": {
"structured": "TRIGGER: When laundryroom wall switch action [sensor.senic_wall_switch_laundryroom_action] changes to press_1 OR press_2 OR press_3. CONDITIONS: None. ACTIONS: Choose based on trigger and state: IF (laundryroom wall switch action [sensor.senic_wall_switch_laundryroom_action] is press_1 AND laundryroom light switch [switch.shelly_1gen4_light_laundryroom] is off) THEN turn on laundryroom light switch [switch.shelly_1gen4_light_laundryroom] AND log info message. ELSE IF (laundryroom wall switch action [sensor.senic_wall_switch_laundryroom_action] is press_2 AND laundryroom light switch [switch.shelly_1gen4_light_laundryroom] is on) THEN turn off laundryroom light switch [switch.shelly_1gen4_light_laundryroom] AND log info message. ELSE IF (laundryroom wall switch action [sensor.senic_wall_switch_laundryroom_action] is press_3 AND laundryroom ventilation switch [switch.shelly_1gen4_ventilation_laundryroom] is off) THEN turn on laundryroom ventilation switch [switch.shelly_1gen4_ventilation_laundryroom] AND log info message.",
"natural_language": {
"trigger": "When the laundryroom wall switch action [sensor.senic_wall_switch_laundryroom_action] reports a button press, specifically press_1, press_2, or press_3.",
"conditions": "There are no additional conditions that must be met.",
"action": "Depending on which button is pressed and the current state of the devices: If press_1 is pressed and the laundryroom light switch [switch.shelly_1gen4_light_laundryroom] is off, the light is turned on and a log entry is created. If press_2 is pressed and the laundryroom light switch [switch.shelly_1gen4_light_laundryroom] is on, the light is turned off and a log entry is created. If press_3 is pressed and the laundryroom ventilation switch [switch.shelly_1gen4_ventilation_laundryroom] is off, the ventilation is turned on and a log entry is created."
},
"human_like": "Controls the laundry room light and ventilation based on button presses from the wall switch, turning devices on or off as needed.",
"complexity": "medium"
}
},
{
"id": "livingroom_nanoleaf_elements",
"result": {
"structured": "TRIGGER: When motion downstairs group [group.motion_downstairs] changes from off to on OR When motion downstairs group [group.motion_downstairs] changes to off AND remains off for 15 minutes. ACTIONS: (IF nanoleaf elements [light.elements_d689] is off AND motion downstairs group [group.motion_downstairs] is on THEN Turn on nanoleaf elements [light.elements_d689] AND Log info message) OR (IF nanoleaf elements [light.elements_d689] is on AND motion downstairs group [group.motion_downstairs] is off AND the current time minus the last change time of motion downstairs group [group.motion_downstairs] is greater than or equal to 900 seconds THEN Turn off nanoleaf lines [light.lines_5c30] AND Log info message).",
"natural_language": {
"trigger": "When motion is first detected downstairs, indicated by the motion downstairs group [group.motion_downstairs] turning on, or when motion has been absent downstairs for a continuous period of 15 minutes, indicated by the group being off for that duration.",
"conditions": "The actions are conditional. To turn the light on, the nanoleaf elements [light.elements_d689] must be off and motion must be present. To turn the light off, the nanoleaf elements [light.elements_d689] must be on, motion must be absent, and at least 15 minutes (900 seconds) must have passed since the motion group last changed to 'off'.",
"action": "If the conditions are met, the automation will either turn on the nanoleaf elements [light.elements_d689] and log the action, or it will turn off the nanoleaf lines [light.lines_5c30] and log the action."
},
"human_like": "Automatically turns on the Nanoleaf Elements light when motion is detected downstairs, and turns off the Nanoleaf Lines light after motion has been absent for 15 minutes.",
"complexity": "medium"
}
},
{
"id": "office_light",
"result": {
"structured": "TRIGGER: When motion office group [group.motion_office] becomes on OR When motion office group [group.motion_office] remains off for 10 minutes OR When motion office group [group.motion_office] remains off for 15 minutes OR When motion office group [group.motion_office] remains off for 20 minutes OR At 06:00:01 OR At 08:00:01 OR At 12:00:01 OR At 14:00:01 OR At 21:00:01 OR At 23:00:01 OR At 00:00:01. CONDITIONS: None. ACTIONS: Choose based on conditions: 1. If time is between 23:00:00 and 06:00:00 AND office light automation block status [sensor.office_light_automation_block_status] is 'allowed' AND motion office group [group.motion_office] is on AND (office light [light.office] is off OR office light [light.office] brightness is not 45) THEN turn on office night scene [scene.office_night] and log. 2. If time is between 06:00:00 and 08:00:00 AND office light automation block status [sensor.office_light_automation_block_status] is 'allowed' AND motion office group [group.motion_office] is on AND (office light [light.office] is off OR office light [light.office] brightness is not 220) THEN turn on office reading scene [scene.office_reading] and log. 3. If time is between 08:00:00 and 12:00:00 OR between 14:00:00 and 21:00:00 AND office light automation block status [sensor.office_light_automation_block_status] is 'allowed' AND motion office group [group.motion_office] is on AND (office light [light.office] is off OR office light [light.office] brightness is not 235) THEN turn on office working scene [scene.office_working] and log. 4. If time is between 12:00:00 and 14:00:00 AND office light automation block status [sensor.office_light_automation_block_status] is 'allowed' AND motion office group [group.motion_office] is on AND (office light [light.office] is off OR office light [light.office] brightness is not 255) THEN turn on office concentration scene [scene.office_concentration] and log. 5. If time is between 21:00:00 and 23:00:00 AND office light automation block status [sensor.office_light_automation_block_status] is 'allowed' AND motion office group [group.motion_office] is on AND (office light [light.office] is off OR office light [light.office] brightness is not 170) THEN turn on office evening scene [scene.office_evening] and log. 6. If motion office group [group.motion_office] remains off for 10 minutes AND time is between 00:00:00 and 08:00:00 AND office light [light.office] is on THEN turn off office light [light.office] and log. 7. If motion office group [group.motion_office] remains off for 15 minutes AND time is between 08:00:00 and 00:00:00 AND office light [light.office] is on THEN turn on office relax scene [scene.office_relax] and log. 8. If motion office group [group.motion_office] remains off for 20 minutes AND time is between 08:00:00 and 00:00:00 AND office light [light.office] is on THEN turn off office light [light.office] and log.",
"natural_language": {
"trigger": "The automation can be triggered by several events: when motion is detected in the office (motion office group [group.motion_office] turns on), when motion has been absent for 10, 15, or 20 minutes, or at specific times throughout the day (6:00:01 AM, 8:00:01 AM, 12:00:01 PM, 2:00:01 PM, 9:00:01 PM, 11:00:01 PM, and 12:00:01 AM).",
"conditions": "There are no global conditions for the automation. The actions are determined by a set of conditional choices based on the time of day, the status of the office light automation block status [sensor.office_light_automation_block_status], the motion state, and the current state and brightness of the office light [light.office].",
"action": "Depending on the time of day and other conditions, the automation will either activate a specific lighting scene or turn the lights off. At night (11 PM to 6 AM), it activates the office night scene [scene.office_night] if motion is detected and the light is off or not at the correct brightness. In the early morning (6 AM to 8 AM), it activates the office reading scene [scene.office_reading]. During working hours (8 AM to noon and 2 PM to 9 PM), it activates the office working scene [scene.office_working]. At lunchtime (noon to 2 PM), it activates the office concentration scene [scene.office_concentration]. In the evening (9 PM to 11 PM), it activates the office evening scene [scene.office_evening]. All scene activations require that the automation is allowed, motion is detected, and the light is either off or not at the target brightness for that time period. If motion is absent for 10 minutes between midnight and 8 AM, the office light [light.office] is turned off. If motion is absent for 15 minutes between 8 AM and midnight, the office relax scene [scene.office_relax] is activated. If motion is absent for 20 minutes between 8 AM and midnight, the office light [light.office] is turned off. Each action is accompanied by a log entry."
},
"human_like": "This automation manages the office lighting based on motion and time of day, turning on appropriate scenes when someone is present and dimming or turning off the lights after periods of inactivity.",
"complexity": "high"
}
},
{
"id": "office_light_manual_control",
"result": {
"structured": "TRIGGER: When a service call activates scene.office_reading OR scene.office_working OR scene.office_concentration OR scene.office_evening OR scene.office_night OR scene.office_relax OR When office light [light.office] turns on OR When office light [light.office] turns off. CONDITIONS: The trigger must be a manual control, defined as: (Trigger is a scene change AND (a user_id is present OR the context.id is None OR (context.id exists AND does NOT contain 'office_light'))) OR (Trigger is a light state change AND the previous state was NOT 'unknown' or 'unavailable' AND (a user_id is present OR the context.id is None OR (context.id exists AND does NOT contain 'office_light'))). ACTIONS: Log the trigger details, then call rest_command.release_lock for 'office_light', then call rest_command.create_lock for 'office_light' with an owner derived from the user_id and a duration of 1 hour, then log a confirmation message.",
"natural_language": {
"trigger": "The automation triggers when any of the six office scenes (office reading scene [scene.office_reading], office working scene [scene.office_working], office concentration scene [scene.office_concentration], office evening scene [scene.office_evening], office night scene [scene.office_night], or office relax scene [scene.office_relax]) is activated via a service call, or when the office light [light.office] is turned on or off.",
"conditions": "The action only proceeds if the change was a manual control. This means it was initiated by a user (via UI or app), a physical button, or an external control. It specifically excludes changes made by other automations that have 'office_light' in their context ID. For light state changes, it also excludes transitions from an 'unknown' or 'unavailable' state, which typically happen on system startup or reconnection.",
"action": "First, the automation logs detailed information about the trigger event. It then releases any existing lock named 'office_light', and immediately creates a new lock with the same name. This lock is owned by the user who initiated the change (or a generic identifier if from a button) and lasts for one hour. Finally, it logs a summary message stating that manual control was detected and automation is blocked."
},
"human_like": "Detects when someone manually changes the office light or scene, and then prevents other automations from controlling the office light for the next hour.",
"complexity": "high"
}
},
{
"id": "reset_daily_herb_watering_counter",
"result": {
"structured": "TRIGGER: At 00:00:00 (midnight). CONDITIONS: None. ACTIONS: Reset daily herb watering counter [counter.daily_herb_watering_count] AND Write an info log message 'Reset daily herb watering counter' to the system log.",
"natural_language": {
"trigger": "Every day at midnight.",
"conditions": "There are no conditions for this automation.",
"action": "Resets the daily herb watering counter [counter.daily_herb_watering_count] to zero and logs an informational message to the system."
},
"human_like": "Resets the daily herb watering counter at midnight every day.",
"complexity": "low"
}
},
{
"id": "reset_daily_tomato_watering_counter",
"result": {
"structured": "TRIGGER: At 00:00:00 (midnight). CONDITIONS: None. ACTIONS: Reset daily tomato watering counter [counter.daily_tomato_watering_count] AND write an info-level log message to the system log.",
"natural_language": {
"trigger": "Every day at midnight.",
"conditions": "There are no conditions that must be met.",
"action": "Resets the daily tomato watering counter [counter.daily_tomato_watering_count] to zero and logs an informational message to the system log."
},
"human_like": "Resets the tomato watering counter back to zero every night at midnight.",
"complexity": "low"
}
},
{
"id": "update_config_gitlab_push_event",
"result": {
"structured": "TRIGGER: When a webhook with the specified secret webhook_id receives a POST or PUT request locally. CONDITIONS: None. ACTIONS: Execute the shell command update_config [shell_command.update_config].",
"natural_language": {
"trigger": "When a local webhook request (using POST or PUT methods) is received for the specific webhook identifier.",
"conditions": "There are no conditions that must be met.",
"action": "Runs the shell command named update_config."
},
"human_like": "Automatically updates the Home Assistant configuration when a specific GitLab webhook event is triggered.",
"complexity": "low"
}
},
{
"id": "ventilation_bathroom_auto_off",
"result": {
"structured": "TRIGGER: When bathroom climate humidity [sensor.aqara_climate_bathroom_humidity] drops below 58% OR every 5 minutes. CONDITIONS: (bathroom ventilation switch [switch.shelly_1gen4_ventilation_bathroom] is on) AND (bathroom climate humidity [sensor.aqara_climate_bathroom_humidity] is less than or equal to 58%) AND (bathroom ventilation switch [switch.shelly_1gen4_ventilation_bathroom] has been on for at least 900 seconds). ACTIONS: Turn off bathroom ventilation switch [switch.shelly_1gen4_ventilation_bathroom] AND log an info message 'Ventilation turned OFF - humidity normalized'.",
"natural_language": {
"trigger": "The automation triggers either when the bathroom climate humidity [sensor.aqara_climate_bathroom_humidity] falls below 58%, or every five minutes on a repeating schedule.",
"conditions": "The automation only proceeds if the bathroom ventilation switch [switch.shelly_1gen4_ventilation_bathroom] is currently on, the bathroom climate humidity [sensor.aqara_climate_bathroom_humidity] is at or below 58%, and the ventilation has been running continuously for at least 15 minutes.",
"action": "It turns off the bathroom ventilation switch [switch.shelly_1gen4_ventilation_bathroom] and writes an informational log entry stating that the ventilation was turned off because humidity normalized."
},
"human_like": "Automatically switches off the bathroom ventilation fan after it has been running for at least 15 minutes and the humidity drops to a normal level.",
"complexity": "medium"
}
},
{
"id": "ventilation_bathroom_auto_on",
"result": {
"structured": "TRIGGER: Every 5 minutes. CONDITIONS: (bathroom ventilation switch [switch.shelly_1gen4_ventilation_bathroom] is NOT on) AND (bathroom climate humidity [sensor.aqara_climate_bathroom_humidity] is greater than 58%). ACTIONS: Turn on bathroom ventilation switch [switch.shelly_1gen4_ventilation_bathroom] AND write an info log entry with the message 'Ventilation turned ON - humidity over threshold'.",
"natural_language": {
"trigger": "The automation runs every 5 minutes.",
"conditions": "The bathroom ventilation switch [switch.shelly_1gen4_ventilation_bathroom] must be off, and the humidity level reported by the bathroom climate humidity [sensor.aqara_climate_bathroom_humidity] must be above 58%.",
"action": "Turns on the bathroom ventilation switch [switch.shelly_1gen4_ventilation_bathroom] and logs an informational message stating that ventilation was turned on due to high humidity."
},
"human_like": "Automatically turns on the bathroom ventilation fan when the humidity gets too high, checking every 5 minutes.",
"complexity": "low"
}
},
{
"id": "ventilation_laundryroom_auto_off",
"result": {
"structured": "TRIGGER: When laundryroom climate humidity [sensor.aqara_climate_laundryroom_humidity] drops below 58% OR every 5 minutes. CONDITIONS: laundryroom ventilation switch [switch.shelly_1gen4_ventilation_laundryroom] is on AND laundryroom climate humidity [sensor.aqara_climate_laundryroom_humidity] is 58% or lower AND laundryroom ventilation switch [switch.shelly_1gen4_ventilation_laundryroom] has been on for at least 900 seconds (15 minutes). ACTIONS: Turn off laundryroom ventilation switch [switch.shelly_1gen4_ventilation_laundryroom] AND log an info message 'Ventilation turned OFF - humidity normalized'.",
"natural_language": {
"trigger": "The automation triggers when the laundryroom climate humidity [sensor.aqara_climate_laundryroom_humidity] falls below 58%, or every five minutes.",
"conditions": "The automation checks that the laundryroom ventilation switch [switch.shelly_1gen4_ventilation_laundryroom] is currently on, the laundryroom climate humidity [sensor.aqara_climate_laundryroom_humidity] is at or below 58%, and the ventilation switch has been in the 'on' state for at least 15 minutes.",
"action": "It turns off the laundryroom ventilation switch [switch.shelly_1gen4_ventilation_laundryroom] and writes an informational log entry stating 'Ventilation turned OFF - humidity normalized'."
},
"human_like": "Automatically turns off the laundryroom ventilation when the humidity has been low enough for at least 15 minutes, ensuring it runs for a minimum duration.",
"complexity": "medium"
}
},
{
"id": "ventilation_laundryroom_auto_on",
"result": {
"structured": "TRIGGER: Every 5 minutes (time pattern). CONDITIONS: laundryroom ventilation switch [switch.shelly_1gen4_ventilation_laundryroom] is not on AND laundryroom climate humidity [sensor.aqara_climate_laundryroom_humidity] is greater than 58%. ACTIONS: Turn on laundryroom ventilation switch [switch.shelly_1gen4_ventilation_laundryroom] AND log an informational message.",
"natural_language": {
"trigger": "The automation runs every 5 minutes.",
"conditions": "The laundryroom ventilation switch [switch.shelly_1gen4_ventilation_laundryroom] must be off, and the laundryroom climate humidity [sensor.aqara_climate_laundryroom_humidity] must be above 58%.",
"action": "Turns on the laundryroom ventilation switch [switch.shelly_1gen4_ventilation_laundryroom] and writes an informational log entry stating the ventilation was turned on due to high humidity."
},
"human_like": "Automatically turns on the laundryroom ventilation every 5 minutes if the humidity is too high and the fan is off.",
"complexity": "low"
}
}
]