483 lines
40 KiB
JSON
483 lines
40 KiB
JSON
[
|
|
{
|
|
"id": "holiday_lights_prevent_too_dim",
|
|
"result": {
|
|
"structured": "TRIGGER: When kids long wall light [light.kids_long_w] turns on from off. CONDITIONS: family group [group.family] is not_home AND current time is before holiday lights bedtime [input_datetime.holiday_lights_bedtime]. ACTIONS: Turn on kids long wall light [light.kids_long_w] with brightness set to 150.",
|
|
"natural_language": {
|
|
"trigger": "When the kids long wall light [light.kids_long_w] is turned on from an off state.",
|
|
"conditions": "The family group [group.family] must be away (not_home), and the current time must be before the time set in holiday lights bedtime [input_datetime.holiday_lights_bedtime].",
|
|
"action": "Ensures the light is bright enough by turning on the kids long wall light [light.kids_long_w] with a brightness level of 150."
|
|
},
|
|
"human_like": "Ensures holiday lights are bright enough when turned on while the family is away and before bedtime.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1643034412279'",
|
|
"result": {
|
|
"structured": "TRIGGER: When family group [group.family] changes state from away to home. CONDITIONS: sun [sun.sun] is below_horizon. ACTIONS: Turn on welcome lights group [group.welcome_lights] AND send a notification via parents notification [notify.parents] with the message 'Welcome lights turned on at [current time in HH:MM format]'.",
|
|
"natural_language": {
|
|
"trigger": "When the family group [group.family] changes its state from 'away' to 'home'.",
|
|
"conditions": "The sun [sun.sun] must be below the horizon, meaning it is nighttime or dusk.",
|
|
"action": "Turn on the welcome lights group [group.welcome_lights] and send a notification to the parents [notify.parents] stating that the welcome lights were turned on, including the current time."
|
|
},
|
|
"human_like": "Turns on a set of welcome lights and sends a notification when the family arrives home after sunset.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "debug_matt_location",
|
|
"result": {
|
|
"structured": "TRIGGER: When matt pixel 8 pro tracker [device_tracker.matt_pixel_8_pro] changes state. CONDITIONS: None. ACTIONS: Send a notification to matt pixel 8 pro notification [notify.mobile_app_matt_pixel_8_pro] with the message: 'Matt is at [current state of device_tracker.matt_pixel_8_pro] at [current time in HH:MM format]'.",
|
|
"natural_language": {
|
|
"trigger": "Whenever the location of the device tracker for Matt's phone, matt pixel 8 pro tracker [device_tracker.matt_pixel_8_pro], changes.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Sends a notification to Matt's phone via the matt pixel 8 pro notification [notify.mobile_app_matt_pixel_8_pro] service. The notification message states Matt's current location (as reported by the tracker) and the current time."
|
|
},
|
|
"human_like": "Sends a debug notification to Matt's phone whenever his location changes, showing his current location and the time.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "open_garage_matt",
|
|
"result": {
|
|
"structured": "TRIGGER: When matt pixel 8 pro tracker [device_tracker.matt_pixel_8_pro] changes state from not_home to home OR HomeStreet1 OR HomeStreet2. CONDITIONS: (garage door [cover.garage_door] is closed) AND (matt pixel 8 pro bluetooth connection [sensor.matt_pixel_8_pro_bluetooth_connection] is connected to 'B8:9F:09:62:F7:7F (BMW 93379)' OR '00:02:5B:BE:23:C0 (CAR6509)' OR '00:0A:30:92:D6:C7 (Mazda)'). ACTIONS: Stop garage door [cover.garage_door] AND send notification to matt pixel 8 pro notification [notify.mobile_app_matt_pixel_8_pro] with message 'Matt arrived home, opening garage at [current time]'.",
|
|
"natural_language": {
|
|
"trigger": "When Matt's phone tracker [device_tracker.matt_pixel_8_pro] changes from being away to arriving at home or one of the nearby home zones.",
|
|
"conditions": "The garage door [cover.garage_door] must be closed, and Matt's phone [sensor.matt_pixel_8_pro_bluetooth_connection] must be connected via Bluetooth to one of his known car devices.",
|
|
"action": "Stops the garage door [cover.garage_door] and sends a notification to Matt's phone [notify.mobile_app_matt_pixel_8_pro] stating that he has arrived home and the garage is being opened."
|
|
},
|
|
"human_like": "Automatically opens the garage door and notifies Matt when he arrives home in his car.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "open_garage_sara",
|
|
"result": {
|
|
"structured": "TRIGGER: When sara iphone tracker [device_tracker.saras_iphone_app] changes state from 'not_home' to 'home', 'HomeStreet1', or 'HomeStreet2'. CONDITIONS: (garage door [cover.garage_door] is closed) AND (sara iphone ssid [sensor.saras_iphone14_ssid] is 'DIRECT-BMW 93379'). ACTIONS: Stop garage door [cover.garage_door], send notification to matt pixel 8 pro notification [notify.mobile_app_matt_pixel_8_pro] with message 'Sara arrived home, opening garage at [current time]', and send notification to sara iphone notification [notify.mobile_app_saras_iphone_2] with message 'Sara arrived home, opening garage at [current time]'.",
|
|
"natural_language": {
|
|
"trigger": "When Sara's phone tracker [device_tracker.saras_iphone_app] arrives home, transitioning from 'not_home' to either 'home', 'HomeStreet1', or 'HomeStreet2'.",
|
|
"conditions": "If the garage door [cover.garage_door] is currently closed, and Sara's iPhone is connected to the Wi-Fi network named 'DIRECT-BMW 93379' [sensor.saras_iphone14_ssid], indicating she is likely in her car.",
|
|
"action": "Stops the garage door [cover.garage_door] (presumably to open it), and sends a notification to both Matt's phone [notify.mobile_app_matt_pixel_8_pro] and Sara's phone [notify.mobile_app_saras_iphone_2] stating that Sara has arrived home and the garage is being opened, including the current time."
|
|
},
|
|
"human_like": "Automatically opens the garage door and sends arrival notifications when Sara drives home, but only if the garage is closed and her phone is connected to her car's Wi-Fi.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "garage_left_open_warn",
|
|
"result": {
|
|
"structured": "TRIGGER: When garage door [cover.garage_door] is not in the 'closed' state AND remains in that state for 5 minutes. CONDITIONS: None. ACTIONS: Send a notification to parents notification [notify.parents] with the message 'Garage left open! At [current_time]'.",
|
|
"natural_language": {
|
|
"trigger": "When the garage door [cover.garage_door] is not closed and stays that way for five minutes.",
|
|
"conditions": "There are no additional conditions that must be met.",
|
|
"action": "Sends a notification to the parents notification [notify.parents] service, alerting them that the garage is open and including the current time."
|
|
},
|
|
"human_like": "Sends an alert to parents if the garage door is left open for five minutes.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "garage_monitoring",
|
|
"result": {
|
|
"structured": "TRIGGER: When garage door [cover.garage_door] changes state. CONDITIONS: None. ACTIONS: Send a notification to matt pixel 8 pro notification [notify.mobile_app_matt_pixel_8_pro] with the message 'Garage is [current state of garage door] at [current time in HH:MM format]'.",
|
|
"natural_language": {
|
|
"trigger": "Whenever the garage door [cover.garage_door] changes its state, such as opening or closing.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Sends a notification to the mobile device matt pixel 8 pro notification [notify.mobile_app_matt_pixel_8_pro]. The notification message reports the current state of the garage door and the time of the change."
|
|
},
|
|
"human_like": "Sends a notification to your phone whenever the garage door opens or closes, telling you its state and the time.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "sensor_lights",
|
|
"result": {
|
|
"structured": "TRIGGER: When lumi motion sensor [binary_sensor.lumi_lumi_motion_ac02_iaszone] detects motion (on) OR When front yard motion 3 [binary_sensor.front_yard_motion3_motion] detects motion (on). CONDITIONS: sun [sun.sun] elevation is below 0. ACTIONS: Turn on front yard sensor light [light.front_yard_sensor_light], mailbox light [light.mailbox], and bin light [light.bin_light]. Set bin light [light.bin_light] brightness to 255 and set its color based on brisbane bin day recycle [sensor.brisbane_bin_day_recycle] and brisbane bin day [sensor.brisbane_bin_day] states: if brisbane bin day recycle is on, use hue 60 saturation 60; else if brisbane bin day is on, use hue 128 saturation 33; else use hue 0 saturation 0. Wait until both lumi motion sensor [binary_sensor.lumi_lumi_motion_ac02_iaszone] and front yard motion 3 [binary_sensor.front_yard_motion3_motion] are not detecting motion (off). Wait an additional 2 minutes. Turn off front yard sensor light [light.front_yard_sensor_light], mailbox light [light.mailbox], and bin light [light.bin_light].",
|
|
"natural_language": {
|
|
"trigger": "When either the lumi motion sensor [binary_sensor.lumi_lumi_motion_ac02_iaszone] or the front yard motion 3 [binary_sensor.front_yard_motion3_motion] detects motion.",
|
|
"conditions": "The sun [sun.sun] must be below the horizon, meaning it is nighttime.",
|
|
"action": "Turns on the front yard sensor light [light.front_yard_sensor_light], mailbox light [light.mailbox], and bin light [light.bin_light]. It then sets the bin light [light.bin_light] to full brightness and changes its color based on the bin schedule: yellow for recycle day, green for general waste day, or white for other days. The automation then waits until no motion is detected by either sensor, waits an additional two minutes, and finally turns off all three lights."
|
|
},
|
|
"human_like": "Turns on the front yard lights when motion is detected at night, sets the bin light color based on the bin collection schedule, and turns them off after motion stops and a delay.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1720934399141'",
|
|
"result": {
|
|
"structured": "TRIGGER: When emily sign light [light.emily_sign] remains off for 2 seconds. CONDITIONS: None. ACTIONS: Turn on emily sign light [light.emily_sign].",
|
|
"natural_language": {
|
|
"trigger": "When the emily sign light [light.emily_sign] is turned off and stays off for two seconds.",
|
|
"conditions": "There are no conditions.",
|
|
"action": "Turns the emily sign light [light.emily_sign] back on."
|
|
},
|
|
"human_like": "Automatically turns Emily's sign light back on if it gets turned off.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1720934399142'",
|
|
"result": {
|
|
"structured": "TRIGGER: When emily makeup light [light.emily_makeup] turns off AND remains off for 2 seconds. CONDITIONS: None. ACTIONS: Turn on emily makeup light [light.emily_makeup].",
|
|
"natural_language": {
|
|
"trigger": "When the emily makeup light [light.emily_makeup] turns off and stays off for exactly two seconds.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "Turns the emily makeup light [light.emily_makeup] back on."
|
|
},
|
|
"human_like": "Automatically turns the Emily makeup light back on if it gets turned off, after a brief two-second delay.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1745786335394'",
|
|
"result": {
|
|
"structured": "TRIGGER: When button_1 on emily remote [device_id: 2d52c62b1bbcd0ec31a5901f9fcfa4ee] is short-pressed. CONDITIONS: None. ACTIONS: Execute emily reading time script [script.emily_reading_time].",
|
|
"natural_language": {
|
|
"trigger": "When the first button on the Emily remote is pressed and released quickly (a short press).",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Runs the script named 'emily reading time'."
|
|
},
|
|
"human_like": "Pressing the first button on Emily's remote starts her reading time routine.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1745786392915'",
|
|
"result": {
|
|
"structured": "TRIGGER: When button_2 on emily remote [device_id: 2d52c62b1bbcd0ec31a5901f9fcfa4ee] is short-pressed. CONDITIONS: None. ACTIONS: Start the emily sleep time script [script.emily_sleep_time].",
|
|
"natural_language": {
|
|
"trigger": "When the second button on Emily's remote is pressed and released quickly (a short press).",
|
|
"conditions": "There are no additional conditions that need to be met.",
|
|
"action": "Activates the 'Emily sleep time' script."
|
|
},
|
|
"human_like": "Pressing the second button on Emily's remote activates her bedtime routine.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1745786735917'",
|
|
"result": {
|
|
"structured": "TRIGGER: When button 3 on emily remote [device_id:2d52c62b1bbcd0ec31a5901f9fcfa4ee] is short-pressed. CONDITIONS: None. ACTIONS: Toggle emily rgb strip [light.emily_rgb_strip].",
|
|
"natural_language": {
|
|
"trigger": "When button 3 on the Emily remote is pressed and released quickly (a short press).",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Toggles the Emily RGB strip light, turning it on if it is off, or off if it is on."
|
|
},
|
|
"human_like": "Pressing button 3 on Emily's remote toggles her RGB light strip on or off.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1745786785985'",
|
|
"result": {
|
|
"structured": "TRIGGER: When button 4 on emily remote [device_id:2d52c62b1bbcd0ec31a5901f9fcfa4ee] is short-pressed. CONDITIONS: None. ACTIONS: Toggle kitchen light [light.kitchen].",
|
|
"natural_language": {
|
|
"trigger": "When button 4 on the emily remote is short-pressed.",
|
|
"conditions": "There are no conditions.",
|
|
"action": "Toggle the kitchen light on or off."
|
|
},
|
|
"human_like": "Toggles the kitchen light when button 4 on Emily's remote is pressed.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1745787427449'",
|
|
"result": {
|
|
"structured": "TRIGGER: When toby remote [device_id: 5582c9a1d80e85a86f9d66ca5f750b98] sends a remote_button_short_press event for button_1. CONDITIONS: None. ACTIONS: Execute the toby reading time script [script.toby_reading_time].",
|
|
"natural_language": {
|
|
"trigger": "When button 1 on the toby remote [device_id: 5582c9a1d80e85a86f9d66ca5f750b98] is pressed and released quickly.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Runs the toby reading time script [script.toby_reading_time]."
|
|
},
|
|
"human_like": "Pressing button 1 on Toby's remote starts his reading time routine.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1745787483164'",
|
|
"result": {
|
|
"structured": "TRIGGER: When button_2 on toby remote [device_id: 5582c9a1d80e85a86f9d66ca5f750b98] is short-pressed. CONDITIONS: None. ACTIONS: Start the toby sleep time script [script.toby_sleep_time].",
|
|
"natural_language": {
|
|
"trigger": "When the second button on the toby remote [device_id: 5582c9a1d80e85a86f9d66ca5f750b98] is pressed and released quickly (a short press).",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Activates the toby sleep time script [script.toby_sleep_time]."
|
|
},
|
|
"human_like": "Pressing the second button on Toby's remote starts his bedtime routine.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1745787544962'",
|
|
"result": {
|
|
"structured": "TRIGGER: When button_3 on toby remote [device_id: 5582c9a1d80e85a86f9d66ca5f750b98] is short-pressed. CONDITIONS: None. ACTIONS: Toggle toby frog light [light.tobyfroglight].",
|
|
"natural_language": {
|
|
"trigger": "When button 3 on the Toby remote is short-pressed.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "Toggles the Toby frog light on or off."
|
|
},
|
|
"human_like": "Toggles the frog light in Toby's room when button 3 on the remote is pressed.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1745787601152'",
|
|
"result": {
|
|
"structured": "TRIGGER: When button 4 on toby remote [device_id:5582c9a1d80e85a86f9d66ca5f750b98] is short-pressed. CONDITIONS: None. ACTIONS: Toggle hallway lights group [group.hallway_lights].",
|
|
"natural_language": {
|
|
"trigger": "When button 4 on the toby remote is pressed and released quickly.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Toggles the state of the hallway lights group, turning them on if they are off, or off if they are on."
|
|
},
|
|
"human_like": "Pressing button 4 on the Toby remote toggles the hallway lights on or off.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1745847668003'",
|
|
"result": {
|
|
"structured": "TRIGGER: When entry button event [event.lights_entry_button_1] changes state. CONDITIONS: entry button event [event.lights_entry_button_1] attribute event_type is Long Press. ACTIONS: Start script leaving home script [script.leaving_home].",
|
|
"natural_language": {
|
|
"trigger": "When the entry button event [event.lights_entry_button_1] reports a state change.",
|
|
"conditions": "The state change must be specifically a Long Press event on the entry button event [event.lights_entry_button_1].",
|
|
"action": "Runs the leaving home script [script.leaving_home]."
|
|
},
|
|
"human_like": "Activates the leaving home routine when the entry button is long-pressed.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "EmilyLongPress-AllOff",
|
|
"result": {
|
|
"structured": "TRIGGER: When emily button event [event.lights_emily_button_1] changes state. CONDITIONS: The event_type attribute of emily button event [event.lights_emily_button_1] is Long Press. ACTIONS: Run the emily all off script [script.emily_all_off].",
|
|
"natural_language": {
|
|
"trigger": "When the emily button event [event.lights_emily_button_1] changes state.",
|
|
"conditions": "The change must be specifically a Long Press event type.",
|
|
"action": "Activates the emily all off script [script.emily_all_off]."
|
|
},
|
|
"human_like": "Turns off all lights in Emily's room when the button is long-pressed.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "TobyLongPress-AllOff",
|
|
"result": {
|
|
"structured": "TRIGGER: When toby button event [event.lights_toby_button_1] changes state. CONDITIONS: The event_type attribute of toby button event [event.lights_toby_button_1] is Long Press. ACTIONS: Activate toby all off script [script.toby_all_off].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the toby button event [event.lights_toby_button_1] changes state.",
|
|
"conditions": "The button press must be a long press, as indicated by the event_type attribute of the toby button event [event.lights_toby_button_1] being 'Long Press'.",
|
|
"action": "Runs the toby all off script [script.toby_all_off]."
|
|
},
|
|
"human_like": "Turns off all lights in Toby's room when the button is held down for a long press.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "fc_ok",
|
|
"result": {
|
|
"structured": "TRIGGER: When fc sensor [sensor.e_fc] remains above 0.6 AND below 5.0 for 1 minute. CONDITIONS: None. ACTIONS: Set the frontend theme to 'default'.",
|
|
"natural_language": {
|
|
"trigger": "When the fc sensor [sensor.e_fc] reports a value that stays between 0.6 and 5.0 for at least one minute.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Changes the Home Assistant user interface theme to the 'default' theme."
|
|
},
|
|
"human_like": "Switches the interface theme to default when the FC sensor reading is stable within a specific range.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "fc_high",
|
|
"result": {
|
|
"structured": "TRIGGER: When fc sensor [sensor.e_fc] is above 5.01 for 1 minute. CONDITIONS: None. ACTIONS: Set the frontend theme to 'danger'.",
|
|
"natural_language": {
|
|
"trigger": "When the fc sensor [sensor.e_fc] reads a value higher than 5.01 for at least one minute.",
|
|
"conditions": "There are no additional conditions that must be met.",
|
|
"action": "Changes the Home Assistant user interface theme to one named 'danger'."
|
|
},
|
|
"human_like": "Changes the interface to a warning theme when the FC level is too high for a minute.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "fc_low",
|
|
"result": {
|
|
"structured": "TRIGGER: When fc sensor [sensor.e_fc] remains below 0.59 for 1 minute. CONDITIONS: None. ACTIONS: Set the frontend theme to 'algae'.",
|
|
"natural_language": {
|
|
"trigger": "When the fc sensor [sensor.e_fc] reads a value lower than 0.59 for at least one minute.",
|
|
"conditions": "There are no conditions that need to be met.",
|
|
"action": "Changes the Home Assistant user interface theme to 'algae'."
|
|
},
|
|
"human_like": "Changes the dashboard theme to 'algae' when the FC sensor reading is too low for a minute.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "fc_target",
|
|
"result": {
|
|
"structured": "TRIGGER: When fc target input [input_number.fc_target] changes state. CONDITIONS: None. ACTIONS: Trigger bleach set automation [automation.bleach_set].",
|
|
"natural_language": {
|
|
"trigger": "Whenever the value of the fc target input [input_number.fc_target] changes.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Triggers the execution of the bleach set automation [automation.bleach_set]."
|
|
},
|
|
"human_like": "Updates the bleach automation whenever the target value is changed.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "holiday_lights_reset",
|
|
"result": {
|
|
"structured": "TRIGGER: When sun [sun.sun] elevation attribute is below 1.0. CONDITIONS: None. ACTIONS: Choose: If family group [group.family] state is not_home, then turn on lounge light [light.lounge]. Then, set holiday lights starttime [input_datetime.holiday_lights_starttime] to the current time. Then, set holiday lights next change [input_datetime.holiday_lights_next_change] to a random time between 30 and 45 minutes from now.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers when the sun's elevation falls below 1.0, which typically occurs at dusk.",
|
|
"conditions": "There are no global conditions. However, the action includes a conditional choice that checks if the family group [group.family] is not at home.",
|
|
"action": "If the family group [group.family] is not at home, the lounge light [light.lounge] is turned on. Then, the holiday lights starttime [input_datetime.holiday_lights_starttime] is set to the current time. Finally, the holiday lights next change [input_datetime.holiday_lights_next_change] is set to a random time between 30 and 45 minutes in the future."
|
|
},
|
|
"human_like": "At dusk, this automation updates holiday light timers and, if nobody is home, turns on the lounge light.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "holiday_lights_toggle",
|
|
"result": {
|
|
"structured": "TRIGGER: When family group [group.family] becomes not_home OR when the time reaches the value stored in holiday lights next change [input_datetime.holiday_lights_next_change]. CONDITIONS: family group [group.family] is not_home AND the current time is after holiday lights starttime [input_datetime.holiday_lights_starttime] AND the current time is before holiday lights bedtime [input_datetime.holiday_lights_bedtime]. ACTIONS: Repeat a sequence: Turn on holiday lights running [input_boolean.holiday_lights_running], toggle the light entity whose ID is stored in holiday lights next to switch [input_text.holiday_lights_next_to_switch], set holiday lights next to switch [input_text.holiday_lights_next_to_switch] to a random entity from holiday lights group [group.holiday_lights], and delay for 5 seconds. Repeat this sequence UNTIL holiday lights group [group.holiday_lights] is on. Then, set holiday lights next change [input_datetime.holiday_lights_next_change] to a random time between 15 and 45 minutes from now.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers when either the family group [group.family] leaves home (changes to 'not_home'), or when the scheduled time stored in holiday lights next change [input_datetime.holiday_lights_next_change] is reached.",
|
|
"conditions": "All conditions must be met: the family group [group.family] must be away from home (state 'not_home'), and the current time must be within the active window, meaning it is after the holiday lights starttime [input_datetime.holiday_lights_starttime] and before the holiday lights bedtime [input_datetime.holiday_lights_bedtime].",
|
|
"action": "The automation performs a loop to toggle holiday lights. First, it marks the lights as active by turning on holiday lights running [input_boolean.holiday_lights_running]. It then toggles the state of a specific light, whose entity ID is stored in holiday lights next to switch [input_text.holiday_lights_next_to_switch]. After toggling, it randomly selects a new light from the holiday lights group [group.holiday_lights] and stores its ID in holiday lights next to switch [input_text.holiday_lights_next_to_switch] to be toggled next. It waits for 5 seconds to allow the light group state to update. This loop repeats until at least one light in the holiday lights group [group.holiday_lights] is on. Finally, it schedules the next random light change by setting holiday lights next change [input_datetime.holiday_lights_next_change] to a random time between 15 and 45 minutes in the future."
|
|
},
|
|
"human_like": "Randomly toggles holiday lights on and off while the family is away, ensuring at least one light stays on, and schedules the next change for a random time.",
|
|
"complexity": "high"
|
|
}
|
|
},
|
|
{
|
|
"id": "holiday_lights_off_at_bedtime",
|
|
"result": {
|
|
"structured": "TRIGGER: When the time reaches the value set in holiday lights bedtime [input_datetime.holiday_lights_bedtime]. CONDITIONS: family group [group.family] is not_home. ACTIONS: Wait for a random delay between 2 and 29 minutes, then turn off holiday lights group [group.holiday_lights], and turn off holiday lights running [input_boolean.holiday_lights_running].",
|
|
"natural_language": {
|
|
"trigger": "At the specific bedtime time set in the holiday lights bedtime [input_datetime.holiday_lights_bedtime].",
|
|
"conditions": "Only if the family group [group.family] is not at home.",
|
|
"action": "After waiting for a random period between 2 and 29 minutes, the automation turns off all the holiday lights in the holiday lights group [group.holiday_lights] and then updates the status flag by turning off holiday lights running [input_boolean.holiday_lights_running]."
|
|
},
|
|
"human_like": "Turns off the holiday lights at a set bedtime when nobody is home, adding a random delay to make it seem more natural.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "holiday_lights_stop_when_home",
|
|
"result": {
|
|
"structured": "TRIGGER: When any member of the family group [group.family] arrives home (state changes to home). CONDITIONS: holiday lights running [input_boolean.holiday_lights_running] is on. ACTIONS: Turn off holiday lights running [input_boolean.holiday_lights_running].",
|
|
"natural_language": {
|
|
"trigger": "When any person tracked by the family group [group.family] arrives home.",
|
|
"conditions": "The holiday lights running [input_boolean.holiday_lights_running] flag must be currently on.",
|
|
"action": "Turns off the holiday lights running [input_boolean.holiday_lights_running] flag, indicating the lights should stop."
|
|
},
|
|
"human_like": "Automatically stops the holiday lights when someone in the family arrives home.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "muriatic_tank_level_update",
|
|
"result": {
|
|
"structured": "TRIGGER: Every minute (time pattern). CONDITIONS: None. ACTIONS: Set muriatic tank input [input_number.muriatic_tank] to a value calculated as: current value of muriatic tank input [input_number.muriatic_tank] minus (value of muriatic on last hour [sensor.muriatic_on_last_hour] multiplied by value of muriatic speed input [input_number.muriatic_speed] multiplied by 60 divided by 1000), rounded to 2 decimal places.",
|
|
"natural_language": {
|
|
"trigger": "The automation runs every minute.",
|
|
"conditions": "There are no conditions; the action runs whenever the trigger fires.",
|
|
"action": "Updates the muriatic tank input [input_number.muriatic_tank] by subtracting a calculated consumption amount. The consumption is determined by taking the muriatic on last hour [sensor.muriatic_on_last_hour] value, multiplying it by the muriatic speed input [input_number.muriatic_speed] value and by 60, dividing by 1000, and then subtracting that result from the current tank level. The new tank level is rounded to two decimal places."
|
|
},
|
|
"human_like": "Updates the estimated acid tank level every minute based on the recent pump usage rate.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "muriatic_tank_low",
|
|
"result": {
|
|
"structured": "TRIGGER: When the template evaluates to true, which occurs if notify muriatic tank input [input_number.notify_muriatic_tank] is greater than 0 AND muriatic tank sensor [sensor.muriatic_tank] is less than notify muriatic tank input [input_number.notify_muriatic_tank]. CONDITIONS: None. ACTIONS: Send a notification to admins notification [notify.admins] with a title 'Muriatic tank low (X liters)!!!' where X is the current value of muriatic tank input [input_number.muriatic_tank], and a message containing the current time and date.",
|
|
"natural_language": {
|
|
"trigger": "When the current acid tank level, measured by muriatic tank sensor [sensor.muriatic_tank], falls below a user-defined threshold set in notify muriatic tank input [input_number.notify_muriatic_tank], but only if that threshold is set to a value greater than zero.",
|
|
"conditions": "There are no additional conditions for this automation.",
|
|
"action": "Sends an urgent notification to the admins notification [notify.admins] group. The notification title states the tank is low and includes the current tank level from muriatic tank input [input_number.muriatic_tank]. The message body contains the current time and date."
|
|
},
|
|
"human_like": "Sends an urgent alert when the acid tank level drops below a configured threshold.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "muriatic_high",
|
|
"result": {
|
|
"structured": "TRIGGER: When the template evaluates to true, which occurs if notify muriatic high input [input_number.notify_muriatic_high] is greater than 0 AND muriatic on last 24h [sensor.muriatic_on_last_24h] is greater than (notify muriatic high input [input_number.notify_muriatic_high] multiplied by 100) divided by (muriatic speed input [input_number.muriatic_speed] multiplied by 6). CONDITIONS: None. ACTIONS: Turn on lock muriatic input [input_boolean.lock_muriatic] AND send a notification to admins notification [notify.admins] with a title and message containing the current time, date, and details about the muriatic injection limit being exceeded.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers when the calculated daily injection limit is exceeded. Specifically, it checks if the 'notify muriatic high input' [input_number.notify_muriatic_high] is set above zero and if the 'muriatic on last 24h' [sensor.muriatic_on_last_24h] sensor value is greater than a calculated threshold. This threshold is derived from the 'notify muriatic high input' value multiplied by 100, then divided by the 'muriatic speed input' [input_number.muriatic_speed] multiplied by 6.",
|
|
"conditions": "There are no conditions that must be met after the trigger fires.",
|
|
"action": "It immediately locks the muriatic injection system by turning on 'lock muriatic input' [input_boolean.lock_muriatic] and sends an urgent notification to the admins [notify.admins]. The notification includes the current time and date, and states that the muriatic injector has been blocked because the amount injected in the last 24 hours, shown by 'muriatic injected last 24h' [sensor.muriatic_injected_last_24h], has exceeded the configured high limit."
|
|
},
|
|
"human_like": "Automatically blocks the muriatic acid injection and alerts the admins if the daily injection amount exceeds a calculated safe limit.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "muriatic_set",
|
|
"result": {
|
|
"structured": "TRIGGER: When ph mean sensor [sensor.ph_mean] changes from unavailable to any other state and remains stable for 15 minutes. CONDITIONS: None. ACTIONS: Set the value of muriatic inject input [input_number.muriatic_inject] to the result of the calculation: (pool capacity input [input_number.pool_capacity] * (10^(8 - ph target input [input_number.ph_target]) - 10^(8 - ph mean sensor [sensor.ph_mean])) * (126.19 / muriatic concentration input [input_number.muriatic_concentration]), ensuring the result is at least 0, rounded to the nearest integer. Then, trigger the run acid injection pump automation [automation.run_acid_injection_pump].",
|
|
"natural_language": {
|
|
"trigger": "When the ph mean sensor [sensor.ph_mean] becomes available, meaning it transitions from an 'unavailable' state to any other state, and stays in that new state for at least 15 minutes.",
|
|
"conditions": "There are no conditions that must be met for this automation to proceed.",
|
|
"action": "Calculates the required amount of muriatic acid to add to the pool based on the pool's capacity, the target pH level, the current average pH reading, and the concentration of the acid. It sets this calculated value into the muriatic inject input [input_number.muriatic_inject], ensuring the number is not negative and is a whole number. After setting this value, it triggers another automation called run acid injection pump [automation.run_acid_injection_pump] to potentially start the injection process."
|
|
},
|
|
"human_like": "Calculates and sets the daily acid dosage needed for the pool based on current and target pH levels, then triggers the pump to inject it.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "muriatic_inject",
|
|
"result": {
|
|
"structured": "TRIGGER: None (trigger list is empty). CONDITIONS: None (condition list is empty). ACTIONS: Check condition: lock muriatic input [input_boolean.lock_muriatic] is off. Check condition: muriatic inject input [input_number.muriatic_inject] is greater than 5.0 AND less than 2500.0. Check condition: pool pump running sensor [binary_sensor.pool_pump_running] is on. Send notification to admins notification [notify.admins] with a title and message. Start muriatic injection timer [timer.muriatic_injection] with a calculated duration. Execute a loop WHILE (muriatic injection timer [timer.muriatic_injection] is active AND pool pump running sensor [binary_sensor.pool_pump_running] is on AND lock muriatic input [input_boolean.lock_muriatic] is off AND pool acid pump switch [switch.pool_acid_pump] is not unavailable). Inside the loop: Turn on pool acid pump switch [switch.pool_acid_pump]. Wait for 5 seconds. IF pool acid pump switch [switch.pool_acid_pump] is not on, send a notification and turn on lock muriatic input [input_boolean.lock_muriatic]. Wait for pool acid pump switch [switch.pool_acid_pump] to be off, with a timeout of 60 seconds. IF the wait timed out, send a notification, turn off pool acid pump switch [switch.pool_acid_pump], and turn on lock muriatic input [input_boolean.lock_muriatic]. After the loop, send a final notification to admins notification [notify.admins].",
|
|
"natural_language": {
|
|
"trigger": "This automation has no external trigger. It is designed to be executed manually or by another process.",
|
|
"conditions": "Before performing its actions, the automation checks three internal conditions: the lock muriatic input [input_boolean.lock_muriatic] must be off, the muriatic inject input [input_number.muriatic_inject] must be set to a value between 5.0 and 2500.0, and the pool pump running sensor [binary_sensor.pool_pump_running] must be on.",
|
|
"action": "The automation first sends a start notification to the admins. It then starts a timer based on the injection amount and pump speed. A loop begins which repeatedly turns on the acid pump for short cycles, as long as the timer is active, the main pool pump is running, the acid pump is not locked, and the acid pump is available. If the acid pump fails to turn on or off within the expected time, it sends an alert, locks the system to prevent further attempts, and stops the pump if necessary. Once the loop finishes, a final notification is sent."
|
|
},
|
|
"human_like": "Safely injects a measured amount of muriatic acid into the pool by cycling the acid pump on and off, while ensuring the main pool pump is running and monitoring for any pump failures.",
|
|
"complexity": "high"
|
|
}
|
|
},
|
|
{
|
|
"id": "holiday_light_notifications",
|
|
"result": {
|
|
"structured": "TRIGGER: When holiday lights running [input_boolean.holiday_lights_running] changes state. CONDITIONS: None. ACTIONS: Send a notification via admins notification [notify.admins] with a message stating 'Holiday lights started' if holiday lights running [input_boolean.holiday_lights_running] is on, or 'Holiday lights stopped' if it is off.",
|
|
"natural_language": {
|
|
"trigger": "Whenever the state of the holiday lights running [input_boolean.holiday_lights_running] changes.",
|
|
"conditions": "There are no conditions that must be met.",
|
|
"action": "Sends a notification to the admins notification [notify.admins] group. The message will say 'Holiday lights started' if the lights have been turned on, or 'Holiday lights stopped' if they have been turned off."
|
|
},
|
|
"human_like": "Sends a notification to admins whenever the holiday lights are turned on or off.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "'1559149839000'",
|
|
"result": {
|
|
"structured": "TRIGGER: When Home Assistant starts. CONDITIONS: factory started input [input_boolean.factory_started] is off. ACTIONS: Turn on factory started input [input_boolean.factory_started], set pool capacity input [input_number.pool_capacity] to 50, set fc target input [input_number.fc_target] to 1.5, set fc adjust input [input_number.e_fc_adjust] to 0, set ph target input [input_number.ph_target] to 7.2, set muriatic tank input [input_number.muriatic_tank] to 10, set muriatic concentration input [input_number.muriatic_concentration] to 20, set muriatic speed input [input_number.muriatic_speed] to 25.",
|
|
"natural_language": {
|
|
"trigger": "When the Home Assistant system starts up.",
|
|
"conditions": "Only if the factory started input [input_boolean.factory_started] is currently off.",
|
|
"action": "Marks the factory start process as completed by turning on the factory started input [input_boolean.factory_started], and then sets a series of pool management parameters to their default values: pool capacity to 50, free chlorine target to 1.5, free chlorine adjustment to 0, pH target to 7.2, muriatic acid tank level to 10, muriatic acid concentration to 20, and muriatic acid dosing speed to 25."
|
|
},
|
|
"human_like": "Initializes the pool system with default settings when Home Assistant first starts, ensuring it's ready for operation.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "visitors_passthrough",
|
|
"result": {
|
|
"structured": "TRIGGER: When visitors at home input [input_boolean.visitors_at_home] changes state OR when Home Assistant starts. CONDITIONS: None. ACTIONS: Update the location of the device tracker 'visitors' to 'home' if visitors at home input [input_boolean.visitors_at_home] is on, otherwise update it to 'not_home'.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers whenever the state of the visitors at home input [input_boolean.visitors_at_home] changes, or when Home Assistant first starts up.",
|
|
"conditions": "There are no conditions for this automation.",
|
|
"action": "The automation updates the location of a device tracker named 'visitors'. If the visitors at home input [input_boolean.visitors_at_home] is turned on, the visitors are set to be 'home'. If it is turned off, they are set to be 'not_home'."
|
|
},
|
|
"human_like": "This automation keeps the location of a 'visitors' device tracker in sync with a toggle that indicates whether visitors are at home.",
|
|
"complexity": "low"
|
|
}
|
|
}
|
|
] |