AutomationDataset/gribber/automation-descriptions.json

1445 lines
198 KiB
JSON

[
{
"id": "7267672f-0076-4d66-aa19-637bbb23275a",
"result": {
"structured": "TRIGGER: When bedroom AC water leak [binary_sensor.water_bedroom_ac_water_leak] changes from off to on. CONDITIONS: None. ACTIONS: Turn off air conditioner [climate.air_conditioner] AND send a notification to castle_log with title 'AC Sovrum' and message 'Slog av AC pga full vattentank'.",
"natural_language": {
"trigger": "When the bedroom AC water leak sensor [binary_sensor.water_bedroom_ac_water_leak] detects a leak, changing its state from off to on.",
"conditions": "There are no conditions that must be met.",
"action": "Turns off the bedroom air conditioner [climate.air_conditioner] and sends a notification to the 'castle_log' channel with the title 'AC Sovrum' and the message 'Slog av AC pga full vattentank' (which translates to 'Turned off AC due to full water tank')."
},
"human_like": "Automatically turns off the bedroom air conditioner and sends an alert when a water leak is detected from its tank.",
"complexity": "low"
}
},
{
"id": "1b84349e-0c7c-4984-8561-6b3e7a4c80a1",
"result": {
"structured": "TRIGGER: When the time reaches the value set in input_datetime.ac_turn_on. CONDITIONS: house mode away [input_boolean.house_mode_away] is off AND house mode summer [input_boolean.house_mode_summer] is on AND bedroom AC water leak [binary_sensor.water_bedroom_ac_water_leak] is off AND bedroom temperature [sensor.bedroom_temperature] is above 21. ACTIONS: Turn on air conditioner [climate.air_conditioner] and send a notification to castle_log with title 'AC Sovrum' and message 'Slog på AC:n'.",
"natural_language": {
"trigger": "At the scheduled time set by the input_datetime.ac_turn_on.",
"conditions": "The house is not in away mode, summer mode is active, there is no water leak detected from the bedroom AC unit, and the bedroom temperature is above 21 degrees.",
"action": "Turns on the bedroom air conditioner and sends a notification to the log stating the AC has been turned on."
},
"human_like": "Automatically turns on the bedroom air conditioner at a scheduled time if it's summer, the house is occupied, there's no leak, and the room is too warm.",
"complexity": "low"
}
},
{
"id": "33837bc5-0c32-42a0-be69-cd35810213f9",
"result": {
"structured": "TRIGGER: When bedroom AC plug [switch.bedroom_ac_plug] turns off. CONDITIONS: None. ACTIONS: Send a notification to castle [notify.castle] with title 'Plug AC Sovrum' and message 'Strömmen stängdes av till AC:n'.",
"natural_language": {
"trigger": "When the bedroom AC plug [switch.bedroom_ac_plug] is turned off.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a notification to the 'castle' notification service with the title 'Plug AC Sovrum' and the message 'Strömmen stängdes av till AC:n' (The power was turned off to the AC)."
},
"human_like": "Sends a notification when the bedroom air conditioning plug is turned off.",
"complexity": "low"
}
},
{
"id": "8d47c436-0dd0-4db2-a25c-9c020717e11a",
"result": {
"structured": "TRIGGER: When an automation reload event occurs OR When house mode bright inside [input_boolean.house_mode_bright_inside] changes state OR When house mode bright hallway [input_boolean.house_mode_bright_hallway] changes state OR When the current time matches time goodmorning [input_datetime.time_goodmorning] OR When the current time matches time goodnight [input_datetime.time_goodnight]. CONDITIONS: None explicitly defined. ACTIONS: Compute two sets of light labels: labels_on and labels_off. labels_on is determined by: IF (current time is after time goodmorning AND before time goodnight) THEN IF house mode bright inside [input_boolean.house_mode_bright_inside] is off, add 'ambience' and 'ambience_night' labels. IF house mode bright hallway [input_boolean.house_mode_bright_hallway] is off, add 'ambience_extra' label. ELSE (outside the time window) IF house mode bright inside [input_boolean.house_mode_bright_inside] is off, add 'ambience_night' label. labels_off is the set difference between all labels ['ambience', 'ambience_extra', 'ambience_night'] and labels_on. Then, for each label set, turn lights on or off accordingly: For labels_on, set to_state='on' and from_state='off'. For labels_off, set to_state='off' and from_state='on'. For each set, find all light entities that: 1. Belong to the specified labels. 2. Are located in areas on floors 'nere' or 'uppe'. 3. Have their corresponding No Auto Mode [input_boolean.noauto_<area>] input_boolean set to 'unknown' or 'off'. 4. Are currently in the from_state. Turn those lights to the to_state with a 5-second transition.",
"natural_language": {
"trigger": "This automation runs when Home Assistant reloads automations, when either the 'house mode bright inside' [input_boolean.house_mode_bright_inside] or 'house mode bright hallway' [input_boolean.house_mode_bright_hallway] settings change, or at the specific times set by 'time goodmorning' [input_datetime.time_goodmorning] and 'time goodnight' [input_datetime.time_goodnight].",
"conditions": "There are no explicit conditions that must be met for the actions to run; the automation executes based solely on the triggers.",
"action": "The automation calculates which groups of lights, identified by labels ('ambience', 'ambience_extra', 'ambience_night'), should be turned on or off based on the time of day and the status of the 'bright inside' and 'bright hallway' modes. During the day (between the good morning and good night times), if 'bright inside' is off, it activates the 'ambience' and 'ambience_night' labeled lights. If 'bright hallway' is off, it also activates 'ambience_extra' labeled lights. Outside of the day window, only the 'ambience_night' labeled lights are activated if 'bright inside' is off. Lights not included in the 'on' list are turned off. The automation then finds all light entities belonging to these labels across two floors ('nere' and 'uppe'), but only in areas where an automatic control override (a 'No Auto Mode' switch) is not enabled. It turns the identified lights on or off with a gentle 5-second transition."
},
"human_like": "This automation manages the house's ambient lighting based on the time of day and user preferences for brightness, ensuring the right lights are on or off in different areas.",
"complexity": "high"
}
},
{
"id": "b3c00dc3-b327-498e-9076-8ab6ed4fb3b7",
"result": {
"structured": "TRIGGER: When am430x status id [sensor.am430x_status_id] changes to state '7' AND the previous state was NOT 'unknown', NOT 'unavailable', AND NOT '0'. CONDITIONS: None. ACTIONS: Wait 1 second, then send a notification to castle_log with title 'Annie: [current state of am430x status [sensor.am430x_status]]' and message containing the value of annie last substatus [input_text.annie_last_substatus] if am430x substatus [sensor.am430x_substatus] is an empty string, otherwise the value of am430x substatus [sensor.am430x_substatus]. The notification includes location data with latitude and longitude from device_tracker.am430x_gps.",
"natural_language": {
"trigger": "When the sensor am430x status id [sensor.am430x_status_id] changes to the value '7', but only if it was not previously in the states 'unknown', 'unavailable', or '0'.",
"conditions": "There are no additional conditions that must be met for the automation to proceed.",
"action": "After a one-second delay, a notification is sent to the castle_log service. The notification's title includes the current status from am430x status [sensor.am430x_status]. The message body contains the value of annie last substatus [input_text.annie_last_substatus] if the am430x substatus [sensor.am430x_substatus] is empty; otherwise, it uses the value of am430x substatus [sensor.am430x_substatus]. The notification also attaches the latitude and longitude coordinates from the device_tracker.am430x_gps."
},
"human_like": "Sends a detailed error log notification for 'Annie' when a specific error status is detected, including location information.",
"complexity": "medium"
}
},
{
"id": "0819562f-9de5-4c95-990f-f44f88e0e381",
"result": {
"structured": "TRIGGER: When am430x substatus [sensor.am430x_substatus] changes state. CONDITIONS: None. ACTIONS: Set the value of annie last substatus [input_text.annie_last_substatus] to the previous state of am430x substatus [sensor.am430x_substatus].",
"natural_language": {
"trigger": "Whenever the am430x substatus [sensor.am430x_substatus] sensor changes its state.",
"conditions": "There are no conditions for this automation.",
"action": "It updates the annie last substatus [input_text.annie_last_substatus] text field with the previous state value of the am430x substatus sensor."
},
"human_like": "Keeps a record of the previous status from the Annie sensor by saving it to a text field whenever the sensor updates.",
"complexity": "low"
}
},
{
"id": "00520d65-1bb5-425b-8743-ee58d488653e",
"result": {
"structured": "TRIGGER: When gw3000a rain state piezo [binary_sensor.gw3000a_rain_state_piezo] changes from off to on. CONDITIONS: None. ACTIONS: Press button am430x eod [button.am430x_eod].",
"natural_language": {
"trigger": "When the gw3000a rain state piezo [binary_sensor.gw3000a_rain_state_piezo] sensor detects the start of rain, changing its state from off to on.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "Presses the button am430x eod [button.am430x_eod]."
},
"human_like": "When it starts raining, this automation presses a button for Annie, likely to trigger a parking or protection action.",
"complexity": "low"
}
},
{
"id": "f248b77a-854a-4099-9485-b816045b90fa",
"result": {
"structured": "TRIGGER: When gw3000a rain state piezo [binary_sensor.gw3000a_rain_state_piezo] changes from on to off AND remains off for 60 minutes. CONDITIONS: None. ACTIONS: Press the am430x auto [button.am430x_auto] button.",
"natural_language": {
"trigger": "When the gw3000a rain state piezo [binary_sensor.gw3000a_rain_state_piezo] stops reporting rain (changes from on to off) and stays dry for a full hour.",
"conditions": "There are no additional conditions that must be met.",
"action": "Press the am430x auto [button.am430x_auto] button."
},
"human_like": "Resumes the mower's automatic schedule after it has been dry for an hour.",
"complexity": "low"
}
},
{
"id": "a3f0c772-b3c1-4a71-a7ca-0e246c1b5df7",
"result": {
"structured": "TRIGGER: At 02:30:00. CONDITIONS: Day is Monday. ACTIONS: Execute service auto_backup.backup_full with data: name set to 'WeeklyBackup: {{ now().strftime(''%a, %Y-%m-%d'') }}', keep_days set to 28, location set to backup.",
"natural_language": {
"trigger": "Every day at 2:30 AM.",
"conditions": "The automation only runs if the current day is Monday.",
"action": "Performs a full system backup using the auto_backup.backup_full service. The backup is named with the current weekday and date, set to be kept for 28 days, and stored in the 'backup' location."
},
"human_like": "Creates a weekly full backup of the system every Monday morning at 2:30 AM.",
"complexity": "low"
}
},
{
"id": "48d8b685-cc44-4b54-bf1b-bbaf4a088413",
"result": {
"structured": "TRIGGER: When an automation or scene is reloaded OR When bedroom remote right action [event.bedroom_remote_right_action] OR bedroom remote left action [event.bedroom_remote_left_action] OR bedroom remote wall action [event.bedroom_remote_wall_action] changes state (not from unavailable) OR When house mode away [input_boolean.house_mode_away] OR house mode sleep [input_boolean.house_mode_sleep] OR house mode bright inside [input_boolean.house_mode_bright_inside] OR bedroom nightlight [input_boolean.bedroom_nightlight] changes state OR When presence bedroom occupancy [binary_sensor.presence_bedroom_occupancy] remains off for 10 minutes OR When the time reaches house reset settings [input_datetime.house_reset_settings] OR house reset settings day [input_datetime.house_reset_settings_day] OR When the time reaches wakeup time [input_datetime.wakeup_time] OR When the time reaches time goodnight [input_datetime.time_goodnight]. ACTIONS: Choose based on trigger: IF trigger is auto_off AND bedroom ceiling [light.bedroom_ceiling] is on THEN turn off bedroom ceiling [light.bedroom_ceiling] with 5 second transition. IF trigger is remote THEN set variable 'action' to the event_type AND choose based on action: IF action is big-press, on, or brightness_up_click THEN IF bedroom ceiling [light.bedroom_ceiling] is off THEN turn on bedroom ceiling [light.bedroom_ceiling] at full brightness ELSE turn off bedroom ceiling [light.bedroom_ceiling]. IF action is small-press, off, or brightness_down_click THEN toggle all lights in the bedroom area with label 'ambience'. IF action is left-press or arrow_left_click THEN toggle bedroom left [light.bedroom_left]. IF action is right-press or arrow_right_click THEN toggle bedroom right [light.bedroom_right]. IF action is small-hold or brightness_move_down THEN turn off all lights in the bedroom area with label 'ambience'. IF trigger is goodnight AND bedroom nightlight [input_boolean.bedroom_nightlight] is off THEN turn off all lights in the bedroom area with label 'ambience' with 5 second transition.",
"natural_language": {
"trigger": "The automation can be triggered by several events: when an automation or scene is reloaded; when any of the bedroom remote action events (bedroom remote right action [event.bedroom_remote_right_action], bedroom remote left action [event.bedroom_remote_left_action], or bedroom remote wall action [event.bedroom_remote_wall_action]) change state, as long as the previous state wasn't 'unavailable'; when any of the house mode or nightlight settings (house mode away [input_boolean.house_mode_away], house mode sleep [input_boolean.house_mode_sleep], house mode bright inside [input_boolean.house_mode_bright_inside], or bedroom nightlight [input_boolean.bedroom_nightlight]) change; when the presence bedroom occupancy [binary_sensor.presence_bedroom_occupancy] sensor reports no occupancy for 10 minutes; at specific scheduled times: the house reset times (house reset settings [input_datetime.house_reset_settings] and house reset settings day [input_datetime.house_reset_settings_day]), the wakeup time [input_datetime.wakeup_time], and the goodnight time [input_datetime.time_goodnight].",
"conditions": "The automation uses conditional logic within its actions, not separate global conditions. The actions are chosen based on which trigger fired. For the 'auto_off' trigger, it checks if the bedroom ceiling [light.bedroom_ceiling] is on before turning it off. For the 'goodnight' trigger, it checks if the bedroom nightlight [input_boolean.bedroom_nightlight] is off before proceeding.",
"action": "Depending on the trigger, the automation performs different actions. If triggered by prolonged absence (auto_off), it turns off the main ceiling light if it's on. If triggered by a remote button press, it interprets the button action to control lights: the 'big bulb' button toggles the main ceiling light, the 'small bulb' button toggles all ambient lights in the bedroom, the left and right buttons toggle their respective bedside lamps, and holding the small bulb button turns off all ambient lights. If triggered by the goodnight time and nightlight mode is off, it turns off all ambient lights in the bedroom."
},
"human_like": "This automation controls the bedroom lights based on remote button presses, scheduled times, occupancy, and house modes, providing convenient control and automatic turn-off features.",
"complexity": "high"
}
},
{
"id": "eaf0b151-07e3-4af2-9a95-e493122a915e",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded or scene_reloaded event occurs OR When house mode bright inside [input_boolean.house_mode_bright_inside] changes state OR When the time reaches time goodmorning [input_datetime.time_goodmorning] OR When the time reaches time goodnight [input_datetime.time_goodnight]. CONDITIONS: (None). ACTIONS: Choose based on conditions: 1. IF house mode bright inside [input_boolean.house_mode_bright_inside] is on, THEN turn off conservatory ceiling [light.conservatory_ceiling] with a 5-second transition. 2. ELSE IF the current time is after time goodmorning [input_datetime.time_goodmorning] AND before time goodnight [input_datetime.time_goodnight] AND conservatory ceiling [light.conservatory_ceiling] is off, THEN turn on conservatory ceiling [light.conservatory_ceiling] with a 5-second transition and brightness 120. 3. OTHERWISE (default), turn off conservatory ceiling [light.conservatory_ceiling] with a 5-second transition.",
"natural_language": {
"trigger": "This automation runs when Home Assistant starts up, when automations or scenes are reloaded, when the house mode bright inside [input_boolean.house_mode_bright_inside] changes, or at the specific times set by time goodmorning [input_datetime.time_goodmorning] and time goodnight [input_datetime.time_goodnight].",
"conditions": "There are no global conditions. The actions are selected based on internal conditional checks.",
"action": "The automation decides what to do with the conservatory ceiling [light.conservatory_ceiling] light. If the bright inside mode is active, it turns the light off. Otherwise, if it is currently daytime (between the good morning and good night times) and the light is off, it turns the light on to a dim brightness of 120. In all other cases, it ensures the light is turned off."
},
"human_like": "Manages the conservatory ceiling light, turning it on during the day and off at night or when 'bright inside' mode is active.",
"complexity": "medium"
}
},
{
"id": "2467611a-12d7-4a8d-8650-e18e25e5082b",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded or scene_reloaded event occurs OR When house mode daylight [input_boolean.house_mode_daylight] or house mode outside work [input_boolean.house_mode_outside_work] changes state OR When front movement [input_boolean.front_movement] turns on (from off) OR When front movement [input_boolean.front_movement] turns off (from on). CONDITIONS: None (conditions are evaluated within the choose action block). ACTIONS: Choose an action based on the following priority: 1. If house mode outside work [input_boolean.house_mode_outside_work] is on, activate Outdoor Work Entre Scene [scene.outdoor_work_entre] with a 2-second transition. 2. Else if the trigger was front movement [input_boolean.front_movement] turning on AND entre [light.entre] is on, activate Outdoor Entre Movement Scene [scene.outdoor_entre_movement] with a 2-second transition. 3. Else if house mode daylight [input_boolean.house_mode_daylight] is off, activate Outdoor Entre Lights Default Scene [scene.outdoor_entre_lights_default] with a 5-second transition. 4. Otherwise (default), turn off entre [light.entre] with a 5-second transition.",
"natural_language": {
"trigger": "The automation can be triggered by several events: when Home Assistant starts up, when automations or scenes are reloaded, when either the house mode daylight [input_boolean.house_mode_daylight] or house mode outside work [input_boolean.house_mode_outside_work] input boolean changes state, or when the front movement [input_boolean.front_movement] sensor turns on or off.",
"conditions": "There are no global conditions. Instead, the automation uses a set of conditional choices to decide which action to take, based on the state of certain entities and which trigger fired.",
"action": "The automation selects one action from a list of options, in order of priority. First, if the outside work mode is active, it activates a specific outdoor work scene for the entre area. If not, and if the trigger was movement being detected while the entre light is already on, it activates a movement-specific scene. If neither of those apply and the daylight mode is off, it activates the default outdoor lights scene for the entre. As a final fallback, if none of the previous conditions are met, it turns off the entre light. All scene activations and the light turn-off include a smooth transition time."
},
"human_like": "This automation manages the outdoor entre lights based on the house mode, movement detection, and time of day, ensuring appropriate lighting for work, security, or default use.",
"complexity": "medium"
}
},
{
"id": "8b53f10d-df56-421e-9e89-08cb39f16c7d",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When automation_reloaded OR scene_reloaded event occurs OR When house mode bright inside [input_boolean.house_mode_bright_inside] changes state OR At the time specified by time goodmorning [input_datetime.time_goodmorning] OR At the time specified by time goodnight [input_datetime.time_goodnight] OR When family room remote action [event.family_room_remote_action] changes state (not from unavailable) OR When motion familyroom occupancy [binary_sensor.motion_familyroom_occupancy] changes from on to off AND remains off for a duration defined by family room timeout [input_number.family_room_timeout] minutes. CONDITIONS AND ACTIONS: The automation uses a choose block to select actions based on the trigger and conditions. The logic is: IF trigger is remote THEN set variable action to the event_type, THEN IF action is 'on' THEN IF family room ceiling [light.family_room_ceiling] is off THEN turn on family room ceiling [light.family_room_ceiling] at brightness 255 ELSE turn off family room ceiling [light.family_room_ceiling]. IF action is 'brightness_move_up' THEN IF family room ceiling [light.family_room_ceiling] brightness is none or 255 THEN turn on family room ceiling [light.family_room_ceiling] at brightness 120 with 1 second transition ELSE turn on family room ceiling [light.family_room_ceiling] at brightness 255 with 1 second transition. IF action is 'off' THEN IF julgranen [light.julgranen] is off THEN turn on julgranen [light.julgranen] ELSE turn off julgranen [light.julgranen]. ELSE IF trigger is senile THEN turn off family room ceiling [light.family_room_ceiling]. ELSE IF house mode bright inside [input_boolean.house_mode_bright_inside] is on THEN turn off family room window 1 [light.family_room_window_1] AND mushroom lamp [light.mushroom_lamp] with 5 second transition. ELSE IF current time is after time goodmorning [input_datetime.time_goodmorning] AND before time goodnight [input_datetime.time_goodnight] THEN turn on Family Room Ambience Lights Cozy Scene [scene.family_room_ambience_lights_cozy] AND Family Room Window Lights Cozy Scene [scene.family_room_window_lights_cozy] with 5 second transition. ELSE (default) turn off family room window 1 [light.family_room_window_1] AND mushroom lamp [light.mushroom_lamp] with 5 second transition.",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when Home Assistant starts up, when automations or scenes are reloaded, when the house mode bright inside [input_boolean.house_mode_bright_inside] setting changes, at the specific morning and night times set by time goodmorning [input_datetime.time_goodmorning] and time goodnight [input_datetime.time_goodnight], when a remote control event is received from family room remote action [event.family_room_remote_action], or when motion is no longer detected in the family room by motion familyroom occupancy [binary_sensor.motion_familyroom_occupancy] for a configurable period defined by family room timeout [input_number.family_room_timeout].",
"conditions": "The automation does not have separate global conditions. Instead, it uses a series of conditional checks within its action sequence to decide what to do based on which trigger fired and the current state of various lights.",
"action": "Depending on the trigger and conditions, the automation performs different actions. If triggered by the remote, it interprets the button press ('on', 'brightness_move_up', or 'off') and toggles or adjusts the family room ceiling [light.family_room_ceiling] or julgranen [light.julgranen] lights accordingly. If triggered by motion stopping, it turns off the ceiling light. If the bright inside mode is active, it turns off the window and mushroom accent lights. If the trigger occurs during the daytime (between the good morning and good night times), it activates cozy lighting scenes. As a default fallback, it turns off the window and mushroom accent lights."
},
"human_like": "This automation manages the family room lights based on time of day, motion, remote control inputs, and house modes, providing both automated ambiance and manual control.",
"complexity": "high"
}
},
{
"id": "b10a0b7d-74bb-48f7-aee5-6233c82149ab",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When motion garage occupancy [binary_sensor.motion_garage_occupancy] changes from off to on OR When motion garage occupancy [binary_sensor.motion_garage_occupancy] changes from on to off AND remains off for 120 seconds. CONDITIONS: (motion garage occupancy [binary_sensor.motion_garage_occupancy] is on) AND (house mode away [input_boolean.house_mode_away] is off). ACTIONS: Execute Garage Doom Script [script.garage_doom].",
"natural_language": {
"trigger": "The automation can be triggered in four ways: when Home Assistant first starts up, when any automation is reloaded, when motion is first detected in the garage, or when motion in the garage stops being detected for a full two minutes.",
"conditions": "For the action to run, two conditions must be met: motion must currently be detected in the garage, and the house must not be in 'away' mode.",
"action": "If the conditions are satisfied, the automation runs a script called Garage Doom Script [script.garage_doom]."
},
"human_like": "Turns on a special 'doom' script for the garage when motion is detected and the house is in home mode, ensuring it doesn't run when the house is empty.",
"complexity": "medium"
}
},
{
"id": "7f5de8d7-4089-4876-9779-ef756fb850f2",
"result": {
"structured": "TRIGGER: When an automation_reloaded event occurs OR When greenhouse door contact [binary_sensor.greenhouse_door_contact] remains in any state for 5 minutes OR When gw3000a wh31 ch1 temperature [sensor.gw3000a_wh31_ch1_temperature] remains below 15°C for 5 minutes. CONDITIONS: (greenhouse door contact [binary_sensor.greenhouse_door_contact] is open (on) AND remains so for 5 minutes) AND (gw3000a wh31 ch1 temperature [sensor.gw3000a_wh31_ch1_temperature] is below 15°C). ACTIONS: Send a notification to castle with title 'Växthuset' and message 'Dags att stänga dörren (temperatur: {{ states(\"sensor.gw3000a_wh31_ch1_temperature\")|float(1) }}C)'.",
"natural_language": {
"trigger": "The automation triggers when Home Assistant reloads automations, when the greenhouse door contact [binary_sensor.greenhouse_door_contact] remains in any state for five minutes, or when the temperature sensor [sensor.gw3000a_wh31_ch1_temperature] reports a temperature below 15°C for five minutes.",
"conditions": "For the action to run, the greenhouse door contact [binary_sensor.greenhouse_door_contact] must have been open for at least five minutes, and the temperature sensor [sensor.gw3000a_wh31_ch1_temperature] must be reading below 15°C.",
"action": "Sends a notification titled 'Växthuset' to the 'castle' notification service, with a message indicating it's time to close the door, including the current temperature."
},
"human_like": "Sends a reminder to close the greenhouse door when it has been left open and the temperature inside is too low.",
"complexity": "medium"
}
},
{
"id": "7216dadf-1188-4654-b46d-065efd0ad292",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded or scene_reloaded event occurs OR When house mode daylight [input_boolean.house_mode_daylight] changes state. CONDITIONS: None. ACTIONS: If house mode daylight [input_boolean.house_mode_daylight] is off, then turn on greenhouse plug [light.greenhouse_plug]; otherwise, turn off greenhouse plug [light.greenhouse_plug].",
"natural_language": {
"trigger": "The automation runs when Home Assistant first starts up, when an automation or scene is reloaded, or whenever the state of the house mode daylight [input_boolean.house_mode_daylight] changes.",
"conditions": "There are no separate conditions that must be met for the action to run; the decision logic is part of the action sequence.",
"action": "If the house mode daylight [input_boolean.house_mode_daylight] is off, the greenhouse plug [light.greenhouse_plug] is turned on. In all other cases, the greenhouse plug [light.greenhouse_plug] is turned off."
},
"human_like": "Controls the greenhouse light based on the house's daylight mode, turning it on when daylight mode is off and off otherwise.",
"complexity": "medium"
}
},
{
"id": "16c47581-b4c4-4e37-8063-212582316df1",
"result": {
"structured": "TRIGGER: When the Home Assistant automation system is reloaded OR When guestroom remote action [event.guestroom_remote_action] changes state (excluding changes from 'unavailable'). CONDITIONS: None. ACTIONS: If the trigger is the remote event, store the event_type attribute as a variable 'action'. Then, based on the value of 'action': If 'action' equals 'toggle', toggle guestroom ceiling [light.guestroom_ceiling]. If 'action' equals 'brightness_up_click', toggle guestroom plug [light.guestroom_plug]. If 'action' equals 'brightness_down_click', toggle rabbit lamp [light.rabbit_lamp]. If 'action' equals 'hold', turn on guestroom ceiling [light.guestroom_ceiling] to full brightness (255) with a warm white color (RGB 255, 227, 165). If 'action' equals 'arrow_left_click', select the previous option for rgb lo [input_select.rgb_lo] (with cycling enabled) and then turn on guestroom ceiling [light.guestroom_ceiling] with the RGB color extracted from the second part of the selected option (after splitting by ':'). If 'action' equals 'arrow_right_click', select the next option for rgb lo [input_select.rgb_lo] (with cycling enabled) and then turn on guestroom ceiling [light.guestroom_ceiling] with the RGB color extracted from the second part of the selected option (after splitting by ':').",
"natural_language": {
"trigger": "This automation runs either when Home Assistant automations are reloaded, or when the guestroom remote action [event.guestroom_remote_action] sends a new event, provided its state is not coming from an 'unavailable' status.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "If the automation was triggered by the remote, it reads the type of button press from the event. Depending on the button press, it performs different actions: a 'toggle' press toggles the main guestroom ceiling light [light.guestroom_ceiling]; a 'brightness_up_click' toggles the guestroom plug light [light.guestroom_plug]; a 'brightness_down_click' toggles the rabbit lamp [light.rabbit_lamp]; a 'hold' press turns the ceiling light on to full brightness with a warm white color; an 'arrow_left_click' cycles the rgb lo [input_select.rgb_lo] selection backward and sets the ceiling light to the corresponding color; an 'arrow_right_click' cycles the rgb lo [input_select.rgb_lo] selection forward and sets the ceiling light to the corresponding color."
},
"human_like": "Controls various lights in the guestroom based on button presses from a remote, allowing toggling, color selection, and setting specific scenes.",
"complexity": "medium"
}
},
{
"id": "55d4084a-e61b-4e2e-acaf-edc15146b8c8",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation or scene is reloaded (automation_reloaded OR scene_reloaded) OR When house mode bright hallway [input_boolean.house_mode_bright_hallway] changes state OR At the time specified by time goodmorning [input_datetime.time_goodmorning] OR At the time specified by time goodnight [input_datetime.time_goodnight] OR When hallway downstairs movement [input_boolean.hallway_downstairs_movement] changes state (id: movement) OR When shield cinema [media_player.shield_cinema] starts playing (to: playing). CONDITIONS AND ACTIONS (CHOOSE BLOCK): 1. IF hallway downstairs manual mode [input_boolean.hallway_downstairs_manual_mode] is on THEN DO NOTHING. 2. ELSE IF the trigger was movement OR media THEN: IF hallway downstairs movement [input_boolean.hallway_downstairs_movement] is on AND house mode bright hallway [input_boolean.house_mode_bright_hallway] is off THEN: IF ((shield cinema [media_player.shield_cinema] is playing AND current time is between 20:00 and 06:00) OR (current time is between 23:00 and 06:00)) THEN Turn on hallen [light.hallen] with brightness 60 and 1-second transition. OTHERWISE Turn on hallen [light.hallen] with brightness 255 and 1-second transition. OTHERWISE (if movement is off or other trigger) Turn off hallen [light.hallen] with 5-second transition. 3. ELSE IF house mode bright hallway [input_boolean.house_mode_bright_hallway] is on THEN Turn off hallway downstairs bench [light.hallway_downstairs_bench] with 5-second transition. 4. ELSE IF (current time is between time goodmorning [input_datetime.time_goodmorning] and time goodnight [input_datetime.time_goodnight]) AND house mode bright hallway [input_boolean.house_mode_bright_hallway] is off THEN Activate Hallway Downstairs Ambience Lights Cozy Scene [scene.hallway_downstairs_ambience_lights_cozy]. 5. OTHERWISE (default) Turn off hallway downstairs bench [light.hallway_downstairs_bench] with 5-second transition.",
"natural_language": {
"trigger": "The automation can be triggered when Home Assistant starts, when an automation or scene is reloaded, when the house mode bright hallway [input_boolean.house_mode_bright_hallway] changes, at the scheduled times for good morning [input_datetime.time_goodmorning] and good night [input_datetime.time_goodnight], when the hallway downstairs movement [input_boolean.hallway_downstairs_movement] sensor changes, or when the shield cinema [media_player.shield_cinema] starts playing.",
"conditions": "The automation first checks if manual mode is active. If the hallway downstairs manual mode [input_boolean.hallway_downstairs_manual_mode] is on, no action is taken. Otherwise, if the trigger was movement or media playing, it checks if movement is detected and the bright hallway mode is off. If so, it further checks the time and media state to decide the light brightness. If movement is not detected, it turns the main light off. If the bright hallway mode is on, it turns off a specific bench light. If it's daytime (between the good morning and good night times) and bright hallway mode is off, it activates a cozy ambience scene. If none of the above apply, it turns off the bench light.",
"action": "Depending on the conditions, the automation either does nothing, turns the main hallway light [light.hallen] on with a specific brightness, turns it off, turns off a bench light [light.hallway_downstairs_bench], or activates a cozy scene [scene.hallway_downstairs_ambience_lights_cozy]."
},
"human_like": "This automation manages the downstairs hallway lights based on movement, time of day, media playback, and house modes, ensuring appropriate lighting for comfort and energy savings.",
"complexity": "high"
}
},
{
"id": "009d2374-2031-4d2d-b19d-349a5ac5c52f",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When automation_reloaded or scene_reloaded events occur OR When house mode bright inside [input_boolean.house_mode_bright_inside] changes state OR At the times defined by time goodmorning [input_datetime.time_goodmorning] and time goodnight [input_datetime.time_goodnight] OR When motion hallway upstairs occupancy [binary_sensor.motion_hallway_upstairs_occupancy] stops detecting motion (changes from 'on' to 'off') and remains off for the duration specified by hallway upstairs timeout [input_number.hallway_upstairs_timeout] minutes OR When house mode sleep [input_boolean.house_mode_sleep] OR house mode away [input_boolean.house_mode_away] changes from 'off' to 'on' OR When remote hallway upstairs 1 action [event.remote_hallway_upstairs_1_action] triggers (not from unavailable). CONDITIONS AND ACTIONS: The automation uses a choose action with multiple branches. Branch 1: IF the trigger is remote hallway upstairs 1 action [event.remote_hallway_upstairs_1_action], THEN check the action type. IF action is 'on', THEN IF hallway upstairs 2 [light.hallway_upstairs_2] is off, turn it on at full brightness; OTHERWISE turn it off. IF action is 'off', THEN IF hallway upstairs 1 [light.hallway_upstairs_1] is off, turn it on at full brightness; OTHERWISE turn it off. Branch 2: IF the trigger is no_movement OR night_or_away, THEN turn off hallway upstairs 1 [light.hallway_upstairs_1] and hallway upstairs 2 [light.hallway_upstairs_2] with a 5-second transition. Branch 3: IF house mode bright inside [input_boolean.house_mode_bright_inside] is 'on', THEN turn off hallway upstairs window [light.hallway_upstairs_window] with a 5-second transition. Branch 4: IF the current time is after time goodmorning [input_datetime.time_goodmorning] AND before time goodnight [input_datetime.time_goodnight], THEN activate Hallway Upstairs Window Lights Cozy Scene [scene.hallway_upstairs_window_lights_cozy]. DEFAULT: Otherwise, turn off hallway upstairs window [light.hallway_upstairs_window] with a 5-second transition.",
"natural_language": {
"trigger": "This automation can be triggered in several ways: when Home Assistant starts up, when automations or scenes are reloaded, when the 'house mode bright inside' setting changes, at specific morning and night times, when motion stops being detected in the upstairs hallway for a configurable timeout period, when the house enters 'sleep' or 'away' mode, or when a remote control button in the upstairs hallway is pressed.",
"conditions": "The automation's actions depend on which trigger occurred. There is no single set of conditions; instead, different sequences of actions are chosen based on the trigger.",
"action": "If the trigger was a remote button press, it toggles specific lights: an 'on' press toggles the 'hallway upstairs 2' light, and an 'off' press toggles the 'hallway upstairs 1' light. If the trigger was due to no motion or the house entering sleep/away mode, it turns off both main hallway lights. If the 'house mode bright inside' is active, it turns off the window light. If the current time is between the defined morning and night times, it activates a cozy lighting scene for the window. As a default fallback, it turns off the window light."
},
"human_like": "This automation manages the upstairs hallway lights, responding to motion, time of day, house modes, and remote control presses to provide appropriate lighting and energy savings.",
"complexity": "high"
}
},
{
"id": "3daa6225-7b3d-4c85-9353-5cf4a482e9f7",
"result": {
"structured": "TRIGGER: When house mode away [input_boolean.house_mode_away] changes from off to on OR When the time pattern matches every minute (minutes: '1'). ACTIONS: If the trigger was house mode away [input_boolean.house_mode_away] turning on, then press front door wake [button.front_door_wake]. If the trigger was the scheduled time pattern AND house mode away [input_boolean.house_mode_away] is off, then press front door wake [button.front_door_wake].",
"natural_language": {
"trigger": "The automation triggers either when the house mode away [input_boolean.house_mode_away] is switched from off to on, or on a scheduled basis every minute.",
"conditions": "For the scheduled trigger, an additional condition checks that the house mode away [input_boolean.house_mode_away] is currently off. The away trigger has no further conditions.",
"action": "Depending on which trigger activated the automation, it will press the front door wake [button.front_door_wake] button. If triggered by the away mode turning on, it does so immediately. If triggered by the schedule, it only does so if the away mode is off."
},
"human_like": "Wakes up the front door device either when the house is set to away mode or on a regular schedule when the house is not in away mode.",
"complexity": "medium"
}
},
{
"id": "a0dd5741-07ea-4c5c-99ee-b94fe07b755e",
"result": {
"structured": "TRIGGER: When house mode away [input_boolean.house_mode_away] changes from off to on AND remains on for 1 minute. CONDITIONS: None. ACTIONS: If front door [lock.front_door] is unlocked, then send a notification to the family group with title 'Ytterdörren' and message 'Dörren är olåst!', including an action button labeled 'Lås dörren' with a unique action ID. Wait for a mobile app notification action event matching that unique action ID. When the action is received, lock front door [lock.front_door].",
"natural_language": {
"trigger": "When the house mode away [input_boolean.house_mode_away] is switched on and stays on for one minute.",
"conditions": "There are no explicit conditions; the action sequence begins immediately after the trigger.",
"action": "If the front door [lock.front_door] is unlocked, it sends a notification to the family group, prompting them to lock the door. The notification includes a button to lock the door. The automation waits for someone to press that button in the mobile app, and when pressed, it locks the front door."
},
"human_like": "When the house is set to away mode, it checks if the front door is unlocked and sends a notification to the family, allowing them to lock it remotely with a single tap.",
"complexity": "medium"
}
},
{
"id": "12efc75c-0603-4bd2-91d9-3cffa6159a82",
"result": {
"structured": "TRIGGER: When kitchen movement [input_boolean.kitchen_movement] changes state OR When house mode away [input_boolean.house_mode_away] OR house mode sleep [input_boolean.house_mode_sleep] changes from off to on OR When kitchen remote action [event.kitchen_remote_action] OR kitchen remote 2 action [event.kitchen_remote_2_action] changes state (excluding from unavailable) OR When kitchen movement [input_boolean.kitchen_movement] changes from on to off and remains off for a duration defined by kitchen timeout [input_number.kitchen_timeout] minutes. CONDITIONS: None (conditions are embedded within the choose action blocks). ACTIONS: Choose based on trigger ID: IF trigger is movement THEN check state of kitchen movement [input_boolean.kitchen_movement]; IF on THEN turn on kitchen sink [light.kitchen_sink] at full brightness; IF off THEN turn off kitchen sink [light.kitchen_sink] with a 5-second transition. IF trigger is senile THEN turn off kitchen island [light.kitchen_island] AND kitchen table [light.kitchen_table]. IF trigger is remote THEN evaluate the remote action event; IF action is big-press, on, or brightness_up_click THEN check state of kitchen table [light.kitchen_table]; IF off THEN turn on kitchen table [light.kitchen_table] at full brightness; IF on THEN turn off kitchen table [light.kitchen_table]; IF action is small-press, off, or brightness_down_click THEN toggle kitchen island [light.kitchen_island]; IF action is left-press or arrow_left_click THEN toggle kitchen bench [light.kitchen_bench]; IF action is right-press or arrow_right_click THEN toggle conservatory ceiling [light.conservatory_ceiling]. IF trigger is nightaway THEN turn off kitchen sink [light.kitchen_sink], kitchen table [light.kitchen_table], AND kitchen island [light.kitchen_island]. IF no trigger conditions match (default) THEN turn off kitchen table [light.kitchen_table] AND kitchen island [light.kitchen_island] with a 5-second transition.",
"natural_language": {
"trigger": "The automation can be triggered by four different events: any change in the kitchen movement [input_boolean.kitchen_movement] state; when either the house mode away [input_boolean.house_mode_away] or house mode sleep [input_boolean.house_mode_sleep] switches from off to on; when a remote button is pressed, indicated by a state change on kitchen remote action [event.kitchen_remote_action] or kitchen remote 2 action [event.kitchen_remote_2_action] (excluding changes from an unavailable state); or when the kitchen movement [input_boolean.kitchen_movement] changes from on to off and stays off for a specific number of minutes defined by the kitchen timeout [input_number.kitchen_timeout] setting.",
"conditions": "There are no separate global conditions. The actions are selected based on which trigger occurred, and some actions have internal checks on the current state of lights.",
"action": "Depending on which trigger fired, different actions are taken. If movement is detected, the kitchen sink light [light.kitchen_sink] is turned on or off accordingly. After a period of no movement, the kitchen island [light.kitchen_island] and kitchen table [light.kitchen_table] lights are turned off. Remote button presses control various lights: 'big' buttons turn the kitchen table light [light.kitchen_table] on or off, 'small' buttons toggle the kitchen island light [light.kitchen_island], 'left' buttons toggle the kitchen bench light [light.kitchen_bench], and 'right' buttons toggle the conservatory ceiling light [light.conservatory_ceiling]. When an away or sleep mode is activated, the kitchen sink [light.kitchen_sink], table [light.kitchen_table], and island [light.kitchen_island] lights are all turned off. As a default fallback, the kitchen table [light.kitchen_table] and island [light.kitchen_island] lights are turned off with a fade."
},
"human_like": "Automates kitchen and conservatory lighting based on movement, remote control inputs, and house modes like away or sleep, ensuring lights are turned on when needed and off when the area is vacant.",
"complexity": "high"
}
},
{
"id": "7600e21e-5142-4dd0-8439-2fe4416ad473",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When motion kitchen occupancy [binary_sensor.motion_kitchen_occupancy] OR presence kitchen occupancy [binary_sensor.presence_kitchen_occupancy] changes from off to on OR When motion kitchen occupancy [binary_sensor.motion_kitchen_occupancy] OR presence kitchen occupancy [binary_sensor.presence_kitchen_occupancy] changes from on to off AND remains off for 1 minute. CONDITIONS: None. ACTIONS: If the trigger was the movement detection (from off to on), then turn on kitchen movement [input_boolean.kitchen_movement]. Otherwise, if motion kitchen occupancy [binary_sensor.motion_kitchen_occupancy] AND presence kitchen occupancy [binary_sensor.presence_kitchen_occupancy] are both off, then turn off kitchen movement [input_boolean.kitchen_movement].",
"natural_language": {
"trigger": "The automation runs when Home Assistant starts, when any automation is reloaded, when either the motion kitchen occupancy [binary_sensor.motion_kitchen_occupancy] or presence kitchen occupancy [binary_sensor.presence_kitchen_occupancy] sensor detects activity (changes from off to on), or when either of those sensors stops detecting activity (changes from on to off) and remains off for one minute.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "If the trigger was the detection of movement (the sensors turning on), the automation turns on the kitchen movement [input_boolean.kitchen_movement] helper. In all other cases, it checks if both the motion and presence sensors are off. If they are, it turns off the kitchen movement [input_boolean.kitchen_movement] helper."
},
"human_like": "Tracks movement in the kitchen by turning a helper on when motion or presence is detected, and turning it off after both sensors have been inactive for a minute.",
"complexity": "medium"
}
},
{
"id": "ca853bcb-c701-4090-af6b-0aa888c17562",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded or scene_reloaded event occurs OR When laundryroom movement [input_boolean.laundryroom_movement] changes state. CONDITIONS: None. ACTIONS: Choose an action based on the trigger: If the trigger is 'button' (not defined in provided triggers, but referenced in condition), then: If laundry room channel 1 [switch.laundry_room_channel_1] is off, turn it on and turn on laundry room bench [light.laundry_room_bench] with brightness 120 and transition 1. Otherwise, turn off laundry room channel 1 [switch.laundry_room_channel_1] and laundry room bench [light.laundry_room_bench]. Otherwise, if laundryroom movement [input_boolean.laundryroom_movement] is on, then: If the current time is between 07:30:00 and 22:00:00, turn on laundry room channel 1 [switch.laundry_room_channel_1] and turn on laundry room bench [light.laundry_room_bench] with brightness 120 and transition 1. Otherwise, turn on laundry room bench [light.laundry_room_bench] with brightness 120 and transition 1. Otherwise, turn off laundry room channel 1 [switch.laundry_room_channel_1] and laundry room bench [light.laundry_room_bench].",
"natural_language": {
"trigger": "The automation triggers when Home Assistant starts, when an automation or scene is reloaded, or when the laundryroom movement [input_boolean.laundryroom_movement] sensor changes state.",
"conditions": "There are no global conditions for this automation.",
"action": "The automation's actions depend on what triggered it and the current state. If the trigger is a 'button' (referenced but not defined in the provided triggers), it toggles the main ceiling light: if the ceiling light is off, it turns it on along with the bench light at a specific brightness. Otherwise, it turns both lights off. If the trigger is movement detection and the room is occupied, it turns on the lights, but with a schedule: during daytime hours (7:30 AM to 10:00 PM), it turns on both the ceiling and bench lights. Outside those hours, it only turns on the bench light. If neither of those cases apply, it turns off all lights."
},
"human_like": "This automation controls the laundry room lights, turning them on when movement is detected (with different behavior for day and night) and providing a manual toggle option, while also ensuring lights are managed on system start or reload.",
"complexity": "medium"
}
},
{
"id": "bc7852b3-a205-4a37-a2d3-946e33baee6f",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When motion laundry room occupancy [binary_sensor.motion_laundry_room_occupancy] changes from off to on OR When motion laundry room occupancy [binary_sensor.motion_laundry_room_occupancy] changes from on to off and remains off for 3 minutes. CONDITIONS: None. ACTIONS: If the trigger was motion laundry room occupancy [binary_sensor.motion_laundry_room_occupancy] changing from off to on, then turn on laundryroom movement [input_boolean.laundryroom_movement]. Otherwise, turn off laundryroom movement [input_boolean.laundryroom_movement].",
"natural_language": {
"trigger": "The automation runs when Home Assistant starts, when any automation is reloaded, when motion is first detected in the laundry room (motion laundry room occupancy [binary_sensor.motion_laundry_room_occupancy] changes from off to on), or when motion has not been detected for three minutes (the sensor changes from on to off and stays off for that duration).",
"conditions": "There are no conditions for this automation.",
"action": "If the trigger was the initial detection of motion, the automation turns on the laundryroom movement [input_boolean.laundryroom_movement] helper. For any other trigger (like Home Assistant starting, an automation reload, or motion stopping for three minutes), it turns off the laundryroom movement [input_boolean.laundryroom_movement] helper."
},
"human_like": "Tracks active movement in the laundry room by turning a helper on when motion is detected and off when motion has stopped for three minutes, also resetting on system or automation reloads.",
"complexity": "medium"
}
},
{
"id": "426174fb-2fc8-41e3-8e92-62f37ef26c54",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded or scene_reloaded event occurs OR When house mode bright inside [input_boolean.house_mode_bright_inside] changes state OR When livingroom remote action [event.livingroom_remote_action] changes state from any state except unavailable OR When house mode sleep [input_boolean.house_mode_sleep] OR house mode away [input_boolean.house_mode_away] changes from off to on OR When the time reaches time goodmorning [input_datetime.time_goodmorning] OR time goodnight [input_datetime.time_goodnight]. CONDITIONS AND ACTIONS (CHOOSE): 1. IF trigger is remote: Set variable 'action' to the event_type from the trigger, THEN: IF action equals 'on': Toggle livingroom front 1 [light.livingroom_front_1]. IF action equals 'off': Toggle livingroom back 3 [light.livingroom_back_3]. IF action equals 'brightness_move_up': Toggle vardagsrum framre [light.vardagsrum_framre]. IF action equals 'brightness_move_down': Toggle vardagsrum bakre [light.vardagsrum_bakre]. OTHERWISE: Delay 1 millisecond. 2. IF trigger is night_or_away: Turn off vardagsrum framre [light.vardagsrum_framre], vardagsrum bakre [light.vardagsrum_bakre], and floor lamp [light.floor_lamp]. 3. IF (time is after time goodmorning [input_datetime.time_goodmorning] AND before time goodnight [input_datetime.time_goodnight]) AND house mode bright inside [input_boolean.house_mode_bright_inside] is off: Activate Livingroom Ambience Lights Cozy Scene [scene.livingroom_ambience_lights_cozy] and Livingroom Window Lights Cozy Scene [scene.livingroom_window_lights_cozy] with a 5-second transition. 4. IF house mode bright inside [input_boolean.house_mode_bright_inside] is on: Turn off floor lamp [light.floor_lamp] and livingroom window 1 [light.livingroom_window_1] with a 5-second transition. 5. DEFAULT (if no other condition matches): Turn off floor lamp [light.floor_lamp] and livingroom window 1 [light.livingroom_window_1] with a 5-second transition.",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when Home Assistant starts, when automations or scenes are reloaded, when the 'house mode bright inside' setting changes, when a remote control event is received from the living room, when either 'house mode sleep' or 'house mode away' is turned on, or at specific times set by the 'time goodmorning' and 'time goodnight' inputs.",
"conditions": "The automation uses a set of conditional branches to decide what action to take. If the trigger came from the remote control, it checks the specific button press (like 'on', 'off', 'brightness up', or 'brightness down') and toggles the corresponding light. If the trigger was the activation of 'night' or 'away' mode, it turns off several main living room lights. If the current time is between the morning and night times and the 'bright inside' mode is off, it activates cozy lighting scenes. If the 'bright inside' mode is on, it turns off the floor lamp and a window light. If none of these specific conditions are met, it defaults to turning off the floor lamp and window light.",
"action": "Depending on the trigger and conditions, the automation will toggle specific lights, turn off groups of lights, activate cozy lighting scenes with a fade, or turn off specific lamps. The default action is to turn off the floor lamp and a window light."
},
"human_like": "This automation manages the living room lights based on time of day, house modes, and remote control inputs, creating cozy scenes during the day and turning lights off for night or away modes.",
"complexity": "high"
}
},
{
"id": "61dc9746-9143-4d5e-8bc5-d282cad4391b",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When house mode away [input_boolean.house_mode_away] changes state OR When house mode sleep [input_boolean.house_mode_sleep] changes state. CONDITIONS: None. ACTIONS: Choose an action based on conditions. If House Mode Guests [input_boolean.house_mode_guests] is off AND house mode sleep [input_boolean.house_mode_sleep] is on, set livingroom starkvind [fan.livingroom_starkvind] to 55% fan speed. Otherwise, if house mode away [input_boolean.house_mode_away] is on, set livingroom starkvind [fan.livingroom_starkvind] to 55% fan speed. Otherwise (default), set livingroom starkvind [fan.livingroom_starkvind] to 11% fan speed.",
"natural_language": {
"trigger": "The automation triggers when Home Assistant starts up, when any automation is reloaded, or when the state of either the house mode away [input_boolean.house_mode_away] or house mode sleep [input_boolean.house_mode_sleep] input booleans changes.",
"conditions": "There are no global conditions. The actions are selected based on the following internal checks: The first action path is chosen if the House Mode Guests [input_boolean.house_mode_guests] is off and the house mode sleep [input_boolean.house_mode_sleep] is on. The second path is chosen if the house mode away [input_boolean.house_mode_away] is on. If neither of these sets of conditions are met, the default action is performed.",
"action": "Sets the fan speed of the livingroom starkvind [fan.livingroom_starkvind] air cleaner. It runs at a higher speed (55%) when the house is in sleep mode (and guests are not present) or when the house is in away mode. Otherwise, it runs at a lower speed (11%)."
},
"human_like": "Controls the living room air cleaner's fan speed based on the house mode, setting it higher for sleep or away modes and lower for normal operation.",
"complexity": "medium"
}
},
{
"id": "b735976f-ca85-42bb-a5eb-6cd714297d7b",
"result": {
"structured": "TRIGGER: When any automation is reloaded (automation_reloaded event) OR When motion staircase occupancy [binary_sensor.motion_staircase_occupancy] changes from off to on OR When motion staircase occupancy [binary_sensor.motion_staircase_occupancy] changes from on to off AND remains off for 180 seconds (trigger id: nomotion). CONDITIONS: (For the first action branch: motion staircase occupancy [binary_sensor.motion_staircase_occupancy] is on AND house mode away [input_boolean.house_mode_away] is off AND current time is after time goodnight [input_datetime.time_goodnight] AND before time goodmorning [input_datetime.time_goodmorning]) OR (For the second action branch: trigger id is nomotion AND current time is after time goodnight [input_datetime.time_goodnight] AND before time goodmorning [input_datetime.time_goodmorning]). ACTIONS: If the first condition set is true, turn on staircase [light.staircase] with brightness 20. If the second condition set is true, turn off staircase [light.staircase].",
"natural_language": {
"trigger": "The automation triggers when Home Assistant automations are reloaded, when motion is first detected in the staircase (motion staircase occupancy [binary_sensor.motion_staircase_occupancy] changes from off to on), or when motion has been absent for three minutes (motion staircase occupancy [binary_sensor.motion_staircase_occupancy] changes from on to off and stays off for 180 seconds).",
"conditions": "For turning the light on: motion must be currently detected, the house must not be in away mode (house mode away [input_boolean.house_mode_away] is off), and the current time must be within the active lighting period, which is after the 'goodnight' time and before the 'goodmorning' time. For turning the light off: the trigger must be the three-minute motion absence, and the current time must also be within the same active lighting period.",
"action": "If the conditions for motion detection are met, the staircase light [light.staircase] is turned on to a low brightness of 20. If the conditions for motion absence are met, the staircase light is turned off."
},
"human_like": "Automatically turns the staircase light on when motion is detected during the night and off after motion stops, but only when the house is not in away mode.",
"complexity": "medium"
}
},
{
"id": "4a346b19-87e7-4d09-99ec-019d7ec05237",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When motion techroom occupancy [binary_sensor.motion_techroom_occupancy] changes from off to on OR When motion techroom occupancy [binary_sensor.motion_techroom_occupancy] changes from on to off and remains off for 10 minutes. CONDITIONS: None. ACTIONS: If the trigger was motion techroom occupancy [binary_sensor.motion_techroom_occupancy] changing from off to on, then turn on techroom movement [input_boolean.techroom_movement]. Otherwise, turn off techroom movement [input_boolean.techroom_movement].",
"natural_language": {
"trigger": "The automation runs when Home Assistant starts, when any automation is reloaded, when motion is first detected in the techroom (motion techroom occupancy [binary_sensor.motion_techroom_occupancy] changes from off to on), or when motion stops being detected and remains absent for 10 minutes.",
"conditions": "There are no conditions for this automation.",
"action": "If the trigger was motion being detected, it turns on the techroom movement [input_boolean.techroom_movement] helper. For any other trigger (startup, reload, or motion ending for 10 minutes), it turns off the techroom movement [input_boolean.techroom_movement] helper."
},
"human_like": "Turns on a movement indicator when motion is detected in the techroom, and turns it off when motion stops for 10 minutes or when the system restarts.",
"complexity": "medium"
}
},
{
"id": "3b25b5a0-8281-4d08-b624-aa37eaa7db56",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded or scene_reloaded event occurs OR When house mode daylight [input_boolean.house_mode_daylight] changes state. CONDITIONS: None. ACTIONS: If house mode daylight [input_boolean.house_mode_daylight] is off, then turn on terrace [light.terrace] with a 5-second transition. If house mode daylight [input_boolean.house_mode_daylight] is on, then turn off terrace [light.terrace] with a 5-second transition. Otherwise (default), turn off terrace [light.terrace] with a 5-second transition.",
"natural_language": {
"trigger": "The automation triggers when Home Assistant first starts, when an automation or scene is reloaded, or when the state of the house mode daylight [input_boolean.house_mode_daylight] changes.",
"conditions": "There are no global conditions for this automation.",
"action": "Depending on the state of house mode daylight [input_boolean.house_mode_daylight], the automation will either turn the terrace light [light.terrace] on or off. If the mode is off, the light turns on with a 5-second fade. If the mode is on, the light turns off with a 5-second fade. In any other case (the default), the light is turned off with a 5-second fade."
},
"human_like": "Ensures the terrace light is correctly set on or off based on the house's daylight mode, especially after Home Assistant restarts or when automations are reloaded.",
"complexity": "medium"
}
},
{
"id": "d4e1013c-70e8-432c-a3fc-7923bd3f0639",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When motion toilet occupancy [binary_sensor.motion_toilet_occupancy] changes from off to on OR When motion toilet occupancy [binary_sensor.motion_toilet_occupancy] changes from on to off and remains off for 180 seconds. CONDITIONS: For the primary action path: motion toilet occupancy [binary_sensor.motion_toilet_occupancy] is on AND house mode away [input_boolean.house_mode_away] is off. For the nested time-based choice: current time is after time goodnight [input_datetime.time_goodnight] AND before time goodmorning [input_datetime.time_goodmorning]. ACTIONS: If conditions are met, turn on upper toilet [light.upper_toilet] with a brightness of 70 during the night period (after time goodnight and before time goodmorning), otherwise turn it on with a brightness of 250. If the primary conditions are not met, turn off upper toilet [light.upper_toilet].",
"natural_language": {
"trigger": "The automation can be triggered in four ways: when Home Assistant first starts up, when any automation is reloaded, when motion is first detected in the toilet (motion toilet occupancy [binary_sensor.motion_toilet_occupancy] changes from off to on), or when motion stops being detected and remains absent for three minutes.",
"conditions": "To turn the lights on, two conditions must be true: motion must currently be detected (motion toilet occupancy [binary_sensor.motion_toilet_occupancy] is on), and the house must not be in away mode (house mode away [input_boolean.house_mode_away] is off). If these are met, a further check is made for the time of day: if the current time is between the 'goodnight' and 'goodmorning' times, the light will be set to a dim level.",
"action": "If motion is detected and the house is not in away mode, the upper toilet light [light.upper_toilet] is turned on. It is set to a dim brightness of 70 during the night (between the set goodnight and goodmorning times), and a brighter 250 at all other times. If the conditions for turning the light on are not met (e.g., motion stops for three minutes), the light is turned off."
},
"human_like": "Automatically controls the toilet light based on motion, turning it on with a dimmer setting at night and turning it off after a period of inactivity, but only when someone is home.",
"complexity": "medium"
}
},
{
"id": "3383e3b4-bbfe-4542-94f8-879e188762f3",
"result": {
"structured": "TRIGGER: When servanet bahnhof price [sensor.servanet_bahnhof_price] changes state, provided the previous state is not 'none', 'unknown', 'unavailable', or 'null' AND the new state is not 'none', 'unknown', 'unavailable', or 'null'. CONDITIONS: The previous state is not 'unknown', 'unavailable', 'none', an empty string, or null AND the new state is not 'unknown', 'unavailable', 'none', an empty string, or null AND the new state is different from the previous state. ACTIONS: Send a notification to castle_log with the title 'Bahnhof' and the message 'Priset har ändrats från [previous state]kr till [new state]kr'.",
"natural_language": {
"trigger": "Whenever the servanet bahnhof price [sensor.servanet_bahnhof_price] sensor updates to a new value, as long as the change is not from or to an invalid state like 'none', 'unknown', 'unavailable', or 'null'.",
"conditions": "The automation only proceeds if the previous price value and the new price value are both valid (not 'unknown', 'unavailable', 'none', an empty string, or null) and the new price is actually different from the old price.",
"action": "Sends a notification titled 'Bahnhof' to the castle_log service, stating that the price has changed from the old value to the new value."
},
"human_like": "Sends a notification whenever the Bahnhof electricity price changes, ignoring invalid or unchanged readings.",
"complexity": "medium"
}
},
{
"id": "9dd4d185-e6d1-4cb7-80ba-bb32fc3968ca",
"result": {
"structured": "TRIGGER: When house mode away [input_boolean.house_mode_away] turns on. CONDITIONS: (home theater [media_player.home_theater] is on OR playing). ACTIONS: Turn off home theater [media_player.home_theater] AND send a notification to castle_log with title 'Hemmabion' and message 'Stängde av då ingen är hemma'.",
"natural_language": {
"trigger": "When the house is set to away mode, indicated by house mode away [input_boolean.house_mode_away] turning on.",
"conditions": "If the home theater [media_player.home_theater] is currently powered on or actively playing media.",
"action": "Turns off the home theater [media_player.home_theater] and sends a notification to the log titled 'Hemmabion' with the message 'Stängde av då ingen är hemma' (Turned off because no one is home)."
},
"human_like": "Turns off the home theater system when the house is set to away mode, ensuring it's not left on when no one is home.",
"complexity": "low"
}
},
{
"id": "f70a86c9-a93f-41c0-96c7-d89108586cf0",
"result": {
"structured": "TRIGGER: When the state of home theater [media_player.home_theater] OR house mode bright inside [input_boolean.house_mode_bright_inside] changes OR when the state of android tv 10 5 50 73 [media_player.android_tv_10_5_50_73] changes. CONDITIONS: (home theater [media_player.home_theater] is on AND android tv 10 5 50 73 [media_player.android_tv_10_5_50_73] is playing AND house mode bright inside [input_boolean.house_mode_bright_inside] is off) OR (house mode bright inside [input_boolean.house_mode_bright_inside] is off AND the current time is after time goodmorning weekend [input_datetime.time_goodmorning_weekend] AND before time goodnight [input_datetime.time_goodnight]). ACTIONS: If the first condition set is true, turn off livingroom window 1 [light.livingroom_window_1] with a 5-second transition. If the second condition set is true, turn on livingroom window 1 [light.livingroom_window_1] with a 5-second transition.",
"natural_language": {
"trigger": "The automation runs when the state of either the home theater [media_player.home_theater] or the house mode bright inside [input_boolean.house_mode_bright_inside] changes, or when the state of the android tv 10 5 50 73 [media_player.android_tv_10_5_50_73] changes.",
"conditions": "If the home theater is on, the android TV is playing, and the bright inside mode is off, the automation will turn off the window light. Alternatively, if the bright inside mode is off and the current time is between the weekend morning time and the goodnight time, the automation will turn on the window light.",
"action": "Depending on the conditions, the automation either turns off the livingroom window 1 [light.livingroom_window_1] light with a 5-second fade-out, or turns it on with a 5-second fade-in."
},
"human_like": "This automation manages the living room window light based on TV activity and time of day, turning it off when watching TV and on during evening hours if the bright mode is off.",
"complexity": "medium"
}
},
{
"id": "20fa1fcc-eae1-4428-9e2b-cfea2619e154",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When coffee maker state [sensor.coffee_maker_state] changes state. CONDITIONS: None. ACTIONS: If coffee maker state [sensor.coffee_maker_state] is off, turn off coffeemaker water level light [light.coffeemaker_water_level_light]. Otherwise, turn on coffeemaker water level light [light.coffeemaker_water_level_light] AND if kitchen bench [light.kitchen_bench] is off AND house mode bright hallway [input_boolean.house_mode_bright_hallway] is off, turn on kitchen bench [light.kitchen_bench].",
"natural_language": {
"trigger": "The automation runs when Home Assistant starts up, when any automation is reloaded, or whenever the coffee maker state [sensor.coffee_maker_state] changes.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "If the coffee maker is off, the automation turns off the coffeemaker water level light [light.coffeemaker_water_level_light]. Otherwise, it turns on the coffeemaker water level light. Additionally, if the kitchen bench light [light.kitchen_bench] is off and the bright hallway mode [input_boolean.house_mode_bright_hallway] is also off, it will turn on the kitchen bench light."
},
"human_like": "Controls the coffee maker's water level light based on the coffee maker's state, and turns on the kitchen bench light under certain conditions.",
"complexity": "medium"
}
},
{
"id": "cc0a71fe-be26-4d54-b926-f146380f4487",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When conservatory door contact [binary_sensor.conservatory_door_contact] remains in any state for 10 minutes OR When conservatory temperature [sensor.conservatory_temperature] OR kitchen temperature [sensor.kitchen_temperature] changes state. CONDITIONS: conservatory door contact [binary_sensor.conservatory_door_contact] is open (on) AND remains stable for 10 minutes AND ((kitchen temperature [sensor.kitchen_temperature] minus conservatory temperature [sensor.conservatory_temperature]) > 4) AND (kitchen temperature [sensor.kitchen_temperature] < 20). ACTIONS: Send a notification to family with title 'Uterummet' and message 'Dags att stänga dörren (X°C kallare än inne)' where X is the temperature difference rounded to one decimal.",
"natural_language": {
"trigger": "The automation triggers when Home Assistant starts, when any automation is reloaded, when the conservatory door contact [binary_sensor.conservatory_door_contact] remains in its current state for ten minutes, or when either the conservatory temperature [sensor.conservatory_temperature] or kitchen temperature [sensor.kitchen_temperature] changes.",
"conditions": "The conservatory door contact [binary_sensor.conservatory_door_contact] must be open and have remained open for at least ten minutes. Additionally, the kitchen temperature [sensor.kitchen_temperature] must be at least 4 degrees Celsius warmer than the conservatory temperature [sensor.conservatory_temperature], and the kitchen temperature must be below 20 degrees Celsius.",
"action": "Sends a notification to the family group with the title 'Uterummet' and a message stating it's time to close the door, including the calculated temperature difference rounded to one decimal place."
},
"human_like": "Reminds the family to close the conservatory door when it has been open for a while and the kitchen is significantly warmer but still cool.",
"complexity": "medium"
}
},
{
"id": "4729a25a-8eef-421d-8460-b932bc27d4ce",
"result": {
"structured": "TRIGGER: When CTC software version [sensor.ctc_software_version] changes state, provided the old state is not 'none', 'unknown', 'unavailable', or 'null' AND the new state is not 'none', 'unknown', 'unavailable', or 'null'. CONDITIONS: (The old state is not 'unknown', 'unavailable', 'none', empty string, or null) AND (The new state is not 'unknown', 'unavailable', 'none', empty string, or null) AND (The new state is different from the old state). ACTIONS: Send a notification to Castle Log with title 'CTC' and message containing the new and old software versions.",
"natural_language": {
"trigger": "When the CTC software version [sensor.ctc_software_version] sensor changes its reported value.",
"conditions": "The automation only runs if both the previous value and the new value are valid states, meaning they are not 'unknown', 'unavailable', 'none', an empty string, or null. Additionally, the new value must be different from the previous value.",
"action": "Sends a notification to the Castle Log with the title 'CTC' and a message stating that CTC has released a new software version, showing both the new version and the old version."
},
"human_like": "Sends a notification when the CTC software version sensor reports a new, valid version number.",
"complexity": "medium"
}
},
{
"id": "6c309c9c-d7d0-440a-a49f-fc4e97dcfa76",
"result": {
"structured": "TRIGGER: When dishwasher operationstate [sensor.012050386564014027_bsh_common_status_operationstate] changes from Ready OR DelayedStart to Run OR when dishwasher operationstate [sensor.012050386564014027_bsh_common_status_operationstate] changes from Run to Finished. CONDITIONS: None. ACTIONS: If the trigger is start, set dishwasher start [input_number.dishwasher_start] to the current value of shelly dishwasher energy [sensor.shelly_dishwasher_energy]. If the trigger is finished, calculate consumption as (current shelly dishwasher energy [sensor.shelly_dishwasher_energy] minus dishwasher start [input_number.dishwasher_start]) rounded to 2 decimal places, then send a notification to castle with title 'Diskmaskinen' and message 'Disken klar! (förbrukning: {{consumption}}kWh)'.",
"natural_language": {
"trigger": "When the dishwasher operationstate [sensor.012050386564014027_bsh_common_status_operationstate] starts running from either a 'Ready' or 'DelayedStart' state, or when it finishes running and changes to a 'Finished' state.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "If the dishwasher just started, the automation records the current energy reading from the shelly dishwasher energy [sensor.shelly_dishwasher_energy] sensor into the dishwasher start [input_number.dishwasher_start] helper. If the dishwasher just finished, it calculates the total energy consumed during the cycle by subtracting the recorded start value from the current energy reading, and then sends a notification titled 'Diskmaskinen' with a message stating the dishes are ready and the consumption in kWh."
},
"human_like": "Tracks when the dishwasher starts and finishes, sending a notification with the energy consumption when the cycle is complete.",
"complexity": "medium"
}
},
{
"id": "c2d665a4-53ca-4456-ae99-be0a6a37dc8e",
"result": {
"structured": "TRIGGER: When dishwasher remotecontrolstartallowed [binary_sensor.012050386564014027_bsh_common_status_remotecontrolstartallowed] changes from off to on. CONDITIONS: (dishwasher remotecontrolstartallowed [binary_sensor.012050386564014027_bsh_common_status_remotecontrolstartallowed] is on). ACTIONS: Send a notification to castle with title 'Diskmaskinen' and a message containing the timestamp of el next cheapest hour [sensor.el_next_cheapest_hour]. Then, use text-to-speech on Kitchen Display [media_player.kitchen_display] to announce the dishwasher start time, using conditional logic to add context like 'ikväll', 'i morgon', or 'inatt' based on the hour. Finally, start the 'Kurz60' program on Dishwasher Device [device_id:7b6022c5a26eda9e5f48679e4274a490] with a delayed start time calculated as the seconds difference between el next cheapest hour [sensor.el_next_cheapest_hour] and the current time.",
"natural_language": {
"trigger": "When the dishwasher remotecontrolstartallowed [binary_sensor.012050386564014027_bsh_common_status_remotecontrolstartallowed] changes from off to on, indicating the dishwasher is ready for remote start.",
"conditions": "The automation checks that the dishwasher remotecontrolstartallowed [binary_sensor.012050386564014027_bsh_common_status_remotecontrolstartallowed] is still on.",
"action": "Sends a notification with the title 'Diskmaskinen' and a message containing the next cheapest electricity hour. Then, uses text-to-speech on the Kitchen Display [media_player.kitchen_display] to announce the planned start time, adjusting the phrasing to 'tonight', 'tomorrow', or 'tonight' based on the hour. Finally, starts the dishwasher's 'Kurz60' program with a delay so it begins at the next cheapest electricity hour."
},
"human_like": "Starts the dishwasher at the next cheapest electricity hour when it's ready, and announces the planned start time.",
"complexity": "medium"
}
},
{
"id": "c17f73fe-8285-494b-b502-e7d42c39c832",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When boiler room door contact [binary_sensor.boiler_room_door_contact] changes from closed (off) to open (on) and remains open for 10 minutes OR When boiler room door contact [binary_sensor.boiler_room_door_contact] changes from open (on) to closed (off) OR At 21:00:00. CONDITIONS: None. ACTIONS: If boiler room door contact [binary_sensor.boiler_room_door_contact] is open, then create a persistent notification titled 'Pannrummet' with message 'Pannrumsdörren är öppen!' and send a notification to the family group titled 'Pannrumet' with message 'Dörren är öppen!'. Otherwise, dismiss the persistent notification and send a notification to the family group to clear notifications with the tag 'boilerroom'.",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when Home Assistant starts up, when any automation is reloaded, when the boiler room door contact [binary_sensor.boiler_room_door_contact] opens and stays open for 10 minutes, when the door closes, or at 9:00 PM every day.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "If the boiler room door contact [binary_sensor.boiler_room_door_contact] is open, the automation creates a persistent notification and sends an alert to the family. If the door is not open (i.e., it is closed), the automation dismisses the persistent notification and sends a command to clear the previous family notification."
},
"human_like": "Sends notifications when the boiler room door is left open for too long, and clears them when it's closed, with daily reminders at 9 PM.",
"complexity": "medium"
}
},
{
"id": "54036205-5324-4d60-aa95-e24f9ff99a34",
"result": {
"structured": "TRIGGER: When wardrobe terrace bt proxy door bell [binary_sensor.wardrobe_terrace_bt_proxy_door_bell] changes from off to on OR when front door doorbell ding [binary_sensor.front_door_doorbell_ding] changes from off to on. CONDITIONS: None. ACTIONS: If house mode away [input_boolean.house_mode_away] is off, then send a notification to family with title 'Dörrklockan' and message 'Det ringer på dörrklockan!'. Otherwise, send the same notification.",
"natural_language": {
"trigger": "When either the wardrobe terrace bt proxy door bell [binary_sensor.wardrobe_terrace_bt_proxy_door_bell] or the front door doorbell ding [binary_sensor.front_door_doorbell_ding] is activated, changing its state from off to on.",
"conditions": "There are no additional conditions that must be met before the action is performed.",
"action": "If the house mode away [input_boolean.house_mode_away] is turned off, a notification is sent to the family with the title 'Dörrklockan' and the message 'Det ringer på dörrklockan!'. If the house mode away is on, the same notification is still sent."
},
"human_like": "Sends a notification to the family when the doorbell rings, regardless of whether the house is in away mode or not.",
"complexity": "low"
}
},
{
"id": "e0e5220c-f753-4adb-9a48-d574928ada9c",
"result": {
"structured": "TRIGGER: When ferroamp xl28 system state [sensor.ferroamp_xl28_system_state] changes state, provided the previous state is NOT 'none', 'unknown', or 'unavailable' AND the new state is NOT 'none', 'unknown', or 'unavailable'. CONDITIONS: None. ACTIONS: If the new state, when converted to an integer, is greater than 0, then send a notification to castle_log with a title 'Ferroamp ehub' and a message that includes the entity name, the new state value, and a list of error codes derived by converting the state from hexadecimal to an integer and identifying which bits are set. Otherwise, send a notification to castle_log with a title 'Ferroamp ehub' and a message stating the entity name reports state '0'.",
"natural_language": {
"trigger": "Whenever the ferroamp xl28 system state [sensor.ferroamp_xl28_system_state] changes to a new value, as long as both the previous and new states are not 'none', 'unknown', or 'unavailable'.",
"conditions": "There are no additional conditions to check.",
"action": "If the new state value, when treated as a number, is greater than zero, the automation sends a detailed log notification. This notification includes the sensor's name, the raw state value, and a list of specific error codes calculated by interpreting the state as a hexadecimal number and checking which bits are set. If the new state value is zero, it sends a simpler log notification stating that the sensor reports state '0'."
},
"human_like": "Logs detailed error information from the Ferroamp energy hub system whenever its status changes, providing a decoded list of active error codes if any are present.",
"complexity": "medium"
}
},
{
"id": "0fc03d6f-62ca-4a0f-b8a6-52873e84d2d5",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When the state of nordpool se2 [sensor.nordpool_se2] changes. CONDITIONS: None. ACTIONS: Set electricity price level [input_number.electricity_price_level] to a value determined by a template. The template logic is: If the current state of nordpool se2 [sensor.nordpool_se2] as a float is greater than 2.5, set p=5. Else if greater than 1.5, set p=4. Else if greater than 0.5, set p=3. Else if greater than or equal to 0, set p=2. Else if less than 0, set p=1. Then, if the current state of momentary active export [sensor.momentary_active_export] as a float is greater than 1 AND p is less than or equal to 2, decrement p by 1. Finally, set the input_number to the resulting value of p.",
"natural_language": {
"trigger": "The automation runs when Home Assistant first starts up, when any automation is reloaded, or whenever the electricity price sensor, nordpool se2 [sensor.nordpool_se2], changes its state.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "Calculates a price level based on the current electricity price from nordpool se2 [sensor.nordpool_se2] and the current export level from momentary active export [sensor.momentary_active_export]. The price level is set on a scale from 1 to 5, where higher prices correspond to higher numbers. If the home is exporting more than 1 kW of power and the initial price level is 2 or lower, the level is reduced by one. The final calculated level is then set for the electricity price level [input_number.electricity_price_level]."
},
"human_like": "Updates a price level indicator based on the current electricity spot price and whether the home is exporting power.",
"complexity": "medium"
}
},
{
"id": "a8a350a1-44dc-4a92-b272-7336812df8e4",
"result": {
"structured": "TRIGGER: When boiler climate acc tank bottom [sensor.boiler_climate_acc_tank_bottom] remains below 40°C for 15 minutes. CONDITIONS: None. ACTIONS: Send a notification to the 'family' notification service with the title 'Vedpannan' and a message stating it's time to add wood, including the current temperature from boiler climate acc tank bottom [sensor.boiler_climate_acc_tank_bottom].",
"natural_language": {
"trigger": "When the temperature sensor for the boiler's accumulator tank bottom [sensor.boiler_climate_acc_tank_bottom] stays below 40 degrees Celsius for a continuous period of 15 minutes.",
"conditions": "There are no additional conditions that must be met.",
"action": "Sends a persistent notification to the family group with the title 'Vedpannan' and a message indicating it's time to add wood, which includes the current temperature reading from the sensor."
},
"human_like": "Sends a reminder to the family when the boiler's bottom tank temperature has been low for 15 minutes, indicating it's time to add more wood.",
"complexity": "low"
}
},
{
"id": "db5a1105-9962-4ed3-8959-aa2f97e37b31",
"result": {
"structured": "TRIGGER: When boiler climate acc tank mid [sensor.boiler_climate_acc_tank_mid] remains below 60°C for 15 minutes. CONDITIONS: None. ACTIONS: Send a notification to family [notify.family] with title 'Vedpannan' and message 'Hög till att elda! (Acktank mitten: {{ states('sensor.boiler_climate_acc_tank_mid') }}C)', with notification tag 'boiler', sticky flag set to true, and push badge count 2.",
"natural_language": {
"trigger": "When the temperature sensor for the middle of the boiler's accumulator tank [sensor.boiler_climate_acc_tank_mid] stays below 60 degrees Celsius for a continuous period of 15 minutes.",
"conditions": "There are no additional conditions that must be met.",
"action": "Sends a persistent notification to the family group [notify.family] with the title 'Vedpannan' and a message prompting to add more wood to the fire, including the current temperature reading. The notification is tagged for the boiler, set to remain visible, and has a badge count of 2."
},
"human_like": "Sends a reminder to the family to add wood to the boiler when the middle tank temperature has been low for 15 minutes.",
"complexity": "low"
}
},
{
"id": "e2b1fa65-55e5-47a1-8420-1b0e4cda14e4",
"result": {
"structured": "TRIGGER: When boiler climate acc tank bottom [sensor.boiler_climate_acc_tank_bottom] remains above 40 for 15 minutes. CONDITIONS: None. ACTIONS: Send a notification to notify.family with message 'clear_notification' and data tag 'boiler'.",
"natural_language": {
"trigger": "When the temperature sensor for the boiler's climate accumulator tank bottom [sensor.boiler_climate_acc_tank_bottom] stays above 40 degrees for a continuous period of 15 minutes.",
"conditions": "There are no additional conditions that must be met.",
"action": "Sends a notification to the family group with a command to clear any existing notifications tagged as 'boiler'."
},
"human_like": "Clears boiler-related notifications when the tank bottom temperature has been high for 15 minutes.",
"complexity": "low"
}
},
{
"id": "b810302f-435f-4c2e-a69b-fbc1321d56f8",
"result": {
"structured": "TRIGGER: When boiler climate wood boiler supply [sensor.boiler_climate_wood_boiler_supply] falls below 80. CONDITIONS: boiler climate acc tank bottom [sensor.boiler_climate_acc_tank_bottom] is below 70. ACTIONS: Send a notification to family [notify.family] with title 'Vedpannan' and message 'Dags att lägga i mera ved! (Acktank botten: {{ states('sensor.boiler_climate_acc_tank_bottom') }}C)' with tag 'boiler', sticky true, and push badge 3.",
"natural_language": {
"trigger": "When the temperature from the wood boiler supply sensor [sensor.boiler_climate_wood_boiler_supply] drops below 80 degrees.",
"conditions": "If the temperature at the bottom of the accumulator tank [sensor.boiler_climate_acc_tank_bottom] is also below 70 degrees.",
"action": "Sends a persistent notification to the family group with the title 'Vedpannan' and a message stating it's time to add more wood, including the current accumulator tank bottom temperature."
},
"human_like": "Sends a reminder to add more wood to the boiler when both the boiler supply and accumulator tank temperatures are low.",
"complexity": "low"
}
},
{
"id": "818c0f02-8d9c-4859-bfc2-ecf54897bace",
"result": {
"structured": "TRIGGER: When shower derivative [sensor.shower_derivative] is above 50. CONDITIONS: None. ACTIONS: Choose one sequence based on conditions: (IF electricity price level [input_number.electricity_price_level] is above 3 THEN send a notification 'Duschen' with message 'Någon har duschat, men för dyr el för att starta golvvärmen!' AND turn off Laundry Room Channel 2 Switch [switch.laundry_room_channel_2]) OR (IF Laundry Room Channel 2 Switch [switch.laundry_room_channel_2] is off THEN send a notification 'Duschen' with message 'Någon har duschat, startar golvvärmen (derivat: {{trigger.to_state.state}})' AND turn on Laundry Room Channel 2 Switch [switch.laundry_room_channel_2]). Finally, set shower last detected [input_datetime.shower_last_detected] to the current timestamp.",
"natural_language": {
"trigger": "When the shower derivative [sensor.shower_derivative] rises above 50, indicating that a shower has likely started.",
"conditions": "There are no global conditions for this automation. The actions are chosen based on internal conditions.",
"action": "The automation first checks if the electricity price level [input_number.electricity_price_level] is too high (above 3). If it is, it sends a notification to the log stating that someone has showered but the electricity is too expensive to start the floor heating, and it ensures the floor heating switch (Laundry Room Channel 2 Switch [switch.laundry_room_channel_2]) is turned off. Otherwise, if the floor heating switch is currently off, it sends a notification that someone has showered and is starting the floor heating, and then turns on the switch. Regardless of the chosen path, it also updates the shower last detected [input_datetime.shower_last_detected] timestamp to the current time."
},
"human_like": "Starts the bathroom floor heating when a shower begins, but only if the electricity price is not too high, and logs the event.",
"complexity": "medium"
}
},
{
"id": "decdc5d9-5bd0-41ab-bf91-7e77a38e49b3",
"result": {
"structured": "TRIGGER: When the template condition 'endtime' evaluates true (more than 7200 seconds have passed since the timestamp stored in shower last detected [input_datetime.shower_last_detected]) OR When shower derivative [sensor.shower_derivative] remains below 50 for 120 minutes OR When motion bathroom upstairs occupancy [binary_sensor.motion_bathroom_upstairs_occupancy] changes state OR When the time pattern matches every 5 minutes. CONDITIONS: (Laundry Room Channel 2 Switch [switch.laundry_room_channel_2] is on AND remains on for 240 minutes AND (trigger is motion OR trigger is time)) OR (Laundry Room Channel 2 Switch [switch.laundry_room_channel_2] is on AND (trigger is endtime OR trigger is endder)). ACTIONS: Send a notification to castle_log with title 'Duschen' and a message containing the duration the switch has been on and the trigger ID, then turn off Laundry Room Channel 2 Switch [switch.laundry_room_channel_2].",
"natural_language": {
"trigger": "The automation can be triggered in four ways: 1) When more than two hours (7200 seconds) have passed since the last shower was detected, as recorded by the shower last detected [input_datetime.shower_last_detected]. 2) When the shower derivative [sensor.shower_derivative] sensor value stays below 50 for a continuous period of two hours. 3) When motion is detected or stops being detected by the motion bathroom upstairs occupancy [binary_sensor.motion_bathroom_upstairs_occupancy] sensor. 4) On a recurring schedule, every five minutes.",
"conditions": "If the trigger was either motion detection or the five-minute timer, the automation requires that the Laundry Room Channel 2 Switch [switch.laundry_room_channel_2] has been in the 'on' state for at least four hours. Alternatively, if the trigger was the shower time-out or the low derivative condition, the automation only requires that the Laundry Room Channel 2 Switch [switch.laundry_room_channel_2] is currently on.",
"action": "The automation sends a detailed log notification to 'castle_log' stating that the floor heating has been turned off, including how long it was active and which trigger caused the action. It then proceeds to turn off the Laundry Room Channel 2 Switch [switch.laundry_room_channel_2]."
},
"human_like": "Automatically turns off the bathroom floor heating after a shower has finished, using a combination of time, humidity, and motion sensors to determine when it's safe to do so.",
"complexity": "high"
}
},
{
"id": "e473c7d9-772e-4084-a3aa-9ad6b20781d7",
"result": {
"structured": "TRIGGER: When laundry freezer temperature [sensor.laundry_freezer_temperature] OR garage freezer temperature [sensor.garage_freezer_temperature] is above -15°C for 1 minute. CONDITIONS: None. ACTIONS: Send a notification to the family group with the title 'Frysen' and a message that includes the friendly name of the triggering sensor (mapped from its entity_id) and its current temperature, formatted as: \"För hög temperatur in [friendly name]! ([temperature]C)\". The notification is sticky and tagged with 'freezer'.",
"natural_language": {
"trigger": "When the temperature of either the laundry freezer [sensor.laundry_freezer_temperature] or the garage freezer [sensor.garage_freezer_temperature] stays above -15°C for at least one minute.",
"conditions": "There are no additional conditions that must be met.",
"action": "Sends a sticky notification to the family group, alerting them that the temperature is too high in the specific freezer that triggered the alarm. The message uses a friendly name for the freezer (e.g., 'frysen i tvättstugan') and includes the current temperature."
},
"human_like": "Sends an alarm to the family if any freezer temperature gets too warm for more than a minute.",
"complexity": "low"
}
},
{
"id": "434a2b9a-4da7-4bd2-9229-b755ce7d3379",
"result": {
"structured": "TRIGGER: When laundry freezer temperature [sensor.laundry_freezer_temperature] OR garage freezer temperature [sensor.garage_freezer_temperature] remains above -10°C for 1 minute. CONDITIONS: None. ACTIONS: While the triggering sensor's state remains above -10°C, repeatedly: Send a critical notification to the family with a title 'Frysen kritisk!' and a message indicating the critical temperature in the specific freezer (mapped from the triggering entity) and its current temperature, then wait for 15 minutes.",
"natural_language": {
"trigger": "When the temperature of either the laundry freezer [sensor.laundry_freezer_temperature] or the garage freezer [sensor.garage_freezer_temperature] stays above -10°C for at least one minute.",
"conditions": "There are no additional conditions that must be met for the automation to run.",
"action": "As long as the temperature of the freezer that triggered the automation remains above -10°C, the system will repeatedly send a high-priority, sticky notification to the family. The notification will have the title 'Frysen kritisk!' and a message specifying which freezer has the critical temperature and its current value. After each notification, the automation waits for 15 minutes before checking the temperature and potentially sending another notification."
},
"human_like": "Sends repeated critical alerts to the family if any freezer temperature rises above -10°C, reminding them every 15 minutes until the temperature drops.",
"complexity": "medium"
}
},
{
"id": "694696c1-1ef4-49a4-a340-9edfe3e84652",
"result": {
"structured": "TRIGGER: When driveway bus count [sensor.driveway_bus_count] OR driveway car count [sensor.driveway_car_count] OR driveway cat count [sensor.driveway_cat_count] OR driveway horse count [sensor.driveway_horse_count] OR driveway bike count [sensor.driveway_bike_count] OR driveway person count [sensor.driveway_person_count] changes state, provided the new state is not unknown, unavailable, or none. CONDITIONS: None. ACTIONS: If the new state value is greater than the previous state value, then set a variable 'object' to the second part of the triggering entity's ID (e.g., 'bus' from 'sensor.driveway_bus_count') and increment the corresponding counter named counter.driveway_{object}.",
"natural_language": {
"trigger": "When any of the driveway object count sensors (for buses, cars, cats, horses, bikes, or people) changes its state, as long as the new state is a valid number and not 'unknown', 'unavailable', or 'none'.",
"conditions": "There are no additional conditions that must be met.",
"action": "If the new count is higher than the previous count, the automation extracts the object type (like 'bus' or 'car') from the sensor's name and increases the corresponding counter for that object in the driveway."
},
"human_like": "Increments a driveway counter for a specific object type (like cars or people) whenever its count sensor increases.",
"complexity": "medium"
}
},
{
"id": "01e2891c-1639-4188-9b6e-6f85a5fe3ef8",
"result": {
"structured": "TRIGGER: When the time is 02:35. CONDITIONS: None. ACTIONS: Publish a message with payload 'justdoit' to the MQTT topic 'frigate/restart'.",
"natural_language": {
"trigger": "The automation runs every day at 2:35 AM.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "Sends an MQTT command with the payload 'justdoit' to the topic 'frigate/restart'."
},
"human_like": "Sends a restart command to Frigate every night at 2:35 AM.",
"complexity": "low"
}
},
{
"id": "1ceb3ae2-9210-4eb2-8006-be665ee1bcad",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When house mode daylight [input_boolean.house_mode_daylight] changes state. CONDITIONS: None. ACTIONS: If house mode daylight [input_boolean.house_mode_daylight] is on, then for each camera zone (barn, driveway, parking, parking_barn, parking_house) publish MQTT OFF payload to topic frigate/<zone>/improve_contrast/set. Otherwise (default), for each camera zone (barn, driveway, parking, parking_barn, parking_house) publish MQTT ON payload to topic frigate/<zone>/improve_contrast/set.",
"natural_language": {
"trigger": "The automation triggers when Home Assistant first starts, when any automation is reloaded, or whenever the house mode daylight [input_boolean.house_mode_daylight] changes its state.",
"conditions": "There are no additional conditions to evaluate.",
"action": "If the house mode daylight [input_boolean.house_mode_daylight] is turned on, the automation sends an MQTT command to turn off the 'improve contrast' setting for five specific Frigate camera zones: barn, driveway, parking, parking_barn, and parking_house. If the house mode daylight is not on, it sends an MQTT command to turn on the 'improve contrast' setting for the same five zones."
},
"human_like": "Adjusts the video contrast settings for security cameras based on whether it's daytime, turning contrast enhancement off during daylight and on otherwise.",
"complexity": "medium"
}
},
{
"id": "5bc946bf-8ab1-4791-bb9b-dbcebf2282dd",
"result": {
"structured": "TRIGGER: When voltage phase 1 [sensor.voltage_phase_1] OR voltage phase 2 [sensor.voltage_phase_2] OR voltage phase 3 [sensor.voltage_phase_3] drops below 200V. CONDITIONS: None. ACTIONS: Send a notification to family [notify.family] and to castle [notify.castle] with a title 'Nätanslutning!' and a message stating the voltage on the triggering sensor and its current value.",
"natural_language": {
"trigger": "When the voltage on any of the three phase sensors (voltage phase 1 [sensor.voltage_phase_1], voltage phase 2 [sensor.voltage_phase_2], or voltage phase 3 [sensor.voltage_phase_3]) falls below 200 volts.",
"conditions": "There are no additional conditions that must be met.",
"action": "Sends a high-priority, sticky, and public notification to the family group [notify.family] and to the castle [notify.castle]. The notification has the title 'Nätanslutning!' and a message specifying which sensor triggered the alert and its current voltage reading."
},
"human_like": "Sends an alert if the voltage on any electrical phase drops too low, warning about a potential grid connection issue.",
"complexity": "low"
}
},
{
"id": "1faad88f-0758-4ef9-820e-d31df12a46b2",
"result": {
"structured": "TRIGGER: When Home Assistant starts. CONDITIONS: None. ACTIONS: Call service rest_command.report_ha_version with data: user: secret ha_report_user.",
"natural_language": {
"trigger": "When Home Assistant finishes starting up.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a report of the Home Assistant version by calling the 'report_ha_version' REST command, passing a specific user identifier."
},
"human_like": "Sends a notification with the Home Assistant version number to a remote service whenever the system starts up.",
"complexity": "low"
}
},
{
"id": "f98ff89c-0513-4993-a404-8e72f01da65a",
"result": {
"structured": "TRIGGER: When latest ha version [sensor.latest_ha_version] changes state, provided the previous state is NOT none, unknown, unavailable, or null AND the new state is NOT none, unknown, unavailable, or null. CONDITIONS: None. ACTIONS: If the previous state is NOT none, unknown, unavailable, or null AND the new state is NOT none, unknown, unavailable, or null AND the new state is different from the previous state, then send a mobile notification with title 'New HA release' and message containing the current version.",
"natural_language": {
"trigger": "When the latest ha version [sensor.latest_ha_version] sensor updates its value, but only if the change is from and to a valid state (not 'none', 'unknown', 'unavailable', or 'null').",
"conditions": "There are no separate conditions; the logic is handled within the action's choose block.",
"action": "If the version change is valid and the new version is different from the old one, send a notification to a mobile device with the title 'New HA release' and a message showing the current version number."
},
"human_like": "Sends a mobile notification when a new Home Assistant version is detected.",
"complexity": "medium"
}
},
{
"id": "30e75135-6044-4d14-bc8c-75ba60c7fe0e",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When ctc hs1 status [sensor.ctc_hs1_status] changes state. CONDITIONS: None. ACTIONS: If ctc hs1 status [sensor.ctc_hs1_status] is '0', then turn off floor heating circulation pump [switch.floor_heating_circulation_pump]. Otherwise, turn on floor heating circulation pump [switch.floor_heating_circulation_pump].",
"natural_language": {
"trigger": "The automation runs when Home Assistant starts up, when any automation is reloaded, or when the status of the ctc hs1 status [sensor.ctc_hs1_status] sensor changes.",
"conditions": "There are no conditions that must be met for the action to proceed.",
"action": "If the ctc hs1 status [sensor.ctc_hs1_status] reports a value of '0', the floor heating circulation pump [switch.floor_heating_circulation_pump] is turned off. In all other cases, the pump is turned on."
},
"human_like": "Controls the floor heating pump based on the status of the heating system, turning it on or off automatically.",
"complexity": "medium"
}
},
{
"id": "9108277c-4a52-47f6-8481-32813b096a0f",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When the state of house mode away [input_boolean.house_mode_away] OR house mode sleep [input_boolean.house_mode_sleep] OR Home Zone [zone.home] OR electricity price level [input_number.electricity_price_level] OR house vvc preheat [input_boolean.house_vvc_preheat] changes OR At specific times: 06:00:00, 21:00:00, 06:30:00, 08:00:00, 10:45:00, 11:30:00, 16:00:00, 18:00:00. CONDITIONS: None. ACTIONS: Choose the first matching condition: 1) If house mode away [input_boolean.house_mode_away] is on OR house mode sleep [input_boolean.house_mode_sleep] is on, then turn off house vvc [input_boolean.house_vvc]. 2) If house vvc preheat [input_boolean.house_vvc_preheat] is on, then turn on house vvc [input_boolean.house_vvc]. 3) If electricity price level [input_number.electricity_price_level] is above 3, then turn off house vvc [input_boolean.house_vvc]. 4) If (the number of people in Home Zone [zone.home] is 1 AND the first person is Linus [person.linus] AND workday linus [input_boolean.workday_linus] is on) AND electricity price level [input_number.electricity_price_level] is greater than 2, then: Choose the first matching condition: a) If the current time is between 06:30:00 and 08:00:00 OR between 10:45:00 and 11:30:00 OR between 16:00:00 and 18:00:00, then turn on house vvc [input_boolean.house_vvc]. b) Otherwise, turn off house vvc [input_boolean.house_vvc]. 5) If the current time is between 06:00:00 and 21:00:00, then turn on house vvc [input_boolean.house_vvc]. 6) Otherwise (default), turn off house vvc [input_boolean.house_vvc].",
"natural_language": {
"trigger": "The automation can be triggered when Home Assistant starts, when any automation is reloaded, when the state of house mode away [input_boolean.house_mode_away], house mode sleep [input_boolean.house_mode_sleep], the Home Zone [zone.home], the electricity price level [input_number.electricity_price_level], or house vvc preheat [input_boolean.house_vvc_preheat] changes, or at specific times of day: 06:00, 21:00, 06:30, 08:00, 10:45, 11:30, 16:00, and 18:00.",
"conditions": "There are no global conditions for this automation. The actions are determined by a series of choices based on the state of the house and the time.",
"action": "The automation decides whether to turn the house vvc [input_boolean.house_vvc] on or off based on a priority list. First, if the house is in away or sleep mode, it turns the VVC off. Second, if preheat is active, it turns the VVC on. Third, if the electricity price is very high (above level 3), it turns the VVC off. Fourth, if only Linus is home and it's his workday and the electricity price is above level 2, it checks the time: if it's within specific morning, late morning, or afternoon windows, it turns the VVC on; otherwise, it turns it off. Fifth, if it's daytime (between 06:00 and 21:00), it turns the VVC on. If none of the above apply, it turns the VVC off."
},
"human_like": "This automation manages the home's VVC system, turning it on during daytime hours or specific preheat periods, but turning it off during away/sleep modes, high electricity prices, or when only Linus is home on a workday outside of his scheduled times.",
"complexity": "high"
}
},
{
"id": "b755328d-ad0c-4f7f-94e4-50d583e06639",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When the state of house vvc [input_boolean.house_vvc], house vvc block [input_boolean.house_vvc_block], boilerroom manual mode [input_boolean.boilerroom_manual_mode], vvc stop [input_number.vvc_stop], or vvc diff [input_number.vvc_diff] changes OR When the computed value (wardrobe house hot water supply [sensor.wardrobe_house_hot_water_supply] minus (vvc stop [input_number.vvc_stop] minus vvc diff [input_number.vvc_diff])) is below 0 OR When wardrobe house hot water supply [sensor.wardrobe_house_hot_water_supply] is above vvc stop [input_number.vvc_stop]. CONDITIONS: None. ACTIONS: Choose action based on conditions: 1. If house vvc block [input_boolean.house_vvc_block] is on, then turn off vvc pump [switch.vvc_pump]. 2. Else if (house vvc [input_boolean.house_vvc] is on) AND (boilerroom manual mode [input_boolean.boilerroom_manual_mode] is off), then: Choose sub-action: If wardrobe house hot water supply [sensor.wardrobe_house_hot_water_supply] is below vvc stop [input_number.vvc_stop], then turn on vvc pump [switch.vvc_pump]; otherwise, turn off vvc pump [switch.vvc_pump]. 3. Otherwise (default), turn off vvc pump [switch.vvc_pump].",
"natural_language": {
"trigger": "The automation triggers when Home Assistant starts up, when any automation is reloaded, when any of the control switches or number inputs (house vvc, house vvc block, boilerroom manual mode, vvc stop, or vvc diff) change state, when the calculated hot water supply temperature (adjusted by the vvc stop and vvc diff values) falls below zero, or when the hot water supply temperature directly exceeds the vvc stop threshold.",
"conditions": "There are no global conditions; the automation evaluates a set of nested choices to decide the action.",
"action": "First, if the block switch is active (house vvc block is on), the vvc pump is turned off. If not blocked, and if the main vvc switch is on and manual mode is off, the automation checks the current hot water supply temperature. If the temperature is below the stop threshold, the pump is turned on; otherwise, it is turned off. In all other cases (e.g., if the main vvc switch is off or manual mode is on), the pump is turned off."
},
"human_like": "Controls a heating circulation pump based on water temperature and user settings, ensuring the pump is off if blocked, in manual mode, or when the temperature is sufficient.",
"complexity": "medium"
}
},
{
"id": "d7bb04cd-922f-4515-8eba-90c59f2e37c8",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When house vvc preheat [input_boolean.house_vvc_preheat] changes from off to on AND remains on for 10 minutes. ACTIONS: Turn off house vvc preheat [input_boolean.house_vvc_preheat].",
"natural_language": {
"trigger": "When Home Assistant starts up, when any automation is reloaded, or when the house vvc preheat [input_boolean.house_vvc_preheat] switch is turned on and stays on for ten minutes.",
"conditions": "There are no additional conditions to evaluate.",
"action": "Turns off the house vvc preheat [input_boolean.house_vvc_preheat] switch."
},
"human_like": "Automatically turns off the house VVC preheat switch after it has been on for ten minutes, or resets it when Home Assistant restarts or automations are reloaded.",
"complexity": "low"
}
},
{
"id": "2bafd69e-6ba4-47b6-a2cb-e11aa6585759",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When ctc power immersion heater upper [sensor.ctc_power_immersion_heater_upper] OR ctc power immersion heater lower [sensor.ctc_power_immersion_heater_lower] power consumption goes above 0. CONDITIONS: None. ACTIONS: If the trigger was the heater power consumption going above 0, then create a persistent notification 'Värmepumpen går på tillsatsvärme!' and send a family notification 'Värmepumpen går på tillsatsvärme!'. Else, if the current power consumption of ctc power immersion heater upper [sensor.ctc_power_immersion_heater_upper] OR ctc power immersion heater lower [sensor.ctc_power_immersion_heater_lower] is already above 0, then also create the same persistent notification and send the same family notification. Otherwise (default), dismiss the persistent notification and send a family notification to clear notifications with tag 'ctc'.",
"natural_language": {
"trigger": "The automation triggers in three situations: when Home Assistant first starts up, when any automation is reloaded, or when the power consumption of either the ctc power immersion heater upper [sensor.ctc_power_immersion_heater_upper] or the ctc power immersion heater lower [sensor.ctc_power_immersion_heater_lower] rises above zero.",
"conditions": "There are no conditions that must be met after a trigger occurs.",
"action": "If the trigger was the heater power consumption rising above zero, the system creates a persistent notification and sends a message to the family group stating 'Värmepumpen går på tillsatsvärme!' (The heat pump is using supplementary heat!). If the heater power is already above zero when the automation runs (e.g., on startup or reload), it also sends the same notifications. In all other cases, it clears the persistent notification and sends a command to clear any family notifications tagged 'ctc'."
},
"human_like": "Notifies the household when the heat pump's supplementary heater is active, and clears the notification when it's not.",
"complexity": "medium"
}
},
{
"id": "20a9b1ed-82fb-4207-9e38-47e5483bb15a",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When ctc status [sensor.ctc_status] changes state. CONDITIONS: None. ACTIONS: Set the option for select heatpump circuit daily energy [select.heatpump_circuit_daily_energy], select heatpump circuit weekly energy [select.heatpump_circuit_weekly_energy], select heatpump circuit monthly energy [select.heatpump_circuit_monthly_energy], select heatpump circuit yearly energy [select.heatpump_circuit_yearly_energy], and select heatpump circuit energy [select.heatpump_circuit_energy] to 'for_hw' if ctc status [sensor.ctc_status] is '5', otherwise set to 'for_hs'.",
"natural_language": {
"trigger": "The automation triggers when Home Assistant first starts up, when any automation is reloaded, or whenever the ctc status [sensor.ctc_status] sensor changes its state.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "Sets the selected circuit for several heatpump energy meters. If the ctc status [sensor.ctc_status] is '5', the option 'for_hw' is selected for all target entities. If the status is any other value, the option 'for_hs' is selected instead."
},
"human_like": "Configures the heatpump's energy tracking circuits based on the current system status, ensuring the correct circuit (hot water or heating) is selected for utility meters.",
"complexity": "medium"
}
},
{
"id": "47f449a4-9745-4d9f-b9ca-80b681f42fad",
"result": {
"structured": "TRIGGER: Every 10 minutes (time pattern). CONDITIONS: None. ACTIONS: Press the identify button for conservatory slidewindow 1 identify [button.conservatory_slidewindow_1_identify], conservatory slidewindow 2 identify [button.conservatory_slidewindow_2_identify], conservatory slidewindow 3 identify [button.conservatory_slidewindow_3_identify], conservatory ext door identify [button.conservatory_ext_door_identify], and terrace slidewindows identify [button.terrace_slidewindows_identify].",
"natural_language": {
"trigger": "The automation runs every 10 minutes.",
"conditions": "There are no conditions to check.",
"action": "It presses the identify button for several devices: conservatory slidewindow 1 identify [button.conservatory_slidewindow_1_identify], conservatory slidewindow 2 identify [button.conservatory_slidewindow_2_identify], conservatory slidewindow 3 identify [button.conservatory_slidewindow_3_identify], conservatory ext door identify [button.conservatory_ext_door_identify], and terrace slidewindows identify [button.terrace_slidewindows_identify]."
},
"human_like": "Periodically presses the identify buttons for several windows and doors every 10 minutes to keep them alive.",
"complexity": "low"
}
},
{
"id": "867a2339-c168-4721-8dff-627547df2e02",
"result": {
"structured": "TRIGGER: When krisinformation vasternorrlands lan [sensor.krisinformation_vasternorrlands_lan] changes state to any value not equal to '0'. CONDITIONS: None. ACTIONS: Send a notification to castle with title and message derived from the first alert in the sensor's attributes.",
"natural_language": {
"trigger": "When the sensor krisinformation vasternorrlands lan [sensor.krisinformation_vasternorrlands_lan] updates to a state that is not zero.",
"conditions": "There are no additional conditions that must be met.",
"action": "Sends a notification to the 'castle' target. The notification's title is set to the first alert's title from the sensor's attributes, and the message includes the alert's severity and description. The notification is configured to be high importance, sticky, public, and without a time-to-live."
},
"human_like": "Sends an immediate, prominent notification to the 'castle' device when a new crisis alert is received for Västernorrland County.",
"complexity": "low"
}
},
{
"id": "2d6264bb-66c5-45c5-9749-ad22b6eec0f5",
"result": {
"structured": "TRIGGER: When blitzortung lightning counter [sensor.blitzortung_lightning_counter] changes to any state other than '0'. CONDITIONS: (Trigger ID is 'lightning') AND (blitzortung lightning distance [sensor.blitzortung_lightning_distance] is below 3). ACTIONS: Send a notification to 'castle' with a title of 'Blixtnedslag' and a message containing the lightning distance and compass direction derived from blitzortung lightning azimuth [sensor.blitzortung_lightning_azimuth].",
"natural_language": {
"trigger": "When the blitzortung lightning counter [sensor.blitzortung_lightning_counter] detects a new lightning strike by changing from zero to any other number.",
"conditions": "The trigger must be the lightning counter change, and the reported lightning distance from blitzortung lightning distance [sensor.blitzortung_lightning_distance] must be less than 3 kilometers.",
"action": "Sends a high-priority, sticky, and public notification to 'castle' with the title 'Blixtnedslag' and a message stating the lightning distance and the compass direction calculated from the blitzortung lightning azimuth [sensor.blitzortung_lightning_azimuth]."
},
"human_like": "Sends an alert when a lightning strike is detected within 3 kilometers, showing the distance and direction.",
"complexity": "medium"
}
},
{
"id": "2f16522d-300d-4c7f-8a5c-d00d283b9438",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When motion bathroom downstairs occupancy [binary_sensor.motion_bathroom_downstairs_occupancy] changes from off to on OR When motion bathroom downstairs occupancy [binary_sensor.motion_bathroom_downstairs_occupancy] changes from on to off AND remains off for 120 seconds. CONDITIONS: (motion bathroom downstairs occupancy [binary_sensor.motion_bathroom_downstairs_occupancy] is on) AND (house mode away [input_boolean.house_mode_away] is off). ACTIONS: If conditions are met, turn on bathroom downstairs mirror [light.bathroom_downstairs_mirror] with brightness 255. Otherwise, turn off bathroom downstairs mirror [light.bathroom_downstairs_mirror].",
"natural_language": {
"trigger": "The automation triggers in four scenarios: when Home Assistant starts up, when any automation is reloaded, when motion is first detected in the downstairs bathroom, or when motion has been absent for two full minutes.",
"conditions": "For the lights to turn on, two conditions must be true: motion must currently be detected in the downstairs bathroom, and the house must not be in 'away' mode (since the cat can manage in the dark).",
"action": "If both conditions are met, the bathroom mirror light is turned on at full brightness. If the conditions are not met (for example, if motion stops or the house is in away mode), the bathroom mirror light is turned off."
},
"human_like": "Automatically turns on the downstairs bathroom light when motion is detected and someone is home, and turns it off after a period of no motion.",
"complexity": "medium"
}
},
{
"id": "498fd292-2419-447b-9dec-36d9cbf81a65",
"result": {
"structured": "TRIGGER: When washer state [sensor.washer_state] changes to centrifugate AND remains for 10 seconds OR When washer state [sensor.washer_state] changes from off, idle, centrifugate, or washing to rinsing AND remains for 10 seconds OR When washer state [sensor.washer_state] changes to off AND remains for 60 seconds OR When washer state [sensor.washer_state] changes to washing AND remains for 10 seconds. CONDITIONS: None. ACTIONS: Choose action based on trigger: IF trigger is washing THEN set input select washer state [input_select.washer_state] to washing. IF trigger is centrifugate THEN set input select washer state [input_select.washer_state] to centrifugate. IF trigger is off AND input select washer state [input_select.washer_state] is rinsing OR centrifugate THEN set input select washer state [input_select.washer_state] to off. IF trigger is rinsing THEN set input select washer state [input_select.washer_state] to rinsing. IF washer state [sensor.washer_state] is washing (state condition) THEN set input select washer state [input_select.washer_state] to washing.",
"natural_language": {
"trigger": "The automation triggers when the washer state [sensor.washer_state] enters and remains in the 'centrifugate' state for 10 seconds, or when it changes from 'off', 'idle', 'centrifugate', or 'washing' to 'rinsing' and stays there for 10 seconds, or when it changes to 'off' and stays off for 60 seconds, or when it changes to 'washing' and remains washing for 10 seconds.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "Depending on which trigger fired, the automation updates the input select washer state [input_select.washer_state] to match the washer's current phase. If the trigger was for 'washing', it sets the input select to 'washing'. If the trigger was for 'centrifugate', it sets it to 'centrifugate'. If the trigger was for 'off' and the input select is currently 'rinsing' or 'centrifugate', it sets it to 'off'. If the trigger was for 'rinsing', it sets it to 'rinsing'. Additionally, if the washer state sensor is simply in the 'washing' state (checked as a condition within the action), it also sets the input select to 'washing'."
},
"human_like": "This automation keeps a user-friendly input select synchronized with the actual state of the washing machine, updating it for each major cycle like washing, rinsing, and spinning.",
"complexity": "medium"
}
},
{
"id": "72a747af-989c-4843-9a35-10793047c0fe",
"result": {
"structured": "TRIGGER: When input select washer state [input_select.washer_state] changes from centrifugate OR washing OR rinsing to off. CONDITIONS: None. ACTIONS: Send a notification to family with title 'Tvättmaskinen' and message 'Tvätten är klar', using tag 'laundry'.",
"natural_language": {
"trigger": "When the washer's state changes from being in the 'centrifugate', 'washing', or 'rinsing' phases to the 'off' state.",
"conditions": "There are no conditions that need to be met.",
"action": "Sends a notification to the family group with the title 'Tvättmaskinen' and the message 'Tvätten är klar', tagged for laundry-related notifications."
},
"human_like": "Sends a notification when the washing machine finishes its cycle.",
"complexity": "low"
}
},
{
"id": "ed556d71-7706-408f-9223-fda6f14d3768",
"result": {
"structured": "TRIGGER: When dryer state [sensor.dryer_state] changes from 'drying' to 'off' AND remains 'off' for 30 seconds. CONDITIONS: None. ACTIONS: Send a notification to family with title 'Torktumlaren' and message 'Tvätten är torr'.",
"natural_language": {
"trigger": "When the dryer state [sensor.dryer_state] changes from 'drying' to 'off' and stays in the 'off' state for 30 seconds.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a notification titled 'Torktumlaren' with the message 'Tvätten är torr' to the family group."
},
"human_like": "Notifies the family when the dryer has finished its drying cycle.",
"complexity": "low"
}
},
{
"id": "ae403d31-d120-47cb-ba66-ac401b08d8e2",
"result": {
"structured": "TRIGGER: When mailbox flap contact [binary_sensor.mailbox_flap_contact] changes from closed (off) to open (on) OR when mailbox door contact [binary_sensor.mailbox_door_contact] changes from closed (off) to open (on). CONDITIONS: None. ACTIONS: If the trigger was mailbox flap contact [binary_sensor.mailbox_flap_contact] opening, then increment mailbox deliveries [input_number.mailbox_deliveries] by 1. Then, if mailbox deliveries [input_number.mailbox_deliveries] is greater than 1, send a notification to family with title 'Postlådan' and a message indicating more mail and the current delivery count, and create a persistent notification with the same details. Otherwise, if mailbox deliveries [input_number.mailbox_deliveries] is 1 or less, send a notification to family with title 'Postlådan' and a message asking to empty the mailbox, and create a persistent notification. If the trigger was mailbox door contact [binary_sensor.mailbox_door_contact] opening, then set mailbox deliveries [input_number.mailbox_deliveries] to 0, send a thank you notification to family with a 900-second timeout, and dismiss the persistent notification with ID 'feed_mail'.",
"natural_language": {
"trigger": "When the mailbox flap contact [binary_sensor.mailbox_flap_contact] opens, indicating mail has been delivered, or when the mailbox door contact [binary_sensor.mailbox_door_contact] opens, indicating the mailbox has been emptied.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "If the flap opens, the automation increases the count of mailbox deliveries [input_number.mailbox_deliveries]. If the count is more than one, it sends a notification to the family and creates a persistent notification, both reminding them to empty the mailbox and showing the current delivery count. If the count is one or less, it sends and creates a simpler notification asking to empty the mailbox. If the mailbox door opens, the automation resets the delivery count to zero, sends a thank you notification to the family, and dismisses the persistent notification."
},
"human_like": "Tracks mail deliveries by counting when the mailbox flap opens and resets the count when the mailbox is emptied, sending appropriate notifications to the family.",
"complexity": "medium"
}
},
{
"id": "100921f5-d234-470f-903a-e27a5e51f169",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When the state of group family [group.family] changes. CONDITIONS: None (conditions are evaluated inside the choose action). ACTIONS: Evaluate a choice: If NOT (group family [group.family] is home OR group guests [group.guests] is home) THEN turn on house mode away [input_boolean.house_mode_away]; OTHERWISE turn off house mode away [input_boolean.house_mode_away].",
"natural_language": {
"trigger": "The automation triggers when Home Assistant starts up, when any automation is reloaded, or when the state of the family group [group.family] changes.",
"conditions": "The automation does not have separate conditions. Instead, it uses a decision block to check if neither the family group [group.family] nor the guests group [group.guests] are in the 'home' state.",
"action": "If neither the family nor guests are detected as home, it turns on the away mode [input_boolean.house_mode_away]. Otherwise, it turns the away mode off."
},
"human_like": "Automatically sets the house to away mode when no family members or guests are home, and turns it off when someone returns.",
"complexity": "medium"
}
},
{
"id": "d5b4e5d2-06db-456d-baef-32a8942e8deb",
"result": {
"structured": "TRIGGER: When automation_reloaded event occurs OR When motion hallway downstairs illuminance [sensor.motion_hallway_downstairs_illuminance] remains above lightlevel limit hallway [input_number.lightlevel_limit_hallway] for 5 minutes OR When motion hallway downstairs illuminance [sensor.motion_hallway_downstairs_illuminance] remains below lightlevel limit hallway [input_number.lightlevel_limit_hallway] for 5 minutes OR When lightlevel limit hallway [input_number.lightlevel_limit_hallway] state changes. CONDITIONS: None. ACTIONS: If motion hallway downstairs illuminance [sensor.motion_hallway_downstairs_illuminance] is above lightlevel limit hallway [input_number.lightlevel_limit_hallway] THEN Turn on house mode bright hallway [input_boolean.house_mode_bright_hallway] ELSE Turn off house mode bright hallway [input_boolean.house_mode_bright_hallway].",
"natural_language": {
"trigger": "The automation triggers in several situations: when automations are reloaded in Home Assistant, when the motion hallway downstairs illuminance [sensor.motion_hallway_downstairs_illuminance] remains above the lightlevel limit hallway [input_number.lightlevel_limit_hallway] for five minutes, when it remains below that limit for five minutes, or whenever the lightlevel limit hallway [input_number.lightlevel_limit_hallway] value itself changes.",
"conditions": "There are no conditions that must be met for the action to run; the automation proceeds directly to the action after any trigger.",
"action": "The automation checks the current light level. If the motion hallway downstairs illuminance [sensor.motion_hallway_downstairs_illuminance] is above the set limit, it turns on the house mode bright hallway [input_boolean.house_mode_bright_hallway]. Otherwise, it turns this mode off."
},
"human_like": "Turns on a 'bright hallway' mode when the hallway light level is high for a sustained period, and turns it off when the light level is low, ensuring the mode reflects the ambient brightness.",
"complexity": "medium"
}
},
{
"id": "44bed364-c081-4720-b8f5-60aaae177d4f",
"result": {
"structured": "TRIGGER: When an automation_reloaded event occurs OR When sun elevation limit [input_number.sun_elevation_limit] changes state OR When Sun [sun.sun] elevation attribute is above sun elevation limit [input_number.sun_elevation_limit] OR When outdoor illuminance min [sensor.outdoor_illuminance_min] is above lightlevel limit indoor [input_number.lightlevel_limit_indoor] for 5 minutes OR When outdoor illuminance min [sensor.outdoor_illuminance_min] is below lightlevel limit indoor [input_number.lightlevel_limit_indoor] for 5 minutes. CONDITIONS: None. ACTIONS: If sun elevation [sensor.sun_elevation] is above sun elevation limit [input_number.sun_elevation_limit] AND outdoor illuminance min [sensor.outdoor_illuminance_min] is above lightlevel limit indoor [input_number.lightlevel_limit_indoor], then turn on house mode bright inside [input_boolean.house_mode_bright_inside]. Otherwise, turn off house mode bright inside [input_boolean.house_mode_bright_inside].",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when automations are reloaded, when the sun elevation limit [input_number.sun_elevation_limit] is adjusted, when the sun's elevation is above the set limit, or when the outdoor illuminance min [sensor.outdoor_illuminance_min] has been consistently above or below the indoor light level limit [input_number.lightlevel_limit_indoor] for at least five minutes.",
"conditions": "There are no global conditions that must be met for the automation to run.",
"action": "The automation checks two specific conditions: if the sun elevation [sensor.sun_elevation] is above the sun elevation limit [input_number.sun_elevation_limit] and the outdoor illuminance min [sensor.outdoor_illuminance_min] is above the indoor light level limit [input_number.lightlevel_limit_indoor]. If both are true, it turns on the house mode bright inside [input_boolean.house_mode_bright_inside]. If not, it turns the mode off."
},
"human_like": "This automation turns on 'bright inside' mode when it's sunny and bright enough outside, and turns it off otherwise.",
"complexity": "medium"
}
},
{
"id": "076988f1-1e78-4cdd-96fd-83ff83431e1c",
"result": {
"structured": "TRIGGER: When an automation_reloaded event occurs OR When sun elevation limit [input_number.sun_elevation_limit] changes state OR When Sun [sun.sun] elevation attribute rises above sun elevation limit [input_number.sun_elevation_limit] OR When outdoor illuminance min [sensor.outdoor_illuminance_min] remains above lightlevel limit outdoor [input_number.lightlevel_limit_outdoor] for 5 minutes OR When outdoor illuminance min [sensor.outdoor_illuminance_min] remains below lightlevel limit outdoor [input_number.lightlevel_limit_outdoor] for 5 minutes. CONDITIONS: None. ACTIONS: If sun elevation [sensor.sun_elevation] is above sun elevation limit [input_number.sun_elevation_limit] AND outdoor illuminance min [sensor.outdoor_illuminance_min] is above lightlevel limit outdoor [input_number.lightlevel_limit_outdoor], then turn on house mode daylight [input_boolean.house_mode_daylight]; otherwise, turn off house mode daylight [input_boolean.house_mode_daylight].",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when the Home Assistant automations are reloaded, when the sun elevation limit [input_number.sun_elevation_limit] is adjusted, when the sun's elevation [sun.sun] rises above the configured elevation limit, when the outdoor illuminance min [sensor.outdoor_illuminance_min] stays above the outdoor light level limit [input_number.lightlevel_limit_outdoor] for five minutes, or when it stays below that same limit for five minutes.",
"conditions": "There are no global conditions for this automation.",
"action": "The automation checks two specific conditions. If the sun elevation [sensor.sun_elevation] is above the sun elevation limit [input_number.sun_elevation_limit] and the outdoor illuminance min [sensor.outdoor_illuminance_min] is above the outdoor light level limit [input_number.lightlevel_limit_outdoor], it will turn on the house mode daylight [input_boolean.house_mode_daylight]. If either of those conditions is not met, it will turn off the house mode daylight [input_boolean.house_mode_daylight]."
},
"human_like": "This automation manages the 'daylight mode' for the house, turning it on when it's both bright enough outside and the sun is high enough in the sky.",
"complexity": "medium"
}
},
{
"id": "b480b798-c2f5-4ec9-ab4e-da96fe5590f9",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When the state of group guests [group.guests] changes. CONDITIONS: None. ACTIONS: If group guests [group.guests] is in state 'home', then turn on House Mode Guests [input_boolean.house_mode_guests]; otherwise, turn off House Mode Guests [input_boolean.house_mode_guests].",
"natural_language": {
"trigger": "The automation runs when Home Assistant first starts up, when any automation is reloaded, or whenever the state of the group guests [group.guests] changes.",
"conditions": "There are no additional conditions that must be met before the action runs.",
"action": "If the group guests [group.guests] is currently 'home', it turns on the House Mode Guests [input_boolean.house_mode_guests] switch. If the group is not 'home', it turns the switch off."
},
"human_like": "This automation turns on guest mode when any guest is home, and turns it off when no guests are home.",
"complexity": "medium"
}
},
{
"id": "624c2596-32a1-44f7-864b-f56728145498",
"result": {
"structured": "TRIGGER: When the time matches house reset settings [input_datetime.house_reset_settings] OR house reset settings day [input_datetime.house_reset_settings_day]. CONDITIONS: (Trigger is reset). ACTIONS: Turn off parking manual mode [input_boolean.parking_manual_mode], kitchen manual mode [input_boolean.kitchen_manual_mode], livingroom manual mode [input_boolean.livingroom_manual_mode], and hallway downstairs manual mode [input_boolean.hallway_downstairs_manual_mode].",
"natural_language": {
"trigger": "At the specific times defined by the house reset settings [input_datetime.house_reset_settings] or the house reset settings day [input_datetime.house_reset_settings_day].",
"conditions": "The automation only runs if the trigger that fired is the time-based 'reset' trigger.",
"action": "Turns off the manual mode for multiple areas: parking manual mode [input_boolean.parking_manual_mode], kitchen manual mode [input_boolean.kitchen_manual_mode], livingroom manual mode [input_boolean.livingroom_manual_mode], and hallway downstairs manual mode [input_boolean.hallway_downstairs_manual_mode]."
},
"human_like": "Automatically disables manual modes for several rooms at scheduled reset times.",
"complexity": "low"
}
},
{
"id": "ee354ef8-d169-4b44-ac27-83a19e418111",
"result": {
"structured": "TRIGGER: When hallway downstairs manual mode [input_boolean.hallway_downstairs_manual_mode] is turned on AND remains on for 60 minutes. CONDITIONS: None. ACTIONS: If hallway downstairs manual mode [input_boolean.hallway_downstairs_manual_mode] is on, then turn off hallway downstairs manual mode [input_boolean.hallway_downstairs_manual_mode].",
"natural_language": {
"trigger": "When the hallway downstairs manual mode [input_boolean.hallway_downstairs_manual_mode] is switched on and stays on for exactly 60 minutes.",
"conditions": "There are no additional conditions.",
"action": "If the hallway downstairs manual mode [input_boolean.hallway_downstairs_manual_mode] is still on, it is turned off."
},
"human_like": "Automatically disables the downstairs hallway manual mode after it has been active for one hour.",
"complexity": "low"
}
},
{
"id": "2c24e58c-fb5f-4b5d-bcf1-6598c26125a1",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When the time reaches the value set in house reset settings [input_datetime.house_reset_settings] OR When bedroom manual mode [input_boolean.bedroom_manual_mode] OR kitchen manual mode [input_boolean.kitchen_manual_mode] OR livingroom manual mode [input_boolean.livingroom_manual_mode] changes from off to on OR When front door [lock.front_door] changes from locked to unlocked OR When kb2003 charger type [sensor.kb2003_charger_type] changes from ac OR usb to none. CONDITIONS: None (conditions are evaluated inside the choose action). ACTIONS: If the trigger is the time trigger, turn on house mode sleep [input_boolean.house_mode_sleep]. Otherwise, if the trigger is the phone charger trigger AND the current time is between 05:00:00 and 09:00:00, turn off house mode sleep [input_boolean.house_mode_sleep]. Otherwise, if the trigger is the manual mode trigger, turn off house mode sleep [input_boolean.house_mode_sleep]. For all other triggers, turn off house mode sleep [input_boolean.house_mode_sleep].",
"natural_language": {
"trigger": "The automation can be triggered by several events: when Home Assistant starts up, when an automation is reloaded, when the scheduled time set in house reset settings [input_datetime.house_reset_settings] arrives, when any of the manual mode switches (bedroom manual mode [input_boolean.bedroom_manual_mode], kitchen manual mode [input_boolean.kitchen_manual_mode], or livingroom manual mode [input_boolean.livingroom_manual_mode]) are turned on from an off state, when the front door [lock.front_door] is unlocked from a locked state, or when the phone's charger type [sensor.kb2003_charger_type] changes from being plugged in (ac or usb) to being unplugged (none).",
"conditions": "The automation does not have global conditions. Instead, the specific action taken depends on which trigger fired and, in one case, the time of day. The conditions are checked within the action sequence.",
"action": "Depending on the trigger, the automation will either turn on or off the sleep mode. If the trigger was the scheduled time, it turns on house mode sleep [input_boolean.house_mode_sleep]. If the trigger was the phone being unplugged and the time is between 5 AM and 9 AM, it turns off sleep mode. If the trigger was any of the manual mode switches being turned on, it also turns off sleep mode. For all other triggers (like Home Assistant start, automation reload, or the door unlocking), the default action is to turn off sleep mode."
},
"human_like": "This automation manages the house's sleep mode, turning it on at a scheduled reset time and turning it off in the morning when a phone is unplugged, when manual modes are activated, or when other general activity occurs.",
"complexity": "medium"
}
},
{
"id": "b54de7c4-ee5f-497f-8dbc-af5c953bea46",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When workday today [binary_sensor.workday_today] changes state. CONDITIONS: None. ACTIONS: If workday today [binary_sensor.workday_today] is on, then turn on house mode workday [input_boolean.house_mode_workday]; otherwise, turn off house mode workday [input_boolean.house_mode_workday].",
"natural_language": {
"trigger": "This automation runs when Home Assistant first starts, when any automation is reloaded, or whenever the workday today [binary_sensor.workday_today] sensor changes its state.",
"conditions": "There are no separate conditions; the decision logic is part of the action sequence.",
"action": "If the workday today [binary_sensor.workday_today] sensor indicates a workday (is on), it turns on the house mode workday [input_boolean.house_mode_workday] switch. If it's not a workday (the sensor is off), it turns off the house mode workday [input_boolean.house_mode_workday] switch."
},
"human_like": "Sets the house to 'workday mode' on workdays, and turns it off otherwise, ensuring the mode is correct after restarts or reloads.",
"complexity": "medium"
}
},
{
"id": "aa2a22c1-e965-4222-9068-f136ac898dd4",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded event occurs OR When motion hallway downstairs occupancy [binary_sensor.motion_hallway_downstairs_occupancy] changes from off to on OR When motion hallway downstairs occupancy [binary_sensor.motion_hallway_downstairs_occupancy] changes from on to off and remains off for a duration equal to the value of hallway downstairs timeout [input_number.hallway_downstairs_timeout] minutes. CONDITIONS: None. ACTIONS: If the trigger was motion hallway downstairs occupancy [binary_sensor.motion_hallway_downstairs_occupancy] changing from off to on, then turn on hallway downstairs movement [input_boolean.hallway_downstairs_movement]. Otherwise, turn off hallway downstairs movement [input_boolean.hallway_downstairs_movement].",
"natural_language": {
"trigger": "The automation runs when Home Assistant starts, when any automation is reloaded, when motion is first detected in the hallway downstairs (motion hallway downstairs occupancy [binary_sensor.motion_hallway_downstairs_occupancy] changes from off to on), or when motion stops being detected and remains absent for a configurable period defined by the hallway downstairs timeout [input_number.hallway_downstairs_timeout].",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "If the trigger was the initial detection of motion, the automation turns on the hallway downstairs movement [input_boolean.hallway_downstairs_movement] helper. For any other trigger (like Home Assistant starting, an automation reload, or motion stopping for the timeout period), the automation turns off the hallway downstairs movement [input_boolean.hallway_downstairs_movement] helper."
},
"human_like": "Tracks active movement in the downstairs hallway by turning a helper on when motion is detected and off after a quiet period, ensuring the state is reset on system or automation restarts.",
"complexity": "medium"
}
},
{
"id": "a7d69bb8-8f5b-46d2-860e-3bcfb9c2cc2d",
"result": {
"structured": "TRIGGER: Every hour (time pattern). CONDITIONS: None. ACTIONS: Evaluate variable np_update which is a list of Nordpool sensors (nordpool se1 [sensor.nordpool_se1], nordpool se2 [sensor.nordpool_se2], nordpool se3 [sensor.nordpool_se3], nordpool se4 [sensor.nordpool_se4]) whose last update was more than 7200 seconds (2 hours) ago. IF np_update list is not empty THEN reload configuration entries for the entities in np_update list AND send a notification to castle_log with title 'nordpool' and message 'Laddar om ' followed by the list of sensor names with the prefix removed (e.g., 'se1, se2').",
"natural_language": {
"trigger": "The automation runs every hour.",
"conditions": "There are no explicit conditions.",
"action": "The automation checks four Nordpool electricity price sensors (nordpool se1 [sensor.nordpool_se1], nordpool se2 [sensor.nordpool_se2], nordpool se3 [sensor.nordpool_se3], nordpool se4 [sensor.nordpool_se4]) to see if any of them have not been updated for more than two hours. If any such sensors are found, it reloads their configuration entries and sends a notification to castle_log stating which sensors are being reloaded."
},
"human_like": "This automation checks hourly if any Nordpool price sensors have stopped updating and reloads them if they have been stuck for over two hours.",
"complexity": "medium"
}
},
{
"id": "Reload Nordpool after midnight if tomorrow_valid is true",
"result": {
"structured": "TRIGGER: At 00:05:00 (5 minutes past midnight). CONDITIONS: (np_update is defined AND np_update length > 0). ACTIONS: Reload the configuration entry for each entity in np_update AND send a notification to castle_log with title 'nordpool' and message 'tomorrow_valid=true, laddar om [list of area identifiers from np_update]'.",
"natural_language": {
"trigger": "The automation triggers every day at 5 minutes past midnight.",
"conditions": "The automation checks a variable named 'np_update', which is a list of Nordpool sensor entities. This list is built by checking if the 'tomorrow_valid' attribute for each sensor is true. The automation proceeds only if this list is not empty.",
"action": "If the list contains any sensors, the automation reloads the configuration entries for those specific Nordpool sensors and sends a notification to castle_log stating that tomorrow's data is valid and listing the reloaded areas."
},
"human_like": "Reloads Nordpool electricity price sensors after midnight if they have valid data for the next day.",
"complexity": "medium"
}
},
{
"id": "63fe107f-06f0-44ad-b430-e2ff493272f7",
"result": {
"structured": "TRIGGER: When motion driveway occupancy [binary_sensor.motion_driveway_occupancy] changes from off to on. CONDITIONS: None. ACTIONS: Choose an action sequence based on the state of house mode daylight [input_boolean.house_mode_daylight]. If house mode daylight [input_boolean.house_mode_daylight] is on, then turn on floor lamp [light.floor_lamp], wait 2 seconds, and turn off floor lamp [light.floor_lamp]. If house mode daylight [input_boolean.house_mode_daylight] is off, then turn off floor lamp [light.floor_lamp], wait 2 seconds, and activate Livingroom Ambience Lights Cozy Scene [scene.livingroom_ambience_lights_cozy] with a 1-second transition.",
"natural_language": {
"trigger": "When motion is first detected on the driveway, indicated by the motion driveway occupancy [binary_sensor.motion_driveway_occupancy] sensor changing from 'off' to 'on'.",
"conditions": "There are no additional conditions that must be met for the automation to run.",
"action": "The automation checks the current house mode. If the house mode daylight [input_boolean.house_mode_daylight] is on, it briefly flashes the floor lamp [light.floor_lamp] by turning it on, waiting two seconds, and then turning it off. If the house mode daylight [input_boolean.house_mode_daylight] is off, it first turns off the floor lamp [light.floor_lamp], waits two seconds, and then activates the Livingroom Ambience Lights Cozy Scene [scene.livingroom_ambience_lights_cozy] with a smooth one-second transition."
},
"human_like": "Briefly flashes the living room floor lamp or sets a cozy scene when motion is detected on the driveway, depending on whether it's daytime or not.",
"complexity": "medium"
}
},
{
"id": "628f6bc0-9b4a-461f-878f-92b8de65fa7d",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded or scene_reloaded event occurs OR When house mode outside work [input_boolean.house_mode_outside_work] changes state OR When house mode daylight [input_boolean.house_mode_daylight] changes state (id: daylight) OR When group motion parking [group.motion_parking] changes state from on to off or from off to on (id: movement). CONDITIONS: None (conditions are evaluated inside the choose actions). ACTIONS: Choose the first matching sequence: 1. If house mode outside work [input_boolean.house_mode_outside_work] is on, activate Outdoor Work Scene [scene.outdoor_work] with a 2-second transition. 2. If the trigger is house mode daylight [input_boolean.house_mode_daylight] (id: daylight) AND house mode daylight [input_boolean.house_mode_daylight] is off, activate Outdoor Lights Default Scene [scene.outdoor_lights_default] with a 5-second transition. 3. If house mode daylight [input_boolean.house_mode_daylight] is off, then choose: If group motion parking [group.motion_parking] is on, activate Outdoor Parking Movement Scene [scene.outdoor_parking_movement] with a 2-second transition; otherwise, activate Outdoor Parking Default Scene [scene.outdoor_parking_default] with a 5-second transition. 4. If no other sequence matches, turn off utomhuslampor [light.utomhuslampor] with a 5-second transition.",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when Home Assistant starts up, when automations or scenes are reloaded, when the house mode outside work [input_boolean.house_mode_outside_work] changes, when the house mode daylight [input_boolean.house_mode_daylight] changes, or when the group motion parking [group.motion_parking] detects any state change.",
"conditions": "There are no global conditions. Instead, different actions are selected based on internal checks. The automation first checks if the outside work mode is active. If not, it checks if the trigger was a change in daylight status and if daylight is now off. If neither of those apply, it checks if daylight is off, and then decides which parking scene to activate based on motion detection. If none of these internal conditions are met, it defaults to turning off the outdoor lights.",
"action": "Depending on the trigger and the state of various modes, the automation will either activate an outdoor work scene, turn on a default outdoor lights scene, activate a parking scene based on motion, or turn off all outdoor lights. The scenes are applied with smooth transitions."
},
"human_like": "This automation manages all outdoor lighting, activating different scenes based on work mode, daylight, and motion in the parking area, or turning the lights off when not needed.",
"complexity": "high"
}
},
{
"id": "c5479364-0da7-4fb2-82ac-53c2e7c5be5c",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded) OR When motion driveway occupancy [binary_sensor.motion_driveway_occupancy] changes from off to on OR When motion driveway occupancy [binary_sensor.motion_driveway_occupancy] changes from on to off AND remains off for 1 minute. CONDITIONS: None. ACTIONS: If the trigger is motion driveway occupancy [binary_sensor.motion_driveway_occupancy] changing from off to on, then turn on driveway movement [input_boolean.driveway_movement]. Otherwise, turn off driveway movement [input_boolean.driveway_movement].",
"natural_language": {
"trigger": "The automation can be triggered in four ways: when Home Assistant first starts, when any automation is reloaded, when motion is first detected on the driveway (the motion driveway occupancy [binary_sensor.motion_driveway_occupancy] changes from off to on), or when motion on the driveway stops and remains absent for one full minute (the sensor changes from on to off and stays off for a minute).",
"conditions": "There are no conditions that must be checked after a trigger occurs.",
"action": "If the trigger was the initial detection of motion (the sensor turning on), the automation turns on the driveway movement [input_boolean.driveway_movement] helper. For any other trigger (Home Assistant start, an automation reload, or motion stopping for a minute), the automation turns off the driveway movement [input_boolean.driveway_movement] helper."
},
"human_like": "Turns a driveway movement indicator on when motion is detected and turns it off when motion has been absent for a minute, also resetting the indicator when Home Assistant restarts.",
"complexity": "medium"
}
},
{
"id": "eca6bdb4-acd6-4238-a307-3edaa4ac3bd4",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded event occurs OR When motion barn occupancy [binary_sensor.motion_barn_occupancy] changes from off to on OR When motion barn occupancy [binary_sensor.motion_barn_occupancy] changes from on to off and remains off for 1 minute. CONDITIONS: None. ACTIONS: If the trigger was motion barn occupancy [binary_sensor.motion_barn_occupancy] changing from off to on, then turn on barn movement [input_boolean.barn_movement]. Otherwise, turn off barn movement [input_boolean.barn_movement].",
"natural_language": {
"trigger": "The automation triggers when Home Assistant starts up, when any automation is reloaded, when motion is detected in the barn (motion barn occupancy [binary_sensor.motion_barn_occupancy] changes from off to on), or when motion in the barn stops and remains undetected for one minute.",
"conditions": "There are no conditions that must be checked.",
"action": "If the trigger was motion being detected in the barn, the automation turns on the barn movement [input_boolean.barn_movement] helper. For any other trigger (like startup, reload, or motion stopping), it turns off the barn movement [input_boolean.barn_movement] helper."
},
"human_like": "Tracks movement in the barn, turning a helper on when motion starts and off when motion stops or the system restarts.",
"complexity": "medium"
}
},
{
"id": "6a3641d9-0135-407a-8e06-66c3d8115d9e",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When motion front occupancy [binary_sensor.motion_front_occupancy] changes from off to on OR When motion front occupancy [binary_sensor.motion_front_occupancy] changes from on to off AND remains off for 1 minute. CONDITIONS: None. ACTIONS: If the trigger was motion front occupancy [binary_sensor.motion_front_occupancy] changing from off to on, then turn on front movement [input_boolean.front_movement]. Otherwise, turn off front movement [input_boolean.front_movement].",
"natural_language": {
"trigger": "The automation runs when Home Assistant starts up, when any automation is reloaded, when motion is first detected at the front (motion front occupancy [binary_sensor.motion_front_occupancy] changes from off to on), or when motion at the front stops and remains undetected for one minute (motion front occupancy [binary_sensor.motion_front_occupancy] changes from on to off and stays off for a minute).",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "If the automation was triggered by motion being detected at the front, it will turn on the front movement [input_boolean.front_movement] helper. For any other trigger (like Home Assistant starting, an automation reload, or motion stopping for a minute), it will turn off the front movement [input_boolean.front_movement] helper."
},
"human_like": "Turns on a 'movement mode' flag when motion is detected at the front, and turns it off when motion stops or the system restarts.",
"complexity": "medium"
}
},
{
"id": "a7711621-6c74-47f5-b04c-b6cd382f673f",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When garage port contact [binary_sensor.garage_port_contact] changes from open (on) to closed (off) OR At 21:00:00. CONDITIONS: None. ACTIONS: If garage port contact [binary_sensor.garage_port_contact] is open (on) AND the current time is after 21:00:00, then create a persistent notification titled 'Garaget' with message 'Garageporten är öppen!' (notification_id: feed_garage) AND send a notification to the family group titled 'Garaget' with message 'Garageporten är öppen!' (tag: garage). Otherwise, dismiss the persistent notification with ID feed_garage AND send a notification to the family group with message 'clear_notification' (tag: garage, timeout: 900).",
"natural_language": {
"trigger": "The automation can be triggered in four ways: when Home Assistant first starts up, when any automation is reloaded, when the garage port contact [binary_sensor.garage_port_contact] changes from being open to closed, or at exactly 9:00 PM every day.",
"conditions": "There are no conditions that must be met for the automation to run; it will execute its actions whenever any of the triggers occur.",
"action": "If the garage port contact [binary_sensor.garage_port_contact] is open and the current time is after 9:00 PM, the automation will create a persistent notification and send a mobile notification to the family group, both alerting that the garage door is open. In all other cases (e.g., if the door is closed, or it's before 9:00 PM, or the trigger was Home Assistant start or an automation reload), it will clear that persistent notification and send a 'clear_notification' command to the family group's mobile notifications."
},
"human_like": "Sends a notification if the garage door is open after 9 PM, and clears the notification otherwise, also running when the system starts or an automation is reloaded.",
"complexity": "medium"
}
},
{
"id": "7981014b-9e4b-4e0b-ba5b-a32147cf0e2a",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded event occurs OR When techroom movement [input_boolean.techroom_movement] changes from off to on OR When techroom movement [input_boolean.techroom_movement] changes from on to off. CONDITIONS: None (conditions are evaluated within the action's choose blocks). ACTIONS: If the trigger was the 'engage' trigger (techroom movement turning on) OR techroom movement [input_boolean.techroom_movement] is currently on, then: if tech monitors [binary_sensor.tech_monitors] are off, execute shell_command.monitor_on, command_line.reload, and shell_command.borg_ambience. Otherwise (if the trigger was not 'engage' AND techroom movement [input_boolean.techroom_movement] is off), then: if tech monitors [binary_sensor.tech_monitors] are on, execute shell_command.monitor_off and command_line.reload.",
"natural_language": {
"trigger": "The automation runs when Home Assistant starts, when any automation is reloaded, or when the techroom movement [input_boolean.techroom_movement] input boolean is turned on or off.",
"conditions": "There are no global conditions. The actions taken depend on the state of techroom movement [input_boolean.techroom_movement] and tech monitors [binary_sensor.tech_monitors] at the time of the trigger.",
"action": "If the automation was triggered by techroom movement turning on, or if techroom movement is already on, it checks the state of the tech monitors [binary_sensor.tech_monitors]. If the monitors are off, it turns them on, reloads a command line component, and runs a shell command for ambiance. Otherwise, if techroom movement is off, it checks if the monitors are on, and if so, turns them off and reloads the command line component."
},
"human_like": "Manages the techroom monitors based on movement detection, turning them on when movement is active and off when it's not, also handling system start and reload events.",
"complexity": "medium"
}
},
{
"id": "99f7a23a-2164-44f5-b021-71405162ed5e",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When parking person occupancy [binary_sensor.parking_person_occupancy] changes from off to on OR When parking person occupancy [binary_sensor.parking_person_occupancy] changes from on to off AND remains off for 1 minute. CONDITIONS: None. ACTIONS: If the trigger was parking person occupancy [binary_sensor.parking_person_occupancy] changing from off to on, then turn on parking human [input_boolean.parking_human]. Otherwise, turn off parking human [input_boolean.parking_human].",
"natural_language": {
"trigger": "The automation can be triggered in four ways: when Home Assistant first starts up, when any automation is reloaded, when the parking person occupancy [binary_sensor.parking_person_occupancy] sensor first detects a person (changes from off to on), or when the sensor stops detecting a person (changes from on to off) and that state persists for one minute.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "If the trigger was the initial detection of a person on the parking person occupancy [binary_sensor.parking_person_occupancy] sensor, the action is to turn on the parking human [input_boolean.parking_human] helper. For all other triggers (Home Assistant start, automation reload, or a person leaving for a minute), the action is to turn off the parking human [input_boolean.parking_human] helper."
},
"human_like": "Tracks human presence in the parking area by turning a helper on when a person is detected and off when they leave for a minute, also resetting the helper on system startup or reload.",
"complexity": "medium"
}
},
{
"id": "0c09b67d-0cf4-4f6f-9ce2-7338d0171090",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded event occurs OR When group property humans [group.property_humans] changes from off to on OR When group property humans [group.property_humans] changes from on to off and remains off for 1 minute. CONDITIONS: None. ACTIONS: If the trigger was group property humans [group.property_humans] changing from off to on, then turn on property human [input_boolean.property_human]. Otherwise, turn off property human [input_boolean.property_human].",
"natural_language": {
"trigger": "The automation triggers in four situations: when Home Assistant first starts up, when any automation is reloaded, when the group property humans [group.property_humans] changes from off to on, or when the group property humans [group.property_humans] changes from on to off and stays off for one minute.",
"conditions": "There are no conditions that must be checked for this automation to run.",
"action": "If the trigger was the group property humans [group.property_humans] turning on, the automation will activate detect mode by turning on the property human [input_boolean.property_human] helper. For any other trigger (like startup, reload, or the group turning off), the automation will deactivate detect mode by turning off the property human [input_boolean.property_human] helper."
},
"human_like": "This automation manages a 'human detected' status for the property, turning it on when someone is present and off when the property is empty for a minute, also resetting on system startup or reload.",
"complexity": "medium"
}
},
{
"id": "6fb0de3f-e185-4a95-ab77-ca3215f6dac1",
"result": {
"structured": "TRIGGER: When rat trap 2 contact [binary_sensor.rat_trap_2_contact] changes from off to on OR When rat trap 3 contact [binary_sensor.rat_trap_3_contact] changes from off to on. CONDITIONS: The corresponding input_boolean for the triggered trap (derived from the trigger entity_id) is armed (on). ACTIONS: Increment the rat trap counter [counter.rat_trap], Turn off the armed state for the triggered trap (input_boolean.<trap>_armed), Send a notification to family [notify.family] with a title 'Råttfångarn' and a message indicating which trap caught a rat and the current total count.",
"natural_language": {
"trigger": "When either the rat trap 2 contact [binary_sensor.rat_trap_2_contact] or the rat trap 3 contact [binary_sensor.rat_trap_3_contact] changes from closed (off) to open (on), indicating a trap has been triggered.",
"conditions": "The automation only proceeds if the specific trap that triggered is currently armed. This is checked by looking up the corresponding input boolean (e.g., input_boolean.rat_trap_2_armed) and verifying it is turned on.",
"action": "The automation increments the rat trap counter [counter.rat_trap] to keep track of the total catches. It then disarms the specific trap by turning off its corresponding input boolean. Finally, it sends a persistent notification to the family group, announcing which location caught a rat and displaying the updated total count."
},
"human_like": "This automation notifies the household when a rat trap is sprung, logs the catch, and automatically disarms the trap.",
"complexity": "medium"
}
},
{
"id": "46d44938-1a8c-43df-9ef5-9d36d424bb95",
"result": {
"structured": "TRIGGER: When any of the following sensors changes state, provided the previous state is NOT 'none', 'unknown', 'unavailable', or '400' AND the new state is NOT 'none', 'unknown', 'unavailable', or '400': ferroamp xl28 sso east 32 faultcode [sensor.ferroamp_xl28_sso_east_32_faultcode], ferroamp xl28 sso 22010644 faultcode [sensor.ferroamp_xl28_sso_22010644_faultcode], ferroamp xl28 sso 21090039 faultcode [sensor.ferroamp_xl28_sso_21090039_faultcode], ferroamp xl28 sso 21090135 faultcode [sensor.ferroamp_xl28_sso_21090135_faultcode], ferroamp xl28 sso 21090071 faultcode [sensor.ferroamp_xl28_sso_21090071_faultcode], ferroamp xl28 sso west 32 faultcode [sensor.ferroamp_xl28_sso_west_32_faultcode]. CONDITIONS: None. ACTIONS: If the new state is a number greater than 0, send a notification to castle_log with a title 'Ferroamp SSO' and a message containing the sensor name, the fault code, and a list of its attributes (excluding 'icon' and 'friendly_name'). Otherwise, send a notification to castle_log with a title 'Ferroamp SSO' and a message stating the sensor reports normal operation again.",
"natural_language": {
"trigger": "The automation triggers when any of the six specified Ferroamp SSO fault code sensors changes its state, but only if the change is not from or to any of the following values: 'none', 'unknown', 'unavailable', or '400'.",
"conditions": "There are no additional conditions that must be met for the action to run.",
"action": "If the new fault code state is a number greater than zero, a detailed notification is sent to the castle_log service. This notification includes the sensor's name, the fault code number, and a list of its other attributes. If the new state is not greater than zero (i.e., it is zero or a non-numeric string that passed the trigger filters), a different notification is sent stating that the sensor is reporting normal operation again."
},
"human_like": "Monitors Ferroamp solar string optimizers for fault codes and sends a detailed alert when a fault is detected, or a normal status message when the fault clears.",
"complexity": "medium"
}
},
{
"id": "7edf8e18-0ec4-44cb-9d03-dc49c0fd7a0c",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded OR When garage port contact [binary_sensor.garage_port_contact] changes state (from on to off OR from off to on) OR When motion garage occupancy [binary_sensor.motion_garage_occupancy] stops detecting motion (changes from on to off) AND remains off for 15 minutes. CONDITIONS: None. ACTIONS: Choose based on conditions: 1. IF garage port contact [binary_sensor.garage_port_contact] is on THEN turn on garage plug [switch.garage_plug]. 2. IF garage port contact [binary_sensor.garage_port_contact] is off AND garage plug [switch.garage_plug] is on AND motion garage occupancy [binary_sensor.motion_garage_occupancy] is off AND remains off for 15 minutes THEN turn off garage plug [switch.garage_plug]. 3. OTHERWISE, wait 1 millisecond (do nothing).",
"natural_language": {
"trigger": "The automation runs when Home Assistant starts, when an automation is reloaded, when the garage port contact [binary_sensor.garage_port_contact] opens or closes, or when motion in the garage [binary_sensor.motion_garage_occupancy] has not been detected for 15 minutes.",
"conditions": "There are no global conditions. The actions are selected based on internal conditional checks.",
"action": "If the garage port is open, the garage plug [switch.garage_plug] (the stereo) is turned on. If the garage port is closed, the stereo is currently on, and no motion has been detected in the garage for 15 minutes, then the stereo is turned off. In any other case, the automation does nothing."
},
"human_like": "Turns the garage stereo on when the garage door is open, and turns it off when the door is closed and no motion has been detected for a while.",
"complexity": "medium"
}
},
{
"id": "69068a0a-fdf1-4601-b8a8-cd9e8deec8f6",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded event occurs OR When terrace door contact [binary_sensor.terrace_door_contact] remains in any state for 5 minutes OR When bedroom temperature [sensor.bedroom_temperature] OR terrace temperature [sensor.terrace_temperature] changes state. CONDITIONS: (terrace door contact [binary_sensor.terrace_door_contact] is open (on) AND remains so for 5 minutes) AND ((bedroom temperature [sensor.bedroom_temperature] minus terrace temperature [sensor.terrace_temperature] is greater than 4 AND bedroom temperature [sensor.bedroom_temperature] is less than 19) OR (bedroom temperature [sensor.bedroom_temperature] is less than terrace temperature [sensor.terrace_temperature] AND bedroom temperature [sensor.bedroom_temperature] is greater than 19)). ACTIONS: Send a notification via notify.family with title 'Uterummet uppe' and a message containing the indoor and outdoor temperatures.",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when Home Assistant starts up, when any automation is reloaded, when the terrace door contact [binary_sensor.terrace_door_contact] remains in its current state for five minutes, or when the bedroom temperature [sensor.bedroom_temperature] or terrace temperature [sensor.terrace_temperature] changes.",
"conditions": "For the notification to be sent, the terrace door contact [binary_sensor.terrace_door_contact] must have been open for at least five minutes. Additionally, the temperature conditions must be met: either the bedroom is too cold (more than 4 degrees warmer than the terrace and below 19°C) or the bedroom is too warm (colder than the terrace but still above 19°C).",
"action": "Sends a notification to the family with the title 'Uterummet uppe' and a message stating it's time to close the door, including the current indoor and outdoor temperatures."
},
"human_like": "Sends a reminder to close the terrace door when it has been open for a while and the indoor temperature is either too cold or too warm compared to outside.",
"complexity": "medium"
}
},
{
"id": "64070baf-8273-4617-b223-4295f9e1db5b",
"result": {
"structured": "TRIGGER: When the time pattern matches every hour OR When sensor bedroom remote wall action [sensor.bedroom_remote_wall_action] changes state. CONDITIONS: None. ACTIONS: Write a log entry with the trigger context.",
"natural_language": {
"trigger": "The automation triggers every hour on the hour, or whenever the sensor bedroom remote wall action [sensor.bedroom_remote_wall_action] changes its state.",
"conditions": "There are no conditions for this automation.",
"action": "Writes a system log entry containing the details of the trigger that caused the automation to run."
},
"human_like": "Logs trigger information every hour or when the bedroom remote wall action sensor changes, useful for debugging.",
"complexity": "low"
}
},
{
"id": "9d40e5cb-f8fb-45e3-87d8-dd848b670bb9",
"result": {
"structured": "TRIGGER: When Bella [person.bella] leaves zone.hemmets_hus OR When Linus [person.linus] leaves zone.norra_berget OR When Bella [person.bella] enters zone.hemmets_hus. CONDITIONS: None. ACTIONS: If the trigger event is 'leave', then set a variable 'arrival' to the time calculated by adding the integer value of the sensor (sensor.{person_id}_waze_travel_time) minutes to the current time, formatted as HH:MM, and send a notification via notify.castle_log with title 'Resa' and message '{person} lämnade {zone} (kommer vara hemma ungefär {arrival})'. Otherwise (if the trigger event is 'enter'), send a notification via notify.castle_log with title 'Resa' and message '{person} kom fram till {zone}'.",
"natural_language": {
"trigger": "When Bella [person.bella] leaves the zone 'hemmets_hus', when Linus [person.linus] leaves the zone 'norra_berget', or when Bella [person.bella] enters the zone 'hemmets_hus'.",
"conditions": "There are no conditions for this automation.",
"action": "If the person is leaving a zone, the system calculates an estimated arrival time by taking the current travel time from a Waze sensor, adding it to the current time, and then sends a notification stating that the person left the zone and will be home around that calculated time. If the person is entering a zone, it simply sends a notification that the person has arrived at the zone."
},
"human_like": "Sends travel notifications when Bella or Linus leave or arrive at specific zones, including an estimated arrival time when they depart.",
"complexity": "medium"
}
},
{
"id": "811aa378-4a4e-4b52-a63f-ed63ea9a4172",
"result": {
"structured": "TRIGGER: When techups status [sensor.techups_status] changes state, provided the new state is NOT unknown AND NOT unavailable AND the previous state was NOT unknown AND NOT unavailable. ACTIONS: Send a notification via castle with title 'UPS teknikrum' and message containing the current state of techups status [sensor.techups_status].",
"natural_language": {
"trigger": "Whenever the techups status [sensor.techups_status] sensor changes to a new value, but only if both the new value and the previous value are valid states (neither 'unknown' nor 'unavailable').",
"conditions": "There are no additional conditions beyond the trigger constraints.",
"action": "Sends a notification titled 'UPS teknikrum' with a message that includes the current status reported by the techups status [sensor.techups_status] sensor."
},
"human_like": "Sends a notification whenever the UPS in the techroom reports a valid status change.",
"complexity": "low"
}
},
{
"id": "c5ae7db7-0bf6-4cd9-99fc-797126b13efd",
"result": {
"structured": "TRIGGER: When the scheduled time matches time vacuum upstairs [input_datetime.time_vacuum_upstairs] OR when the current time is exactly 15 minutes before the scheduled time of time vacuum upstairs [input_datetime.time_vacuum_upstairs]. CONDITIONS: None. ACTIONS: If House Mode Guests [input_boolean.house_mode_guests] is on, do nothing. Otherwise, if the trigger matches start_upstairs_notif OR start_upstairs AND the current weekday is Monday, Wednesday, or Friday, then: If the trigger is start_upstairs_notif, send a notification with title 'Vac-it Ralph' and message 'Dags för städning om 15min!'. If the trigger is start_upstairs, start cleaning with vacuum vac it ralph [vacuum.vac_it_ralph].",
"natural_language": {
"trigger": "The automation triggers either at the scheduled time set in time vacuum upstairs [input_datetime.time_vacuum_upstairs], or exactly 15 minutes before that scheduled time.",
"conditions": "There are no global conditions. However, the actions are conditional. The automation first checks if House Mode Guests [input_boolean.house_mode_guests] is turned on. If it is, nothing happens. If it is not, it proceeds only if the trigger was one of the two defined triggers and the current day is Monday, Wednesday, or Friday.",
"action": "If the trigger was the 15-minute heads-up notification, a notification is sent with the title 'Vac-it Ralph' and the message 'Dags för städning om 15min!'. If the trigger was the actual scheduled start time, the vacuum cleaner vacuum vac it ralph [vacuum.vac_it_ralph] is started."
},
"human_like": "Schedules the upstairs vacuum cleaner to run on specific weekdays, sending a reminder 15 minutes before it starts, unless guests are present.",
"complexity": "medium"
}
},
{
"id": "e7961fc1-6cee-4ffe-936c-8c49fc49642b",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation reload event occurs OR When the state of vacuum vac it ralph [vacuum.vac_it_ralph] changes. CONDITIONS: None. ACTIONS: If the state of vacuum vac it ralph [vacuum.vac_it_ralph] is \"unavailable\", \"unknown\", or \"docked\", then turn off xiaomi cloud map extractor [camera.xiaomi_cloud_map_extractor]. Otherwise, turn on xiaomi cloud map extractor [camera.xiaomi_cloud_map_extractor].",
"natural_language": {
"trigger": "The automation triggers when Home Assistant starts up, when any automation is reloaded, or whenever the state of the vacuum vac it ralph [vacuum.vac_it_ralph] changes.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "It checks the current state of the vacuum vac it ralph [vacuum.vac_it_ralph]. If the vacuum is reported as unavailable, unknown, or docked, it turns off the xiaomi cloud map extractor [camera.xiaomi_cloud_map_extractor]. In all other states, it turns the camera on."
},
"human_like": "Automatically turns the vacuum's map camera on or off based on whether the vacuum is running or docked.",
"complexity": "medium"
}
},
{
"id": "69b93815-b673-4bff-8e86-68c9586c12f9",
"result": {
"structured": "TRIGGER: When vacuum vac it ralph [vacuum.vac_it_ralph] changes state to error (and is not coming from unavailable). CONDITIONS: None. ACTIONS: Send a notification to the family group with title 'Vac-it Ralph' and message containing the error description from the vacuum's state attribute.",
"natural_language": {
"trigger": "When the vacuum vac it ralph [vacuum.vac_it_ralph] enters an error state, provided its previous state was not 'unavailable'.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a notification to the family group with the title 'Vac-it Ralph' and a message that includes the specific error code or message reported by the vacuum."
},
"human_like": "Sends a notification to the family when the robot vacuum encounters an error.",
"complexity": "low"
}
},
{
"id": "02d47a86-cef3-435a-8471-c07e0b0fb8a3",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When the state of house mode away [input_boolean.house_mode_away] OR bedroom vent on [input_datetime.bedroom_vent_on] OR bedroom vent off [input_datetime.bedroom_vent_off] changes OR When the time reaches the value of bedroom vent on [input_datetime.bedroom_vent_on] OR bedroom vent off [input_datetime.bedroom_vent_off]. CONDITIONS: None (conditions are evaluated within the choose action block). ACTIONS: Choose an action based on conditions: IF the current time is after bedroom vent on [input_datetime.bedroom_vent_on] AND before bedroom vent off [input_datetime.bedroom_vent_off] THEN set bedroom starkvind [fan.bedroom_starkvind] fan percentage to 55. ELSE IF house mode away [input_boolean.house_mode_away] is on THEN set bedroom starkvind [fan.bedroom_starkvind] fan percentage to 55. OTHERWISE (default) set bedroom starkvind [fan.bedroom_starkvind] fan percentage to 11.",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when Home Assistant starts up, when any automation is reloaded, when the state of the house mode away switch, the bedroom vent on time, or the bedroom vent off time changes, or when the scheduled time for the bedroom vent on or bedroom vent off is reached.",
"conditions": "The automation does not have global conditions. Instead, it uses a decision block to select which action to run. It first checks if the current time is within the scheduled ventilation period, defined as being after the bedroom vent on time and before the bedroom vent off time. If not, it then checks if the house mode away switch is turned on.",
"action": "If the current time is within the scheduled ventilation period, the bedroom starkvind fan is set to 55% speed. If the house is in away mode, the fan is also set to 55% speed. In all other cases, the fan is set to a lower speed of 11%."
},
"human_like": "Controls the bedroom air cleaner fan speed, setting it higher during scheduled ventilation times or when the house is in away mode, and lower otherwise.",
"complexity": "medium"
}
},
{
"id": "995c171e-c998-42b6-9599-d5395bcca1d8",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded event occurs OR When water sink water leak [binary_sensor.water_sink_water_leak] changes from off to on OR When water wardrobe water leak [binary_sensor.water_wardrobe_water_leak] changes from off to on OR When bedroom AC water leak [binary_sensor.water_bedroom_ac_water_leak] changes from off to on. CONDITIONS: (Trigger ID is sensor) OR (water sink water leak [binary_sensor.water_sink_water_leak] is on OR water wardrobe water leak [binary_sensor.water_wardrobe_water_leak] is on OR bedroom AC water leak [binary_sensor.water_bedroom_ac_water_leak] is on). ACTIONS: Send a notification with title 'Vattenläcka!' and a dynamic message to notify.family AND send a notification with title 'Vattenläcka!' and the same dynamic message to notify.castle.",
"natural_language": {
"trigger": "The automation triggers when Home Assistant starts up, when any automation is reloaded, or when any of the three water leak sensors (water sink water leak [binary_sensor.water_sink_water_leak], water wardrobe water leak [binary_sensor.water_wardrobe_water_leak], or bedroom AC water leak [binary_sensor.water_bedroom_ac_water_leak]) change state from off to on, indicating a leak detection.",
"conditions": "The notification action only runs if the trigger was one of the water leak sensor state changes, or if, at the time of evaluation, at least one of the three water leak sensors is currently in the 'on' state.",
"action": "Sends a high-priority, sticky, public notification titled 'Vattenläcka!' (Water leak!) with a location-specific message to the 'family' and 'castle' notification services. The message details the specific location of the leak if a sensor triggered it, or a generic message if triggered by startup or reload."
},
"human_like": "Sends urgent water leak alerts to the family when a leak is detected under the sink, in the downstairs wardrobe, or from the bedroom AC tank, and also runs on system startup to check for any active leaks.",
"complexity": "medium"
}
},
{
"id": "191c227f-0822-4457-b917-539d9345eb48",
"result": {
"structured": "TRIGGER: When watermeter water usage current [sensor.watermeter_water_usage_current] is above 0 for 15 minutes. ACTIONS: If the trigger 'flow_15' fired, then send a notification to 'family' with title 'Vattenflöde!' and message 'Vatten har runnit i över 15min (flöde {{states('sensor.watermeter_water_usage_current')|round(2)}}L/min)' with high importance, water_leak tag, sticky, and public visibility, AND send a notification to 'castle' with the same title and message.",
"natural_language": {
"trigger": "When the watermeter water usage current [sensor.watermeter_water_usage_current] reports a flow rate greater than zero for a continuous period of 15 minutes.",
"conditions": "There are no additional conditions; the automation runs based solely on the trigger.",
"action": "Sends two notifications: one to the 'family' notification target and another to the 'castle' notification target. Both alerts have the title 'Vattenflöde!' and a message stating that water has been flowing for over 15 minutes, including the current flow rate rounded to two decimal places. The notification to 'family' is marked as high importance, tagged for water leaks, set to be sticky, and made publicly visible."
},
"human_like": "Sends an alert if water has been flowing for more than 15 minutes, indicating a potential leak or left-on tap.",
"complexity": "low"
}
},
{
"id": "3b83edcb-50e2-4af8-8808-5190199d98da",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation_reloaded or scene_reloaded event occurs OR When house mode bright inside [input_boolean.house_mode_bright_inside] changes state OR At the time specified by time goodmorning [input_datetime.time_goodmorning] OR At the time specified by time goodnight [input_datetime.time_goodnight] OR When house mode sleep [input_boolean.house_mode_sleep] turns on (from off to on). CONDITIONS: None. ACTIONS: If house mode bright inside [input_boolean.house_mode_bright_inside] is on, then turn off laundry room window [light.laundry_room_window] with a 5-second transition. Otherwise, if the current time is after time goodmorning [input_datetime.time_goodmorning] AND before time goodnight [input_datetime.time_goodnight], then activate Laundry Room Window Lights Cozy Scene [scene.laundry_room_window_lights_cozy] with a 5-second transition. Otherwise, turn off laundry room window [light.laundry_room_window] with a 5-second transition.",
"natural_language": {
"trigger": "This automation runs when Home Assistant starts up, when automations or scenes are reloaded, when the house mode bright inside [input_boolean.house_mode_bright_inside] changes, at the specific morning and night times set by time goodmorning [input_datetime.time_goodmorning] and time goodnight [input_datetime.time_goodnight], or when the house mode sleep [input_boolean.house_mode_sleep] is turned on.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "If the house mode bright inside [input_boolean.house_mode_bright_inside] is active, the laundry room window light [light.laundry_room_window] is turned off with a 5-second fade. If not, and if the current time is between the morning and night times, the cozy scene for the laundry room window lights [scene.laundry_room_window_lights_cozy] is activated with a 5-second transition. If neither of those cases apply, the laundry room window light [light.laundry_room_window] is turned off with a 5-second fade."
},
"human_like": "This automation manages the laundry room window lights, turning them on with a cozy scene during the day and off at night or when a bright interior mode is active.",
"complexity": "medium"
}
},
{
"id": "842ed6ce-287d-4156-8b36-1040f1265f12",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When an automation is reloaded (automation_reloaded event) OR When the state of workday today [binary_sensor.workday_today] changes OR When the state of vacation linus [binary_sensor.vacation_linus] changes. CONDITIONS: None. ACTIONS: If vacation linus [binary_sensor.vacation_linus] is on OR workday today [binary_sensor.workday_today] is off, then turn off workday linus [input_boolean.workday_linus]; otherwise, turn on workday linus [input_boolean.workday_linus].",
"natural_language": {
"trigger": "The automation runs when Home Assistant starts up, when any automation is reloaded, or when the state of either the 'workday today' sensor [binary_sensor.workday_today] or the 'vacation linus' sensor [binary_sensor.vacation_linus] changes.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "If either the 'vacation linus' sensor [binary_sensor.vacation_linus] is on (indicating Linus is on vacation) or the 'workday today' sensor [binary_sensor.workday_today] is off (indicating today is not a workday), then the automation turns off the 'workday linus' status [input_boolean.workday_linus]. Otherwise, it turns on the 'workday linus' status [input_boolean.workday_linus]."
},
"human_like": "Sets Linus's workday status based on whether it's a workday and whether he is on vacation, updating whenever relevant conditions change.",
"complexity": "medium"
}
},
{
"id": "71e990e2-1f77-4985-9b7b-76dc9750d17a",
"result": {
"structured": "TRIGGER: When an MQTT message is received on topic 'zigbee2mqtt/bridge/event' with payload 'device_leave'. CONDITIONS: None. ACTIONS: Wait for up to 1 minute for an MQTT message on topic 'zigbee2mqtt/bridge/event' with payload 'device_joined'. If no such message is received within the timeout, then send a notification to castle [notify.castle] with title 'Zigbee2MQTT' and a message containing the current time and the friendly name from the original trigger payload.",
"natural_language": {
"trigger": "When Zigbee2MQTT reports that a device has left the network (a 'device_leave' event).",
"conditions": "There are no conditions for this automation.",
"action": "The automation waits for up to one minute to see if the same device rejoins the network (a 'device_joined' event). If the device does not rejoin within that minute, it sends a notification to the 'castle' notification service, alerting that Zigbee2MQTT lost contact with the specific device."
},
"human_like": "Sends a notification if a Zigbee device leaves the network and does not rejoin within one minute.",
"complexity": "medium"
}
},
{
"id": "zigbee2mqtt_create_notification_on_successful_interview",
"result": {
"structured": "TRIGGER: When an MQTT message is received on the topic 'zigbee2mqtt/bridge/event'. CONDITIONS: The MQTT message payload indicates a 'device_interview' event with a 'successful' status and the device is marked as 'supported'. ACTIONS: Create a persistent notification with the title 'Device joined the Zigbee2MQTT network' and a message containing the device's friendly name, vendor, model, and description from the payload.",
"natural_language": {
"trigger": "When a message is published to the MQTT topic 'zigbee2mqtt/bridge/event'.",
"conditions": "The message content must be a 'device_interview' event that was 'successful' and the device must be 'supported'.",
"action": "Creates a notification with the title 'Device joined the Zigbee2MQTT network' and details about the device, including its name, vendor, model, and description."
},
"human_like": "Sends a notification when a new Zigbee device successfully joins the network.",
"complexity": "low"
}
},
{
"id": "zigbee2mqtt_update_devices_list",
"result": {
"structured": "TRIGGER: When an MQTT message is received on topic zigbee2mqtt/bridge/event OR when an MQTT message is received on topic zigbee2mqtt/bridge/response/device/rename OR when Home Assistant starts. CONDITIONS: None. ACTIONS: Wait 1 second, then set the options for zigbee2mqtt old name select [input_select.zigbee2mqtt_old_name_select] and zigbee2mqtt remove select [input_select.zigbee2mqtt_remove_select] to a list of device names from the Zigbee2MQTT integration, and set the value of zigbee2mqtt new name [input_text.zigbee2mqtt_new_name] to an empty string.",
"natural_language": {
"trigger": "The automation is triggered when an event is published to the MQTT topic 'zigbee2mqtt/bridge/event', or when a device rename response is published to the MQTT topic 'zigbee2mqtt/bridge/response/device/rename', or when Home Assistant itself starts up.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "After a brief one-second delay, the automation updates two dropdown lists, 'zigbee2mqtt old name select' [input_select.zigbee2mqtt_old_name_select] and 'zigbee2mqtt remove select' [input_select.zigbee2mqtt_remove_select], with the names of all devices managed by the Zigbee2MQTT integration. It also clears the text field 'zigbee2mqtt new name' [input_text.zigbee2mqtt_new_name] by setting its value to an empty string."
},
"human_like": "Updates the list of Zigbee devices in the management interface whenever Zigbee2MQTT events occur or Home Assistant restarts.",
"complexity": "medium"
}
},
{
"id": "574e8534-e0c3-47b4-b731-15ed8e5e92be",
"result": {
"structured": "TRIGGER: When the current time reaches the scheduled time set in time vacuum downstairs [input_datetime.time_vacuum_downstairs] OR when the current time is exactly 15 minutes before the scheduled time set in time vacuum downstairs [input_datetime.time_vacuum_downstairs]. CONDITIONS: None. ACTIONS: If House Mode Guests [input_boolean.house_mode_guests] is on, do nothing. Otherwise, if the trigger was the 15-minute notification AND it is Monday, Wednesday, or Friday, send a notification to the family group with title 'Zucky Stardust' and message 'Dags för städning om 15min!'. If the trigger was the actual start time AND it is Monday, Wednesday, or Friday, start vacuuming with vacuum zucky stardust [vacuum.zucky_stardust].",
"natural_language": {
"trigger": "The automation triggers either at the exact scheduled time set in the 'time vacuum downstairs' [input_datetime.time_vacuum_downstairs] input, or 15 minutes before that scheduled time.",
"conditions": "There are no global conditions. The actions are selected based on internal choices: first, if the 'House Mode Guests' [input_boolean.house_mode_guests] mode is active, the automation does nothing. If guests are not present, it proceeds only if the trigger occurred on a Monday, Wednesday, or Friday.",
"action": "If triggered 15 minutes before the scheduled time, it sends a notification to the family group. If triggered at the exact scheduled time, it starts the robot vacuum 'vacuum zucky stardust' [vacuum.zucky_stardust] to clean."
},
"human_like": "Schedules the Zucky Stardust vacuum to clean downstairs on certain weekdays, sending a reminder 15 minutes before it starts, unless guests are at home.",
"complexity": "medium"
}
}
]