[ { "id": "3dprinter_done", "result": { "structured": "TRIGGER: When octoprint printing [binary_sensor.octoprint_printing] changes from on to off. CONDITIONS: None. ACTIONS: Send a secret telservice message with the text '3D Print Complete'.", "natural_language": { "trigger": "When the octoprint printing [binary_sensor.octoprint_printing] sensor changes its state from 'on' (printing) to 'off' (not printing).", "conditions": "There are no conditions that need to be met.", "action": "Sends a notification via a secret telservice with the message '3D Print Complete'." }, "human_like": "Sends a notification when the 3D printer finishes a job.", "complexity": "low" } }, { "id": "3dprinter_poweroff_after_print", "result": { "structured": "TRIGGER: When octoprint printing [binary_sensor.octoprint_printing] changes from on to off AND remains off for 20 minutes. CONDITIONS: (octoprint actual bed temp [sensor.octoprint_actual_bed_temp] is below 60) AND (octoprint actual tool0 temp [sensor.octoprint_actual_tool0_temp] is below 60). ACTIONS: Turn off 3d printer [switch.3d_printer] AND send a notification message: '3D Printer has been idle for 20 minutes and is completely cooled down, powering off'.", "natural_language": { "trigger": "When the octoprint printing [binary_sensor.octoprint_printing] sensor changes from 'on' to 'off' and stays in the 'off' state for 20 minutes.", "conditions": "The octoprint actual bed temp [sensor.octoprint_actual_bed_temp] and the octoprint actual tool0 temp [sensor.octoprint_actual_tool0_temp] must both be below 60 degrees.", "action": "Turn off the 3d printer [switch.3d_printer] and send a notification message stating that the 3D printer has been idle for 20 minutes and is cooled down, so it is being powered off." }, "human_like": "Automatically powers off the 3D printer and sends a notification after a print finishes and the printer has cooled down.", "complexity": "low" } }, { "id": "3dprinter_poweroff_idle", "result": { "structured": "TRIGGER: When 3d printer [switch.3d_printer] remains on for 30 minutes. CONDITIONS: NOT (octoprint printing [binary_sensor.octoprint_printing] is on). ACTIONS: Turn off 3d printer [switch.3d_printer] AND send a secret notification with message '3D Printer has been idle for 30 minutes, shutting down'.", "natural_language": { "trigger": "When the 3d printer [switch.3d_printer] has been turned on and remains in the on state for 30 minutes.", "conditions": "If the octoprint printing [binary_sensor.octoprint_printing] sensor is not reporting that a print is in progress.", "action": "Turns off the 3d printer [switch.3d_printer] and sends a notification stating '3D Printer has been idle for 30 minutes, shutting down'." }, "human_like": "Automatically turns off the 3D printer after 30 minutes of being idle, but only if it's not currently printing.", "complexity": "low" } }, { "id": "3dprinter_error", "result": { "structured": "TRIGGER: When octoprint printing error [binary_sensor.octoprint_printing_error] changes to on. CONDITIONS: None. ACTIONS: Send a secret telservice notification with the message '3D Printer has experienced an error and requires your attention'.", "natural_language": { "trigger": "When the octoprint printing error [binary_sensor.octoprint_printing_error] sensor indicates an error by turning on.", "conditions": "There are no conditions that must be met.", "action": "Sends a notification via a secret telservice with the message: '3D Printer has experienced an error and requires your attention'." }, "human_like": "Sends an alert when the 3D printer encounters an error.", "complexity": "low" } }, { "id": "Arrival_Lights_On", "result": { "structured": "TRIGGER: When presence group [group.presence] changes state from not_home to home. CONDITIONS: sun [sun.sun] is below_horizon. ACTIONS: Turn on front entry light [light.front_entry], livingroom lights [light.livingroom_lights], and diningroom light [light.diningroom] to 100% brightness. Wait for 5 minutes. Turn off front entry light [light.front_entry] and diningroom light [light.diningroom]. Turn on livingroom lights [light.livingroom_lights] to 10% brightness.", "natural_language": { "trigger": "When the presence group [group.presence] changes from 'not_home' to 'home', indicating someone has arrived.", "conditions": "The sun [sun.sun] must be below the horizon, meaning it is dark outside.", "action": "Turns on the front entry light [light.front_entry], livingroom lights [light.livingroom_lights], and diningroom light [light.diningroom] at full brightness. After a five-minute delay, it turns off the front entry and dining room lights, and sets the living room lights to a low 10% brightness." }, "human_like": "Turns on entry and main living area lights when arriving home after dark, then dims the living room lights after a few minutes.", "complexity": "low" } }, { "id": "Bedtime", "result": { "structured": "TRIGGER: When bedtime input [input_boolean.bedtime] turns on. CONDITIONS: guest input [input_boolean.guest] is off. ACTIONS: Turn on bedtime script [script.bedtime], wait 5 seconds, then turn off bedtime input [input_boolean.bedtime].", "natural_language": { "trigger": "When the bedtime input [input_boolean.bedtime] is switched on.", "conditions": "The guest input [input_boolean.guest] must be off.", "action": "Runs the bedtime script [script.bedtime], waits for 5 seconds, and then turns the bedtime input [input_boolean.bedtime] back off." }, "human_like": "Activates the bedtime routine when the bedtime switch is turned on, but only if there are no guests.", "complexity": "low" } }, { "id": "bedtime_tvoff", "result": { "structured": "TRIGGER: When bedtime script [script.bedtime] changes from off to on. CONDITIONS: guest input [input_boolean.guest] is off. ACTIONS: Wait for 20 minutes, then send the PowerOff activity command to living room remote [remote.living_room].", "natural_language": { "trigger": "When the bedtime script [script.bedtime] is activated, changing its state from off to on.", "conditions": "The guest input [input_boolean.guest] must be off, indicating there are no guests present.", "action": "After a 20-minute delay, the automation turns off the TV by sending a PowerOff command to the living room remote [remote.living_room]." }, "human_like": "Turns off the living room TV 20 minutes after bedtime starts, but only when there are no guests.", "complexity": "low" } }, { "id": "Christmas_Tree_On", "result": { "structured": "TRIGGER: When the sun sets (sunset event). CONDITIONS: presence group [group.presence] state is home. ACTIONS: Turn on christmas tree switch [switch.christmas_tree].", "natural_language": { "trigger": "At sunset.", "conditions": "If the presence group [group.presence] indicates that someone is home.", "action": "Turns on the christmas tree switch [switch.christmas_tree]." }, "human_like": "Turns on the Christmas tree lights at sunset when someone is home.", "complexity": "low" } }, { "id": "Christmas_Tree_Off", "result": { "structured": "TRIGGER: When sunrise occurs with an offset of +45 minutes. CONDITIONS: guest input [input_boolean.guest] is off. ACTIONS: Turn off christmas tree switch [switch.christmas_tree].", "natural_language": { "trigger": "When the sun rises, after a delay of 45 minutes.", "conditions": "If the guest input [input_boolean.guest] is turned off.", "action": "Turns off the christmas tree switch [switch.christmas_tree]." }, "human_like": "Turns off the Christmas tree lights 45 minutes after sunrise, but only when the 'guest' mode is not active.", "complexity": "low" } }, { "id": "basement_dehumidifier_tank_full", "result": { "structured": "TRIGGER: When basement dehumidifier tank full [binary_sensor.151732606083492_tank_full] changes from off to on. CONDITIONS: None. ACTIONS: Send a notification via the 'secret telservice' with the message 'Basement dehumidifier tank is full'.", "natural_language": { "trigger": "When the basement dehumidifier tank full sensor [binary_sensor.151732606083492_tank_full] changes state from empty (off) to full (on).", "conditions": "There are no additional conditions that must be met.", "action": "Sends a notification message stating 'Basement dehumidifier tank is full' using the 'secret telservice'." }, "human_like": "Sends a notification when the basement dehumidifier's water tank becomes full.", "complexity": "low" } }, { "id": "basement_dehumidifier_tank_warning", "result": { "structured": "TRIGGER: When basement dehumidifier tank sensor [sensor.151732606083492_tank] reports a value above 50. CONDITIONS: None. ACTIONS: Send a secret message via the 'secret telservice' service with the text 'Time to empty the basement dehumidifier tank'.", "natural_language": { "trigger": "When the basement dehumidifier tank sensor [sensor.151732606083492_tank] indicates a level above 50.", "conditions": "There are no additional conditions that must be met.", "action": "Sends a private notification message stating 'Time to empty the basement dehumidifier tank'." }, "human_like": "Sends a private alert when the basement dehumidifier's water tank is more than half full.", "complexity": "low" } }, { "id": "dehydrator_on", "result": { "structured": "TRIGGER: When dehydrator switch [switch.dehydrator] changes from off to on. CONDITIONS: None. ACTIONS: Start dehydrator timer [timer.dehydrator] for 7 hours.", "natural_language": { "trigger": "When the dehydrator switch [switch.dehydrator] is turned on.", "conditions": "There are no conditions that must be met.", "action": "Starts the dehydrator timer [timer.dehydrator] for a duration of 7 hours." }, "human_like": "Starts a 7-hour timer whenever the dehydrator is turned on.", "complexity": "low" } }, { "id": "dehydrator_reset", "result": { "structured": "TRIGGER: When dehydrator switch [switch.dehydrator] changes from on to off OR When dehydrator switch [switch.dehydrator] becomes unavailable. CONDITIONS: dehydrator timer [timer.dehydrator] is active OR dehydrator switch [switch.dehydrator] is unavailable. ACTIONS: Cancel dehydrator timer [timer.dehydrator] AND Send a secret notification with the message: 'Something has gone wrong, check the dehydrator'.", "natural_language": { "trigger": "When the dehydrator switch [switch.dehydrator] is turned off, or when it becomes unavailable.", "conditions": "If the dehydrator timer [timer.dehydrator] is currently running, or if the dehydrator switch [switch.dehydrator] is unavailable.", "action": "Cancels the dehydrator timer [timer.dehydrator] and sends a secret notification stating 'Something has gone wrong, check the dehydrator'." }, "human_like": "Resets the dehydrator timer and sends an alert if the dehydrator is turned off or becomes unavailable while it's supposed to be running.", "complexity": "medium" } }, { "id": "dehydrator_timer_failed", "result": { "structured": "TRIGGER: When dehydrator timer [timer.dehydrator] remains idle for 1 minute. CONDITIONS: dehydrator switch [switch.dehydrator] is on. ACTIONS: Send a secret telservice message with inline keyboard options 'Yes' and 'No'.", "natural_language": { "trigger": "When the dehydrator timer [timer.dehydrator] has been in the idle state for one minute.", "conditions": "The dehydrator switch [switch.dehydrator] must be in the on state.", "action": "Sends a notification via a secret telservice, asking if the dehydrator should be shut down, and provides 'Yes' and 'No' buttons for a response." }, "human_like": "Alerts you if the dehydrator timer stops but the appliance is still powered on, asking if you want to turn it off.", "complexity": "low" } }, { "id": "dehydrator_timer_done", "result": { "structured": "TRIGGER: When dehydrator timer [timer.dehydrator] finishes. ACTIONS: Send a notification via secret telservice with a message 'Timer has expired and dehydrator has been powered off. Is the Jerky done?' and an inline keyboard offering options 'Give it another hour' and 'Yes'. AND Turn off dehydrator switch [switch.dehydrator].", "natural_language": { "trigger": "When the dehydrator timer [timer.dehydrator] finishes.", "conditions": "There are no conditions for this automation.", "action": "Sends a notification message asking if the jerky is done and provides two response options: 'Give it another hour' and 'Yes'. It also turns off the dehydrator switch [switch.dehydrator]." }, "human_like": "Notifies the user when the dehydrator timer finishes and turns off the dehydrator, asking if the jerky is ready.", "complexity": "low" } }, { "id": "acknowledge_dehydrator_alert", "result": { "structured": "TRIGGER: When a Telegram callback event occurs with event data containing '/removekeyboarddehydrator'. CONDITIONS: None. ACTIONS: Send a Telegram callback answer with message 'Great, no further action needed then.', send a notification to britt_ha_notifybot with message 'Great, no further action needed then.', and edit the Telegram reply markup to remove the inline keyboard from the original message.", "natural_language": { "trigger": "When a user interacts with a specific Telegram inline keyboard button, sending a callback with the data '/removekeyboarddehydrator'.", "conditions": "There are no conditions that must be met for the actions to run.", "action": "The automation sends a confirmation message back to the user via Telegram, sends the same message as a notification to britt_ha_notifybot, and removes the inline keyboard from the original Telegram message." }, "human_like": "This automation handles the user's dismissal of a dehydrator alert in Telegram, confirming the action and cleaning up the message interface.", "complexity": "low" } }, { "id": "extend_dehydrator_time", "result": { "structured": "TRIGGER: When a Telegram callback event with data '/dehydratorextend' is received. CONDITIONS: None. ACTIONS: Answer the Telegram callback query with message 'Ok, timer extended 1 hour and dehydrator powered back on.'; Send a secret message via 'telservice' with the same text; Edit the original Telegram message's reply markup to clear the inline keyboard; Turn on dehydrator switch [switch.dehydrator]; Start dehydrator timer [timer.dehydrator] for 1 hour.", "natural_language": { "trigger": "When a specific Telegram callback event is received, specifically one containing the command '/dehydratorextend'.", "conditions": "There are no additional conditions that must be met.", "action": "The automation will send a confirmation message back to the Telegram user, clear the interactive buttons from the original message, turn on the dehydrator switch [switch.dehydrator], and restart the dehydrator timer [timer.dehydrator] for one hour." }, "human_like": "Extends the dehydrator's running timer by one hour and turns the appliance back on when a user confirms via a Telegram button.", "complexity": "low" } }, { "id": "dogs_give_heatworm_flea_tick", "result": { "structured": "TRIGGER: When calendar [calendar.trefynwed_gmail_com] event starts. CONDITIONS: The calendar event summary contains the text 'Dogs - Flea/Tick/Heartworm'. ACTIONS: Send a secret telservice message with text 'Did you give the dogs their medicine?' and inline keyboard options 'Yes:/dogsoff' and 'Remind Me Later:/dogslater'. AND Start dogs timer [timer.dogs] for 30 minutes.", "natural_language": { "trigger": "When an event starts on the calendar [calendar.trefynwed_gmail_com].", "conditions": "The event's summary must contain the phrase 'Dogs - Flea/Tick/Heartworm'.", "action": "Sends a notification via a secret telservice asking 'Did you give the dogs their medicine?' with options to respond 'Yes' or 'Remind Me Later'. It also starts a 30-minute timer [timer.dogs]." }, "human_like": "Sends a reminder to give the dogs their flea, tick, and heartworm medicine when a calendar event starts, and starts a follow-up timer.", "complexity": "medium" } }, { "id": "dogs_off", "result": { "structured": "TRIGGER: When a Telegram callback event occurs with event_data.data equal to '/dogsoff'. CONDITIONS: None. ACTIONS: Send a Telegram answer_callback_query with message 'Ok, Dog reminder acknowledged' using the callback_query_id from the trigger event. Edit the Telegram reply markup for the specific message to clear the inline keyboard. Cancel the dogs timer [timer.dogs].", "natural_language": { "trigger": "When a specific Telegram callback event is received, specifically one containing the data '/dogsoff'.", "conditions": "There are no conditions that must be checked; the automation runs immediately upon the trigger.", "action": "The automation sends an acknowledgement message back to Telegram, removes the interactive buttons from the original Telegram message, and stops the dogs timer [timer.dogs]." }, "human_like": "Acknowledges a dog medication reminder via Telegram, clears the notification buttons, and cancels the associated timer.", "complexity": "low" } }, { "id": "dogs_remind_me_later", "result": { "structured": "TRIGGER: When a Telegram callback event occurs with data '/dogslater'. CONDITIONS: None. ACTIONS: Answer the Telegram callback query with message 'Ok, I will remind you again in 30 minutes.' AND Edit the Telegram message's reply markup to an empty inline keyboard AND Cancel the dogs timer [timer.dogs] AND Start the dogs timer [timer.dogs] for a duration of 30 minutes.", "natural_language": { "trigger": "When a user interacts with a Telegram bot by pressing a button or link that sends the callback data '/dogslater'.", "conditions": "There are no conditions; the actions run immediately after the trigger.", "action": "The automation sends a confirmation message to the user via Telegram, clears the interactive buttons from the original message, cancels any existing dogs timer [timer.dogs], and then starts a new 30-minute countdown on the dogs timer [timer.dogs]." }, "human_like": "This automation handles a 'remind me later' request for the dogs, resetting a 30-minute timer and providing feedback in Telegram.", "complexity": "low" } }, { "id": "dogs_repeat_reminder", "result": { "structured": "TRIGGER: When timer.dogs [timer.dogs] finishes. ACTIONS: Send a secret telservice message 'Did you give the Dogs their medicine?' with inline keyboard options 'Yes' and 'Remind Me Later'. AND Start timer.dogs [timer.dogs] for 30 minutes.", "natural_language": { "trigger": "When the dogs timer [timer.dogs] finishes.", "conditions": "There are no conditions for this automation.", "action": "Sends a message via a secret telservice asking 'Did you give the Dogs their medicine?' and provides two response options: 'Yes' and 'Remind Me Later'. It then restarts the dogs timer [timer.dogs] for another 30 minutes." }, "human_like": "Sends a reminder to give the dogs their medicine when a timer expires, and then resets the timer to ask again later.", "complexity": "low" } }, { "id": "dog_cam_snapshot", "result": { "structured": "TRIGGER: When an MQTT message is received on topic frigate/events with payload field after.camera equal to dog_cam. CONDITIONS: (The event type is new OR the before.entered_zones list is empty) AND (motion alert input [input_boolean.motion_alert] is on AND guest input [input_boolean.guest] is off AND presence group [group.presence] is not_home) AND (The after.entered_zones list contains at least one of the zones dcperson or fpoverhead). ACTIONS: Send a photo via Telegram to Secret Telegram Chat ID 1 [secret tchatid1] with a caption containing the detected label and camera name, then wait 30 seconds, then send a video clip via Telegram to the same chat with a caption containing the camera name.", "natural_language": { "trigger": "When the Frigate system sends an MQTT event message indicating activity on the dog_cam camera.", "conditions": "The event must be either a new detection or a detection that entered zones from an empty state. Additionally, the motion alert input [input_boolean.motion_alert] must be on, the guest input [input_boolean.guest] must be off, and the presence group [group.presence] must indicate that nobody is home. Finally, the detection must have entered either the 'dcperson' or 'fpoverhead' zones.", "action": "Sends a photo of the detection via Telegram to a specific chat, waits 30 seconds, and then sends a video clip of the detection to the same chat." }, "human_like": "Sends photo and video alerts to Telegram when a person is detected by the dog camera while the house is empty and alerts are enabled.", "complexity": "medium" } }, { "id": "Doorbird Ring", "result": { "structured": "TRIGGER: When the event doorbird_frontdoor_button_press occurs. CONDITIONS: None. ACTIONS: Start the doorbell script [script.doorbell].", "natural_language": { "trigger": "When someone presses the button on the front door Doorbird device, triggering the 'doorbird_frontdoor_button_press' event.", "conditions": "There are no conditions that must be met for this automation to run.", "action": "Activates the doorbell script [script.doorbell]." }, "human_like": "Runs the doorbell script when someone rings the front doorbell.", "complexity": "low" } }, { "id": "doorbird_snapshot", "result": { "structured": "TRIGGER: When an MQTT message is received on topic 'frigate/events' with payload 'front_door' and the camera field in the after object equals 'front_door'. CONDITIONS: (The event type is 'new' OR the before object's entered_zones list is empty) AND (motion alert input [input_boolean.motion_alert] is on AND autolock input [input_boolean.autolock] is on AND front door sensor [binary_sensor.front_door] is closed (off) AND the front door sensor [binary_sensor.front_door] has not changed state in the last 30 seconds) AND (The after object's entered_zones list contains at least one of the zones 'dbperson' or 'fpoverhead'). ACTIONS: Send a photo via Telegram to Secret Telegram Chat ID 1 [secret tchatid1] with a thumbnail URL and a caption based on the detection label and camera. Wait 30 seconds. Send a video clip via Telegram to Secret Telegram Chat ID 1 [secret tchatid1] with a URL and caption based on the camera. If the automation 'doorbird_ring' has not been triggered in the last 60 seconds AND the script 'motion alert script' [script.motion_alert] has not been triggered in the last 60 seconds, then turn on motion alert script [script.motion_alert].", "natural_language": { "trigger": "When the Frigate system sends an MQTT event message indicating activity on the 'front_door' camera.", "conditions": "The event must be either a new detection or one where the object was not in any zone before. The motion alert input [input_boolean.motion_alert] and autolock input [input_boolean.autolock] must both be turned on. The front door sensor [binary_sensor.front_door] must be closed and must have been in that state for at least 30 seconds. The detected object must have entered either the 'dbperson' or 'fpoverhead' zones.", "action": "Sends a photo notification with a thumbnail to a Telegram chat. After a 30-second delay, it sends a video clip of the detection to the same chat. Finally, if neither the 'doorbird_ring' automation nor the 'motion alert script' [script.motion_alert] have been activated in the last minute, it triggers the motion alert script." }, "human_like": "Sends photo and video alerts to Telegram for specific person detections at the front door when motion alerts are enabled and the door is closed.", "complexity": "high" } }, { "id": "Exterior_Lights_On_Sunset", "result": { "structured": "TRIGGER: When the sun sets. CONDITIONS: presence group [group.presence] is home. ACTIONS: Turn on front porch light [light.front_porch_light] AND back porch light [light.back_porch_light].", "natural_language": { "trigger": "At sunset.", "conditions": "If at least one person is home, as indicated by the presence group [group.presence] being in the 'home' state.", "action": "Turns on both the front porch light [light.front_porch_light] and the back porch light [light.back_porch_light]." }, "human_like": "Turns on the exterior porch lights at sunset, but only when someone is home.", "complexity": "low" } }, { "id": "freeze_warning", "result": { "structured": "TRIGGER: At sunset. CONDITIONS: overnight low sensor [sensor.overnight_low] is below 35. ACTIONS: Send a secret telservice message with content: 'Freeze warning, cover outside spigots'.", "natural_language": { "trigger": "At sunset.", "conditions": "The overnight low sensor [sensor.overnight_low] reports a temperature below 35 degrees.", "action": "Sends a secret telservice message containing the text: 'Freeze warning, cover outside spigots'." }, "human_like": "Sends a freeze warning message at sunset if the forecasted overnight low temperature is below freezing.", "complexity": "low" } }, { "id": "Frontdoor_IR_On", "result": { "structured": "TRIGGER: Every 2 minutes (time pattern). CONDITIONS: sun [sun.sun] is below_horizon. ACTIONS: Press frontdoor ir button [button.frontdoor_ir].", "natural_language": { "trigger": "The automation runs every two minutes.", "conditions": "It only proceeds if the sun [sun.sun] is below the horizon, meaning it is night time.", "action": "It presses the frontdoor ir button [button.frontdoor_ir]." }, "human_like": "Turns on the front door infrared light at night by pressing its button every two minutes.", "complexity": "low" } }, { "id": "front_porch_snapshot", "result": { "structured": "TRIGGER: When an MQTT message is received on topic 'frigate/events' where the camera field in the after object equals 'front_porch'. CONDITIONS: (The MQTT event type is 'new' OR the before zones list is empty) AND (motion alert input [input_boolean.motion_alert] is on AND autolock input [input_boolean.autolock] is on AND front door sensor [binary_sensor.front_door] is closed (off) AND the front door sensor [binary_sensor.front_door] has not changed state in the last 30 seconds) AND (The after zones list contains either 'dbperson' OR 'fpoverhead'). ACTIONS: Send a photo via Telegram to Secret Telegram Chat ID 1 [secret tchatid1] with a thumbnail of the detection, wait 30 seconds, then send a video clip of the detection via Telegram to the same chat. Then, if the automation 'doorbird_ring' has not been triggered in the last 60 seconds AND the script 'motion alert script' [script.motion_alert] has not been triggered in the last 60 seconds, turn on the motion alert script [script.motion_alert].", "natural_language": { "trigger": "When the Frigate system sends an MQTT event for the 'front_porch' camera.", "conditions": "The event must be either a new detection or a detection where no zones were previously entered. Additionally, the motion alert input [input_boolean.motion_alert] and autolock input [input_boolean.autolock] must both be on, the front door sensor [binary_sensor.front_door] must be closed and have been in that state for at least 30 seconds. Finally, the detection must have entered either the 'dbperson' or 'fpoverhead' zones.", "action": "Sends a photo with a caption to a Telegram chat, waits 30 seconds, then sends a video clip. After that, it checks if other related automations haven't run recently and, if so, triggers the motion alert script [script.motion_alert]." }, "human_like": "Sends a photo and video of front porch detections to Telegram when security features are active and the door is closed, and optionally triggers a motion alert.", "complexity": "high" } }, { "id": "input_select_harmony_living_room", "result": { "structured": "TRIGGER: When living room tv input select [input_select.living_room_tv] changes state from 'Select Activity'. CONDITIONS: None. ACTIONS: Execute a conditional action: If living room tv input select [input_select.living_room_tv] is set to 'Netflix', then start the netflix script [script.netflix]. Otherwise, turn on the living room remote [remote.living_room] with a specific activity determined by the current state of living room tv input select [input_select.living_room_tv]. The activity is set to 'PowerOff' if the state is 'Power Off', 'Watch TV' if the state is 'Watch TV', 'Watch Roku' if the state is 'Watch Roku', 'PS3' if the state is 'PS3', and is left blank for any other state. Then, reset living room tv input select [input_select.living_room_tv] to 'Select Activity'.", "natural_language": { "trigger": "When the user changes the selection on the living room tv input select [input_select.living_room_tv] from the 'Select Activity' option.", "conditions": "There are no conditions that must be met for the automation to run.", "action": "The automation performs two actions. First, it checks the current selection. If 'Netflix' is selected, it runs the netflix script [script.netflix]. For any other selection, it turns on the living room remote [remote.living_room] and sends a specific activity command based on the selection: 'PowerOff' for 'Power Off', 'Watch TV' for 'Watch TV', 'Watch Roku' for 'Watch Roku', or 'PS3' for 'PS3'. After this, it resets the input select back to 'Select Activity'." }, "human_like": "Starts a media activity on the living room TV based on a user's selection, automatically resetting the selector afterwards.", "complexity": "medium" } }, { "id": "hvac_filter_change", "result": { "structured": "TRIGGER: When an event starts on calendar [calendar.trefynwed_gmail_com]. CONDITIONS: The event summary contains the text 'Change HVAC Filter'. ACTIONS: Send a secret message via 'telservice' asking 'Have you changed the HVAC filter?' with an inline keyboard option 'Yes' linked to '/hvacfilteroff', AND start timer hvacfilter [timer.hvacfilter] for 1 hour.", "natural_language": { "trigger": "When a new event begins on the calendar [calendar.trefynwed_gmail_com].", "conditions": "The event's title or summary must include the phrase 'Change HVAC Filter'.", "action": "Sends a private notification asking if the HVAC filter has been changed, providing a 'Yes' button to respond, and simultaneously starts a one-hour timer called hvacfilter [timer.hvacfilter]." }, "human_like": "Sends a reminder and starts a timer when a calendar event for changing the HVAC filter begins.", "complexity": "medium" } }, { "id": "hvacfilter_off", "result": { "structured": "TRIGGER: When a Telegram callback event occurs with data '/hvacfilteroff'. CONDITIONS: None. ACTIONS: Answer the Telegram callback query with message 'Ok, HVAC filter channged', edit the reply markup of the triggering message to have an empty inline keyboard, and cancel the hvacfilter timer [timer.hvacfilter].", "natural_language": { "trigger": "When a specific button is pressed in a Telegram chat, specifically the one that sends the callback data '/hvacfilteroff'.", "conditions": "There are no conditions that must be met for this automation to run.", "action": "It sends a confirmation message back to the Telegram chat saying 'Ok, HVAC filter channged', removes the interactive buttons from the original message, and stops the hvacfilter timer [timer.hvacfilter]." }, "human_like": "Handles a button press in Telegram to confirm an HVAC filter change, clearing the notification and stopping a related timer.", "complexity": "low" } }, { "id": "hvacfilter_repeat", "result": { "structured": "TRIGGER: When timer hvacfilter [timer.hvacfilter] finishes. CONDITIONS: None. ACTIONS: Send a secret message via telservice asking 'Have you changed the HVAC filter?' with an inline keyboard option 'Yes:/hvacfilteroff' AND restart timer hvacfilter [timer.hvacfilter] for 1 hour.", "natural_language": { "trigger": "When the hvacfilter timer [timer.hvacfilter] finishes.", "conditions": "There are no conditions for this automation.", "action": "Sends a secret message via the telservice asking 'Have you changed the HVAC filter?' and provides an inline keyboard button labeled 'Yes' that links to '/hvacfilteroff'. It also restarts the hvacfilter timer [timer.hvacfilter] for one hour." }, "human_like": "Reminds you to change the HVAC filter by sending a message every hour and restarting the reminder timer.", "complexity": "low" } }, { "id": "ifttt", "result": { "structured": "TRIGGER: When an IFTTT webhook is received with event_data containing action: call_service. CONDITIONS: None. ACTIONS: Call the service specified in the webhook's service field, targeting the entity specified in the webhook's entity_id field.", "natural_language": { "trigger": "When a webhook is received from IFTTT with the specific action labeled 'call_service'.", "conditions": "There are no conditions for this automation.", "action": "It calls the Home Assistant service that was specified in the incoming webhook data, acting on the entity also specified in that data." }, "human_like": "This automation allows IFTTT webhooks to directly trigger service calls in Home Assistant.", "complexity": "low" } }, { "id": "Interior_Lights_On_Sunset", "result": { "structured": "TRIGGER: When the sun sets with an offset of -45 minutes OR When presence group [group.presence] changes state to home. CONDITIONS: (The time is after sunset with an offset of -45 minutes) AND (presence group [group.presence] is home) AND (guest input [input_boolean.guest] is off). ACTIONS: Turn on livingroom lights [light.livingroom_lights] with brightness set to 1%.", "natural_language": { "trigger": "The automation can be triggered in two ways: when the sun sets, but 45 minutes before the actual sunset event, or when the presence group [group.presence] changes its state to indicate someone is home.", "conditions": "All of the following must be true: it must be after sunset (specifically, 45 minutes before the sunset time), the presence group [group.presence] must report that someone is home, and the guest input [input_boolean.guest] must be turned off.", "action": "Turns on the livingroom lights [light.livingroom_lights] at a very low brightness of 1%." }, "human_like": "Turns on the living room lights at a very dim level 45 minutes before sunset, but only if someone is home and there are no guests.", "complexity": "medium" } }, { "id": "medicine_reminder", "result": { "structured": "TRIGGER: When the time is 08:30:00 OR when the time is 20:00:00. CONDITIONS: None. ACTIONS: Send a secret telservice message with the text 'Did you take your medicine?' and an inline keyboard offering options 'Yes' and 'Remind Me Later', AND start the medicine timer [timer.medicine] for a duration of 30 minutes.", "natural_language": { "trigger": "The automation triggers daily at 8:30 AM and again at 8:00 PM.", "conditions": "There are no conditions that must be met for the actions to run.", "action": "It sends a message asking 'Did you take your medicine?' with options to respond, and simultaneously starts a 30-minute countdown on the medicine timer [timer.medicine]." }, "human_like": "Sends a reminder to take medicine twice a day and starts a 30-minute timer for follow-up.", "complexity": "low" } }, { "id": "medicine_off", "result": { "structured": "TRIGGER: When a Telegram callback event occurs with data '/medoff'. CONDITIONS: None. ACTIONS: Send a Telegram callback answer with message 'Ok, Medicine reminder acknowledged', edit the Telegram reply markup to clear the inline keyboard, and cancel medicine timer [timer.medicine].", "natural_language": { "trigger": "When a specific Telegram callback event is received, identified by the data '/medoff'.", "conditions": "There are no conditions that must be met for the automation to proceed.", "action": "The automation will send a confirmation message to the Telegram user, remove the interactive buttons from the original message, and cancel the running medicine timer [timer.medicine]." }, "human_like": "Acknowledges a medicine reminder from Telegram, clears the reminder buttons, and stops the associated timer.", "complexity": "low" } }, { "id": "medicine_remind_me_later", "result": { "structured": "TRIGGER: When a Telegram callback event occurs with event_data.data equal to '/medlater'. CONDITIONS: None. ACTIONS: Answer the Telegram callback query with message 'Ok, I will remind you again in 30 minutes.', edit the original message's reply markup to an empty inline keyboard, cancel the medicine timer [timer.medicine], and start the medicine timer [timer.medicine] for a duration of 30 minutes.", "natural_language": { "trigger": "When a user interacts with a Telegram bot and presses a button or link that sends the callback data '/medlater'.", "conditions": "There are no conditions that must be met for the actions to run.", "action": "The bot sends a confirmation message to the user, clears the interactive buttons from the original message, stops the existing medicine timer [timer.medicine], and then restarts the medicine timer [timer.medicine] to count down for 30 minutes." }, "human_like": "This automation resets a medicine reminder for 30 minutes when a user requests a delay via a Telegram button.", "complexity": "low" } }, { "id": "medicine_repeat_reminder", "result": { "structured": "TRIGGER: When medicine timer [timer.medicine] finishes. CONDITIONS: None. ACTIONS: Send a secret telservice message asking 'Did you take your medicine?' with inline keyboard options 'Yes' and 'Remind Me Later', AND start medicine timer [timer.medicine] for 30 minutes.", "natural_language": { "trigger": "When the medicine timer [timer.medicine] finishes.", "conditions": "There are no conditions that must be met.", "action": "Sends a message via a secret telservice asking 'Did you take your medicine?' and provides two response options: 'Yes' and 'Remind Me Later'. It then restarts the medicine timer [timer.medicine] for another 30 minutes." }, "human_like": "Sends a reminder to take medicine when a timer expires and then resets the timer for the next reminder.", "complexity": "low" } }, { "id": "Murdok Radio Volume Control", "result": { "structured": "TRIGGER: When murdok radio input number [input_number.murdok_radio] changes state. CONDITIONS: None. ACTIONS: Set the volume level of googlehome living room media player [media_player.googlehome_living_room] to the current numeric state of murdok radio input number [input_number.murdok_radio].", "natural_language": { "trigger": "Whenever the value of the murdok radio input number [input_number.murdok_radio] changes.", "conditions": "There are no conditions that must be met.", "action": "Sets the volume of the googlehome living room media player [media_player.googlehome_living_room] to match the current value of the murdok radio input number [input_number.murdok_radio]." }, "human_like": "Syncs the living room speaker's volume to a dedicated volume slider.", "complexity": "low" } }, { "id": "Nightlight_Off_Motion", "result": { "structured": "TRIGGER: When living room motion sensor [binary_sensor.living_room_motion] stops detecting motion (off) and remains off for 15 minutes. CONDITIONS: (Time is between 06:00:00 and 10:00:00) AND (guest input [input_boolean.guest] is off) AND (Britt [person.britt] is not home). ACTIONS: Turn off hallway light [light.hallway], front entry light [light.front_entry], back entry light [light.back_entry], and kitchen light [light.kitchen].", "natural_language": { "trigger": "When the living room motion sensor [binary_sensor.living_room_motion] detects no motion for a continuous period of 15 minutes.", "conditions": "The automation only runs if it is between 6:00 AM and 10:00 AM, the guest input [input_boolean.guest] is turned off, and Britt [person.britt] is not at home.", "action": "Turns off the hallway light [light.hallway], the front entry light [light.front_entry], the back entry light [light.back_entry], and the kitchen light [light.kitchen]." }, "human_like": "Turns off the hallway, entryway, and kitchen lights in the morning if no motion is detected for 15 minutes, provided no guests are present and Britt is away.", "complexity": "medium" } }, { "id": "Nightlight_Off_Sunrise", "result": { "structured": "TRIGGER: When sunrise occurs with an offset of +45 minutes. CONDITIONS: guest input [input_boolean.guest] is off. ACTIONS: Turn off front entry light [light.front_entry] AND livingroom lights [light.livingroom_lights] AND diningroom light [light.diningroom].", "natural_language": { "trigger": "At 45 minutes after sunrise.", "conditions": "The guest input [input_boolean.guest] must be off.", "action": "Turn off the front entry light [light.front_entry], the livingroom lights [light.livingroom_lights], and the diningroom light [light.diningroom]." }, "human_like": "Turns off the entryway, living room, and dining room lights 45 minutes after sunrise, but only when no guests are present.", "complexity": "low" } }, { "id": "Nightlight_Off_Time", "result": { "structured": "TRIGGER: When the time is 10:00:00. CONDITIONS: None. ACTIONS: Turn off front entry light [light.front_entry], livingroom lights [light.livingroom_lights], and diningroom light [light.diningroom].", "natural_language": { "trigger": "At 10:00:00 every day.", "conditions": "There are no conditions.", "action": "Turns off the front entry light [light.front_entry], the livingroom lights [light.livingroom_lights], and the diningroom light [light.diningroom]." }, "human_like": "Turns off the living room, dining room, and entryway lights at 10:00 AM.", "complexity": "low" } }, { "id": "Nightlights On", "result": { "structured": "TRIGGER: When living room motion sensor [binary_sensor.living_room_motion] detects motion (turns on). CONDITIONS: (Time is between 06:00:00 and 10:00:00) AND (guest input [input_boolean.guest] is off). ACTIONS: Turn on front entry light [light.front_entry], back entry light [light.back_entry], and hallway light [light.hallway] at 1% brightness. Turn on pendant1 light [light.pendant1] at 1% brightness.", "natural_language": { "trigger": "When the living room motion sensor [binary_sensor.living_room_motion] detects motion.", "conditions": "The automation only runs if the current time is between 6:00 AM and 10:00 AM, and the guest input [input_boolean.guest] is turned off.", "action": "Turns on the front entry light [light.front_entry], back entry light [light.back_entry], and hallway light [light.hallway] at a very low brightness of 1%. It also turns on the pendant1 light [light.pendant1] at 1% brightness." }, "human_like": "Turns on dimmed nightlights in the entryways, hallway, and kitchen when motion is detected in the living room during the early morning hours, but only when no guests are present.", "complexity": "low" } }, { "id": "toggle_office_roku", "result": { "structured": "TRIGGER: When an NFC tag with ID fd63aff9-078c-4653-a47a-0ed42272fd8b is scanned. CONDITIONS: None. ACTIONS: Send the 'power' command to office remote [remote.office] AND Turn on dog cam switch [switch.dog_cam] AND Execute the REST command 'tasker_nfc_office'.", "natural_language": { "trigger": "When a specific NFC tag with the ID fd63aff9-078c-4653-a47a-0ed42272fd8b is scanned.", "conditions": "There are no conditions for this automation.", "action": "Sends a power command to the office remote [remote.office], turns on the dog cam switch [switch.dog_cam], and runs a custom REST command called 'tasker_nfc_office'." }, "human_like": "Scans an NFC tag to toggle the power of the office Roku, turn on the dog camera, and run a related Tasker command.", "complexity": "low" } }, { "id": "Facial_Recognition", "result": { "structured": "TRIGGER: When double take britt sensor [sensor.double_take_britt] changes state. CONDITIONS: (motion alert input [input_boolean.motion_alert] is on AND autolock input [input_boolean.autolock] is on AND front door sensor [binary_sensor.front_door] is closed (off) AND the front door sensor [binary_sensor.front_door] has not changed state in the last 30 seconds) AND (the 'id' attribute of the triggering sensor's new state equals the 'id' attribute of its previous state). ACTIONS: Send a photo via Telegram to Secret Telegram Chat ID 1 [secret tchatid1] using a URL constructed from the trigger's match filename. The caption includes the recognized name, camera, confidence, number of attempts, and processing duration if a match is defined.", "natural_language": { "trigger": "Whenever the state of the double take britt sensor [sensor.double_take_britt] changes.", "conditions": "The motion alert input [input_boolean.motion_alert] and autolock input [input_boolean.autolock] must both be turned on. The front door sensor [binary_sensor.front_door] must be closed, and it must have been in that state for at least 30 seconds. Additionally, the 'id' attribute of the sensor's new state must be the same as the 'id' attribute of its previous state.", "action": "Sends a photo notification via Telegram to Secret Telegram Chat ID 1 [secret tchatid1]. The photo is retrieved from a specific URL based on the facial recognition match. The message caption identifies the recognized person, the camera that detected them, the confidence level, the number of recognition attempts, and the total processing time." }, "human_like": "Sends a Telegram alert with a photo when a known face is recognized by the camera system, but only if security features are enabled and the front door is securely closed.", "complexity": "medium" } }, { "id": "record_away", "result": { "structured": "TRIGGER: When presence group [group.presence] changes state from home to not_home. CONDITIONS: guest input [input_boolean.guest] is off. ACTIONS: Turn on dog cam detect switch [switch.dog_cam_detect], dog cam motion switch [switch.dog_cam_motion], dog cam recordings switch [switch.dog_cam_recordings], and dog cam snapshots switch [switch.dog_cam_snapshots]. Send a secret notification via the 'telservice' action with the message 'Nobody is at home, enabling camera recording'.", "natural_language": { "trigger": "When the presence group [group.presence] indicates that everyone has left home by changing its state from 'home' to 'not_home'.", "conditions": "Only if the guest input [input_boolean.guest] is currently turned off, meaning no guests are present.", "action": "Enables camera recording and monitoring by turning on the dog cam detect switch [switch.dog_cam_detect], dog cam motion switch [switch.dog_cam_motion], dog cam recordings switch [switch.dog_cam_recordings], and dog cam snapshots switch [switch.dog_cam_snapshots]. It also sends a secret notification via the 'telservice' action stating that nobody is home and camera recording is being enabled." }, "human_like": "Turns on all dog camera recording and detection features when everyone leaves home and no guests are present, and sends a notification.", "complexity": "low" } }, { "id": "record_stop", "result": { "structured": "TRIGGER: When Secret Person Entity 1 [secret personentity1] changes state from not_home to home OR when Secret Person Entity 2 [secret personentity2] changes state from not_home to home. CONDITIONS: dog cam detect switch [switch.dog_cam_detect] is on OR dog cam motion switch [switch.dog_cam_motion] is on OR dog cam recordings switch [switch.dog_cam_recordings] is on OR dog cam snapshots switch [switch.dog_cam_snapshots] is on. ACTIONS: Turn off dog cam detect switch [switch.dog_cam_detect], dog cam motion switch [switch.dog_cam_motion], dog cam recordings switch [switch.dog_cam_recordings], and dog cam snapshots switch [switch.dog_cam_snapshots]; then send a notification message 'Camera recording disabled.' via secret telservice.", "natural_language": { "trigger": "When either Secret Person Entity 1 [secret personentity1] or Secret Person Entity 2 [secret personentity2] arrives home, changing their state from 'not_home' to 'home'.", "conditions": "If at least one of the dog camera's features is currently enabled: detection, motion sensing, recordings, or snapshots.", "action": "Disables all dog camera features by turning off the corresponding switches and sends a notification stating 'Camera recording disabled.'" }, "human_like": "Turns off the dog camera's recording and detection features when someone arrives home, and sends a confirmation message.", "complexity": "medium" } }, { "id": "record_frigate_restart", "result": { "structured": "TRIGGER: When dog cam camera [camera.dog_cam] changes from unavailable to any other state. CONDITIONS: (Secret Person Entity 1 [secret personentity1] is home) OR (Secret Person Entity 2 [secret personentity2] is home). ACTIONS: Turn off dog cam detect switch [switch.dog_cam_detect], dog cam motion switch [switch.dog_cam_motion], dog cam recordings switch [switch.dog_cam_recordings], and dog cam snapshots switch [switch.dog_cam_snapshots].", "natural_language": { "trigger": "When the dog cam camera [camera.dog_cam] becomes available again after being unavailable.", "conditions": "If either Secret Person Entity 1 [secret personentity1] or Secret Person Entity 2 [secret personentity2] is at home.", "action": "Disables several camera features by turning off the dog cam detect switch [switch.dog_cam_detect], dog cam motion switch [switch.dog_cam_motion], dog cam recordings switch [switch.dog_cam_recordings], and dog cam snapshots switch [switch.dog_cam_snapshots]." }, "human_like": "Turns off the dog camera's detection, motion, recording, and snapshot features when the camera restarts and someone is home.", "complexity": "low" } }, { "id": "Netflix", "result": { "structured": "TRIGGER: When netflix input boolean [input_boolean.netflix] turns on. CONDITIONS: None. ACTIONS: Turn on netflix script [script.netflix], wait for 5 seconds, then turn off netflix input boolean [input_boolean.netflix].", "natural_language": { "trigger": "When the netflix input boolean [input_boolean.netflix] is turned on.", "conditions": "There are no conditions for this automation.", "action": "It starts the netflix script [script.netflix], waits for five seconds, and then turns the netflix input boolean [input_boolean.netflix] back off." }, "human_like": "Activates the Netflix script when the Netflix switch is turned on, then resets the switch after a short delay.", "complexity": "low" } }, { "id": "trash_put_out", "result": { "structured": "TRIGGER: When calendar [calendar.trefynwed_gmail_com] event starts. CONDITIONS: The event summary contains the text 'Put out the trash'. ACTIONS: Execute secret telservice with a templated message 'Did you put out the trash?' and inline keyboard option 'Yes:/trashoff' AND start trash timer [timer.trash] for 30 minutes.", "natural_language": { "trigger": "When a new calendar event begins on the calendar [calendar.trefynwed_gmail_com].", "conditions": "The calendar event's summary must include the phrase 'Put out the trash'.", "action": "Sends a message via a secret telservice asking 'Did you put out the trash?' with a 'Yes' button that links to '/trashoff', and simultaneously starts a 30-minute countdown on the trash timer [timer.trash]." }, "human_like": "Reminds you to take out the trash when a calendar event starts and starts a 30-minute timer.", "complexity": "medium" } }, { "id": "trash_off", "result": { "structured": "TRIGGER: When a Telegram callback event with data '/trashoff' is received. CONDITIONS: None. ACTIONS: Send a Telegram answer callback query with message 'Ok, trash reminder acknowledged', edit the original Telegram message's reply markup to an empty inline keyboard, and cancel the trash timer [timer.trash].", "natural_language": { "trigger": "When a specific Telegram callback button with the data '/trashoff' is pressed.", "conditions": "There are no conditions that must be met.", "action": "The automation sends a confirmation message to the user via Telegram, removes the interactive buttons from the original reminder message, and cancels the active trash timer [timer.trash]." }, "human_like": "Acknowledges a trash reminder from Telegram, clears the notification, and stops the associated timer.", "complexity": "low" } }, { "id": "trash_repeat_put_out", "result": { "structured": "TRIGGER: When timer.finished event occurs for trash timer [timer.trash]. CONDITIONS: None. ACTIONS: Send a secret telservice message 'Did you put out the trash?' with an inline keyboard option 'Yes:/trashoff' AND start trash timer [timer.trash] for 30 minutes.", "natural_language": { "trigger": "When the trash timer [timer.trash] finishes.", "conditions": "There are no conditions for this automation.", "action": "Sends a message via a secret telservice asking 'Did you put out the trash?' with a 'Yes' button, and then restarts the trash timer [timer.trash] for another 30 minutes." }, "human_like": "Reminds you to take out the trash by sending a message and resetting a 30-minute reminder timer.", "complexity": "low" } }, { "id": "Hass_Update_Available", "result": { "structured": "TRIGGER: When home assistant website update available [binary_sensor.home_assistant_website_update_available] changes from off to on. CONDITIONS: None. ACTIONS: Send a notification via the 'secret telservice' action, containing a templated message. The message includes the current version from home assistant website sensor [sensor.home_assistant_website] and its release notes attribute.", "natural_language": { "trigger": "When the home assistant website update available [binary_sensor.home_assistant_website_update_available] sensor indicates that an update has become available by changing from off to on.", "conditions": "There are no conditions for this automation.", "action": "Sends a notification using a service named 'secret telservice'. The notification message includes the new Home Assistant version number from the home assistant website sensor [sensor.home_assistant_website] and the release notes associated with that version." }, "human_like": "Sends a notification when a new Home Assistant update is detected, including the version number and release notes.", "complexity": "low" } } ]