AutomationDataset/guibrazlima/automation-descriptions.json

1029 lines
112 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[
{
"id": "'1755254428695'",
"result": {
"structured": "TRIGGER: When pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] turns on and remains on for 2 minutes. CONDITIONS: (pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is above 0) AND (the current time is after sunrise plus 15 minutes AND before sunset minus 15 minutes). ACTIONS: Turn on pool pump [switch.bomba_piscina] AND pool pump switch 0 [switch.bomba_piscina_switch_0].",
"natural_language": {
"trigger": "When the pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] indicates there is excess photovoltaic power available and stays in the 'on' state for two minutes.",
"conditions": "The pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] must be greater than zero, and the automation only runs during daylight hours, specifically between 15 minutes after sunrise and 15 minutes before sunset.",
"action": "Turns on both the main pool pump [switch.bomba_piscina] and the secondary pool pump switch 0 [switch.bomba_piscina_switch_0]."
},
"human_like": "Starts the pool pumps using excess solar power when there is still filtration time left, but only during the day.",
"complexity": "medium"
}
},
{
"id": "'1755259008848'",
"result": {
"structured": "TRIGGER: When pool manual timer [timer.piscina_manual] finishes. CONDITIONS: None. ACTIONS: Turn off pool pump switch 0 [switch.bomba_piscina_switch_0] AND turn off pool override manual [input_boolean.piscina_override_manual].",
"natural_language": {
"trigger": "When the pool manual timer [timer.piscina_manual] finishes.",
"conditions": "There are no conditions.",
"action": "Turns off the pool pump switch 0 [switch.bomba_piscina_switch_0] and also turns off the pool override manual [input_boolean.piscina_override_manual] input boolean."
},
"human_like": "When a manual timer for the pool finishes, it automatically turns off the pool pump and exits the manual override mode.",
"complexity": "low"
}
},
{
"id": "'1755339332285'",
"result": {
"structured": "TRIGGER: Every 2 minutes (time pattern). CONDITIONS: (pool override manual [input_boolean.piscina_override_manual] is off) AND (pool pump switch 0 [switch.bomba_piscina_switch_0] is off) AND (pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is above 0) AND (pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] is on) AND (sun is after sunrise + 15 minutes AND before sunset - 15 minutes). ACTIONS: Turn on pool pump switch 0 [switch.bomba_piscina_switch_0].",
"natural_language": {
"trigger": "The automation runs every two minutes.",
"conditions": "All of the following must be true: the pool override manual [input_boolean.piscina_override_manual] is off, the pool pump switch 0 [switch.bomba_piscina_switch_0] is off, the pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is greater than zero, the pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] is on, and the current time is between 15 minutes after sunrise and 15 minutes before sunset.",
"action": "Turns on the pool pump switch 0 [switch.bomba_piscina_switch_0]."
},
"human_like": "Automatically turns on the pool pump every two minutes during daylight hours when there is excess solar power available and filtration time remains, provided manual override is off.",
"complexity": "medium"
}
},
{
"id": "'1755339342740'",
"result": {
"structured": "TRIGGER: Every 2 minutes (time pattern). CONDITIONS: (pool override manual [input_boolean.piscina_override_manual] is off) AND (pool pump switch 0 [switch.bomba_piscina_switch_0] is off) AND (pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is above 0) AND (pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] is on) AND (sun is after sunrise + 15 minutes AND before sunset - 15 minutes). ACTIONS: Turn on pool pump switch 0 [switch.bomba_piscina_switch_0].",
"natural_language": {
"trigger": "The automation runs every two minutes.",
"conditions": "All of the following must be true: the pool override manual [input_boolean.piscina_override_manual] is off, the pool pump switch 0 [switch.bomba_piscina_switch_0] is off, the pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is greater than zero, the pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] is on, and the current time is between 15 minutes after sunrise and 15 minutes before sunset.",
"action": "Turns on the pool pump switch 0 [switch.bomba_piscina_switch_0]."
},
"human_like": "Automatically turns on the pool pump every two minutes during daylight hours when there is excess solar power available, remaining filtration time, and no manual override is active.",
"complexity": "medium"
}
},
{
"id": "'1755339343598'",
"result": {
"structured": "TRIGGER: Every 2 minutes (time pattern). CONDITIONS: (pool override manual [input_boolean.piscina_override_manual] is off) AND (pool pump switch 0 [switch.bomba_piscina_switch_0] is off) AND (pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is above 0) AND (pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] is on) AND (current time is after sunrise plus 15 minutes AND before sunset minus 15 minutes). ACTIONS: Turn on pool pump switch 0 [switch.bomba_piscina_switch_0].",
"natural_language": {
"trigger": "The automation triggers every two minutes.",
"conditions": "The automation checks several conditions: the pool override manual [input_boolean.piscina_override_manual] must be off, the pool pump switch 0 [switch.bomba_piscina_switch_0] must be off, the pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] must be greater than zero, the pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] must be on, and the current time must be between 15 minutes after sunrise and 15 minutes before sunset.",
"action": "It turns on the pool pump switch 0 [switch.bomba_piscina_switch_0]."
},
"human_like": "Automatically starts the pool pump every two minutes during daylight hours when there is excess solar power available and the system is not in manual override mode.",
"complexity": "medium"
}
},
{
"id": "'1717785108600'",
"result": {
"structured": "TRIGGER: When the time is 06:30:00 OR when the time is 18:30:00 OR at sunrise with an offset of -35 minutes. CONDITIONS: None. ACTIONS: Update the speedtest download [sensor.speedtest_download] entity.",
"natural_language": {
"trigger": "The automation triggers at 6:30 AM, at 6:30 PM, and 35 minutes before sunrise.",
"conditions": "There are no conditions for this automation.",
"action": "It refreshes the data for the speedtest download [sensor.speedtest_download] sensor."
},
"human_like": "Runs a speed test twice daily and before sunrise to keep the internet speed data up to date.",
"complexity": "low"
}
},
{
"id": "'1717785145333'",
"result": {
"structured": "TRIGGER: When a mobile app notification action event occurs with action value ABRIR_PORTAO. CONDITIONS: None. ACTIONS: Open gate cover [cover.gate].",
"natural_language": {
"trigger": "When a specific action, named ABRIR_PORTAO, is tapped on a notification sent to the mobile app.",
"conditions": "There are no conditions that must be met.",
"action": "Opens the gate by sending an open command to the gate cover [cover.gate]."
},
"human_like": "Opens the gate when a specific action button is pressed on a mobile app notification.",
"complexity": "low"
}
},
{
"id": "'1717785168033'",
"result": {
"structured": "TRIGGER: When gate cover [cover.gate] changes from closed to open AND remains open for 2 seconds OR When gate cover [cover.gate] changes from open to closed AND remains closed for 2 seconds. CONDITIONS: sun sun [sun.sun] is below_horizon. ACTIONS: If gate cover [cover.gate] is open, then turn on exterior light [light.exterior]. If gate cover [cover.gate] is closed AND remains closed for 5 minutes, then turn off exterior light [light.exterior].",
"natural_language": {
"trigger": "When the gate cover [cover.gate] is opened and stays open for at least two seconds, or when it is closed and stays closed for at least two seconds.",
"conditions": "The sun sun [sun.sun] must be below the horizon, meaning it is night or dusk.",
"action": "If the gate is open, the exterior light [light.exterior] is turned on. If the gate is closed and remains closed for five minutes, the exterior light [light.exterior] is turned off."
},
"human_like": "Turns on the exterior light when the gate is opened at night, and turns it off five minutes after the gate is closed.",
"complexity": "medium"
}
},
{
"id": "'1717785178989'",
"result": {
"structured": "TRIGGER: Every 15 minutes (time pattern). CONDITIONS: bmw i4 battery percent [sensor.i4_edrive40_remaining_battery_percent] is below 46% AND bmw i4 tracker [device_tracker.i4_edrive40] is at home. ACTIONS: Wait 10 minutes. Then, repeat the following sequence while ALL of the following hold: bmw i4 tracker [device_tracker.i4_edrive40] is at home, bmw i4 battery percent [sensor.i4_edrive40_remaining_battery_percent] is below 70%, i4 connection status [binary_sensor.i4_edrive40_connection_status] is off, AND the repeat iteration count is 8 or less. Each repetition consists of: In parallel, if hk presence cmouta [binary_sensor.hk_presence_cmouta] is on, send a notification to iphone de cristina notify [notify.mobile_app_iphone_de_cristina_3]; AND if hk presence gblima [binary_sensor.hk_presence_gblima] is on, send a notification to notify [notify.notify]. Then wait 15 minutes before the next repetition.",
"natural_language": {
"trigger": "The automation triggers every 15 minutes.",
"conditions": "The conditions require that the bmw i4 battery percent [sensor.i4_edrive40_remaining_battery_percent] is below 46% and the bmw i4 tracker [device_tracker.i4_edrive40] reports the car is at home.",
"action": "After a 10-minute delay, the automation enters a repeating loop. In each loop, it checks if specific people are home and sends them a reminder notification to plug in the car. The loop continues as long as the car remains at home, its battery is below 70%, it is not connected to a charger, and the loop has run fewer than 8 times. Between each loop iteration, there is a 15-minute delay."
},
"human_like": "Sends periodic reminders to plug in the BMW i4 when its battery is low and the car is at home, notifying specific household members if they are present.",
"complexity": "high"
}
},
{
"id": "'1717786183938'",
"result": {
"structured": "TRIGGER: When home glima distance [sensor.home_glima_distance] is below 50 OR when home cmouta distance [sensor.home_cmouta_distance] is below 50. CONDITIONS: None. ACTIONS: If triggered by home glima distance [sensor.home_glima_distance] below 50, then send a notification to glphone notify [notify.mobile_app_glphone] with a prompt to open the gate, wait 10 minutes, then clear that notification. If triggered by home cmouta distance [sensor.home_cmouta_distance] below 50, then send a notification to iphone de cristina notify [notify.mobile_app_iphone_de_cristina_3] with a prompt to open the gate, wait 10 minutes, then clear that notification.",
"natural_language": {
"trigger": "When the distance sensor for Guilherme's phone (home glima distance [sensor.home_glima_distance]) drops below 50 meters from home, or when the distance sensor for Cristina's phone (home cmouta distance [sensor.home_cmouta_distance]) drops below 50 meters from home.",
"conditions": "There are no conditions that need to be met.",
"action": "If Guilherme's phone is nearby, a notification is sent to his phone (glphone notify [notify.mobile_app_glphone]) asking if he wants to open the home gate. This notification is automatically cleared after 10 minutes. If Cristina's phone is nearby, a similar notification is sent to her phone (iphone de cristina notify [notify.mobile_app_iphone_de_cristina_3]), which is also cleared after 10 minutes."
},
"human_like": "Sends a notification to the resident's phone asking if they want to open the home gate when they arrive within 50 meters of the house.",
"complexity": "medium"
}
},
{
"id": "'1717786217050'",
"result": {
"structured": "TRIGGER: When gate cover [cover.gate] changes from closed to open AND remains open for 5 minutes. CONDITIONS: None. ACTIONS: 1. WHILE gate cover [cover.gate] remains open: a. Take a snapshot from patio exterior hd stream camera [camera.patio_exterior_hd_stream] and save it as /config/www/camera_snapshots/mysnap_portao.jpg. b. Send a Telegram message with title '🚙🚨 Portão de casa aberto!🚨' and text 'Está aberto a mais de 5 minutos. Fechar?'. c. Send the saved snapshot via Telegram. d. Send a notification with title '🚙 Portão de casa aberto!' and message 'Está aberto a mais de 5 minutos. Fechar?'. e. Wait for 5 minutes. 2. After the loop ends (i.e., gate cover [cover.gate] is no longer open): a. Take a final snapshot from patio exterior hd stream camera [camera.patio_exterior_hd_stream] and save it as /config/www/camera_snapshots/mysnap_portao.jpg. b. Send a Telegram message with title '🚙✅Portão de casa fechado.✅' and text 'O portão está fechado.'. c. Send the saved snapshot via Telegram. d. Send a notification with title '🚙✅Portão de casa fechado.✅' and message 'O portão está fechado.'.",
"natural_language": {
"trigger": "When the gate cover [cover.gate] is opened and stays open for at least five minutes.",
"conditions": "There are no conditions that need to be met for the automation to run.",
"action": "First, while the gate cover [cover.gate] remains open, the automation will repeatedly: take a snapshot from the patio exterior hd stream camera [camera.patio_exterior_hd_stream], send a warning message and the snapshot via Telegram, send a local notification, and then wait for five minutes before checking the gate's state again. Once the gate is no longer open, the automation takes a final snapshot, sends a confirmation message and the snapshot via Telegram, and sends a local notification to announce that the gate is closed."
},
"human_like": "Sends repeated warnings while the garage gate is left open for too long, and sends a final confirmation when it is closed.",
"complexity": "medium"
}
},
{
"id": "'1717786230999'",
"result": {
"structured": "TRIGGER: When an iOS action with ID 06BE95EF-F583-440C-9BED-C5FEB7684C15 is fired by user fc76053283b948f39e0979158ba02875 (gblima) OR When an iOS action with ID EA13513A-5C16-44C1-B9ED-8AEC747DC1D0 is fired by user 7df539210ca3465e9ca91c3e2f1bd7e0 (cmouta). CONDITIONS: None. ACTIONS: Open the gate cover [cover.gate]. Wait for 2 minutes. Then, if the trigger was gblima AND gate cover [cover.gate] is closed AND gblima present [input_boolean.gblima_present] is off, send a notification to glphone notify [notify.mobile_app_glphone] with title '🚗 Ate Logo! 🙂' and message 'O portão está fechado.✅🔒', wait 5 minutes, then clear that notification. Otherwise, if the trigger was gblima AND gblima present [input_boolean.gblima_present] is off, send a critical notification to glphone notify [notify.mobile_app_glphone] with title '------------' and message '⚠O portão não fechou!!!⚠️🔓'. Separately, if the trigger was cmouta AND gate cover [cover.gate] is closed AND cmouta present [input_boolean.cmouta_present] is off, send a notification to iphone de cristina notify [notify.mobile_app_iphone_de_cristina_3] with title '🚗 Ate Logo! 🙂' and message 'O portão está fechado.✅🔒', wait 5 minutes, then clear that notification. Otherwise, if the trigger was cmouta AND cmouta present [input_boolean.cmouta_present] is off, send a critical notification to iphone de cristina notify [notify.mobile_app_iphone_de_cristina_3] with title '------------' and message '⚠O portão não fechou!!!⚠️🔓'.",
"natural_language": {
"trigger": "The automation is triggered when a specific iOS shortcut action is executed by either of two users. For the user 'gblima', the action ID is 06BE95EF-F583-440C-9BED-C5FEB7684C15. For the user 'cmouta', the action ID is EA13513A-5C16-44C1-B9ED-8AEC747DC1D0.",
"conditions": "There are no global conditions that must be met for the automation to run.",
"action": "The automation first opens the gate cover [cover.gate]. After a two-minute delay, it checks which user triggered the action. If the trigger was from 'gblima', it checks if the gate is closed and if the 'gblima present' [input_boolean.gblima_present] status is off. If both are true, it sends a confirmation notification to the glphone notify [notify.mobile_app_glphone], waits five minutes, and then clears that notification. If the gate is not closed but the user is marked as away, it sends a critical alert to the same phone. A parallel, similar process runs for the user 'cmouta', sending notifications to the iphone de cristina notify [notify.mobile_app_iphone_de_cristina_3] based on the state of the gate and the 'cmouta present' [input_boolean.cmouta_present] status."
},
"human_like": "Opens the garage gate when a user activates a specific iOS shortcut, then sends tailored notifications to the user's phone about the gate's status a few minutes later.",
"complexity": "medium"
}
},
{
"id": "'1717786241528'",
"result": {
"structured": "TRIGGER: At the time set in pool night schedule [input_datetime.horario_piscina_noite]. CONDITIONS: (filtration pool history [sensor.filtragem_piscina_historico_s] attribute 'today-1' (converted to integer) is less than (pool pump duration lower threshold [input_number.pool_pump_duration_lower_threshold] (converted to integer) multiplied by 60)) AND (average cloud cover 10 00 18 00 [sensor.media_de_cobertura_de_nuvens_10_00_18_00] is above 35 OR filtration pool history [sensor.filtragem_piscina_historico_s] state (converted to integer) is less than or equal to 3600). ACTIONS: If season sensor [sensor.season] is spring OR summer, then turn on pool pump switch 0 [switch.bomba_piscina_switch_0], then repeatedly (with a 5-second delay between attempts) attempt to turn on Device 43f5cd2f7257fed3e55788df58ce96de [43f5cd2f7257fed3e55788df58ce96de] while Device e5f1b9b1d10308b32ef8f69bc0d20d74 [e5f1b9b1d10308b32ef8f69bc0d20d74] is off and the repeat index is 10 or less, then delay for a duration calculated as the maximum of 0 and ((pool pump duration lower threshold [input_number.pool_pump_duration_lower_threshold] (converted to integer) multiplied by 60) minus (filtration pool history [sensor.filtragem_piscina_historico_s] attribute 'today-1' (converted to integer))), then turn off pool pump switch 0 [switch.bomba_piscina_switch_0]. Otherwise (if season is not spring or summer), turn on pool pump switch 0 [switch.bomba_piscina_switch_0], then repeatedly (with a 5-second delay between attempts) attempt to turn on Device 43f5cd2f7257fed3e55788df58ce96de [43f5cd2f7257fed3e55788df58ce96de] while Device e5f1b9b1d10308b32ef8f69bc0d20d74 [e5f1b9b1d10308b32ef8f69bc0d20d74] is off and the repeat index is 10 or less, then delay for a duration calculated as the maximum of 0 and ((pool pump duration winter [input_number.pool_pump_duration_inverno] (converted to integer) multiplied by 60) minus (filtration pool history [sensor.filtragem_piscina_historico_s] attribute 'today-1' (converted to integer))), then turn off pool pump switch 0 [switch.bomba_piscina_switch_0].",
"natural_language": {
"trigger": "The automation runs at the specific time set in the pool night schedule [input_datetime.horario_piscina_noite].",
"conditions": "Two conditions must be met. First, the total filtration time from the previous day (recorded in the filtration pool history [sensor.filtragem_piscina_historico_s]) must be less than the daily target duration (the pool pump duration lower threshold [input_number.pool_pump_duration_lower_threshold] in minutes, converted to seconds). Second, either the average cloud cover during the day [sensor.media_de_cobertura_de_nuvens_10_00_18_00] was above 35%, or the current total filtration time for today (from the same sensor) is one hour or less.",
"action": "Depending on the season, the pool pump runs for a calculated time to meet a daily target. If it's spring or summer, the main pump switch [switch.bomba_piscina_switch_0] is turned on. Then, a secondary device [43f5cd2f7257fed3e55788df58ce96de] is attempted to be turned on repeatedly (up to 10 times, waiting 5 seconds between tries) as long as another device [e5f1b9b1d10308b32ef8f69bc0d20d74] is off. The pump then runs for the remaining time needed to reach the spring/summer daily target, after which it is turned off. If it's not spring or summer, the same sequence occurs, but the pump runs for the remaining time needed to reach the winter daily target [input_number.pool_pump_duration_inverno] instead."
},
"human_like": "Runs the pool pump at a scheduled nighttime hour to ensure it filters for a minimum daily duration, adjusting the run time based on the season and how much filtering was already done that day.",
"complexity": "high"
}
},
{
"id": "'1717786251723'",
"result": {
"structured": "TRIGGER: When pool button device [device_id: 50eb20ac53472c3cc1b1da733634d1c8] sends a button press event. CONDITIONS: None. ACTIONS: Toggle pool waterfall switch [switch.44b25a719c3fa50cbbd4ebd6e57fcdb9].",
"natural_language": {
"trigger": "When a button on the pool button device [device_id: 50eb20ac53472c3cc1b1da733634d1c8] is pressed.",
"conditions": "There are no conditions that must be met.",
"action": "Toggles the state of the pool waterfall switch [switch.44b25a719c3fa50cbbd4ebd6e57fcdb9], turning it on if it was off, or off if it was on."
},
"human_like": "Turns the pool waterfall on or off with a single button press.",
"complexity": "low"
}
},
{
"id": "'1717786261877'",
"result": {
"structured": "TRIGGER: When pool button device [device_id: 50eb20ac53472c3cc1b1da733634d1c8] sends a double press event. CONDITIONS: None. ACTIONS: IF pool hydrojet switch [a282d1ef3a0591beb9ddf1392c8e3e42] is off THEN turn off Device e5f1b9b1d10308b32ef8f69bc0d20d74 [43f5cd2f7257fed3e55788df58ce96de], turn off new automation 3 [automation.new_automation_3], wait 5 seconds, turn on pool hydrojet switch [a282d1ef3a0591beb9ddf1392c8e3e42], WHILE pool hydrojet switch [a282d1ef3a0591beb9ddf1392c8e3e42] is on, repeat a 30-second delay, THEN turn on new automation 3 [automation.new_automation_3]. ELSE (if pool hydrojet switch [a282d1ef3a0591beb9ddf1392c8e3e42] is on) turn off pool hydrojet switch [a282d1ef3a0591beb9ddf1392c8e3e42] AND turn on new automation 3 [automation.new_automation_3].",
"natural_language": {
"trigger": "When the pool button device [device_id: 50eb20ac53472c3cc1b1da733634d1c8] is double-pressed.",
"conditions": "There are no conditions.",
"action": "If the pool hydrojet switch [a282d1ef3a0591beb9ddf1392c8e3e42] is currently off, the automation will first turn off Device e5f1b9b1d10308b32ef8f69bc0d20d74 [43f5cd2f7257fed3e55788df58ce96de] and disable the new automation 3 [automation.new_automation_3]. After a 5-second delay, it turns on the pool hydrojet switch [a282d1ef3a0591beb9ddf1392c8e3e42]. While the hydrojet switch remains on, it will repeatedly wait for 30 seconds. Once the hydrojet switch is turned off, it re-enables new automation 3 [automation.new_automation_3]. If the pool hydrojet switch [a282d1ef3a0591beb9ddf1392c8e3e42] is already on when the button is pressed, the automation simply turns off the hydrojet switch and immediately re-enables new automation 3 [automation.new_automation_3]."
},
"human_like": "Toggles the pool hydrojet with a double-press: if it's off, it starts a timed cycle with a safety delay; if it's on, it turns it off immediately.",
"complexity": "medium"
}
},
{
"id": "'1717786272132'",
"result": {
"structured": "TRIGGER: Every 5 minutes. CONDITIONS: None. ACTIONS: IF (sun is after sunrise AND before sunset) AND (pool daily filtration duration [sensor.duracao_filtragem_piscina_diario_em_segundos] is above 10800 seconds) AND (bmw i4 tracker [device_tracker.i4_edrive40] is home) AND (i4 connection status [binary_sensor.i4_edrive40_connection_status] is on) AND (bmw i4 battery percent [sensor.i4_edrive40_remaining_battery_percent] is below 100) THEN turn off new automation 3 [automation.new_automation_3] (stop_actions: true), turn off pool pump switch 0 [switch.bomba_piscina_switch_0], turn on wallbox charging enabled [switch.wallbox_charging_enabled]. ELSE IF time is after 09:00:00 AND before 18:00:00 THEN turn on new automation 3 [automation.new_automation_3], turn off wallbox charging enabled [switch.wallbox_charging_enabled], trigger new automation 3 [automation.new_automation_3] (skip_condition: true). ELSE turn off new automation 3 [automation.new_automation_3] (stop_actions: true), turn on wallbox charging enabled [switch.wallbox_charging_enabled].",
"natural_language": {
"trigger": "The automation runs every 5 minutes.",
"conditions": "There are no global conditions. The logic is handled entirely within the action sequence.",
"action": "If it is daytime (after sunrise and before sunset), the pool has filtered for more than 3 hours today, the BMW i4 is at home, connected, and its battery is not fully charged, then the automation stops another automation, turns off the pool pump, and enables the Wallbox charger. Otherwise, if the current time is between 9 AM and 6 PM, it turns on the other automation, disables the Wallbox charger, and triggers that automation. If neither of those sets of conditions are met, it stops the other automation and enables the Wallbox charger."
},
"human_like": "Manages pool filtration and electric vehicle charging based on time of day, sunlight, and the car's location and battery level.",
"complexity": "high"
}
},
{
"id": "'1717786282800'",
"result": {
"structured": "TRIGGER: At midnight (00:00:00). CONDITIONS: None. ACTIONS: Update the sensor filtration pool history [sensor.filtragem_piscina_historico_s] by setting its state to the integer value of pool daily filtration duration [sensor.duracao_filtragem_piscina_diario_em_segundos] (defaulting to 0). Also update its attributes: set 'today-1' to the integer value of the sensor's current state (defaulting to 0), and shift all other historical attributes ('today-2' to 'today-10') back by one day, each taking the value of the previous day's attribute (defaulting to 0).",
"natural_language": {
"trigger": "Every day at midnight.",
"conditions": "There are no conditions.",
"action": "Updates the filtration pool history [sensor.filtragem_piscina_historico_s] sensor. It sets the sensor's main value to today's total filtration duration in seconds from pool daily filtration duration [sensor.duracao_filtragem_piscina_diario_em_segundos]. It also shifts the historical data: the value from yesterday becomes 'today-1', the value from 'today-1' becomes 'today-2', and so on, creating a 10-day rolling history. If any previous values are missing, they default to zero."
},
"human_like": "Updates the pool filtration history every night at midnight, keeping a 10-day log of daily filtration times.",
"complexity": "medium"
}
},
{
"id": "'1717786439250'",
"result": {
"structured": "TRIGGER: When the raw_two_days attribute of ev smart charging charging [sensor.ev_smart_charging_charging] changes. CONDITIONS: None. ACTIONS: IF the current time is on Friday OR Saturday, THEN set ev smart charging charge completion time [select.ev_smart_charging_charge_completion_time] to 'None' AND turn off ev smart charging continuous charging preferred [switch.ev_smart_charging_continuous_charging_preferred]. OTHERWISE, set ev smart charging charge completion time [select.ev_smart_charging_charge_completion_time] to '08:00' AND turn on ev smart charging continuous charging preferred [switch.ev_smart_charging_continuous_charging_preferred].",
"natural_language": {
"trigger": "Whenever the raw_two_days attribute of the ev smart charging charging [sensor.ev_smart_charging_charging] sensor updates.",
"conditions": "There are no conditions that must be met.",
"action": "If the current day is Friday or Saturday, the automation will clear the scheduled charge completion time by setting ev smart charging charge completion time [select.ev_smart_charging_charge_completion_time] to 'None' and disable the continuous charging preference by turning off ev smart charging continuous charging preferred [switch.ev_smart_charging_continuous_charging_preferred]. On all other days, it will schedule the charge to complete by 08:00 by setting that time on the same select entity and enable the continuous charging preference by turning on the corresponding switch."
},
"human_like": "Adjusts the electric vehicle charging schedule based on the day of the week, disabling scheduled charging on weekends and enabling it for a morning completion time on weekdays.",
"complexity": "medium"
}
},
{
"id": "'1717786450595'",
"result": {
"structured": "TRIGGER: When i4 climate switch [switch.i4_edrive40_climate] turns on. CONDITIONS: Device 73087b9e1e3a0ceb0fc6d4024bd9ffe1 [17973f520f671f084cc637505d0c747d] is not home AND the current time is between 07:40:00 and 08:00:00 on Monday, Tuesday, Wednesday, Thursday, or Friday. ACTIONS: Turn off i4 climate switch [switch.i4_edrive40_climate].",
"natural_language": {
"trigger": "When the i4 climate switch [switch.i4_edrive40_climate] is turned on.",
"conditions": "If the device tracked by Device 73087b9e1e3a0ceb0fc6d4024bd9ffe1 [17973f520f671f084cc637505d0c747d] is not at home, and the current time is between 7:40 AM and 8:00 AM on a weekday (Monday through Friday).",
"action": "Turns the i4 climate switch [switch.i4_edrive40_climate] back off."
},
"human_like": "Prevents the car's climate control from being turned on remotely on weekday mornings when the user is not at home.",
"complexity": "medium"
}
},
{
"id": "'1717786462808'",
"result": {
"structured": "TRIGGER: When i4 connection status [binary_sensor.i4_edrive40_connection_status] changes state OR when ev smart charging status 2 [sensor.ev_smart_charging_status_2] changes state. CONDITIONS: None. ACTIONS: If the trigger was from i4 connection status [binary_sensor.i4_edrive40_connection_status] AND i4 connection status [binary_sensor.i4_edrive40_connection_status] is on, then turn on ev smart charging ev connected [switch.ev_smart_charging_ev_connected]; otherwise, turn it off. If the trigger was from ev smart charging status 2 [sensor.ev_smart_charging_status_2] AND x1 connection status [binary_sensor.x1_xdrive25e_connection_status] is on, then turn on ev smart charging ev connected 2 [switch.ev_smart_charging_ev_connected_2]; otherwise, turn it off.",
"natural_language": {
"trigger": "Whenever the i4 connection status [binary_sensor.i4_edrive40_connection_status] changes its state, or whenever the ev smart charging status 2 [sensor.ev_smart_charging_status_2] changes its state.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "If the change came from the i4 connection status and that sensor reports the car is connected (on), then the automation turns on the ev smart charging ev connected [switch.ev_smart_charging_ev_connected] switch. If the i4 is not connected, it turns that switch off. Separately, if the change came from the ev smart charging status 2 sensor and the x1 connection status [binary_sensor.x1_xdrive25e_connection_status] reports the car is connected (on), then the automation turns on the ev smart charging ev connected 2 [switch.ev_smart_charging_ev_connected_2] switch. If the x1 is not connected, it turns that second switch off."
},
"human_like": "This automation synchronizes smart charging switches with the connection status of two electric vehicles, turning the appropriate charger on or off when a vehicle is plugged in or unplugged.",
"complexity": "medium"
}
},
{
"id": "'1717786472626'",
"result": {
"structured": "TRIGGER: When Device 17973f520f671f084cc637505d0c747d [17973f520f671f084cc637505d0c747d] enters zone.home. CONDITIONS: The current time is between 18:00:00 and 08:00:00 on any day of the week. ACTIONS: Wait for 5 minutes, then set i4 target soc [number.i4_edrive40_target_soc] to 80.",
"natural_language": {
"trigger": "When the tracked device [17973f520f671f084cc637505d0c747d] arrives at home.",
"conditions": "The automation only runs if the current time is between 6:00 PM and 8:00 AM.",
"action": "After waiting for five minutes, the automation sets the target state of charge for the vehicle to 80% via the i4 target soc [number.i4_edrive40_target_soc]."
},
"human_like": "Sets the electric vehicle's target charge level to 80% when arriving home in the evening or overnight.",
"complexity": "low"
}
},
{
"id": "'1717786483857'",
"result": {
"structured": "TRIGGER: Every 5 minutes (time pattern). CONDITIONS: (Time is between 08:00:00 and 18:00:00 on any day of the week) AND (new automation 3 [automation.new_automation_3] is off) AND (bmw i4 tracker [device_tracker.i4_edrive40] is at home) AND (i4 connection status [binary_sensor.i4_edrive40_connection_status] is on). ACTIONS: IF (i4 target soc [number.i4_edrive40_target_soc] is above 79 AND bmw i4 battery percent [sensor.i4_edrive40_remaining_battery_percent] is above 79) THEN set i4 target soc [number.i4_edrive40_target_soc] to 100.",
"natural_language": {
"trigger": "The automation runs every five minutes.",
"conditions": "It only runs if the current time is between 8 AM and 6 PM on any day of the week, if the automation named new automation 3 [automation.new_automation_3] is turned off, if the vehicle bmw i4 tracker [device_tracker.i4_edrive40] is at home, and if the vehicle's i4 connection status [binary_sensor.i4_edrive40_connection_status] is on.",
"action": "If the vehicle's current target state of charge (i4 target soc [number.i4_edrive40_target_soc]) is set above 79% and the actual remaining battery (bmw i4 battery percent [sensor.i4_edrive40_remaining_battery_percent]) is also above 79%, then the automation will increase the target state of charge to 100%."
},
"human_like": "Automatically increases the target battery charge to 100% for the BMW i4 when it's at home, connected, and already mostly charged, but only during daytime hours.",
"complexity": "medium"
}
},
{
"id": "'1717786494527'",
"result": {
"structured": "TRIGGER: When ev smart charging charging [sensor.ev_smart_charging_charging] changes from 'Off' to 'On' OR when ev smart charging charging 2 [sensor.ev_smart_charging_charging_2] changes from 'Off' to 'On'. CONDITIONS: None. ACTIONS: Turn on evse admin rules inverted [switch.evse_admin_rules_inverted].",
"natural_language": {
"trigger": "When either the ev smart charging charging [sensor.ev_smart_charging_charging] or the ev smart charging charging 2 [sensor.ev_smart_charging_charging_2] sensor changes its state from 'Off' to 'On'.",
"conditions": "There are no conditions for this automation.",
"action": "Turns on the evse admin rules inverted [switch.evse_admin_rules_inverted] switch."
},
"human_like": "Starts the EV smart charging process by enabling the admin rules switch when either of two charging sensors becomes active.",
"complexity": "low"
}
},
{
"id": "'1717786503067'",
"result": {
"structured": "TRIGGER: When ev smart charging charging [sensor.ev_smart_charging_charging] changes state from On to Off OR when ev smart charging charging 2 [sensor.ev_smart_charging_charging_2] changes state from On to Off. CONDITIONS: None. ACTIONS: Turn off evse admin rules inverted [switch.evse_admin_rules_inverted].",
"natural_language": {
"trigger": "When the ev smart charging charging [sensor.ev_smart_charging_charging] sensor changes from 'On' to 'Off', or when the ev smart charging charging 2 [sensor.ev_smart_charging_charging_2] sensor changes from 'On' to 'Off'.",
"conditions": "There are no conditions that must be met.",
"action": "Turns off the evse admin rules inverted [switch.evse_admin_rules_inverted] switch."
},
"human_like": "Stops the EV charging rules when either of the smart charging sensors indicates charging has finished.",
"complexity": "low"
}
},
{
"id": "'1717786511680'",
"result": {
"structured": "TRIGGER: When i4 charging status [binary_sensor.i4_edrive40_charging_status] changes to on. CONDITIONS: Device 73087b9e1e3a0ceb0fc6d4024bd9ffe1 [device_tracker.73087b9e1e3a0ceb0fc6d4024bd9ffe1] is home. ACTIONS: Repeat the following sequence up to 30 times: Set i4 ac charging limit [select.i4_edrive40_ac_charging_limit] to option '32', then wait for 1 minute. Continue repeating WHILE (i4 ac current limit [sensor.i4_edrive40_ac_current_limit] is above 5 AND below 32) AND (the current repeat iteration number is less than or equal to 30).",
"natural_language": {
"trigger": "When the i4 charging status [binary_sensor.i4_edrive40_charging_status] indicates that the vehicle has started charging.",
"conditions": "The device identified as 73087b9e1e3a0ceb0fc6d4024bd9ffe1 [device_tracker.73087b9e1e3a0ceb0fc6d4024bd9ffe1] must be at home.",
"action": "Repeatedly sets the i4 ac charging limit [select.i4_edrive40_ac_charging_limit] to 32 amps and waits one minute. This loop continues as long as the actual i4 ac current limit [sensor.i4_edrive40_ac_current_limit] is between 5 and 32 amps, and the process has not been repeated more than 30 times."
},
"human_like": "When the electric vehicle starts charging at home, it automatically attempts to set the AC charging limit to the maximum 32 amps, checking and retrying until successful or until a limit is reached.",
"complexity": "medium"
}
},
{
"id": "'1717786521476'",
"result": {
"structured": "TRIGGER: When ev smart charging charging [sensor.ev_smart_charging_charging] remains on for 5 minutes OR When ev smart charging charging 2 [sensor.ev_smart_charging_charging_2] remains on for 5 minutes. CONDITIONS: ((bmw i4 tracker [device_tracker.i4_edrive40] is home AND i4 connection status [binary_sensor.i4_edrive40_connection_status] is on AND wallbox charging power [sensor.wallbox_charging_power] is below 2 AND the trigger is i4) OR (x1 tracker [device_tracker.x1_xdrive25e] is Home AND x1 connection status [binary_sensor.x1_xdrive25e_connection_status] is on AND wallbox charging power [sensor.wallbox_charging_power] is below 2 AND the trigger is x1)). ACTIONS: If the trigger was i4, then unlock Device 4cad819e94c6b23041776358896b68a0 [4cad819e94c6b23041776358896b68a0], wait 1 minute, lock Device 4cad819e94c6b23041776358896b68a0 [4cad819e94c6b23041776358896b68a0], wait 1 minute, and press the button ev smart charging manually start charging [button.ev_smart_charging_manually_start_charging]. If the trigger was x1, then unlock Device 2574b858b69f29422a37da5a8a6db887 [2574b858b69f29422a37da5a8a6db887], wait 1 minute, lock Device 2574b858b69f29422a37da5a8a6db887 [2574b858b69f29422a37da5a8a6db887], wait 1 minute, and press the button ev smart charging manually start charging [button.ev_smart_charging_manually_start_charging].",
"natural_language": {
"trigger": "The automation triggers when the ev smart charging charging [sensor.ev_smart_charging_charging] sensor reports a charging state of 'on' for at least five minutes, or when the ev smart charging charging 2 [sensor.ev_smart_charging_charging_2] sensor reports a charging state of 'on' for at least five minutes.",
"conditions": "The automation checks which vehicle is involved. For the i4, it requires that the bmw i4 tracker [device_tracker.i4_edrive40] is at home, the i4 connection status [binary_sensor.i4_edrive40_connection_status] is on, the wallbox charging power [sensor.wallbox_charging_power] is below 2, and the trigger came from the i4 sensor. For the x1, it requires that the x1 tracker [device_tracker.x1_xdrive25e] is at Home, the x1 connection status [binary_sensor.x1_xdrive25e_connection_status] is on, the wallbox charging power [sensor.wallbox_charging_power] is below 2, and the trigger came from the x1 sensor. Only one of these sets of conditions needs to be met.",
"action": "Depending on which vehicle triggered the automation, it performs a sequence of actions. For the i4, it unlocks a specific lock, waits one minute, locks it again, waits another minute, and then presses a button to manually start charging. For the x1, it performs the same unlock-wait-lock-wait sequence on a different lock, followed by pressing the same manual start charging button."
},
"human_like": "This automation helps start charging for a specific electric vehicle at home when it's plugged in but not receiving sufficient power, by performing a lock sequence and triggering the charging process.",
"complexity": "medium"
}
},
{
"id": "'1717786531178'",
"result": {
"structured": "TRIGGER: When sunset occurs, with an offset of 15 minutes before the event. CONDITIONS: None. ACTIONS: If someone at home group [group.alguem_em_casa] is home, then close store 3 store 3 [cover.estore_3_estore_3], turn on living room lower lights [light.candeeiros_sala_inferior], wait 5 seconds, and close store 2 store 2 [cover.estore_2_estore_2]. Otherwise, close store 3 store 3 [cover.estore_3_estore_3], wait 5 seconds, and close store 2 store 2 [cover.estore_2_estore_2].",
"natural_language": {
"trigger": "The automation runs 15 minutes before sunset.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "If the group indicating someone is at home [group.alguem_em_casa] shows that someone is home, the automation will close the first blind [cover.estore_3_estore_3], turn on the lower living room lights [light.candeeiros_sala_inferior], wait for five seconds, and then close the second blind [cover.estore_2_estore_2]. If no one is home, it will close the first blind [cover.estore_3_estore_3], wait five seconds, and then close the second blind [cover.estore_2_estore_2]."
},
"human_like": "Lowers the living room blinds before sunset, and turns on some lights if someone is home.",
"complexity": "medium"
}
},
{
"id": "'1717786542943'",
"result": {
"structured": "TRIGGER: At 07:45:00. CONDITIONS: None. ACTIONS: Open stores [cover.estores].",
"natural_language": {
"trigger": "Every day at 7:45 AM.",
"conditions": "There are no conditions.",
"action": "Opens the stores [cover.estores]."
},
"human_like": "Opens the living room blinds every morning at 7:45.",
"complexity": "low"
}
},
{
"id": "'1717786571925'",
"result": {
"structured": "TRIGGER: When coopernico spot price bihorario [sensor.template_coopernico_spot_price_bihorario] changes state. CONDITIONS: None. ACTIONS: If coopernico spot price bihorario [sensor.template_coopernico_spot_price_bihorario] is below 76, then turn on Device 812cfe69bc952bc3c627fef200856b27 [812cfe69bc952bc3c627fef200856b27] AND turn on Device fdb41e98b294e9204d61b1a6320f6c91 [fdb41e98b294e9204d61b1a6320f6c91]. Otherwise, turn off Device 812cfe69bc952bc3c627fef200856b27 [812cfe69bc952bc3c627fef200856b27] AND turn off Device fdb41e98b294e9204d61b1a6320f6c91 [fdb41e98b294e9204d61b1a6320f6c91].",
"natural_language": {
"trigger": "Whenever the electricity spot price sensor, coopernico spot price bihorario [sensor.template_coopernico_spot_price_bihorario], updates its value.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "If the spot price is below 76, the automation will turn on two devices: Device 812cfe69bc952bc3c627fef200856b27 [812cfe69bc952bc3c627fef200856b27] and Device fdb41e98b294e9204d61b1a6320f6c91 [fdb41e98b294e9204d61b1a6320f6c91]. If the spot price is 76 or higher, it will turn both of those devices off."
},
"human_like": "Automatically turns on certain devices when the electricity spot price is low, and turns them off when the price is high, to save on energy costs.",
"complexity": "low"
}
},
{
"id": "'1717786590629'",
"result": {
"structured": "TRIGGER: When gate switch [switch.portao] changes from off to on. CONDITIONS: None. ACTIONS: Turn on gate status [input_boolean.portao_status], then wait for 50 seconds, then turn off gate status [input_boolean.portao_status].",
"natural_language": {
"trigger": "Whenever the gate switch [switch.portao] is turned on.",
"conditions": "There are no conditions for this automation.",
"action": "It turns on the gate status [input_boolean.portao_status] indicator, waits for 50 seconds, and then turns the indicator off."
},
"human_like": "Sets a temporary 50-second status for the gate whenever the gate switch is activated.",
"complexity": "low"
}
},
{
"id": "'1717929670853'",
"result": {
"structured": "TRIGGER: When the time is 01:00:00 OR When the hour matches the pattern /12 (every 12 hours). CONDITIONS: None. ACTIONS: IF the trigger is daily (01:00:00) THEN choose the first matching condition: IF enable_yearly is true AND the current date is January 1 THEN set backup_type to yearly and keep_days to 365. IF enable_monthly is true AND the current day is 1 THEN set backup_type to monthly and keep_days to 90. IF enable_weekly is true AND the current weekday is Monday (0) THEN set backup_type to weekly and keep_days to 30. IF enable_daily is true THEN set backup_type to daily and keep_days to 7. For each chosen backup type, generate a name based on the current date and backup_type. IF use_action_hourly is false AND backup_action list is not empty THEN call auto_backup.backup service with the generated name, password, keep_days, and include_folders: config. OTHERWISE call auto_backup.backup service with the same parameters (default action). ELSE (trigger is hourly) set backup_type to hourly and keep_days to 1, generate a name, and IF backup_action list is not empty THEN call auto_backup.backup service, OTHERWISE call auto_backup.backup service (default action).",
"natural_language": {
"trigger": "The automation triggers daily at 1:00 AM, or every 12 hours (e.g., at noon and midnight).",
"conditions": "There are no conditions; the automation runs unconditionally when triggered.",
"action": "If the trigger is the daily 1:00 AM event, the automation checks for special calendar dates in a specific order. First, if yearly backups are enabled and today is January 1st, it creates a yearly backup kept for 365 days. If not, and monthly backups are enabled and today is the first day of the month, it creates a monthly backup kept for 90 days. If not, and weekly backups are enabled and today is Monday, it creates a weekly backup kept for 30 days. If none of the above apply and daily backups are enabled, it creates a daily backup kept for 7 days. For each of these backup types, a descriptive name is generated from the current date. Depending on a configuration variable (use_action_hourly), the backup is either created directly or via a predefined action list. If the trigger is the hourly event (every 12 hours), the automation creates an hourly backup kept for 1 day, following a similar naming and execution pattern."
},
"human_like": "Creates automated backups on a schedule, with different retention periods for hourly, daily, weekly, monthly, and yearly backups based on the calendar date.",
"complexity": "high"
}
},
{
"id": "'1718129262036'",
"result": {
"structured": "TRIGGER: When the state of emoncms solar [sensor.emoncms_solar] OR emoncms export power positive [sensor.emoncms_export_power_positive] OR emoncms use [sensor.emoncms_use] OR pool pump switch 0 power [sensor.bomba_piscina_switch_0_power] changes. CONDITIONS: (Grid voltage is 230V) AND (Excess PV power is greater than the current power consumption of pool pump switch 0 [sensor.bomba_piscina_switch_0_power] plus a 10W margin) AND (Inverter limit is 0). ACTIONS: Turn on pool pump switch 0 [switch.bomba_piscina_switch_0] if excess power is sufficient, otherwise turn it off.",
"natural_language": {
"trigger": "The automation triggers whenever there is a change in the solar power production, the power being exported to the grid, the overall household power consumption, or the current power draw of the pool pump.",
"conditions": "The automation checks that the grid voltage is set to 230 volts, that the excess solar power available is greater than the pool pump's current power usage plus a 10-watt buffer, and that the inverter power limit is set to zero.",
"action": "It will turn the pool pump switch 0 [switch.bomba_piscina_switch_0] on if there is sufficient excess solar power, and turn it off if there is not."
},
"human_like": "This automation uses excess solar power to run the pool pump during the day, turning it on only when there is enough surplus energy available.",
"complexity": "medium"
}
},
{
"id": "'1718180786151'",
"result": {
"structured": "TRIGGER: When bthome sensor 9179 motion [binary_sensor.bthome_sensor_9179_motion] detects motion (on) OR when upper corridor motion [binary_sensor.corredor_superior_corredor_superior_motion_alarm] detects motion (on). CONDITIONS: (sun_enabled [sun] is below the horizon) AND (ambient_enabled [ambient_light_sensor] is below a configured threshold). ACTIONS: Turn on corridor light switch [light.shellyplus2pm_c82e180d5f10_switch_1].",
"natural_language": {
"trigger": "When either the bthome sensor 9179 motion [binary_sensor.bthome_sensor_9179_motion] or the upper corridor motion [binary_sensor.corredor_superior_corredor_superior_motion_alarm] detects motion.",
"conditions": "If the sun is below the horizon (i.e., it is night-time) and the ambient light level measured by the shelly b 0114 illuminance [sensor.shelly_b_0114_illuminance] is below a configured brightness threshold.",
"action": "Turns on the corridor light switch [light.shellyplus2pm_c82e180d5f10_switch_1]."
},
"human_like": "Automatically turns on the corridor lights when motion is detected, but only if it's dark enough outside and the ambient light is low.",
"complexity": "medium"
}
},
{
"id": "'1718181298382'",
"result": {
"structured": "TRIGGER: When shelly b 0114 window [binary_sensor.shelly_b_0114_window] changes state. CONDITIONS: (Sun is below the horizon) AND (No additional night light conditions are defined). ACTIONS: Turn on exterior light [light.exterior] for 10 minutes.",
"natural_language": {
"trigger": "When the shelly b 0114 window [binary_sensor.shelly_b_0114_window] sensor detects a change in state.",
"conditions": "The automation only runs if it is night time, meaning the sun is below the horizon. There are no other conditions related to night lights configured.",
"action": "Turns on the exterior light [light.exterior] and keeps it on for 10 minutes."
},
"human_like": "Automatically turns on the exterior light for 10 minutes when motion is detected at the window at night.",
"complexity": "low"
}
},
{
"id": "'1718533356578'",
"result": {
"structured": "TRIGGER: Every 5 minutes (time pattern). CONDITIONS: None. ACTIONS: Update coopernico prices [sensor.coopernico_prices] AND update coopernico injection [sensor.coopernico_injection].",
"natural_language": {
"trigger": "The automation runs every 5 minutes.",
"conditions": "There are no conditions.",
"action": "It updates the coopernico prices [sensor.coopernico_prices] and coopernico injection [sensor.coopernico_injection] sensors to fetch the latest data."
},
"human_like": "Updates the Coopernico electricity price and injection data every 5 minutes.",
"complexity": "low"
}
},
{
"id": "'1718718997708'",
"result": {
"structured": "TRIGGER: When a custom template evaluates to true, which occurs when the current time falls within a 60-second window (30 seconds before or after) of any of 10 equally spaced time points between the previous sunrise and the next sunset. CONDITIONS: The sun [sun.sun] is above the horizon (i.e., after sunrise AND before sunset). ACTIONS: Wait for a random delay between 30 and 360 seconds, then call the service solcast_solar.update_forecasts.",
"natural_language": {
"trigger": "The automation is triggered by a complex schedule defined by a template. It calculates 10 evenly spaced time points between the previous sunrise and the next sunset. The trigger activates when the current time is within 30 seconds (before or after) of any one of those 10 scheduled times.",
"conditions": "The automation only runs if the sun [sun.sun] is currently above the horizon, meaning it is after sunrise and before sunset.",
"action": "After a random delay of between 30 seconds and 6 minutes, the action calls the 'solcast_solar.update_forecasts' service to update solar forecast data."
},
"human_like": "Updates solar energy forecasts at scheduled intervals during daylight hours, with a random delay to avoid overloading the service.",
"complexity": "high"
}
},
{
"id": "'1718905487958'",
"result": {
"structured": "TRIGGER: When zwave motion sensor [binary_sensor.motion_sensor_z_wave_plus_motion_sensor_z_wave_plus_motion_alarm] changes state. CONDITIONS: (Sun is below the horizon) AND (zwave motion sensor luminance [sensor.motion_sensor_z_wave_plus_motion_sensor_z_wave_plus_luminance] is below a defined threshold). ACTIONS: Turn on living room upper light channel 1 [light.luzes_sala_superior_channel_1].",
"natural_language": {
"trigger": "When motion is detected or cleared by the zwave motion sensor [binary_sensor.motion_sensor_z_wave_plus_motion_sensor_z_wave_plus_motion_alarm].",
"conditions": "The automation only runs if it is nighttime, meaning the sun is below the horizon, and if the ambient light level measured by the zwave motion sensor luminance [sensor.motion_sensor_z_wave_plus_motion_sensor_z_wave_plus_luminance] is too dark, falling below a specific brightness threshold.",
"action": "Turns on the living room upper light channel 1 [light.luzes_sala_superior_channel_1]."
},
"human_like": "Automatically turns on the upper living room lights when motion is detected on the stairs at night and the area is dark.",
"complexity": "medium"
}
},
{
"id": "'1728665169529'",
"result": {
"structured": "TRIGGER: When mclima ups state info [sensor.mclima_ups_informacao_do_estado] OR net ups state info [sensor.net_ups_informacao_do_estado] changes to state 'OB DISCHRG' AND remains for 1 minute. OR When mclima ups state info [sensor.mclima_ups_informacao_do_estado] OR net ups state info [sensor.net_ups_informacao_do_estado] changes to state 'OL CHRG'. OR When mclima ups state info [sensor.mclima_ups_informacao_do_estado] OR net ups state info [sensor.net_ups_informacao_do_estado] changes to state 'ALARM OL RB' AND remains for 5 minutes. OR When mclima ups state info [sensor.mclima_ups_informacao_do_estado] OR net ups state info [sensor.net_ups_informacao_do_estado] changes to state 'ALARM OL CHRH RB' AND remains for 5 minutes. CONDITIONS: None. ACTIONS: Choose based on which trigger fired. If battery trigger fired, send a critical notification to glphone notify [notify.mobile_app_glphone] with title '🚨Energia' and message 'A UPS está em modo de bateria!!! 🔋'. If online trigger fired, send a notification to glphone notify [notify.mobile_app_glphone] with title '✅Energia' and message 'A UPS já está online.🔋⚡'. If replace_battery trigger fired, send a notification to glphone notify [notify.mobile_app_glphone] with title '❗Trocar baterias na UPS.❗' and message 'As baterias da UPS têm de ser substituías.'.",
"natural_language": {
"trigger": "The automation can be triggered in four ways: 1) If either the mclima ups state info [sensor.mclima_ups_informacao_do_estado] or the net ups state info [sensor.net_ups_informacao_do_estado] enters the 'OB DISCHRG' state and stays there for one minute. 2) If either of those sensors changes to the 'OL CHRG' state. 3) If either sensor enters the 'ALARM OL RB' state and remains for five minutes. 4) If either sensor enters the 'ALARM OL CHRH RB' state and remains for five minutes.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "Depending on which trigger occurred, a different notification is sent to the user's phone via glphone notify [notify.mobile_app_glphone]. If the UPS goes on battery ('OB DISCHRG'), a critical alert is sent. If it returns to online charging ('OL CHRG'), a confirmation message is sent. If a battery replacement alarm ('ALARM OL RB' or 'ALARM OL CHRH RB') is detected, a notification is sent to replace the UPS batteries."
},
"human_like": "Sends phone notifications for UPS status changes, including power loss, restoration, and battery replacement alerts.",
"complexity": "medium"
}
},
{
"id": "'1728983716594'",
"result": {
"structured": "TRIGGER: When the solar power generation sensor [sensor.emoncms_solar] OR the export power sensor [sensor.emoncms_export_power_positive] OR the load power sensor [sensor.emoncms_use] OR the appliance power sensor [sensor.ventilador_cave_switch_0_power] changes state. CONDITIONS: (Excess solar power is available) AND (The appliance is within its assigned priority level 2). ACTIONS: Control the basement fan switch [switch.ventilador_cave_switch] based on power availability, turning it on when there is sufficient excess solar power and off when there is not, with a minimum on/off interval of 2 minutes.",
"natural_language": {
"trigger": "When any of the monitored power values change: the emoncms solar [sensor.emoncms_solar] generation, the emoncms export power positive [sensor.emoncms_export_power_positive], the emoncms use [sensor.emoncms_use] load, or the actual power consumption of the fan [sensor.ventilador_cave_switch_0_power].",
"conditions": "If there is excess solar power available beyond what the home is consuming, and if this appliance (the basement fan) is next in line according to its priority setting of 2.",
"action": "Turns the basement fan switch [switch.ventilador_cave_switch] on or off to use excess solar power, ensuring the switch is not toggled more frequently than every 2 minutes."
},
"human_like": "Automatically runs the basement fan using excess solar power when it's available, managing it as a medium-priority appliance.",
"complexity": "medium"
}
},
{
"id": "'1730368547136'",
"result": {
"structured": "TRIGGER: Every 10 seconds (time pattern). CONDITIONS: None. ACTIONS: Publish the current state of heat pump heating emoncms [sensor.hpsu_can_heating_emoncms] to MQTT topic 'homeassistant/sensor/heating' with QoS 2. Publish the current state of heat pump dhw emoncms [sensor.hpsu_can_dhw_emoncms] to MQTT topic 'homeassistant/sensor/dhw' with QoS 2. Publish the current state of outside temperature [sensor.hpsu_can_outside_temperature] to MQTT topic 'homeassistant/sensor/t_outside' with QoS 2. Publish the current state of target room temp [sensor.hspu_can_target_room_emoncms] to MQTT topic 'homeassistant/sensor/target_room_temp' with QoS 2. Publish the current state of heat pump flow rate [sensor.hpsu_can_flow_rate] to MQTT topic 'homeassistant/sensor/bomba_de_calor_flow_rate' with QoS 2. Publish the current state of thermal power [sensor.hpsu_can_thermal_power_2] to MQTT topic 'homeassistant/sensor/thermal_power' with QoS 2. Publish the current state of flow temperature tv [sensor.hpsu_can_flow_temperature_tv] to MQTT topic 'homeassistant/sensor/flow_temperature_tv' with QoS 2. Publish the current state of return temperature heating [sensor.hpsu_can_return_temperature_heating] to MQTT topic 'homeassistant/sensor/flow_return_temperature_heating' with QoS 2.",
"natural_language": {
"trigger": "The automation runs every 10 seconds.",
"conditions": "There are no conditions; the actions run every time the trigger occurs.",
"action": "Publishes the current values of eight different heat pump sensor readings to specific MQTT topics. This includes heating status, domestic hot water status, outside temperature, target room temperature, flow rate, thermal power, flow temperature, and return temperature. Each publication uses a quality of service level 2 for reliable delivery."
},
"human_like": "Publishes heat pump sensor data to MQTT every 10 seconds for external monitoring or integration.",
"complexity": "low"
}
},
{
"id": "'1732289985472'",
"result": {
"structured": "TRIGGER: When bmw x1 charging w 2 [sensor.bmw_x1_charging_w_2] changes state OR When bmw i4 charging w [sensor.bmw_i4_charging_w] changes state. CONDITIONS: None. ACTIONS: If the trigger was from bmw x1 charging w 2 [sensor.bmw_x1_charging_w_2], then publish its rounded numeric value to MQTT topic 'homeassistant/sensor/ev/bmwx1_charging_w'. If the trigger was from bmw i4 charging w [sensor.bmw_i4_charging_w], then publish its rounded numeric value to MQTT topic 'homeassistant/sensor/ev/bmwi4_charging_w'.",
"natural_language": {
"trigger": "Whenever the sensor bmw x1 charging w 2 [sensor.bmw_x1_charging_w_2] or the sensor bmw i4 charging w [sensor.bmw_i4_charging_w] changes its state.",
"conditions": "There are no conditions that need to be met.",
"action": "Depending on which sensor triggered the automation, it publishes the current value of that sensor to a specific MQTT topic. If the bmw x1 charging w 2 sensor triggered it, the value is rounded and sent to the topic 'homeassistant/sensor/ev/bmwx1_charging_w'. If the bmw i4 charging w sensor triggered it, its rounded value is sent to the topic 'homeassistant/sensor/ev/bmwi4_charging_w'."
},
"human_like": "Publishes the charging power of the BMW X1 or BMW i4 to MQTT whenever their sensor values change.",
"complexity": "low"
}
},
{
"id": "'1742729233913'",
"result": {
"structured": "TRIGGER: When a Telegram message is received. CONDITIONS: None. ACTIONS: Process the incoming Telegram message using the chatgpt conversation [conversation.chatgpt] agent.",
"natural_language": {
"trigger": "When a message is received via Telegram.",
"conditions": "There are no additional conditions that must be met.",
"action": "The automation processes the incoming Telegram message by sending it to the chatgpt conversation [conversation.chatgpt] agent for a response."
},
"human_like": "This automation enables a conversation with an AI assistant via Telegram, allowing users to chat with ChatGPT through the messaging app.",
"complexity": "low"
}
},
{
"id": "'1742733934795'",
"result": {
"structured": "TRIGGER: At 08:05:00 OR At 12:40:00 OR At 18:30:00. CONDITIONS: None. ACTIONS: First, get the daily weather forecast from forecast home weather [weather.forecast_home] and store it as 'daily_forecast'. Then, ask chatgpt conversation [conversation.chatgpt] to provide a humorous analysis in European Portuguese (without gerunds) of the indoor air quality in relation to the exterior weather and current heating/cooling settings, using data from multiple sensors. Finally, send the AI's response as a Telegram message with the title 'Qualidade do Ar em Casa' via telegram bot [telegram_bot.send_message].",
"natural_language": {
"trigger": "The automation runs at three specific times each day: 8:05 AM, 12:40 PM, and 6:30 PM.",
"conditions": "There are no conditions that must be met for the automation to proceed; it runs unconditionally at the scheduled times.",
"action": "First, it fetches the daily weather forecast from the forecast home weather [weather.forecast_home] entity. Next, it sends a detailed prompt to the chatgpt conversation [conversation.chatgpt] agent, requesting a humorous, emoji-friendly report in European Portuguese about indoor air quality. The prompt includes current data from various temperature, humidity, and weather sensors, as well as the thermostat setting. Finally, it takes the AI's generated response and sends it as a formatted message via the Telegram bot [telegram_bot.send_message]."
},
"human_like": "Sends a daily, AI-generated humorous weather and air quality report to Telegram at breakfast, lunch, and dinner times.",
"complexity": "medium"
}
},
{
"id": "'1744301274357'",
"result": {
"structured": "TRIGGER: When emonpi import export average 5 minutes [sensor.potencia_emonpi_import_export_media_5_minutos] is below -750 OR when emonpi import export average 5 minutes [sensor.potencia_emonpi_import_export_media_5_minutos] is above 750. CONDITIONS: The sun is above the horizon (after sunrise and before sunset). ACTIONS: IF the trigger was 'ON' (power below -750), then turn on Device e5f1b9b1d10308b32ef8f69bc0d20d74 [43f5cd2f7257fed3e55788df58ce96de] AND turn on Device 1cb87651e79e117ef2610fc7e5c6a170 [d1b3ca4d6a019622064ef94336bbd650]. IF the trigger was 'OFF' (power above 750), then turn off Device e5f1b9b1d10308b32ef8f69bc0d20d74 [43f5cd2f7257fed3e55788df58ce96de] AND turn off Device 1cb87651e79e117ef2610fc7e5c6a170 [d1b3ca4d6a019622064ef94336bbd650].",
"natural_language": {
"trigger": "When the average power import/export reading from the emonpi import export average 5 minutes [sensor.potencia_emonpi_import_export_media_5_minutos] drops below -750 watts, or when it rises above 750 watts.",
"conditions": "The automation only runs during daylight hours, specifically after sunrise and before sunset.",
"action": "If the trigger was the low power reading (below -750), it turns on two switches: Device e5f1b9b1d10308b32ef8f69bc0d20d74 [43f5cd2f7257fed3e55788df58ce96de] and Device 1cb87651e79e117ef2610fc7e5c6a170 [d1b3ca4d6a019622064ef94336bbd650]. If the trigger was the high power reading (above 750), it turns off those same two switches."
},
"human_like": "Automatically turns the pool pump on when excess solar power is being exported and off when power is being imported, but only during the day.",
"complexity": "medium"
}
},
{
"id": "'1744308459186'",
"result": {
"structured": "TRIGGER: When Device e6ae30b2d7855ae2d2b83b4497674bfb [e6ae30b2d7855ae2d2b83b4497674bfb] button is pressed. CONDITIONS: None. ACTIONS: Toggle Device e5f1b9b1d10308b32ef8f69bc0d20d74 [e5f1b9b1d10308b32ef8f69bc0d20d74].",
"natural_language": {
"trigger": "When the button on Device e6ae30b2d7855ae2d2b83b4497674bfb is pressed.",
"conditions": "There are no conditions.",
"action": "Toggles the state of Device e5f1b9b1d10308b32ef8f69bc0d20d74."
},
"human_like": "Pressing a button toggles a pool switch.",
"complexity": "low"
}
},
{
"id": "'1744915008704'",
"result": {
"structured": "TRIGGER: At 20:30:00 daily. CONDITIONS: None. ACTIONS: First, process a conversation with chatgpt conversation [conversation.chatgpt] using a detailed prompt that includes current time, pool daily filtration [sensor.duracao_filtragem_piscina_diario] duration, pool daily heating [sensor.duracao_aquecimento_piscina_diario] duration, pool pump temperature [sensor.bomba_piscina_temperature], pool pump remaining time [sensor.pool_pump_remaining_time], pool pump night schedule [sensor.bomba_piscina_noite_horario], pool pump duration lower threshold [input_number.pool_pump_duration_lower_threshold] (converted to hours), and energy pool use total kwhd [sensor.energia_emonpi_piscina_use_total_kwhd], with instructions to act as a humorous pool consultant, calculate if filtration time is sufficient, and announce the night filtration start time. Second, send a Telegram message via telegram bot [telegram_bot.send_message] with the title 'Piscina' and the response from the conversation.",
"natural_language": {
"trigger": "Every day at 8:30 PM.",
"conditions": "There are no conditions; the automation runs unconditionally when triggered.",
"action": "The automation first sends a detailed query to an AI assistant (chatgpt conversation [conversation.chatgpt]), providing it with various pool-related data such as today's filtration and heating durations, current water temperature, remaining filtration time, the scheduled start time for night filtration, the daily filtration target, and energy consumption. The AI is instructed to act as a humorous pool consultant, calculate if the filtration has been sufficient, and announce when the night filtration will start. Then, the automation sends the AI's humorous response as a message via Telegram (telegram bot [telegram_bot.send_message]) with the title 'Piscina'."
},
"human_like": "Sends a daily, humorous pool status report via Telegram at 8:30 PM, using AI to analyze filtration data and announce the night schedule.",
"complexity": "medium"
}
},
{
"id": "'1744969812713'",
"result": {
"structured": "TRIGGER: Every 15 minutes OR When solar power [sensor.solar_power] changes state OR At 08:00:00 daily OR At 22:00:00 daily. CONDITIONS: pool pump malfunction [binary_sensor.pool_pump_malfunction] is NOT on. ACTIONS: First, update the sensor pool pump daily runtime [sensor.pool_pump_daily_runtime]. Then, choose an action based on conditions: IF (time is between 08:00:00 and 22:00:00) AND (solar power [sensor.solar_power] is greater than 1000) THEN turn on pool pump [switch.pool_pump] AND set pool pump priority [input_number.pool_pump_priority] to 1. ELSE IF (time is between 22:00:00 and 08:00:00) AND (pool pump daily runtime [sensor.pool_pump_daily_runtime] is less than 5 hours AND tomorrow solar forecast [sensor.tomorrow_solar_forecast] is less than 0.7) THEN turn on pool pump [switch.pool_pump] AND set pool pump priority [input_number.pool_pump_priority] to 2. OTHERWISE (default), turn off pool pump [switch.pool_pump].",
"natural_language": {
"trigger": "The automation triggers every 15 minutes, whenever the solar power [sensor.solar_power] reading changes, or at the fixed times of 8:00 AM and 10:00 PM each day.",
"conditions": "The automation only runs if the pool pump malfunction [binary_sensor.pool_pump_malfunction] is not reporting an issue (i.e., it is not 'on').",
"action": "First, the automation refreshes the pool pump daily runtime [sensor.pool_pump_daily_runtime] sensor. Then, it decides what to do with the pool pump. During the day (between 8 AM and 10 PM), if the current solar power generation exceeds 1000 watts, it turns the pool pump [switch.pool_pump] on and sets its priority [input_number.pool_pump_priority] to 1. At night (between 10 PM and 8 AM), it will only turn the pump on if the daily runtime is under 5 hours and the forecast for tomorrow's solar energy [sensor.tomorrow_solar_forecast] is poor (below 0.7). If it turns the pump on at night, it sets the priority to 2. In all other cases, the default action is to turn the pool pump off."
},
"human_like": "This automation manages the pool pump to prioritize using solar power during the day and ensures it runs enough each night if solar energy is forecast to be low the next day.",
"complexity": "medium"
}
},
{
"id": "'1745084857676'",
"result": {
"structured": "TRIGGER: When Device e8a6c706997d87b98183e26e7598ae8b [e8a6c706997d87b98183e26e7598ae8b] single button press occurs OR when Device d686deeba13232cfa6ab008fa8c80dc0 [d686deeba13232cfa6ab008fa8c80dc0] button_1 press occurs. CONDITIONS: None. ACTIONS: Toggle living room lower lights [light.candeeiros_sala_inferior].",
"natural_language": {
"trigger": "When a single button press is detected on the device named Device e8a6c706997d87b98183e26e7598ae8b, or when a button_1 press is detected on the device named Device d686deeba13232cfa6ab008fa8c80dc0.",
"conditions": "There are no conditions that must be met.",
"action": "Toggles the state of the living room lower lights [light.candeeiros_sala_inferior], turning them on if they are off, or off if they are on."
},
"human_like": "Toggles the living room lower lights when either of two specific buttons is pressed.",
"complexity": "low"
}
},
{
"id": "'1745085627460'",
"result": {
"structured": "TRIGGER: When Device e8a6c706997d87b98183e26e7598ae8b [e8a6c706997d87b98183e26e7598ae8b] triple button press is detected OR when Device d686deeba13232cfa6ab008fa8c80dc0 [d686deeba13232cfa6ab008fa8c80dc0] button 2 long press is detected. CONDITIONS: None. ACTIONS: Toggle Device c943a1b7851c56da555470902baf07a1 [c943a1b7851c56da555470902baf07a1].",
"natural_language": {
"trigger": "When a triple press is detected on the button Device e8a6c706997d87b98183e26e7598ae8b [e8a6c706997d87b98183e26e7598ae8b] in the Living Room, or when a long press is detected on button 2 of the Device d686deeba13232cfa6ab008fa8c80dc0 [d686deeba13232cfa6ab008fa8c80dc0] in the Living Room.",
"conditions": "There are no conditions for this automation.",
"action": "Toggle the state of the switch Device c943a1b7851c56da555470902baf07a1 [c943a1b7851c56da555470902baf07a1] located at the Gate."
},
"human_like": "Toggles a gate switch when a specific button in the living room is triple-pressed or another button is long-pressed.",
"complexity": "low"
}
},
{
"id": "'1745085892451'",
"result": {
"structured": "TRIGGER: When Device e8a6c706997d87b98183e26e7598ae8b [e8a6c706997d87b98183e26e7598ae8b] sends a long button press OR when Device d686deeba13232cfa6ab008fa8c80dc0 [d686deeba13232cfa6ab008fa8c80dc0] sends a long press of button 1. CONDITIONS: None. ACTIONS: Turn off living room lower [light.sala_inferior], turn off Device a5dd3a6582b27b004323486771a64137 [a5dd3a6582b27b004323486771a64137], turn on corridor light switch [light.shellyplus2pm_c82e180d5f10_switch_1], wait for 1 minute, then turn off corridor light switch [light.shellyplus2pm_c82e180d5f10_switch_1].",
"natural_language": {
"trigger": "When a long press is detected on either the button Device e8a6c706997d87b98183e26e7598ae8b [e8a6c706997d87b98183e26e7598ae8b] or the button Device d686deeba13232cfa6ab008fa8c80dc0 [d686deeba13232cfa6ab008fa8c80dc0].",
"conditions": "There are no conditions; the automation runs whenever either trigger occurs.",
"action": "It turns off the living room lower [light.sala_inferior] light and the Device a5dd3a6582b27b004323486771a64137 [a5dd3a6582b27b004323486771a64137] media player. It then turns on the corridor light switch [light.shellyplus2pm_c82e180d5f10_switch_1], waits for one minute, and finally turns that same corridor light off."
},
"human_like": "Turns off the living room lights and media player, and briefly turns on a corridor light for one minute when a long button press is detected.",
"complexity": "medium"
}
},
{
"id": "'1745225774697'",
"result": {
"structured": "TRIGGER: When heat pump error code [sensor.hpsu_can_error_code] changes from 'No Error' to any other state (Error trigger) OR When heat pump error code [sensor.hpsu_can_error_code] changes to 'No Error' (ok trigger). CONDITIONS: None. ACTIONS: If the trigger was Error, send a Telegram message with title '❌ Error Bomba de Calor ❌' and a message containing the current error state. If the trigger was ok, send a Telegram message with title '✅ OK Bomba de Calor ✅' and a message containing the current state (which will be 'No Error').",
"natural_language": {
"trigger": "The automation runs when the heat pump error code [sensor.hpsu_can_error_code] changes from 'No Error' to any other state, indicating an error has occurred, or when it changes to 'No Error', indicating the error has cleared.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "Depending on which trigger occurred, a message is sent via Telegram. If an error started, an error alert is sent. If the error cleared, an 'OK' notification is sent."
},
"human_like": "Sends a Telegram notification when the heat pump enters or clears an error state.",
"complexity": "medium"
}
},
{
"id": "'1745483501867'",
"result": {
"structured": "TRIGGER: At the time specified by sensor night water heating [sensor.aquecimento_agua_noite]. CONDITIONS: The temperature from Device 869298e5bb3f09e40bb45c5ab1d10091 [869298e5bb3f09e40bb45c5ab1d10091] is below 45. ACTIONS: Set Device aa534d8176126b2ad55749fb0cc47992 [aa534d8176126b2ad55749fb0cc47992] to option 'On'.",
"natural_language": {
"trigger": "The automation runs at a specific time, which is determined by the value of the sensor named night water heating [sensor.aquecimento_agua_noite].",
"conditions": "The automation only proceeds if the temperature measured by Device 869298e5bb3f09e40bb45c5ab1d10091 [869298e5bb3f09e40bb45c5ab1d10091] is below 45 degrees.",
"action": "It sets the select entity Device aa534d8176126b2ad55749fb0cc47992 [aa534d8176126b2ad55749fb0cc47992] to the 'On' option."
},
"human_like": "Turns on the hot water heater at a scheduled time if the water temperature is low, to take advantage of the best energy prices.",
"complexity": "low"
}
},
{
"id": "'1745509795599'",
"result": {
"structured": "TRIGGER: When Device f3ec058f8ec36d128a8eaf0dd7286320 [f3ec058f8ec36d128a8eaf0dd7286320] button is pressed. CONDITIONS: None. ACTIONS: Toggle Device c943a1b7851c56da555470902baf07a1 [c943a1b7851c56da555470902baf07a1].",
"natural_language": {
"trigger": "When the button on Device f3ec058f8ec36d128a8eaf0dd7286320 is pressed.",
"conditions": "There are no conditions.",
"action": "Toggles the state of Device c943a1b7851c56da555470902baf07a1."
},
"human_like": "Pressing a button toggles a switch, likely used to open or close a gate.",
"complexity": "low"
}
},
{
"id": "'1745945849501'",
"result": {
"structured": "TRIGGER: When Device e8a6c706997d87b98183e26e7598ae8b [e8a6c706997d87b98183e26e7598ae8b] double-press button event occurs. CONDITIONS: None. ACTIONS: Toggle store1 cover 0 [cover.estore1_cover_0].",
"natural_language": {
"trigger": "When a double-press is detected on the button Device e8a6c706997d87b98183e26e7598ae8b.",
"conditions": "There are no conditions that must be met.",
"action": "Toggles the state of the blind store1 cover 0 [cover.estore1_cover_0] (opens it if closed, closes it if open)."
},
"human_like": "Double-pressing the button toggles the living room blind open or closed.",
"complexity": "low"
}
},
{
"id": "'1746728025652'",
"result": {
"structured": "TRIGGER: When pool pump switch 0 [switch.bomba_piscina_switch_0] turns on from off OR When corrected ph [sensor.ph_corrigido] changes state OR When the time pattern matches every 5 minutes. CONDITIONS: pool pump switch 0 [switch.bomba_piscina_switch_0] is on AND remains on for 10 minutes AND corrected ph [sensor.ph_corrigido] is not unavailable AND not unknown. ACTIONS: Set ph sensor filtered [input_number.ph_sensor_filtrado] to the current value of ph sensor [sensor.ph_sensor] (rounded to 2 decimal places) AND Set ph filtered [input_number.ph_filtrado] to the current value of corrected ph [sensor.ph_corrigido] (rounded to 2 decimal places).",
"natural_language": {
"trigger": "When the pool pump switch 0 [switch.bomba_piscina_switch_0] is turned on, when the corrected ph [sensor.ph_corrigido] sensor reading changes, or every 5 minutes.",
"conditions": "The pool pump switch 0 [switch.bomba_piscina_switch_0] must be on and remain on for at least 10 minutes, and the corrected ph [sensor.ph_corrigido] sensor must have a valid reading (not 'unavailable' or 'unknown').",
"action": "Updates two filtered pH values: it sets the ph sensor filtered [input_number.ph_sensor_filtrado] to the current raw sensor reading from ph sensor [sensor.ph_sensor], and sets the ph filtered [input_number.ph_filtrado] to the current corrected reading from corrected ph [sensor.ph_corrigido], both rounded to two decimal places."
},
"human_like": "Updates filtered pH sensor values when the pool pump has been running for a while, ensuring readings are only taken during active filtration.",
"complexity": "medium"
}
},
{
"id": "'1746780173077'",
"result": {
"structured": "TRIGGER: Every 5 minutes (time pattern). CONDITIONS: pool heating switch channel 1 [switch.aquecimento_piscina_channel_1] is on AND remains on for 10 minutes AND pool pump temperature [sensor.bomba_piscina_temperature] is not 'unavailable' OR 'unknown'. ACTIONS: Set pool temperature filtered [input_number.temperatura_piscina_filtrado] to the numeric value of pool pump temperature [sensor.bomba_piscina_temperature].",
"natural_language": {
"trigger": "The automation runs every 5 minutes.",
"conditions": "The pool heating switch channel 1 [switch.aquecimento_piscina_channel_1] must have been on for at least 10 minutes, and the pool pump temperature [sensor.bomba_piscina_temperature] sensor must be reporting a valid reading (not 'unavailable' or 'unknown').",
"action": "Updates the filtered pool temperature value [input_number.temperatura_piscina_filtrado] with the current numeric temperature reading from the pool pump temperature [sensor.bomba_piscina_temperature] sensor."
},
"human_like": "Updates the filtered pool temperature reading every 5 minutes, but only when the pool heater has been running for at least 10 minutes and the temperature sensor is available.",
"complexity": "medium"
}
},
{
"id": "'1747047245923'",
"result": {
"structured": "TRIGGER: When the system clock seconds value matches '30' (every minute at second 30). CONDITIONS: None. ACTIONS: Retrieve hourly weather forecasts for forecast home weather [weather.forecast_home] and store the result in the variable 'forecast_data'.",
"natural_language": {
"trigger": "The automation runs every minute, precisely when the seconds on the clock read '30'.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "Fetches the hourly weather forecast for the entity forecast home weather [weather.forecast_home] and saves the response into a variable named 'forecast_data' for later use."
},
"human_like": "Fetches the hourly weather forecast every minute on the 30-second mark.",
"complexity": "low"
}
},
{
"id": "'1747047675015'",
"result": {
"structured": "TRIGGER: Every hour (time pattern). CONDITIONS: None. ACTIONS: Get hourly weather forecast for forecast weather [weather.forecast] and store in variable 'forecast'. Calculate variable 'clouds' as the list of cloud coverage values from the first 8 hourly forecast entries, excluding any null values. Calculate variable 'avg_clouds' as the average of the 'clouds' list, rounded to one decimal place, or 0 if the list is empty. Set average cloud cover [input_number.average_cloud_cover] to the value of 'avg_clouds'.",
"natural_language": {
"trigger": "The automation runs every hour on the hour.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "First, it fetches the hourly weather forecast for the entity forecast weather [weather.forecast]. From this forecast, it extracts the cloud coverage percentage for the next 8 hours, ignoring any entries where this data is missing. It then calculates the average of these percentages and updates the average cloud cover [input_number.average_cloud_cover] input number with this calculated value."
},
"human_like": "Updates the average cloud cover for the next 8 hours every hour.",
"complexity": "medium"
}
},
{
"id": "'1747048335609'",
"result": {
"structured": "TRIGGER: Every hour (time pattern). CONDITIONS: None. ACTIONS: IF current time is between 00:00:00 and 19:00:00 THEN get hourly forecast from forecast weather [weather.forecast], calculate average cloud coverage from entries between 10:00 and 18:00 of the current day, and set average cloud cover pool [input_number.average_cloud_cover_piscina] to that average (or 0 if no data). ELSE (if current time is not between 00:00:00 and 19:00:00) get hourly forecast from forecast weather [weather.forecast], calculate average cloud coverage from entries between 10:00 and 18:00 of the next day, and set average cloud cover pool [input_number.average_cloud_cover_piscina] to that average (or 0 if no data).",
"natural_language": {
"trigger": "The automation runs every hour.",
"conditions": "There are no conditions.",
"action": "If the current time is between midnight and 7 PM, the automation retrieves the hourly weather forecast from forecast weather [weather.forecast]. It then calculates the average cloud coverage for the period between 10 AM and 6 PM of the current day and updates the average cloud cover pool [input_number.average_cloud_cover_piscina] with this value. If there is no forecast data for that period, it sets the value to 0. If the current time is after 7 PM, it performs a similar process but calculates the average for the next day's 10 AM to 6 PM period instead."
},
"human_like": "Updates the average cloud cover for the pool area daily, using today's forecast during the day and tomorrow's forecast in the evening.",
"complexity": "medium"
}
},
{
"id": "'1747216234443'",
"result": {
"structured": "TRIGGER: When the time pattern matches every 30 minutes of every hour (i.e., at minutes 0 and 30) OR When the state of pool pump night schedule [sensor.bomba_piscina_noite_horario] changes. CONDITIONS: The current time is between 13:00:00 and 21:00:00. ACTIONS: Set the datetime of pool night schedule [input_datetime.horario_piscina_noite] to the value from pool pump night schedule [sensor.bomba_piscina_noite_horario] if it is a valid datetime string, otherwise set it to tomorrow at 02:00:00.",
"natural_language": {
"trigger": "This automation runs either on a schedule, every 30 minutes (at minutes 0 and 30 of each hour), or whenever the state of the pool pump night schedule sensor [sensor.bomba_piscina_noite_horario] changes.",
"conditions": "The automation only proceeds if the current time is between 1:00 PM and 9:00 PM.",
"action": "It updates the pool night schedule datetime input [input_datetime.horario_piscina_noite]. It uses the value from the pool pump night schedule sensor [sensor.bomba_piscina_noite_horario] if that value is valid. If the sensor's value is 'unknown', 'unavailable', empty, or null, it sets the schedule to tomorrow at 2:00 AM."
},
"human_like": "Updates the pool's night-time pump schedule during the afternoon and evening, either on a half-hourly schedule or when the source schedule changes, ensuring a valid time is always set.",
"complexity": "medium"
}
},
{
"id": "'1747335289002'",
"result": {
"structured": "TRIGGER: When pool pump switch 0 [switch.bomba_piscina_switch_0] changes state OR every 5 minutes (time pattern). CONDITIONS: Device e5f1b9b1d10308b32ef8f69bc0d20d74 [43f5cd2f7257fed3e55788df58ce96de] is on. ACTIONS: IF Device e5f1b9b1d10308b32ef8f69bc0d20d74 [43f5cd2f7257fed3e55788df58ce96de] is on AND ph corrected filtered [sensor.ph_corrigido_filtrado] is above 7.5, THEN turn on pool peristaltic pump switch 0 [switch.bomba_peristaltica_switch_0]; OTHERWISE turn off pool peristaltic pump switch 0 [switch.bomba_peristaltica_switch_0].",
"natural_language": {
"trigger": "The automation runs whenever the state of the pool pump switch 0 [switch.bomba_piscina_switch_0] changes, or every five minutes.",
"conditions": "The automation only proceeds if the device identified as 43f5cd2f7257fed3e55788df58ce96de [Device e5f1b1d10308b32ef8f69bc0d20d74] is currently switched on.",
"action": "If the condition is met and the ph corrected filtered [sensor.ph_corrigido_filtrado] sensor reads above 7.5, the pool peristaltic pump switch 0 [switch.bomba_peristaltica_switch_0] is turned on. Otherwise, it is turned off."
},
"human_like": "Controls a peristaltic pump based on the pool's filtered pH level, ensuring it only runs when the main pool pump is active.",
"complexity": "medium"
}
},
{
"id": "'1748274888683'",
"result": {
"structured": "TRIGGER: When button press (button_3) occurs on Device d686deeba13232cfa6ab008fa8c80dc0 [d686deeba13232cfa6ab008fa8c80dc0]. CONDITIONS: None. ACTIONS: IF (Device cfd18037256cb019fa29781e93e644d7 [cfd18037256cb019fa29781e93e644d7] is opening OR Device cfd18037256cb019fa29781e93e93e644d7 [cfd18037256cb019fa29781e93e644d7] is closing) THEN stop store1 cover 0 [cover.estore1_cover_0]. ELSE open store1 cover 0 [cover.estore1_cover_0].",
"natural_language": {
"trigger": "When the button (button_3) on Device d686deeba13232cfa6ab008fa8c80dc0 [d686deeba13232cfa6ab008fa8c80dc0] is pressed.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "If the cover Device cfd18037256cb019fa29781e93e644d7 [cfd18037256cb019fa29781e93e644d7] is currently opening or closing, the automation will stop the store1 cover 0 [cover.estore1_cover_0]. Otherwise, it will open the store1 cover 0 [cover.estore1_cover_0]."
},
"human_like": "Pressing a button either opens a specific blind or stops it if it's already moving.",
"complexity": "medium"
}
},
{
"id": "'1748276682652'",
"result": {
"structured": "TRIGGER: When Device d686deeba13232cfa6ab008fa8c80dc0 [d686deeba13232cfa6ab008fa8c80dc0] button 4 is pressed. CONDITIONS: None. ACTIONS: If Device cfd18037256cb019fa29781e93e644d7 [cfd18037256cb019fa29781e93e644d7] is opening OR Device cfd18037256cb019fa29781e93e644d7 [cfd18037256cb019fa29781e93e644d7] is closing, then stop store1 cover 0 [cover.estore1_cover_0]. Otherwise, close store1 cover 0 [cover.estore1_cover_0].",
"natural_language": {
"trigger": "When button 4 on the device named Device d686deeba13232cfa6ab008fa8c80dc0 [d686deeba13232cfa6ab008fa8c80dc0] is pressed.",
"conditions": "There are no conditions for this automation.",
"action": "If the cover Device cfd18037256cb019fa29781e93e644d7 [cfd18037256cb019fa29781e93e644d7] is currently opening or closing, then stop the movement of the cover named store1 cover 0 [cover.estore1_cover_0]. If the cover is not moving, then close the store1 cover 0 [cover.estore1_cover_0]."
},
"human_like": "Closes the living room blind when a button is pressed, but stops the blind first if it is already moving.",
"complexity": "medium"
}
},
{
"id": "ev_gate_sem_starvation",
"result": {
"structured": "TRIGGER: When time is 22:00:00 OR When pool pump switch 0 [switch.bomba_piscina_switch_0] turns on and remains on for 1 minute OR When pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] falls below 1 OR When time is 08:00:00 OR When pool pump switch 0 [switch.bomba_piscina_switch_0] turns off and remains off for 10 seconds. CONDITIONS: None. ACTIONS: Set variable 'em_vazio' to true if current time is between 22:00 and 08:00. Set variable 'pump_on' to true if pool pump switch 0 [switch.bomba_piscina_switch_0] is on. Set variable 'pool_done' to true if pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is a valid number and is less than or equal to 0. Then, IF (em_vazio OR pump_on OR pool_done) is true, turn on Wallbox Enable Charging [switch.powerbrain_wallbox_enable_charging]. ELSE IF (NOT em_vazio AND NOT pump_on AND NOT pool_done) is true, turn off Wallbox Enable Charging [switch.powerbrain_wallbox_enable_charging].",
"natural_language": {
"trigger": "The automation runs at 10:00 PM, at 8:00 AM, when the pool pump switch 0 [switch.bomba_piscina_switch_0] has been on for one minute, when the pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] drops below one minute, or when the pool pump switch 0 [switch.bomba_piscina_switch_0] has been off for ten seconds.",
"conditions": "There are no separate conditions; the logic is handled within the action sequence using variables.",
"action": "First, the automation checks if the current time is within the off-peak period (between 10:00 PM and 8:00 AM), if the pool pump is currently on, or if the pool's required filtration time is complete. If any of these are true, it enables the EV charger by turning on the Wallbox Enable Charging [switch.powerbrain_wallbox_enable_charging]. Otherwise, if it is not the off-peak period, the pool pump is off, and the pool filtration is not done, it disables the charger by turning off the Wallbox Enable Charging [switch.powerbrain_wallbox_enable_charging]."
},
"human_like": "Manages EV charging to only enable it during off-peak hours, when the pool pump is running, or when the pool filtration is complete, helping to manage electricity load.",
"complexity": "medium"
}
},
{
"id": "ev_allow_at_22",
"result": {
"structured": "TRIGGER: When the time is exactly 22:00:00. CONDITIONS: None. ACTIONS: Turn on wallbox charging enabled [switch.wallbox_charging_enabled].",
"natural_language": {
"trigger": "At exactly 10:00 PM.",
"conditions": "There are no conditions.",
"action": "Turns on the switch for wallbox charging enabled [switch.wallbox_charging_enabled]."
},
"human_like": "Enables the EV wallbox charging at 10 PM each day.",
"complexity": "low"
}
},
{
"id": "ev_reapply_gate_at_08",
"result": {
"structured": "TRIGGER: At 08:00:00. CONDITIONS: (pool pump switch 0 [switch.bomba_piscina_switch_0] is off) AND (pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is not 'unknown', 'unavailable', or empty AND its numeric value is greater than 0). ACTIONS: Turn off wallbox charging enabled [switch.wallbox_charging_enabled].",
"natural_language": {
"trigger": "The automation triggers every day at 8:00 AM.",
"conditions": "If the pool pump switch 0 [switch.bomba_piscina_switch_0] is off and the pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is a valid number that is greater than zero (meaning the pool filtration is not yet complete).",
"action": "Turns off the wallbox charging enabled [switch.wallbox_charging_enabled] switch."
},
"human_like": "At 8 AM, if the pool pump is off and the pool still needs filtration, it disables the EV wallbox charging.",
"complexity": "medium"
}
},
{
"id": "piscina_cloro_tpo_seconds",
"result": {
"structured": "TRIGGER: Every 30 seconds (time pattern). CONDITIONS: pool chlorine tpo enable [input_boolean.piscina_cloro_tpo_enable] is on AND pool pump switch 0 [switch.bomba_piscina_switch_0] is on. ACTIONS: Based on calculated variables: If the effective percentage (pct) is greater than or equal to 99, turn on pool chlorine allow production [switch.piscina_cloro_permitir_producao]. Else if pct is less than or equal to 1, turn off pool chlorine allow production [switch.piscina_cloro_permitir_producao]. Else if the current cycle second (ciclo_s) is less than the calculated on time in seconds (on_s), turn on pool chlorine allow production [switch.piscina_cloro_permitir_producao]. Otherwise, turn off pool chlorine allow production [switch.piscina_cloro_permitir_producao]. (Variables: pct = pool cover closed percent [input_number.piscina_pct_cobertura_fechada] if pool cover closed [input_boolean.piscina_cobertura_fechada] is on, else pool cover open percent [input_number.piscina_pct_cobertura_aberta]; janela_s = pool chlorine window min [input_number.piscina_cloro_janela_min] * 60; on_s = (pct/100 * janela_s); ciclo_s = current timestamp modulo janela_s).",
"natural_language": {
"trigger": "The automation runs every 30 seconds.",
"conditions": "It only proceeds if the pool chlorine tpo enable [input_boolean.piscina_cloro_tpo_enable] is switched on and the pool pump switch 0 [switch.bomba_piscina_switch_0] is also on.",
"action": "The automation calculates several values: a window length from pool chlorine window min [input_number.piscina_cloro_janela_min], a target percentage based on whether the pool cover closed [input_boolean.piscina_cobertura_fechada] is on (using pool cover closed percent [input_number.piscina_pct_cobertura_fechada]) or off (using pool cover open percent [input_number.piscina_pct_cobertura_aberta]), and the current position within a repeating time cycle. It then decides whether to turn the pool chlorine allow production [switch.piscina_cloro_permitir_producao] on or off. If the target percentage is 99% or more, it turns the switch on. If it's 1% or less, it turns the switch off. Otherwise, it checks if the current moment in the cycle is within the 'on' portion (calculated from the target percentage and the window). If it is, it turns the switch on; if not, it turns the switch off."
},
"human_like": "This automation controls chlorine production for the pool by turning it on for a specific percentage of a time window, adjusting the percentage based on whether the pool cover is open or closed.",
"complexity": "medium"
}
},
{
"id": "piscina_cloro_tpo_failsafe",
"result": {
"structured": "TRIGGER: When pool pump switch 0 [switch.bomba_piscina_switch_0] changes state OR pool chlorine tpo enable [input_boolean.piscina_cloro_tpo_enable] changes state OR pool cover closed [input_boolean.piscina_cobertura_fechada] changes state. CONDITIONS: (pool pump switch 0 [switch.bomba_piscina_switch_0] is off OR pool chlorine tpo enable [input_boolean.piscina_cloro_tpo_enable] is off). ACTIONS: Turn off pool chlorine allow production [switch.piscina_cloro_permitir_producao].",
"natural_language": {
"trigger": "When the state of the pool pump switch 0 [switch.bomba_piscina_switch_0] changes, or when the state of the pool chlorine tpo enable [input_boolean.piscina_cloro_tpo_enable] changes, or when the state of the pool cover closed [input_boolean.piscina_cobertura_fechada] changes.",
"conditions": "If the pool pump switch 0 [switch.bomba_piscina_switch_0] is off, or if the pool chlorine tpo enable [input_boolean.piscina_cloro_tpo_enable] is off.",
"action": "Turns off the pool chlorine allow production [switch.piscina_cloro_permitir_producao] switch."
},
"human_like": "Safely stops chlorine production if the pool pump is off or chlorine production is disabled.",
"complexity": "medium"
}
},
{
"id": "piscina_vazio_start",
"result": {
"structured": "TRIGGER: At 22:00:00. CONDITIONS: (pool override manual [input_boolean.piscina_override_manual] is off) AND (pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is above 0). ACTIONS: Turn on pool pump switch 0 [switch.bomba_piscina_switch_0].",
"natural_language": {
"trigger": "Every day at 10:00 PM.",
"conditions": "If the pool override manual [input_boolean.piscina_override_manual] is turned off and the pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is greater than zero.",
"action": "Turns on the pool pump switch 0 [switch.bomba_piscina_switch_0]."
},
"human_like": "Starts the pool pump at 10 PM if manual override is off and there is remaining filtration time.",
"complexity": "low"
}
},
{
"id": "piscina_vazio_stop_por_objetivo",
"result": {
"structured": "TRIGGER: When pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] falls below 1. CONDITIONS: pool override manual [input_boolean.piscina_override_manual] is off AND the current time is between 22:00:00 and 08:00:00. ACTIONS: Turn off pool pump switch 0 [switch.bomba_piscina_switch_0].",
"natural_language": {
"trigger": "When the number of remaining filtration minutes for the pool [input_number.piscina_filtracao_min_restantes] drops below one.",
"conditions": "The manual override for the pool [input_boolean.piscina_override_manual] must be turned off, and the current time must be between 10:00 PM and 8:00 AM.",
"action": "Turns off the pool pump switch 0 [switch.bomba_piscina_switch_0]."
},
"human_like": "Automatically stops the pool pump at night when the daily filtration goal is met, unless a manual override is active.",
"complexity": "low"
}
},
{
"id": "piscina_vazio_stop_08",
"result": {
"structured": "TRIGGER: When the time is 08:00:00. CONDITIONS: pool override manual [input_boolean.piscina_override_manual] is off. ACTIONS: Turn off pool pump switch 0 [switch.bomba_piscina_switch_0].",
"natural_language": {
"trigger": "Every day at 8:00 AM.",
"conditions": "The pool override manual [input_boolean.piscina_override_manual] must be off.",
"action": "Turns off the pool pump switch 0 [switch.bomba_piscina_switch_0]."
},
"human_like": "Automatically turns off the pool pump at 8:00 AM, unless a manual override is active.",
"complexity": "low"
}
},
{
"id": "piscina_reset_diario_minutos",
"result": {
"structured": "TRIGGER: At 08:00:06 daily. CONDITIONS: None. ACTIONS: Set pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] to the integer value of pool minutes recommended [sensor.piscina_minutos_recomendados], defaulting to 480.",
"natural_language": {
"trigger": "Every day at 8:00:06 AM.",
"conditions": "There are no conditions for this automation.",
"action": "Resets the pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] to the recommended value, which is read from the pool minutes recommended [sensor.piscina_minutos_recomendados] sensor. If the sensor's value is unavailable, it defaults to 480 minutes."
},
"human_like": "Resets the daily pool filtration timer to the recommended value every morning at 8 AM.",
"complexity": "low"
}
},
{
"id": "piscina_arranque_solar",
"result": {
"structured": "TRIGGER: When pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] turns on and remains on for 5 minutes. CONDITIONS: pool override manual [input_boolean.piscina_override_manual] is off AND pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is above 0 AND the current time is after sunrise plus 15 minutes AND before sunset minus 15 minutes. ACTIONS: Turn on pool pump switch 0 [switch.bomba_piscina_switch_0].",
"natural_language": {
"trigger": "When the pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] indicates that there is excess photovoltaic energy available for the pool pump and remains in this state for at least five minutes.",
"conditions": "The pool override manual [input_boolean.piscina_override_manual] must be off, meaning no manual override is active. The pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] must be greater than zero, indicating there is still filtration time scheduled. Finally, the automation only runs during daylight hours, specifically between 15 minutes after sunrise and 15 minutes before sunset.",
"action": "Turns on the pool pump switch 0 [switch.bomba_piscina_switch_0] to start the pool pump using the excess solar energy."
},
"human_like": "Starts the pool pump using excess solar energy during the day, provided there is still filtration time left and no manual override is active.",
"complexity": "medium"
}
},
{
"id": "piscina_paragem_solar",
"result": {
"structured": "TRIGGER: When pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] remains off for 5 minutes OR When pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is below 1 OR When sunset occurs with a 10-minute offset before. CONDITIONS: pool override manual [input_boolean.piscina_override_manual] is off. ACTIONS: Turn off pool pump switch 0 [switch.bomba_piscina_switch_0].",
"natural_language": {
"trigger": "The automation triggers if the pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] indicates no solar surplus for five consecutive minutes, or if the pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] drops below one minute, or when sunset is approaching (specifically, ten minutes before sunset).",
"conditions": "The automation only runs if the pool override manual [input_boolean.piscina_override_manual] is turned off, meaning no manual override is active.",
"action": "Turns off the pool pump switch 0 [switch.bomba_piscina_switch_0]."
},
"human_like": "Stops the pool pump when there's no solar surplus, the daily filtration goal is met, or sunset is near, unless a manual override is active.",
"complexity": "medium"
}
},
{
"id": "piscina_arranque_solar_watchdog",
"result": {
"structured": "TRIGGER: Every 2 minutes. CONDITIONS: pool override manual [input_boolean.piscina_override_manual] is off AND pool pump switch 0 [switch.bomba_piscina_switch_0] is off AND pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is above 0 AND pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] is on AND the current time is between 15 minutes after sunrise and 15 minutes before sunset. ACTIONS: Turn on pool pump switch 0 [switch.bomba_piscina_switch_0].",
"natural_language": {
"trigger": "The automation runs every two minutes.",
"conditions": "All of the following must be true: the pool override manual [input_boolean.piscina_override_manual] is off, the pool pump switch 0 [switch.bomba_piscina_switch_0] is off, the pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] is greater than zero, the pool pump excedent fv sensor [binary_sensor.piscina_excedente_fv_bomba] is on, and it is currently daytime, specifically between 15 minutes after sunrise and 15 minutes before sunset.",
"action": "Turns on the pool pump switch 0 [switch.bomba_piscina_switch_0]."
},
"human_like": "Automatically starts the pool pump using excess solar power during the day, as long as it's not in manual override mode and there is remaining filtration time.",
"complexity": "medium"
}
},
{
"id": "piscina_manual_finished",
"result": {
"structured": "TRIGGER: When timer.finished event occurs for pool manual timer [timer.piscina_manual] OR When pool manual timer [timer.piscina_manual] changes state from active to idle. ACTIONS: Turn off pool pump switch 0 [switch.bomba_piscina_switch_0] AND Turn off pool override manual [input_boolean.piscina_override_manual].",
"natural_language": {
"trigger": "When the pool manual timer [timer.piscina_manual] finishes its countdown, or when it transitions from an active state to an idle state.",
"conditions": "There are no conditions for this automation.",
"action": "Turns off the pool pump switch 0 [switch.bomba_piscina_switch_0] and also turns off the pool override manual [input_boolean.piscina_override_manual] flag."
},
"human_like": "Automatically switches the pool pump back to automatic mode by turning off the manual override when the manual timer finishes.",
"complexity": "low"
}
},
{
"id": "piscina_manual_watchdog",
"result": {
"structured": "TRIGGER: Every minute (time pattern). CONDITIONS: pool override manual [input_boolean.piscina_override_manual] is on AND pool manual timer [timer.piscina_manual] is NOT active. ACTIONS: Turn off pool pump switch 0 [switch.bomba_piscina_switch_0] AND turn off pool override manual [input_boolean.piscina_override_manual].",
"natural_language": {
"trigger": "The automation runs every minute.",
"conditions": "The pool override manual [input_boolean.piscina_override_manual] must be switched on, and the pool manual timer [timer.piscina_manual] must not be running.",
"action": "Turns off the pool pump switch 0 [switch.bomba_piscina_switch_0] and then turns off the pool override manual [input_boolean.piscina_override_manual]."
},
"human_like": "A safety watchdog that turns off the pool pump and cancels manual override if the manual timer is not running.",
"complexity": "low"
}
},
{
"id": "piscina_sync_restantes_recomendado_menos_corridos",
"result": {
"structured": "TRIGGER: When pool minutes recommended [sensor.piscina_minutos_recomendados] changes state OR When pool minutes on 08 08 [sensor.piscina_minutos_on_08_08] changes state OR When pool manual timer [timer.piscina_manual] changes state OR When Home Assistant starts OR At 08:00:05 daily. CONDITIONS: pool override manual [input_boolean.piscina_override_manual] is off. ACTIONS: Set variable 'recomendado' to the integer value of pool minutes recommended [sensor.piscina_minutos_recomendados] (default 0). Set variable 'corridos' to the integer value of pool minutes on 08 08 [sensor.piscina_minutos_on_08_08] (default 0). Set variable 'novos' to the maximum of (recomendado - corridos) and 0. Set pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes] to the minimum of 'novos' and 1440.",
"natural_language": {
"trigger": "The automation runs when any of these events occur: the recommended pool minutes [sensor.piscina_minutos_recomendados] change, the pool minutes on 08 08 [sensor.piscina_minutos_on_08_08] change, the pool manual timer [timer.piscina_manual] changes state, when Home Assistant first starts up, or every day at 8:00:05 AM.",
"conditions": "The automation only proceeds if the pool override manual [input_boolean.piscina_override_manual] is turned off.",
"action": "It calculates new remaining filtration minutes by subtracting the minutes already run from the recommended minutes, ensuring the result is not negative. This new value is then capped at a maximum of 1440 minutes and set as the new value for pool remaining filtration minutes [input_number.piscina_filtracao_min_restantes]."
},
"human_like": "Automatically updates the remaining pool filtration time based on the recommended daily runtime and the time already filtered, ensuring it never exceeds 24 hours.",
"complexity": "medium"
}
},
{
"id": "Sincronizar_bomba_piscina_com_bomba_peristaltica",
"result": {
"structured": "TRIGGER: When pool pump switch 0 [switch.bomba_piscina_switch_0] changes state. CONDITIONS: None. ACTIONS: Turn pool peristaltic pump switch 0 [switch.bomba_peristaltica_switch_0] to the same state (on or off) that pool pump switch 0 [switch.bomba_piscina_switch_0] changed to.",
"natural_language": {
"trigger": "Whenever the state of the pool pump switch 0 [switch.bomba_piscina_switch_0] changes.",
"conditions": "There are no additional conditions.",
"action": "Sets the pool peristaltic pump switch 0 [switch.bomba_peristaltica_switch_0] to match the new state (on or off) of the pool pump switch 0 [switch.bomba_piscina_switch_0]."
},
"human_like": "Keeps the peristaltic pump in sync with the main pool pump, turning it on or off automatically.",
"complexity": "low"
}
}
]