AutomationDataset/joshuaspence/automation-descriptions.json

249 lines
24 KiB
JSON

[
{
"id": "c9e5b5d8-3d97-404c-8158-50956278fb72",
"result": {
"structured": "TRIGGER: When alarm [alarm_control_panel.alarm] changes state to triggered. CONDITIONS: None. ACTIONS: Send a notification with the message 'The alarm has been triggered' AND Turn on all lights.",
"natural_language": {
"trigger": "When the alarm [alarm_control_panel.alarm] is triggered.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a notification with the message 'The alarm has been triggered' and simultaneously turns on all lights."
},
"human_like": "Sends an alert and turns on all lights when the alarm is triggered.",
"complexity": "low"
}
},
{
"id": "5350a641-9769-4587-b0a0-3dd2ba6d0fd3",
"result": {
"structured": "TRIGGER: When back door sensor [binary_sensor.back_door] OR dining room sliding door sensor [binary_sensor.dining_room_sliding_door] OR front door sensor [binary_sensor.front_door] OR living room sliding door sensor [binary_sensor.living_room_sliding_door] changes state to open (on). CONDITIONS: alarm [alarm_control_panel.alarm] is in armed_away state. ACTIONS: Trigger the alarm [alarm_control_panel.alarm].",
"natural_language": {
"trigger": "When any of the monitored doors open: the back door sensor [binary_sensor.back_door], the dining room sliding door sensor [binary_sensor.dining_room_sliding_door], the front door sensor [binary_sensor.front_door], or the living room sliding door sensor [binary_sensor.living_room_sliding_door].",
"conditions": "The alarm system [alarm_control_panel.alarm] must be set to armed_away mode.",
"action": "Immediately triggers the alarm [alarm_control_panel.alarm]."
},
"human_like": "Triggers the alarm when a door is opened while the system is armed away.",
"complexity": "low"
}
},
{
"id": "7a14e9b0-b1ea-43da-9057-fcd7be8c66c3",
"result": {
"structured": "TRIGGER: When family group [group.family] changes state from not_home to home. CONDITIONS: The sun is below the horizon (after sunset). ACTIONS: In parallel: 1. Activate arriving home scene [scene.arriving_home]. 2. Wait for front door sensor [binary_sensor.front_door] to open (change from off to on) with a timeout of 900 seconds. If timeout occurs, stop the automation. 3. Wait for front door sensor [binary_sensor.front_door] to close (change from on to off) with a timeout of 300 seconds. 4. Wait for a delay of 300 seconds. 5. Turn off outside wall light [light.outside_wall].",
"natural_language": {
"trigger": "When the family group [group.family] arrives home, changing its state from 'not_home' to 'home'.",
"conditions": "The automation only runs if it is after sunset.",
"action": "First, the arriving home scene [scene.arriving_home] is activated. Then, the automation waits for the front door sensor [binary_sensor.front_door] to open. If the door does not open within 15 minutes, the automation stops. If the door opens, it then waits for the door to close, with a timeout of 5 minutes. After the door closes (or after the 5-minute timeout), it waits an additional 5 minutes before finally turning off the outside wall light [light.outside_wall]."
},
"human_like": "Activates a welcome scene when the family arrives home after sunset, then turns off the outside light after the door is used and a safety delay.",
"complexity": "medium"
}
},
{
"id": "05cfb2f2-6f36-498f-a321-88756cfe534d",
"result": {
"structured": "TRIGGER: When attic temperature sensor [sensor.attic_temperature] falls below 25 OR When attic temperature sensor [sensor.attic_temperature] rises above 30. CONDITIONS: None. ACTIONS: Execute the service action defined by the triggering condition: fan.turn_off if triggered by the low temperature condition OR fan.turn_on if triggered by the high temperature condition, targeting the 'attic' area.",
"natural_language": {
"trigger": "When the attic temperature sensor [sensor.attic_temperature] drops below 25 degrees, or when it rises above 30 degrees.",
"conditions": "There are no additional conditions for this automation.",
"action": "Depending on which trigger occurred, it will either turn the fan off in the attic area (if the temperature is low) or turn the fan on in the attic area (if the temperature is high)."
},
"human_like": "Automatically turns the attic fan on or off to regulate the temperature, turning it on when it gets too hot and off when it cools down.",
"complexity": "low"
}
},
{
"id": "d66c61c9-1819-4909-bf49-accb40fadfea",
"result": {
"structured": "TRIGGER: When basement humidity sensor [sensor.basement_humidity] OR outside humidity sensor [sensor.outside_humidity] changes state. CONDITIONS: The time elapsed since the automation Basement Dehumidifier [automation.basement_dehumidifier] was last triggered is greater than 1800 seconds (30 minutes). ACTIONS: Choose the first matching condition sequence: IF basement humidity sensor [sensor.basement_humidity] is below 40, THEN turn off basement primary dehumidifier switch [switch.basement_primary_dehumidifier] AND basement secondary dehumidifier switch [switch.basement_secondary_dehumidifier]. OTHERWISE IF basement humidity sensor [sensor.basement_humidity] is above 80, THEN turn on basement primary dehumidifier switch [switch.basement_primary_dehumidifier] AND basement secondary dehumidifier switch [switch.basement_secondary_dehumidifier]. OTHERWISE IF basement humidity sensor [sensor.basement_humidity] is above outside humidity sensor [sensor.outside_humidity], THEN turn on basement primary dehumidifier switch [switch.basement_primary_dehumidifier] AND turn off basement secondary dehumidifier switch [switch.basement_secondary_dehumidifier]. OTHERWISE IF basement humidity sensor [sensor.basement_humidity] is below outside humidity sensor [sensor.outside_humidity], THEN turn off basement primary dehumidifier switch [switch.basement_primary_dehumidifier] AND basement secondary dehumidifier switch [switch.basement_secondary_dehumidifier].",
"natural_language": {
"trigger": "Whenever the basement humidity sensor [sensor.basement_humidity] or the outside humidity sensor [sensor.outside_humidity] reports a new reading.",
"conditions": "This automation only runs if it has been at least 30 minutes since it was last triggered.",
"action": "It checks the basement humidity and takes different actions based on its value. If the humidity is very low (below 40%), it turns both dehumidifiers off. If the humidity is very high (above 80%), it turns both dehumidifiers on. For moderate humidity levels, it compares the basement humidity to the outside humidity. If the basement is more humid than outside, it turns on the primary dehumidifier and turns off the secondary one. If the basement is less humid than outside, it turns both dehumidifiers off."
},
"human_like": "Automatically controls the basement dehumidifiers based on indoor and outdoor humidity levels, with a cooldown period to prevent rapid cycling.",
"complexity": "medium"
}
},
{
"id": "31c797b8-4353-4bd6-b4b8-d185c6e963f0",
"result": {
"structured": "TRIGGER: When the sun rises (sunrise event). CONDITIONS: None. ACTIONS: Activate day time scene [scene.day_time] AND Turn on hallway light [light.hallway] and toilet light [light.toilet] to full brightness (255) AND Turn off hallway light [light.hallway] and toilet light [light.toilet].",
"natural_language": {
"trigger": "At sunrise.",
"conditions": "There are no conditions for this automation.",
"action": "Activates the day time scene [scene.day_time], turns on the hallway light [light.hallway] and toilet light [light.toilet] to full brightness, and then immediately turns off the same hallway and toilet lights."
},
"human_like": "Activates a daytime scene and toggles specific lights at sunrise.",
"complexity": "low"
}
},
{
"id": "7fa5aace-5294-4181-a6f3-4720b1fe1fde",
"result": {
"structured": "TRIGGER: When unavailable devices sensor [sensor.unavailable_devices] changes state to any value other than 'unavailable'. CONDITIONS: None. ACTIONS: Wait 5 seconds, then evaluate: IF (unavailable devices sensor [sensor.unavailable_devices] numeric state is below 1) OR (the count of items in the 'entities' attribute of unavailable devices sensor [sensor.unavailable_devices] is below 1) THEN run script mobile_app_clear_notification targeting josh phone [device_id: josh_phone] with tag 'devices-offline'. OTHERWISE (default) run script mobile_app_notify targeting josh phone [device_id: josh_phone] with a notification titled 'Devices Offline', a dynamic subtitle, a message listing offline devices and entities, and persistent tag 'devices-offline'.",
"natural_language": {
"trigger": "The automation is triggered whenever the unavailable devices sensor [sensor.unavailable_devices] changes its state to something other than 'unavailable'.",
"conditions": "There are no explicit conditions that must be met before the action runs.",
"action": "After a 5-second delay, the automation checks the sensor. If the sensor's numeric value is less than 1, or if the number of entities listed in its 'entities' attribute is less than 1, it clears any existing 'devices-offline' notification on josh phone [device_id: josh_phone]. Otherwise, it sends a new persistent notification to josh phone [device_id: josh_phone] with the title 'Devices Offline', a subtitle showing the count of offline devices, and a message listing the names of the offline devices and entities."
},
"human_like": "Sends a phone notification when devices become unavailable, and clears the notification once they are all back online.",
"complexity": "medium"
}
},
{
"id": "e672aca4-7227-422f-b4e5-af477cb67cbf",
"result": {
"structured": "TRIGGER: When a device registry update event occurs with action 'create'. CONDITIONS: None. ACTIONS: Create a persistent notification with title 'New device registered' and a message containing the device name (preferring the user-defined name, falling back to the default name) and a link to the device configuration page, using a unique notification ID based on the device ID.",
"natural_language": {
"trigger": "When a new device is added to the Home Assistant device registry.",
"conditions": "There are no additional conditions that must be met.",
"action": "Creates a persistent notification to alert the user. The notification's title is 'New device registered', and its message includes the name of the new device (using the user-assigned name if available, otherwise the default name) and a clickable link to view the device's configuration page. The notification is given a unique ID to prevent duplicates for the same device."
},
"human_like": "Sends a notification whenever a new device is discovered and added to Home Assistant, providing a direct link to its configuration.",
"complexity": "low"
}
},
{
"id": "b6b9bdb0-b60f-4de0-91b0-c545ad0b0f06",
"result": {
"structured": "TRIGGER: When family group [group.family] changes state from home to not_home. CONDITIONS: None. ACTIONS: Turn off all lights AND turn off aircon climate [climate.aircon].",
"natural_language": {
"trigger": "When the family group [group.family] changes its state from 'home' to 'not_home'.",
"conditions": "There are no conditions for this automation.",
"action": "Turns off all lights in the house and turns off the aircon climate [climate.aircon]."
},
"human_like": "Turns off all lights and the air conditioning when everyone leaves home.",
"complexity": "low"
}
},
{
"id": "94d091f3-9e9d-49d8-a192-a6cb7ca679bd",
"result": {
"structured": "TRIGGER: At 00:00:00 (midnight) every day. CONDITIONS: The remaining validity of the homeassistant certificate expiry sensor [sensor.homeassistant_certificate_expiry] is less than 7 days. ACTIONS: 1. Start the Home Assistant addon 'core_letsencrypt'. 2. Wait for the lets encrypt addon running sensor [binary_sensor.lets_encrypt_addon_running] to turn on, with a timeout of 5 seconds. 3. Wait for the lets encrypt addon running sensor [binary_sensor.lets_encrypt_addon_running] to turn off, with a timeout of 120 seconds. 4. Restart the Home Assistant addon 'core_nginx_proxy'. 5. Update the homeassistant certificate expiry sensor [sensor.homeassistant_certificate_expiry] entity.",
"natural_language": {
"trigger": "The automation runs every day at midnight.",
"conditions": "It only proceeds if the homeassistant certificate expiry sensor [sensor.homeassistant_certificate_expiry] indicates the SSL certificate will expire in less than seven days.",
"action": "It starts the Let's Encrypt addon to renew the certificate, waits for the addon to start and then stop, restarts the Nginx proxy addon to load the new certificate, and finally refreshes the certificate expiry sensor to get the updated date."
},
"human_like": "Automatically renews the Home Assistant SSL certificate when it's about to expire and restarts the web server to apply it.",
"complexity": "medium"
}
},
{
"id": "685c0eb4-1d80-4ca3-8b5f-46a5e4e20c27",
"result": {
"structured": "TRIGGER: When low battery sensor [sensor.low_battery] changes state. CONDITIONS: None. ACTIONS: If low battery sensor [sensor.low_battery] numeric state is below 1, then execute script mobile_app_clear_notification with target josh_phone and tag low-battery. Otherwise, execute script mobile_app_notify with target josh_phone, title 'Low Battery', a message listing the count and entities from sensor.low_battery, and tag low-battery.",
"natural_language": {
"trigger": "Whenever the low battery sensor [sensor.low_battery] changes its state.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "If the low battery sensor [sensor.low_battery] reports a value below 1, it clears any existing low-battery notification on josh_phone. Otherwise, it sends a notification to josh_phone with the title 'Low Battery' and a message listing the number and names of devices with low battery."
},
"human_like": "Sends a phone notification when devices have low battery, and clears the notification if the count drops to zero.",
"complexity": "medium"
}
},
{
"id": "ffb89ef2-6be4-4625-9e12-953d23b5b4a7",
"result": {
"structured": "TRIGGER: When disk use percent sensor [sensor.disk_use_percent] is above 90%. CONDITIONS: None. ACTIONS: Execute script mobile_app_notify with target josh_phone, title 'Low Storage', and message containing the current state of disk use percent sensor [sensor.disk_use_percent].",
"natural_language": {
"trigger": "When the disk use percent sensor [sensor.disk_use_percent] reports a value greater than 90%.",
"conditions": "There are no additional conditions.",
"action": "Sends a mobile notification to josh phone with the title 'Low Storage' and a message containing the current disk usage percentage."
},
"human_like": "Sends a phone notification when disk usage exceeds 90%.",
"complexity": "low"
}
},
{
"id": "4f1d6cb3-b8fb-42d1-a0fc-b90eee1bf7a5",
"result": {
"structured": "TRIGGER: When mailbox top door sensor [binary_sensor.mailbox_top_door] changes from closed (off) to open (on). CONDITIONS: The current time is between 08:00:00 and 18:00:00 AND the current weekday is Monday OR Tuesday OR Wednesday OR Thursday OR Friday. ACTIONS: Execute script mobile_app_notify with data: target josh_phone, title 'Mailbox Activity', message 'Mailbox door was opened.', tag 'mail-delivery'.",
"natural_language": {
"trigger": "When the mailbox top door sensor [binary_sensor.mailbox_top_door] opens (changes from closed to open).",
"conditions": "The automation only runs if the current time is between 8:00 AM and 6:00 PM, and only on weekdays (Monday through Friday).",
"action": "Sends a notification titled 'Mailbox Activity' with the message 'Mailbox door was opened.' to the device josh_phone, using the notification tag 'mail-delivery'."
},
"human_like": "Sends a notification to Josh's phone when the mailbox door is opened during weekday business hours.",
"complexity": "low"
}
},
{
"id": "e6dc7aa0-14e9-4750-80a0-cb05da0c459c",
"result": {
"structured": "TRIGGER: When the time pattern matches every minute (minutes: '*'). CONDITIONS: None. ACTIONS: Publish an MQTT message to the topic 'zigbee2mqtt/bridge/request/health_check'.",
"natural_language": {
"trigger": "Every minute, on the minute.",
"conditions": "There are no conditions for this automation.",
"action": "Sends an MQTT message to the topic 'zigbee2mqtt/bridge/request/health_check'."
},
"human_like": "Sends a periodic health check request to the Zigbee2MQTT bridge every minute.",
"complexity": "low"
}
},
{
"id": "a7cf20d9-3be3-4b9d-8cb0-67652ebe48ae",
"result": {
"structured": "TRIGGER: When carbon monoxide alarm sensor [binary_sensor.carbon_monoxide_alarm] changes state to 'on' OR heat alarm sensor [binary_sensor.heat_alarm] changes state to 'on' OR smoke alarm sensor [binary_sensor.smoke_alarm] changes state to 'on'. CONDITIONS: None. ACTIONS: Execute script mobile_app_notify with data: target devices josh_phone and lily_phone, title set to the friendly_name of the triggering entity, and url set to 'entityId:' followed by the triggering entity's entity_id.",
"natural_language": {
"trigger": "When the carbon monoxide alarm sensor [binary_sensor.carbon_monoxide_alarm], the heat alarm sensor [binary_sensor.heat_alarm], or the smoke alarm sensor [binary_sensor.smoke_alarm] becomes active (turns on).",
"conditions": "There are no conditions that must be met.",
"action": "Sends a mobile notification to both josh phone and lily phone. The notification's title is the friendly name of the alarm that triggered the automation, and the notification includes a deep link to the specific entity that triggered it."
},
"human_like": "Sends an alert to Josh's and Lily's phones when any smoke, heat, or carbon monoxide alarm is triggered.",
"complexity": "low"
}
},
{
"id": "595cc2f2-ac5d-4447-a995-5d6e71327141",
"result": {
"structured": "TRIGGER: When a netgear_lte_sms event occurs OR When a mobile_app_notification_action event occurs with action data 'netgear_lte.delete_sms'. CONDITIONS: None. ACTIONS: IF trigger is 'receive' THEN run script mobile_app_notify with target josh phone [device_id: josh_phone], title 'SMS Message Received', subtitle from event data, message from event data, actions to open URL and delete SMS, channel 'Netgear LTE SMS', group 'netgear_lte', icon 'mdi:message-text'. IF trigger is 'delete' THEN call service netgear_lte.delete_sms with sms_id from event data action_2_uri.",
"natural_language": {
"trigger": "The automation is triggered either when a new SMS message is received via the Netgear LTE device, or when a user taps the 'Delete' action on a previously sent mobile notification.",
"conditions": "There are no additional conditions that must be met for the automation to run.",
"action": "If the trigger was a new SMS message, a rich notification is sent to josh phone [device_id: josh_phone] containing the sender's number and the message text, along with buttons to open the message in a web interface or delete it. If the trigger was the user tapping the 'Delete' action, the corresponding SMS message is deleted from the Netgear LTE device."
},
"human_like": "Sends a phone notification for new SMS messages received on the Netgear LTE router and handles deleting messages when requested from the notification.",
"complexity": "medium"
}
},
{
"id": "c142089f-4826-4de4-b813-c188885e874f",
"result": {
"structured": "TRIGGER: When speedtest download sensor [sensor.speedtest_download] OR speedtest ping sensor [sensor.speedtest_ping] OR speedtest upload sensor [sensor.speedtest_upload] becomes unavailable and remains unavailable for 60 seconds. CONDITIONS: speedtest download sensor [sensor.speedtest_download] OR speedtest ping sensor [sensor.speedtest_ping] OR speedtest upload sensor [sensor.speedtest_upload] is currently unavailable. ACTIONS: Trigger an update for speedtest download sensor [sensor.speedtest_download], speedtest ping sensor [sensor.speedtest_ping], and speedtest upload sensor [sensor.speedtest_upload].",
"natural_language": {
"trigger": "When any of the three speedtest sensors—speedtest download sensor [sensor.speedtest_download], speedtest ping sensor [sensor.speedtest_ping], or speedtest upload sensor [sensor.speedtest_upload]—changes to an unavailable state and stays that way for 60 seconds.",
"conditions": "At the moment the automation runs, at least one of the speedtest sensors must still be in the unavailable state.",
"action": "Attempts to refresh the data for all three speedtest sensors by triggering an update."
},
"human_like": "Automatically refreshes the speedtest sensors if they become unavailable for a minute.",
"complexity": "low"
}
},
{
"id": "116e3a13-2dfa-4199-9fcb-982d1f6708da",
"result": {
"structured": "TRIGGER: When living room tv media player [media_player.living_room_tv] remains in idle OR standby state for 600 seconds. CONDITIONS: None. ACTIONS: Turn off living room tv media player [media_player.living_room_tv].",
"natural_language": {
"trigger": "When the living room tv media player [media_player.living_room_tv] has been in an idle or standby state for 10 minutes.",
"conditions": "There are no conditions that must be met.",
"action": "Turns off the living room tv media player [media_player.living_room_tv]."
},
"human_like": "Automatically turns off the living room TV if it has been idle or on standby for 10 minutes.",
"complexity": "low"
}
},
{
"id": "a7e693d8-45df-4f2a-85e4-b0fa7cf6a682",
"result": {
"structured": "TRIGGER: When bathroom sink water leak sensor [binary_sensor.bathroom_sink_water_leak] OR dishwasher water leak sensor [binary_sensor.dishwasher_water_leak] OR kitchen sink water leak sensor [binary_sensor.kitchen_sink_water_leak] OR spa bath water leak sensor [binary_sensor.spa_bath_water_leak] OR toilet sink water leak sensor [binary_sensor.toilet_sink_water_leak] changes state from off to on. CONDITIONS: None. ACTIONS: Execute script mobile_app_notify with target josh_phone, title 'Water Leak', subtitle containing the area name of the triggering entity, message containing the friendly name of the triggering sensor, tag 'water-leak', and a URL referencing the triggering entity.",
"natural_language": {
"trigger": "When any of the water leak sensors (bathroom sink water leak sensor [binary_sensor.bathroom_sink_water_leak], dishwasher water leak sensor [binary_sensor.dishwasher_water_leak], kitchen sink water leak sensor [binary_sensor.kitchen_sink_water_leak], spa bath water leak sensor [binary_sensor.spa_bath_water_leak], or toilet sink water leak sensor [binary_sensor.toilet_sink_water_leak]) detects a leak by changing from a 'no leak' (off) state to a 'leak detected' (on) state.",
"conditions": "There are no additional conditions that must be met for the automation to run.",
"action": "Sends a notification to josh_phone via a script. The notification has the title 'Water Leak', includes the area where the leak was detected, a message specifying which sensor triggered the alert, a tag for grouping notifications, and a direct link to the triggering sensor's entity page."
},
"human_like": "Sends a phone notification when any water leak sensor in the home detects a leak, alerting the user to the location and source.",
"complexity": "low"
}
}
]