AutomationDataset/gungorser/automation-descriptions.json

67 lines
11 KiB
JSON

[
{
"id": "banyo_humidity",
"result": {
"structured": "TRIGGER: When banyo moisture humidity sensor [sensor.banyo_moisture_humidity] humidity reading is greater than 45% OR When banyo moisture humidity sensor [sensor.banyo_moisture_humidity] humidity reading is less than or equal to 45%. CONDITIONS: None. ACTIONS: If the trigger was the 'on' condition (humidity > 45%), turn on banyo fan [fan.banyo_fan]. Otherwise (for any other trigger, specifically humidity <= 45%), turn off banyo fan [fan.banyo_fan].",
"natural_language": {
"trigger": "When the humidity level measured by the banyo moisture humidity sensor [sensor.banyo_moisture_humidity] rises above 45%, or when it falls to or below 45%.",
"conditions": "There are no additional conditions.",
"action": "If the humidity is high (above 45%), the banyo fan [fan.banyo_fan] is turned on. If the humidity is at or below 45%, the fan is turned off."
},
"human_like": "Automatically turns the bathroom fan on when humidity is high and off when it returns to a normal level.",
"complexity": "medium"
}
},
{
"id": "climate_schedule",
"result": {
"structured": "TRIGGER: When sercan calendar [calendar.sercan] event starts OR sercan calendar [calendar.sercan] event starts with a +30 minute offset OR sercan calendar [calendar.sercan] event ends OR sercan calendar [calendar.sercan] event ends with a -30 minute offset OR melike calendar [calendar.melike] event starts OR melike calendar [calendar.melike] event starts with a +30 minute offset OR melike calendar [calendar.melike] event ends OR melike calendar [calendar.melike] event ends with a -30 minute offset OR misafir calendar [calendar.misafir] event starts OR misafir calendar [calendar.misafir] event starts with a +30 minute offset OR misafir calendar [calendar.misafir] event ends OR misafir calendar [calendar.misafir] event ends with a -30 minute offset. CONDITIONS: None. ACTIONS: 1. Set variable event_time to the event's start or end time (based on trigger) with the trigger's offset applied. 2. Get calendar events from all calendars for a 1-second duration starting at event_time, store in after_events. 3. Get calendar events from all calendars for a 1-second duration starting 1 second before event_time, store in before_events. 4. Set variables: room_id from the trigger event's description; room_temps as a list of two lists (before, after) containing temperature values extracted from events for that room. For each event, if it is a 'sleep' event overlapping the event_time by at least 30 minutes on each side, use 'sleep_temp', otherwise use 'temp'. before variable is the maximum temperature from the first list (or none if empty). after variable is the maximum temperature from the second list (or none if empty). 5. If before is not equal to after, then set the temperature and HVAC mode for the area identified by room_id: set temperature to after (or 7 if after is none) and set HVAC mode to 'heat' if after exists, otherwise 'off'.",
"natural_language": {
"trigger": "The automation triggers at the start or end of events on three calendars: sercan calendar [calendar.sercan], melike calendar [calendar.melike], and misafir calendar [calendar.misafir]. For each event, it also triggers 30 minutes after the start, 30 minutes before the end, and exactly at the start and end times.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "When triggered, the automation calculates the exact time of the calendar event, considering any offset. It then looks up all calendar events from all calendars happening at that exact moment and one second before. It identifies the room associated with the triggering event. For that room, it examines the overlapping calendar events to determine the desired temperature. If an event is a 'sleep' event that overlaps the trigger time by at least 30 minutes on both sides, it uses a special 'sleep temperature'; otherwise, it uses the standard temperature. It finds the maximum temperature from events just before and just after the trigger time. If these maximum temperatures are different, it adjusts the climate control for that room: it sets the HVAC mode to 'heat' and the temperature to the new maximum if one exists, or turns the HVAC off if no temperature is specified, with a default fallback temperature of 7 degrees."
},
"human_like": "Adjusts room temperatures based on calendar events, using event start/end times and special sleep schedules to set heating or turn it off.",
"complexity": "high"
}
},
{
"id": "cover_schedule",
"result": {
"structured": "TRIGGER: When sunset occurs OR when sunrise occurs OR when an event ends in sercan calendar [calendar.sercan] OR when an event ends in melike calendar [calendar.melike] OR when an event ends in misafir calendar [calendar.misafir]. CONDITIONS: None. ACTIONS: Choose action based on trigger ID: IF trigger ID is event_end THEN get calendar events for the day before the next sunrise (duration 1 second) and store in variable sunrise_events, get calendar events starting at the triggering event's end time (duration 1 second) and store in variable after_events, then open covers in the area derived from the triggering event's room_name, but only if the triggering event is NOT a sunrise event AND there is no matching after event that is also a sunrise event for the same area. IF trigger ID is sunset THEN close covers in all areas. IF trigger ID is sunrise THEN get calendar events for the current time (duration 1 second) and store in variable sunrise_events, then open covers in all areas except those areas that have a sunrise event in the sunrise_events list. After the chosen action, wait for 120 seconds.",
"natural_language": {
"trigger": "The automation can be triggered by sunset, sunrise, or when an event ends in any of the three calendars: sercan calendar [calendar.sercan], melike calendar [calendar.melike], or misafir calendar [calendar.misafir].",
"conditions": "There are no conditions; the automation runs whenever a trigger occurs.",
"action": "Depending on what triggered the automation: 1) If triggered by a calendar event ending, it first fetches calendar events. It checks if the ending event is a special 'sunrise' event. If it is not, and there is no subsequent 'sunrise' event for the same room area, it opens the covers in the area associated with the event's room. 2) If triggered by sunset, it closes all covers in all areas. 3) If triggered by sunrise, it fetches calendar events happening at that moment and opens covers in all areas except those that have a 'sunrise' calendar event scheduled. After performing one of these actions, the automation waits for two minutes."
},
"human_like": "This automation manages window cover openings and closings based on sunset, sunrise, and calendar events, ensuring covers are adjusted according to the time of day and scheduled room activities.",
"complexity": "high"
}
},
{
"id": "kat1_coverclose",
"result": {
"structured": "TRIGGER: When mqtt device 1 [device_id: 1d49a19304191ce333202639e9ed74d5] sends a button hold action (subtype 1_hold) OR when mqtt device 2 [device_id: d3fd09e3b60a91f37e64b9137c1bba7b] sends a button hold action (subtype 3_hold) OR when mqtt device 3 [device_id: 3b076af749562b3dfa18416768178b40] sends a button hold action (subtype 2_hold). CONDITIONS: None. ACTIONS: Evaluate a choice. Condition 1: If the template evaluates to true (meaning the list of cover entities in area '1_kat' contains at least one cover that is not in the 'closed' state). If true, perform two actions: 1) Create a scene named kat1_coverclose [scene.kat1_coverclose] by taking a snapshot of the current states of all cover entities in area '1_kat'. 2) Close all cover entities in area '1_kat'. Condition 2: If the template in Condition 1 is false (meaning all cover entities in area '1_kat' are already closed). If true, perform one action: 1) Activate the existing scene named kat1_coverclose [scene.kat1_coverclose].",
"natural_language": {
"trigger": "When a specific button on any of three MQTT devices is held down. The devices are identified by their IDs: mqtt device 1, mqtt device 2, and mqtt device 3.",
"conditions": "There are no explicit conditions that must be met before the actions run.",
"action": "The automation checks the state of all cover devices (like blinds or shutters) located in the area named '1_kat'. If any of these covers are not fully closed, it first saves their current positions into a new scene snapshot called 'kat1_coverclose' and then proceeds to close them all. If all the covers in that area are already closed, it simply restores the previously saved 'kat1_coverclose' scene, which would presumably reopen them to a known position."
},
"human_like": "Closes all window covers in the '1_kat' area when a specific button is held on one of three remote controls, saving their positions first if they aren't already closed.",
"complexity": "medium"
}
},
{
"id": "thermostat_switch",
"result": {
"structured": "TRIGGER: When the maximum value among sercan climate valve opening degree [number.sercan_climate_valve_opening_degree], yatak climate valve opening degree [number.yatak_climate_valve_opening_degree], melike climate valve opening degree [number.melike_climate_valve_opening_degree], bebek climate valve opening degree [number.bebek_climate_valve_opening_degree], banyo climate valve opening degree [number.banyo_climate_valve_opening_degree], and misafir climate valve opening degree [number.misafir_climate_valve_opening_degree] becomes greater than 0 (heat) OR When the maximum value among the same entities becomes equal to 0 (off). CONDITIONS: None. ACTIONS: If the trigger was heat, turn on koridor2 switch [switch.koridor2_switch]; otherwise, turn off koridor2 switch [switch.koridor2_switch].",
"natural_language": {
"trigger": "The automation triggers when the highest opening degree among the six climate valves (sercan, yatak, melike, bebek, banyo, and misafir) changes to be greater than zero, or when it changes to be exactly zero.",
"conditions": "There are no additional conditions.",
"action": "If the trigger was due to a valve opening degree becoming greater than zero, the koridor2 switch [switch.koridor2_switch] is turned on. If the trigger was due to all valve opening degrees becoming zero, the koridor2 switch [switch.koridor2_switch] is turned off."
},
"human_like": "Controls a corridor switch based on whether any of the climate valves are open, turning it on when heating is needed and off when it's not.",
"complexity": "medium"
}
}
]