AutomationDataset/bacco007/automation-descriptions.json

2030 lines
189 KiB
JSON

[
{
"id": "sonos_favourites_play_102_7_kiis_fm_los_angeles",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_102_7_kiis_fm_los_angeles' is received via POST or PUT method from a local network. CONDITIONS: None. ACTIONS: Execute the script sonos favourites 102 7 kiis fm los angeles [script.sonos_favourites_102_7_kiis_fm_los_angeles] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to '102.7 KIIS-FM Los Angeles'.",
"natural_language": {
"trigger": "When a specific local webhook request (sonos_102_7_kiis_fm_los_angeles) is received, either via POST or PUT.",
"conditions": "There are no conditions that need to be met for this automation to proceed.",
"action": "It toggles the 'sonos favourites 102 7 kiis fm los angeles' [script.sonos_favourites_102_7_kiis_fm_los_angeles] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show '102.7 KIIS-FM Los Angeles'."
},
"human_like": "Plays the 102.7 KIIS-FM Los Angeles radio station on Sonos and updates the display to show what's currently playing.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_1170_sen",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_1170_sen' is received via POST or PUT method from a local network source. CONDITIONS: None. ACTIONS: Execute script toggle [script.toggle] on entity sonos favourites 1170 sen [script.sonos_favourites_1170_sen] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to '1170 SEN'.",
"natural_language": {
"trigger": "When a specific webhook request (ID: sonos_1170_sen) is received from a local device using either the POST or PUT method.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "It toggles the 'sonos favourites 1170 sen' script [script.sonos_favourites_1170_sen] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show '1170 SEN'."
},
"human_like": "Plays the 1170 SEN radio station on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_93_5_triple_m_dubbo",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_93_5_triple_m_dubbo' is received via POST or PUT from a local network source. CONDITIONS: None. ACTIONS: Execute the script sonos favourites 93 5 triple m dubbo [script.sonos_favourites_93_5_triple_m_dubbo] and set the text value of sonos playlist playing [input_text.sonos_playlist_playing] to '93.5 Triple M Dubbo'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_93_5_triple_m_dubbo') is received, either via a POST or PUT method.",
"conditions": "There are no additional conditions that must be met.",
"action": "It triggers the 'sonos favourites 93 5 triple m dubbo' [script.sonos_favourites_93_5_triple_m_dubbo] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show '93.5 Triple M Dubbo'."
},
"human_like": "Plays the 93.5 Triple M Dubbo radio station on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_abc_news",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_abc_news' is received via POST or PUT method from a local network source. CONDITIONS: None. ACTIONS: Toggle sonos favourites abc news [script.sonos_favourites_abc_news] AND Set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'ABC News'.",
"natural_language": {
"trigger": "When a local webhook request with the specific ID 'sonos_abc_news' is received, using either the POST or PUT method.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "Toggles the 'sonos favourites abc news' script [script.sonos_favourites_abc_news] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'ABC News'."
},
"human_like": "Starts playing ABC News on Sonos and updates the display when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_abc_new_england_north_west",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_abc_new_england_north_west' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Execute script.toggle on sonos favourites abc new england north west [script.sonos_favourites_abc_new_england_north_west] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'ABC New England North West'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_abc_new_england_north_west') is received, either via a POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the 'sonos favourites abc new england north west' [script.sonos_favourites_abc_new_england_north_west] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'ABC New England North West'."
},
"human_like": "Plays the ABC New England North West radio station on Sonos when a specific webhook is triggered, and updates the displayed playlist name.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_abc_radio_national_sydney_nsw",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_abc_radio_national_sydney_nsw' is received via POST or PUT method from a local network source. ACTIONS: Execute the script sonos favourites abc radio national sydney nsw [script.sonos_favourites_abc_radio_national_sydney_nsw] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'ABC Radio National (Sydney, NSW)'.",
"natural_language": {
"trigger": "When a specific local webhook request is received, identified by the ID 'sonos_abc_radio_national_sydney_nsw'.",
"conditions": "There are no conditions for this automation.",
"action": "It runs the script named 'sonos favourites abc radio national sydney nsw' [script.sonos_favourites_abc_radio_national_sydney_nsw] and updates the text field 'sonos playlist playing' [input_text.sonos_playlist_playing] to show that ABC Radio National (Sydney, NSW) is now playing."
},
"human_like": "Starts playing ABC Radio National (Sydney, NSW) on Sonos and updates the displayed playlist when triggered by a webhook.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_abc_radio_sydney",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_abc_radio_sydney' is received via POST or PUT method, and is local only. CONDITIONS: None. ACTIONS: Toggle sonos favourites abc radio sydney [script.sonos_favourites_abc_radio_sydney] AND set sonos playlist playing [input_text.sonos_playlist_playing] to 'ABC Radio Sydney'.",
"natural_language": {
"trigger": "When a local webhook request with the specific ID 'sonos_abc_radio_sydney' is received, using either the POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the state of the sonos favourites abc radio sydney [script.sonos_favourites_abc_radio_sydney] script and updates the sonos playlist playing [input_text.sonos_playlist_playing] text field to 'ABC Radio Sydney'."
},
"human_like": "Starts playing ABC Radio Sydney on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_abc_sport",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_abc_sport' is received via POST or PUT method, and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites abc sport [script.sonos_favourites_abc_sport] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'ABC Sport'.",
"natural_language": {
"trigger": "When a local webhook request with the specific ID 'sonos_abc_sport' is received, using either the POST or PUT method.",
"conditions": "There are no conditions that must be met for this automation to proceed.",
"action": "It toggles the 'sonos favourites abc sport' script [script.sonos_favourites_abc_sport] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to display 'ABC Sport'."
},
"human_like": "Starts playing ABC Sport on Sonos and updates the display when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_absolute_radio_00s",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_absolute_radio_00s' is received via POST or PUT method, locally only. CONDITIONS: None. ACTIONS: Toggle sonos favourites absolute radio 00s [script.sonos_favourites_absolute_radio_00s] AND set sonos playlist playing [input_text.sonos_playlist_playing] to the value 'Absolute Radio 00s'.",
"natural_language": {
"trigger": "When a specific webhook request named 'sonos_absolute_radio_00s' is received locally, either via a POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "Toggles the 'sonos favourites absolute radio 00s' script [script.sonos_favourites_absolute_radio_00s] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Absolute Radio 00s'."
},
"human_like": "Starts playing Absolute Radio 00s on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_absolute_radio_10s",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_absolute_radio_10s' is received via POST or PUT method from a local network. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites absolute radio 10s [script.sonos_favourites_absolute_radio_10s] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Absolute Radio 10s'.",
"natural_language": {
"trigger": "When a specific local webhook request (sonos_absolute_radio_10s) is received by the Home Assistant system.",
"conditions": "There are no conditions that must be met for this automation to proceed.",
"action": "It toggles the state of the 'sonos favourites absolute radio 10s' script [script.sonos_favourites_absolute_radio_10s] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Absolute Radio 10s'."
},
"human_like": "Starts playing Absolute Radio 10s on Sonos and updates the displayed playlist name when triggered by a webhook.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_absolute_radio_20s",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_absolute_radio_20s' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle sonos favourites absolute radio 20s [script.sonos_favourites_absolute_radio_20s] AND set sonos playlist playing [input_text.sonos_playlist_playing] value to 'Absolute Radio 20s'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_absolute_radio_20s') is received via either a POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the 'sonos favourites absolute radio 20s' [script.sonos_favourites_absolute_radio_20s] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to 'Absolute Radio 20s'."
},
"human_like": "Starts playing Absolute Radio 20s on Sonos and updates the displayed playlist name when triggered by a webhook.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_absolute_radio_80s",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_absolute_radio_80s' is received via POST or PUT locally. CONDITIONS: None. ACTIONS: Toggle sonos favourites absolute radio 80s [script.sonos_favourites_absolute_radio_80s] AND set sonos playlist playing [input_text.sonos_playlist_playing] to 'Absolute Radio 80s'.",
"natural_language": {
"trigger": "When a local webhook request with the specific ID 'sonos_absolute_radio_80s' is received, using either the POST or PUT method.",
"conditions": "There are no conditions that must be met for this automation to proceed.",
"action": "It toggles the state of the sonos favourites absolute radio 80s [script.sonos_favourites_absolute_radio_80s] script and updates the sonos playlist playing [input_text.sonos_playlist_playing] text field to 'Absolute Radio 80s'."
},
"human_like": "Starts playing Absolute Radio 80s on Sonos and updates the display when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_absolute_radio_90s",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_absolute_radio_90s' is received via POST or PUT method from the local network. CONDITIONS: None. ACTIONS: Execute the script sonos favourites absolute radio 90s [script.sonos_favourites_absolute_radio_90s] AND set the text value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Absolute Radio 90s'.",
"natural_language": {
"trigger": "When a specific local webhook request (sonos_absolute_radio_90s) is received.",
"conditions": "There are no conditions for this automation.",
"action": "It runs the 'sonos favourites absolute radio 90s' script and updates the 'sonos playlist playing' text field to show 'Absolute Radio 90s'."
},
"human_like": "Starts playing Absolute Radio 90s on Sonos and updates the display to show what's playing when triggered by a webhook.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_absolute_radio_classic_rock",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_absolute_radio_classic_rock' is received via POST or PUT method, and the request is local only. CONDITIONS: None. ACTIONS: Execute the script sonos favourites absolute radio classic rock [script.sonos_favourites_absolute_radio_classic_rock] and set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Absolute Radio Classic Rock'.",
"natural_language": {
"trigger": "When a local webhook request with the specific ID for Absolute Radio Classic Rock is received.",
"conditions": "There are no additional conditions for this automation.",
"action": "It runs the script for playing Absolute Radio Classic Rock on Sonos and updates a text field to show that this station is now playing."
},
"human_like": "Starts playing Absolute Radio Classic Rock on Sonos when triggered by a webhook and updates the display to show the current station.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_absolute_radio_uk_aac",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_absolute_radio_uk_aac' is received via POST or PUT method from a local network source. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites absolute radio uk aac [script.sonos_favourites_absolute_radio_uk_aac] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Absolute Radio UK (AAC)'.",
"natural_language": {
"trigger": "When a local webhook request with the specific ID 'sonos_absolute_radio_uk_aac' is received, using either the POST or PUT method.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "The automation toggles the state of the 'sonos favourites absolute radio uk aac' [script.sonos_favourites_absolute_radio_uk_aac] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'Absolute Radio UK (AAC)'."
},
"human_like": "Starts playing Absolute Radio UK on a Sonos speaker and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "activity_driving",
"result": {
"structured": "TRIGGER: When activity thomas current activity [sensor.activity_thomas_current_activity] changes to Automotive OR When activity thomas current activity [sensor.activity_thomas_current_activity] changes from Automotive. CONDITIONS: None. ACTIONS: Turn on activity thomas driving [input_boolean.activity_thomas_driving] if activity thomas current activity [sensor.activity_thomas_current_activity] is Automotive, otherwise turn it off.",
"natural_language": {
"trigger": "When the activity thomas current activity [sensor.activity_thomas_current_activity] changes its state to 'Automotive' or changes its state away from 'Automotive'.",
"conditions": "There are no conditions that must be met.",
"action": "If the activity thomas current activity [sensor.activity_thomas_current_activity] is currently 'Automotive', it turns on the activity thomas driving [input_boolean.activity_thomas_driving]. If it is any other state, it turns the activity thomas driving [input_boolean.activity_thomas_driving] off."
},
"human_like": "Tracks when Thomas is driving by turning on a driving indicator when his activity is 'Automotive' and turning it off otherwise.",
"complexity": "low"
}
},
{
"id": "'1653186204936'",
"result": {
"structured": "TRIGGER: At sunrise. CONDITIONS: None. ACTIONS: Turn off office adaptive sleep mode [switch.adaptive_lighting_sleep_mode_office_adaptive] AND Turn off bedroom adaptive sleep mode [switch.adaptive_lighting_sleep_mode_bedroom_adaptive].",
"natural_language": {
"trigger": "At sunrise.",
"conditions": "There are no conditions.",
"action": "Turns off the office adaptive sleep mode [switch.adaptive_lighting_sleep_mode_office_adaptive] and the bedroom adaptive sleep mode [switch.adaptive_lighting_sleep_mode_bedroom_adaptive]."
},
"human_like": "Disables the adaptive lighting sleep mode for the office and bedroom at sunrise.",
"complexity": "low"
}
},
{
"id": "'[Alarm Clock] Alarm Clock'",
"result": {
"structured": "TRIGGER: When alarm today [binary_sensor.alarm_today] is on AND the current time from time [sensor.time] equals the alarm_time attribute of alarm today [binary_sensor.alarm_today] OR When timer.finished event occurs for timer alarm length [timer.alarm_length]. CONDITIONS: None. ACTIONS: Set variables: sonos_device from default_sonos attribute of alarm defaults [sensor.alarm_defaults], light_switchedon from default_light attribute of alarm defaults [sensor.alarm_defaults], music_selected from default_music attribute of alarm defaults [sensor.alarm_defaults]. Then, choose: IF (alarm debug testing [input_boolean.alarm_debug_testing] is on OR trigger is alarm_triggered) THEN (IF alarm debug testing [input_boolean.alarm_debug_testing] is on THEN turn off alarm debug testing [input_boolean.alarm_debug_testing]) AND turn on light at light_switchedon with 30-second transition AND select source music_selected on media player sonos_device AND set volume to 0.15 on media player sonos_device AND start timer alarm length [timer.alarm_length] for 1 hour. ELSE IF (trigger is alarm_timer_finished) THEN stop media on media player sonos_device AND turn off light at light_switchedon with 30-second transition.",
"natural_language": {
"trigger": "The automation triggers in two ways. First, when the alarm today [binary_sensor.alarm_today] is active and the current time [sensor.time] matches the specific alarm time stored in its attributes. Second, when the alarm length [timer.alarm_length] timer finishes.",
"conditions": "There are no conditions for this automation.",
"action": "First, the automation retrieves the default Sonos device, light, and music selection from the alarm defaults [sensor.alarm_defaults] sensor. If the trigger was the alarm time being reached or if the alarm debug testing [input_boolean.alarm_debug_testing] is manually turned on, it will start the alarm sequence. This sequence turns off the debug switch if it was on, gradually turns on the specified light over 30 seconds, selects the specified music on the Sonos device, sets its volume to 15%, and starts a one-hour timer. If the trigger is the timer finishing, the automation stops the music on the Sonos device and gradually turns off the light over 30 seconds."
},
"human_like": "This automation acts as an alarm clock, turning on lights and playing music at a scheduled time, and stopping them after an hour.",
"complexity": "medium"
}
},
{
"id": "'[Alarm Clock] Set Wakeup Music Select'",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When sonos favorites [sensor.sonos_favorites] changes to an unknown (null) state. CONDITIONS: None. ACTIONS: Set variable sonos_favourites to the list of values from the 'items' attribute of sonos favorites [sensor.sonos_favorites]. Set variable current_favourite to the current state of alarm music [input_select.alarm_music]. Set the options of alarm music [input_select.alarm_music] to the value of variable sonos_favourites. Then, set the selected option of alarm music [input_select.alarm_music] to the value of variable current_favourite.",
"natural_language": {
"trigger": "The automation runs either when Home Assistant first starts up, or when the sonos favorites [sensor.sonos_favorites] sensor changes to an unknown (null) state.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "First, it reads the list of available Sonos favorites from the sensor and stores it. It also notes the currently selected alarm music. Then, it updates the list of available options in the alarm music [input_select.alarm_music] dropdown to match the latest Sonos favorites. Finally, it restores the previously selected alarm music choice, ensuring it remains selected after the list is refreshed."
},
"human_like": "Keeps the alarm music selection menu in sync with the available Sonos favorites, preserving your current choice when the list updates.",
"complexity": "medium"
}
},
{
"id": "a9b997b8-84ac-4332-bf06-19957c0d4d19",
"result": {
"structured": "TRIGGER: When thomas baxter [person.thomas_baxter] enters the zone zone.home. CONDITIONS: (sun is after sunset with an offset of -15 minutes) OR (sun is before sunrise). ACTIONS: Turn on lights associated with device IDs 126e91428c97177372f5ef7398eb537e and 6623c3d12a6637f37fab2c6e24c41afc with a transition time of 20 seconds and brightness set to 35%.",
"natural_language": {
"trigger": "When thomas baxter [person.thomas_baxter] arrives home by entering the home zone.",
"conditions": "If it is either after sunset (starting 15 minutes before sunset) or before sunrise.",
"action": "Turns on the lights associated with device IDs 126e91428c97177372f5ef7398eb537e and 6623c3d12a6637f37fab2c6e24c41afc, fading them on over 20 seconds to 35% brightness."
},
"human_like": "Turns on specific lights at a dim level when Thomas arrives home during the evening or night.",
"complexity": "low"
}
},
{
"id": "ha_autogroup_bulk",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When ha startup pending [input_boolean.ha_startup_pending] changes to off OR When a service call is made to the group domain with service reload OR Every 15 minutes. CONDITIONS: None. ACTIONS: If the trigger was startup, then wait for 240 seconds. Then, create or update multiple groups using group.set service calls. The groups are defined with specific names, icons, and dynamic lists of entities filtered from the system state. The groups include: battery_devices, media_players, lights, automations, remotes, scripts, switches, calendars, calendars_sport, geo_location, weather, people, cameras, alert_controls, alert_monitors, alerts, connectivity_monitors, people (duplicate), waqi, docker_pi4srv_containers, docker_pi4srv_switches, docker_tbsh1_containers, docker_tbsh1_switches, docker_tbsh2_containers, docker_tbsh2_switches, docker_tbsh3_containers, docker_tbsh3_switches, docker_tbsh5_containers, docker_tbsh5_switches, updates_homeassistant, updates_hacs, updates_docker, updates_unifi, updates_zigbee2mqtt, updates_other, qbittorrent, rssfeeds, addon_switch, upcomingsport_withevents, upcomingsport_withoutevents, upcomingsport_thisweek, livetrafficnsw, automations_sonos_favourites, script_sonos_playlists, hibp_breaches.",
"natural_language": {
"trigger": "This automation runs when Home Assistant first starts, when the ha startup pending [input_boolean.ha_startup_pending] flag is turned off, when the group service is reloaded, or every 15 minutes.",
"conditions": "There are no conditions for this automation.",
"action": "If the automation was triggered by the Home Assistant startup event, it first waits for 240 seconds. It then proceeds to create or update a large set of predefined groups. Each group is configured with a specific name, icon, and a dynamically generated list of entities. The entity lists are built by filtering the current state of the system based on entity IDs, attributes, or integration sources. For example, it creates groups for battery devices, media players, lights, automations, various Docker container and switch groups for different servers, update entities from different sources, sports calendars, traffic sensors, and more."
},
"human_like": "This automation automatically creates and updates a comprehensive set of device and entity groups in Home Assistant, running at startup, on demand, or on a regular schedule to keep the groups current.",
"complexity": "high"
}
},
{
"id": "'1751697921200'",
"result": {
"structured": "TRIGGER: When office lamp [light.office_lamp] OR bedroom lamp [light.bedroom_lamp] becomes unavailable AND remains unavailable for 5 minutes. CONDITIONS: None. ACTIONS: Restart the Zigbee2MQTT add-on (addon: 45df7312_zigbee2mqtt).",
"natural_language": {
"trigger": "When either the office lamp [light.office_lamp] or the bedroom lamp [light.bedroom_lamp] becomes unavailable and stays that way for five minutes.",
"conditions": "There are no conditions that must be met.",
"action": "Restarts the Zigbee2MQTT add-on to try and restore connectivity."
},
"human_like": "Automatically restarts the Zigbee2MQTT service if either the office or bedroom lamp becomes unavailable for five minutes.",
"complexity": "low"
}
},
{
"id": "ha_automations_reloaded",
"result": {
"structured": "TRIGGER: When the event 'automation_reloaded' occurs. CONDITIONS: None. ACTIONS: Write a critical log entry with the logger name set to the automation's own entity ID and the message '**** Automations have been reloaded. ****', AND send a browser notification with the same message that persists for 30 seconds.",
"natural_language": {
"trigger": "When the Home Assistant system reloads its automations, triggering the 'automation_reloaded' event.",
"conditions": "There are no conditions that must be met.",
"action": "The automation logs a critical message to the system log, using its own entity ID as the logger name, and also sends a pop-up notification to the browser that will stay visible for 30 seconds. Both messages state '**** Automations have been reloaded. ****'."
},
"human_like": "Logs and notifies the user when Home Assistant automations have been reloaded.",
"complexity": "low"
}
},
{
"id": "kiosk_turnonoffauto",
"result": {
"structured": "TRIGGER: When kiosk off [binary_sensor.kiosk_off] turns off OR When kiosk off [binary_sensor.kiosk_off] turns on OR When thomas baxter [person.thomas_baxter] is not_home for 5 minutes OR When thomas baxter [person.thomas_baxter] is home for 5 minutes. CONDITIONS: None. ACTIONS: If the trigger was kiosk off [binary_sensor.kiosk_off] turning off OR thomas baxter [person.thomas_baxter] being not_home for 5 minutes, then turn on galaxy tab s5e screensaver [switch.galaxy_tab_s5e_screensaver]. If the trigger was kiosk off [binary_sensor.kiosk_off] turning on OR thomas baxter [person.thomas_baxter] being home for 5 minutes, then turn off galaxy tab s5e screensaver [switch.galaxy_tab_s5e_screensaver].",
"natural_language": {
"trigger": "The automation can be triggered in four ways: when the kiosk off [binary_sensor.kiosk_off] sensor turns off, when it turns on, when thomas baxter [person.thomas_baxter] has been away from home for five minutes, or when thomas baxter [person.thomas_baxter] has been at home for five minutes.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "Depending on which trigger occurred, the automation will either turn on or off the galaxy tab s5e screensaver [switch.galaxy_tab_s5e_screensaver]. If the trigger was the kiosk off sensor turning off or Thomas being away for five minutes, the screensaver is turned on. If the trigger was the kiosk off sensor turning on or Thomas being home for five minutes, the screensaver is turned off."
},
"human_like": "Automatically controls a tablet's screensaver based on a manual kiosk switch or Thomas's presence at home.",
"complexity": "medium"
}
},
{
"id": "sonos_favourites_play_bbc_radio_1",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_bbc_radio_1' is received via POST or PUT method, and the request is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites bbc radio 1 [script.sonos_favourites_bbc_radio_1] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'BBC Radio 1'.",
"natural_language": {
"trigger": "When a specific local webhook request, identified by 'sonos_bbc_radio_1', is sent to the system using either a POST or PUT method.",
"conditions": "There are no conditions that need to be met.",
"action": "The automation toggles the sonos favourites bbc radio 1 [script.sonos_favourites_bbc_radio_1] script and updates the sonos playlist playing [input_text.sonos_playlist_playing] text field to show 'BBC Radio 1'."
},
"human_like": "Starts playing BBC Radio 1 on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_bbc_radio_1xtra",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_bbc_radio_1xtra' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites bbc radio 1xtra [script.sonos_favourites_bbc_radio_1xtra] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'BBC Radio 1Xtra'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_bbc_radio_1xtra') is received, either via a POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the 'sonos favourites bbc radio 1xtra' [script.sonos_favourites_bbc_radio_1xtra] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'BBC Radio 1Xtra'."
},
"human_like": "Starts playing BBC Radio 1Xtra on Sonos and updates the display of the currently playing playlist when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_bbc_radio_1_dance",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_bbc_radio_1_dance' is received via POST or PUT method, and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites bbc radio 1 dance [script.sonos_favourites_bbc_radio_1_dance] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'BBC Radio 1 Dance'.",
"natural_language": {
"trigger": "When a specific local webhook request, identified by the ID 'sonos_bbc_radio_1_dance', is sent to Home Assistant using either the POST or PUT method.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "It toggles the state of the 'sonos favourites bbc radio 1 dance' script [script.sonos_favourites_bbc_radio_1_dance] and updates the 'sonos playlist playing' text input [input_text.sonos_playlist_playing] to display 'BBC Radio 1 Dance'."
},
"human_like": "Starts playing BBC Radio 1 Dance on Sonos and updates the display of the currently playing playlist when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_bbc_radio_1_relax",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_bbc_radio_1_relax' is received via POST or PUT method, locally only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites bbc radio 1 relax [script.sonos_favourites_bbc_radio_1_relax] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'BBC Radio 1 Relax'.",
"natural_language": {
"trigger": "When a specific webhook request (with the ID 'sonos_bbc_radio_1_relax') is received locally, either via a POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the 'sonos favourites bbc radio 1 relax' [script.sonos_favourites_bbc_radio_1_relax] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'BBC Radio 1 Relax'."
},
"human_like": "Starts playing BBC Radio 1 Relax on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_bbc_radio_2",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_bbc_radio_2' is received via POST or PUT method from a local network source. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites bbc radio 2 [script.sonos_favourites_bbc_radio_2] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'BBC Radio 2'.",
"natural_language": {
"trigger": "When a specific local webhook request named 'sonos_bbc_radio_2' is received.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "It toggles the playback of BBC Radio 2 by activating the sonos favourites bbc radio 2 [script.sonos_favourites_bbc_radio_2] script, and updates the sonos playlist playing [input_text.sonos_playlist_playing] text field to show 'BBC Radio 2'."
},
"human_like": "Starts or stops BBC Radio 2 on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_bbc_radio_3",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_bbc_radio_3' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites bbc radio 3 [script.sonos_favourites_bbc_radio_3] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'BBC Radio 3'.",
"natural_language": {
"trigger": "When a specific local webhook request (sonos_bbc_radio_3) is received, either via POST or PUT.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the 'sonos favourites bbc radio 3' script [script.sonos_favourites_bbc_radio_3] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'BBC Radio 3'."
},
"human_like": "Starts playing BBC Radio 3 on Sonos and updates the display when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_bbc_radio_4_extra_comedy",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_bbc_radio_4_extra_comedy' is received via POST or PUT method, and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites bbc radio 4 extra comedy [script.sonos_favourites_bbc_radio_4_extra_comedy] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'BBC Radio 4 Extra (Comedy)'.",
"natural_language": {
"trigger": "When a local webhook request with the specific ID for BBC Radio 4 Extra (Comedy) is received.",
"conditions": "There are no conditions that need to be met.",
"action": "It toggles the 'sonos favourites bbc radio 4 extra comedy' script [script.sonos_favourites_bbc_radio_4_extra_comedy] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'BBC Radio 4 Extra (Comedy)'."
},
"human_like": "Starts playing BBC Radio 4 Extra (Comedy) on Sonos and updates the display to show what's playing when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_bbc_radio_4_lw",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_bbc_radio_4_lw' is received via POST or PUT, locally only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites bbc radio 4 lw [script.sonos_favourites_bbc_radio_4_lw] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'BBC Radio 4 LW'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_bbc_radio_4_lw') is received, either via a POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the 'sonos favourites bbc radio 4 lw' [script.sonos_favourites_bbc_radio_4_lw] script to start or stop playback, and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'BBC Radio 4 LW'."
},
"human_like": "Starts or stops playing BBC Radio 4 LW on Sonos when a specific webhook is triggered, and updates the display of what's currently playing.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_bbc_radio_5_live",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_bbc_radio_5_live' is received via POST or PUT method from a local network source. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites bbc radio 5 live [script.sonos_favourites_bbc_radio_5_live] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'BBC Radio 5 live'.",
"natural_language": {
"trigger": "When a specific local webhook request named 'sonos_bbc_radio_5_live' is received.",
"conditions": "There are no conditions that must be met.",
"action": "It toggles the state of the 'sonos favourites bbc radio 5 live' script [script.sonos_favourites_bbc_radio_5_live] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'BBC Radio 5 live'."
},
"human_like": "Starts playing BBC Radio 5 live on Sonos and updates the current playlist display when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_bbc_radio_5_live_sports_extra",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_bbc_radio_5_live_sports_extra' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites bbc radio 5 live sports extra [script.sonos_favourites_bbc_radio_5_live_sports_extra] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'BBC Radio 5 live sports extra'.",
"natural_language": {
"trigger": "When a specific local webhook request is received, identified by the ID 'sonos_bbc_radio_5_live_sports_extra'.",
"conditions": "There are no conditions that need to be met.",
"action": "Toggles the playback of BBC Radio 5 live sports extra on Sonos by activating the script sonos favourites bbc radio 5 live sports extra [script.sonos_favourites_bbc_radio_5_live_sports_extra] and updates the displayed playlist name to 'BBC Radio 5 live sports extra' in the input text field sonos playlist playing [input_text.sonos_playlist_playing]."
},
"human_like": "Starts playing BBC Radio 5 live sports extra on the Sonos system when triggered by a webhook, and updates the current playlist display.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_bbc_radio_6_music",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_bbc_radio_6_music' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle sonos favourites bbc radio 6 music [script.sonos_favourites_bbc_radio_6_music] AND Set sonos playlist playing [input_text.sonos_playlist_playing] value to 'BBC Radio 6 Music'.",
"natural_language": {
"trigger": "When a specific local webhook request named 'sonos_bbc_radio_6_music' is received, either via a POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the script sonos favourites bbc radio 6 music [script.sonos_favourites_bbc_radio_6_music] and updates the text field sonos playlist playing [input_text.sonos_playlist_playing] to show 'BBC Radio 6 Music'."
},
"human_like": "Plays BBC Radio 6 Music on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_bbc_world_service_news",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_bbc_world_service_news' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites bbc world service news [script.sonos_favourites_bbc_world_service_news] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'BBC World Service News'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_bbc_world_service_news') is received, either via a POST or PUT method.",
"conditions": "There are no conditions that need to be met for this automation to run.",
"action": "It toggles the 'sonos favourites bbc world service news' [script.sonos_favourites_bbc_world_service_news] script, and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'BBC World Service News'."
},
"human_like": "Plays BBC World Service News on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "'[Home] Bin Day Notification'",
"result": {
"structured": "TRIGGER: At 17:00:00 daily. CONDITIONS: At least one sensor with entity_id containing 'binday_' has an attribute 'days' equal to 1. ACTIONS: Send a notification via notify.alert with title 'Tomorrow is Bin Day!' and a message listing the friendly_name attributes of all qualifying sensors.",
"natural_language": {
"trigger": "Every day at 5:00 PM.",
"conditions": "If there is at least one sensor (with an entity ID containing 'binday_') that has an attribute named 'days' with a value of 1.",
"action": "Sends a push notification with the title 'Tomorrow is Bin Day!' and a message listing the friendly names of all the bins that need to be put out."
},
"human_like": "Sends a daily reminder at 5 PM if any bins need to be put out the next day.",
"complexity": "medium"
}
},
{
"id": "sonos_favourites_play_capital_anthems",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_capital_anthems' is received via POST or PUT method from a local network source. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites capital anthems [script.sonos_favourites_capital_anthems] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Capital Anthems'.",
"natural_language": {
"trigger": "When a local webhook request with the specific ID 'sonos_capital_anthems' is received, either via a POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the state of the 'sonos favourites capital anthems' script [script.sonos_favourites_capital_anthems] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to display 'Capital Anthems'."
},
"human_like": "Starts playing the Capital Anthems playlist on Sonos when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_capital_london",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_capital_london' is received via POST or PUT method, and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites capital london [script.sonos_favourites_capital_london] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Capital London'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_capital_london') is sent to Home Assistant using either the POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "Toggles the 'sonos favourites capital london' [script.sonos_favourites_capital_london] script, and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'Capital London'."
},
"human_like": "Plays the Capital London radio station on Sonos when a specific webhook is triggered, and updates the display to show what's playing.",
"complexity": "low"
}
},
{
"id": "clear_alert",
"result": {
"structured": "TRIGGER: When any of the following alert entities changes state to 'off' OR 'idle': weatherflow cloud [alert.weatherflow_cloud], weatherflow local [alert.weatherflow_local], zigbee network [alert.zigbee_network], test alert [alert.test_alert]. ACTIONS: 1. Turn off notifications mobile notification cleared [automation.notifications_mobile_notification_cleared]. 2. Send a notification to alert [notify.alert] with message 'clear_notification' and data tag derived from the triggering entity ID. 3. If the trigger ID is 'alert', then dismiss a persistent notification with an ID derived from the triggering entity ID. 4. Turn on notifications mobile notification cleared [automation.notifications_mobile_notification_cleared].",
"natural_language": {
"trigger": "When the state of the weatherflow cloud [alert.weatherflow_cloud], weatherflow local [alert.weatherflow_local], zigbee network [alert.zigbee_network], or test alert [alert.test_alert] changes to either 'off' or 'idle'.",
"conditions": "There are no explicit conditions for this automation.",
"action": "The automation first turns off the notifications mobile notification cleared [automation.notifications_mobile_notification_cleared] automation. It then sends a 'clear_notification' message to the alert notification service, including a tag based on which alert triggered it. If the trigger is specifically from an alert entity, it also attempts to dismiss a corresponding persistent notification. Finally, it turns the notifications mobile notification cleared [automation.notifications_mobile_notification_cleared] automation back on."
},
"human_like": "Clears mobile and persistent notifications when specific system alerts are resolved.",
"complexity": "medium"
}
},
{
"id": "Clear Offline Integration Notification",
"result": {
"structured": "TRIGGER: When connectivity monitors [group.connectivity_monitors] changes state to on. CONDITIONS: The result of a template evaluation is true. The template expands the group connectivity monitors [group.connectivity_monitors], excludes the entity sensor.ha_connected_integration_offline_integrations, selects only entities with state 'off', and checks if the count of such entities is zero. ACTIONS: Send a notification to alert [notify.alert] with a message 'clear_notification' and tag 'offline_integrations', AND set the value of offline integration count [input_number.offline_integration_count] to 0.",
"natural_language": {
"trigger": "When the connectivity monitors group [group.connectivity_monitors] reports a state change to 'on'.",
"conditions": "If, after checking all entities in the connectivity monitors group [group.connectivity_monitors] (except for the sensor tracking offline integrations), none of them are currently offline (i.e., their state is not 'off').",
"action": "Clear any existing notifications tagged as 'offline_integrations' by sending a clear command to the alert notification service [notify.alert], and reset the offline integration count [input_number.offline_integration_count] to zero."
},
"human_like": "Clears the offline integration alert and resets the counter when all monitored integrations are back online.",
"complexity": "medium"
}
},
{
"id": "sonos_favourites_play_cnn_international",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_cnn_international' is received via POST or PUT method, locally only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites cnn international [script.sonos_favourites_cnn_international] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'CNN International'.",
"natural_language": {
"trigger": "When a specific local webhook request (sonos_cnn_international) is received, either via a POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "Toggles the sonos favourites cnn international [script.sonos_favourites_cnn_international] script and updates the sonos playlist playing [input_text.sonos_playlist_playing] text field to show 'CNN International'."
},
"human_like": "Plays CNN International on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "database_repack",
"result": {
"structured": "TRIGGER: When the time is 02:00. CONDITIONS: The current day is Sunday OR Tuesday OR Thursday. ACTIONS: Call service recorder.purge with data: apply_filter: true, repack: true.",
"natural_language": {
"trigger": "The automation triggers daily at 2:00 AM.",
"conditions": "It only runs if the current day is a Sunday, Tuesday, or Thursday.",
"action": "It performs a database maintenance task by calling the recorder purge service with repacking enabled."
},
"human_like": "Performs weekly database maintenance and repacking on Sundays, Tuesdays, and Thursdays at 2 AM.",
"complexity": "low"
}
},
{
"id": "ha_db_remove_orphaned_entities",
"result": {
"structured": "TRIGGER: At 02:30:00. CONDITIONS: None. ACTIONS: Execute the script db remove orphaned entities [script.db_remove_orphaned_entities].",
"natural_language": {
"trigger": "Every day at 2:30 AM.",
"conditions": "There are no conditions.",
"action": "Runs the script named db remove orphaned entities [script.db_remove_orphaned_entities]."
},
"human_like": "Runs a cleanup script every night to remove unused entities from the database.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_double_j_sydney",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_double_j_sydney' is received via POST or PUT method from a local network. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites double j sydney [script.sonos_favourites_double_j_sydney] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Double J Sydney'.",
"natural_language": {
"trigger": "When a specific local webhook request named 'sonos_double_j_sydney' is sent to Home Assistant.",
"conditions": "There are no additional conditions that must be met.",
"action": "It toggles the 'sonos favourites double j sydney' script [script.sonos_favourites_double_j_sydney] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Double J Sydney'."
},
"human_like": "Starts playing the Double J Sydney radio station on Sonos and updates the display to show what's playing when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_double_j_sydney_nsw",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_double_j_sydney_nsw' is received via POST or PUT method from a local network. CONDITIONS: None. ACTIONS: Execute script toggle [script.sonos_favourites_double_j_sydney_nsw] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Double J (Sydney, NSW)'.",
"natural_language": {
"trigger": "When a specific webhook request, identified as 'sonos_double_j_sydney_nsw', is sent to Home Assistant from a device on the local network using either a POST or PUT method.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "The automation will start or toggle the playback of a specific radio station by running the script sonos favourites double j sydney nsw [script.sonos_favourites_double_j_sydney_nsw]. It will also update the text field sonos playlist playing [input_text.sonos_playlist_playing] to show 'Double J (Sydney, NSW)' as the currently playing content."
},
"human_like": "Starts playing the Double J radio station on Sonos and updates the displayed playlist name when triggered by a local webhook.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_espn_radio",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_espn_radio' is received via POST or PUT from a local network. CONDITIONS: None. ACTIONS: Toggle sonos favourites espn radio [script.sonos_favourites_espn_radio] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'ESPN Radio'.",
"natural_language": {
"trigger": "When a specific webhook request (sonos_espn_radio) is received from the local network using either the POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "Toggles the 'sonos favourites espn radio' script [script.sonos_favourites_espn_radio] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'ESPN Radio'."
},
"human_like": "Starts playing ESPN Radio on Sonos and updates the display to show what's playing when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "fan_set_speed",
"result": {
"structured": "TRIGGER: When office fan speed [input_number.office_fan_speed] changes state. ACTIONS: Execute script fan set speed [script.fan_set_speed] with data: fan variable derived from trigger entity_id (by removing 'input_number.' and '_speed' prefixes) and speed variable set to the rounded-down integer value of the state of the triggering entity.",
"natural_language": {
"trigger": "Whenever the value of the office fan speed [input_number.office_fan_speed] changes.",
"conditions": "There are no conditions for this automation.",
"action": "Calls the fan set speed [script.fan_set_speed] script, passing in a calculated fan name (derived from the triggering entity's ID) and the new speed value (rounded down to the nearest whole number)."
},
"human_like": "Updates the physical fan speed whenever the user adjusts the office fan speed control.",
"complexity": "low"
}
},
{
"id": "influx2entity_flighttrack365day",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR When the time matches the pattern every hour (hours: /1). CONDITIONS: None. ACTIONS: If the trigger is Home Assistant startup, wait for 240 seconds. Then, execute three queries to InfluxDB and update corresponding sensor entities: 1) Query for maximum daily flight count over the past year and update archive flighttracker flights 365day [sensor.archive_flighttracker_flights_365day]. 2) Query for maximum daily flight distance (in km) over the past year and update archive flighttracker maxdistance 365day [sensor.archive_flighttracker_maxdistance_365day]. 3) Query for average daily flight distance (in km) over the past year and update archive flighttracker avgdistance 365day [sensor.archive_flighttracker_avgdistance_365day].",
"natural_language": {
"trigger": "This automation runs when Home Assistant first starts, when the ha startup pending [input_boolean.ha_startup_pending] switch is turned off, or every hour on the hour.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "If the automation was triggered by Home Assistant starting, it first waits for 4 minutes. Then, it performs three data queries to an InfluxDB database to calculate flight statistics over the past year. It updates a sensor with the maximum number of flights per day, another with the maximum flight distance per day in kilometers, and a third with the average flight distance per day in kilometers."
},
"human_like": "This automation updates yearly flight tracking statistics (daily max flights, max distance, and average distance) at startup and then refreshes the data every hour.",
"complexity": "medium"
}
},
{
"id": "'1698473315369'",
"result": {
"structured": "TRIGGER: When flighttracker aircraft total [sensor.flighttracker_aircraft_total] changes state. CONDITIONS: None. ACTIONS: Publish a custom MQTT message to the topic 'pixelclock/custom/flighttracker' with a payload containing the current value of flighttracker aircraft total [sensor.flighttracker_aircraft_total], the aircraft type from plane overhead detail [sensor.plane_overhead_detail], the aircraft registration from plane overhead detail [sensor.plane_overhead_detail], and a formatted trip string from plane overhead detail [sensor.plane_overhead_detail].",
"natural_language": {
"trigger": "Whenever the sensor tracking the total number of aircraft, flighttracker aircraft total [sensor.flighttracker_aircraft_total], updates its value.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "Sends a formatted message via MQTT to a device called a pixel clock. The message includes the current total number of aircraft, along with details about the nearest plane such as its type, registration, and flight route, all taken from the plane overhead detail [sensor.plane_overhead_detail] sensor."
},
"human_like": "Updates a pixel clock display with the current flight tracker statistics and details of the nearest aircraft whenever the total aircraft count changes.",
"complexity": "medium"
}
},
{
"id": "sonos_favourites_play_gaydio_london_top_40_pop_music",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_gaydio_london_top_40_pop_music' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites gaydio london top 40 pop music [script.sonos_favourites_gaydio_london_top_40_pop_music] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Gaydio (London) (Top 40 & Pop Music)'.",
"natural_language": {
"trigger": "When a specific local webhook request named 'sonos_gaydio_london_top_40_pop_music' is received.",
"conditions": "There are no conditions that must be met.",
"action": "It toggles the script sonos favourites gaydio london top 40 pop music [script.sonos_favourites_gaydio_london_top_40_pop_music] and updates the text field sonos playlist playing [input_text.sonos_playlist_playing] to show 'Gaydio (London) (Top 40 & Pop Music)' as the currently playing playlist."
},
"human_like": "Starts playing the Gaydio London radio station on Sonos and updates a display to show what's playing when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_gaydio_manchester_dance_electronic",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_gaydio_manchester_dance_electronic' is received via POST or PUT method, and is local only. ACTIONS: Toggle the script sonos favourites gaydio manchester dance electronic [script.sonos_favourites_gaydio_manchester_dance_electronic] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Gaydio (Manchester) (Dance & Electronic)'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_gaydio_manchester_dance_electronic') is received.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the 'sonos favourites gaydio manchester dance electronic' [script.sonos_favourites_gaydio_manchester_dance_electronic] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'Gaydio (Manchester) (Dance & Electronic)'."
},
"human_like": "Starts playing the Gaydio (Manchester) dance and electronic radio station on Sonos when triggered by a webhook.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_gb_news_radio_local_news",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_gb_news_radio_local_news' is received via POST or PUT method from a local network. CONDITIONS: None. ACTIONS: Execute the script sonos favourites gb news radio local news [script.sonos_favourites_gb_news_radio_local_news] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'GB News Radio (Local News)'.",
"natural_language": {
"trigger": "The automation is triggered when a specific local webhook request (with the ID 'sonos_gb_news_radio_local_news') is received by the system.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "It starts (or toggles) the 'sonos favourites gb news radio local news' script [script.sonos_favourites_gb_news_radio_local_news] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'GB News Radio (Local News)'."
},
"human_like": "Plays GB News Radio (Local News) on the Sonos system and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "a7c427e6-ce03-49eb-9a23-c5bbe7625aa4",
"result": {
"structured": "TRIGGER: At 05:00:00 daily. CONDITIONS: None. ACTIONS: Execute service readme.generate.",
"natural_language": {
"trigger": "Every day at 5:00 AM.",
"conditions": "There are no conditions; the automation runs unconditionally.",
"action": "Calls the 'readme.generate' service."
},
"human_like": "Automatically generates a README file every morning at 5 AM.",
"complexity": "low"
}
},
{
"id": "github_push",
"result": {
"structured": "TRIGGER: At 06:00:00 daily. CONDITIONS: None. ACTIONS: Execute shell command push_to_github.",
"natural_language": {
"trigger": "Every day at 6:00 AM.",
"conditions": "There are no conditions for this automation.",
"action": "Runs the shell command named 'push_to_github'."
},
"human_like": "Automatically pushes the configuration to GitHub every morning at 6 AM.",
"complexity": "low"
}
},
{
"id": "github_stars",
"result": {
"structured": "TRIGGER: When bacco007 homeassistantconfig stars [sensor.bacco007_homeassistantconfig_stars] changes state. CONDITIONS: The previous state is not 'unknown', 'unavailable', 'none', or '0' AND the new state is not 'unknown', 'unavailable', 'none', or '0' AND the new state is different from the previous state. ACTIONS: Create a persistent notification with title 'Github - Repo Star', ID 'github_repostar', and a message containing the friendly name of the sensor (with 'bacco007/' removed) and the state change from previous to new value.",
"natural_language": {
"trigger": "Whenever the bacco007 homeassistantconfig stars [sensor.bacco007_homeassistantconfig_stars] sensor updates its state.",
"conditions": "The automation only runs if the sensor's previous state and its new state are both valid numbers (not 'unknown', 'unavailable', 'none', or '0') and the new state is different from the old state.",
"action": "Creates a persistent notification titled 'Github - Repo Star' that shows the name of the repository (without the 'bacco007/' prefix) and the change in star count."
},
"human_like": "Sends a notification when the number of stars on the monitored GitHub repository changes.",
"complexity": "medium"
}
},
{
"id": "sonos_favourites_play_gold_104_3",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_gold_104_3' is received via POST or PUT method from a local network. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites gold 104 3 [script.sonos_favourites_gold_104_3] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'GOLD 104.3'.",
"natural_language": {
"trigger": "When a specific webhook request (sonos_gold_104_3) is sent to Home Assistant from a device on the local network using either a POST or PUT method.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "It toggles the state of the sonos favourites gold 104 3 [script.sonos_favourites_gold_104_3] script, and updates the sonos playlist playing [input_text.sonos_playlist_playing] text field to show 'GOLD 104.3'."
},
"human_like": "Starts playing the GOLD 104.3 radio station on Sonos and updates the display to show what's playing when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "'1705097473383'",
"result": {
"structured": "TRIGGER: When the time is exactly 02:30:00. CONDITIONS: The current weekday is Wednesday. ACTIONS: Call service pyscript.download_gtfs to download GTFS data from 'https://api.transport.nsw.gov.au/v1/gtfs/schedule/regionbuses/newenglandnorthwest' and save it as 'buses_nenw.zip', then wait for 10 seconds, then call service pyscript.download_gtfs to download GTFS data from 'https://api.transport.nsw.gov.au/v1/gtfs/schedule/nswtrains' and save it as 'nswtrains.zip', then wait for 10 seconds, then call service gtfs2.update_gtfs to update the GTFS feed using the file 'buses_nenw', then call service gtfs2.update_gtfs to update the GTFS feed using the file 'nswtrains'.",
"natural_language": {
"trigger": "The automation triggers every day at 2:30 AM.",
"conditions": "The automation only runs if the current day is Wednesday.",
"action": "It downloads two public transport schedule files (GTFS) from the NSW Transport API: one for regional buses in the New England North West region and one for NSW trains. After each download, it waits 10 seconds. It then updates the GTFS integration with the data from both downloaded files."
},
"human_like": "Automatically downloads and updates the public transport schedule data every Wednesday morning.",
"complexity": "low"
}
},
{
"id": "ha_count_executed_scripts",
"result": {
"structured": "TRIGGER: When a script_started event occurs. CONDITIONS: None. ACTIONS: Increment scripts executed counter [counter.scripts_executed_counter].",
"natural_language": {
"trigger": "Whenever any script in Home Assistant begins execution, indicated by a script_started event.",
"conditions": "There are no conditions; the action runs immediately after the trigger.",
"action": "Increases the count on the scripts executed counter [counter.scripts_executed_counter] by one."
},
"human_like": "Keeps track of how many times scripts have been run by incrementing a counter each time a script starts.",
"complexity": "low"
}
},
{
"id": "ha_newdevice",
"result": {
"structured": "TRIGGER: When an entity is created in the entity registry (event_type: entity_registry_updated with action: create). CONDITIONS: The created entity's domain is 'device_tracker'. ACTIONS: 1. Store the new entity's ID in a variable. 2. Create a persistent notification with details about the new device. 3. If alerts ha [input_boolean.alerts_ha] is on, then send a notification to the Slack channel tbsmarthome [#tbsmarthome] and to the mobile app mobile_app_tbiphone15promax with the device details.",
"natural_language": {
"trigger": "Whenever a new entity is added to the Home Assistant entity registry.",
"conditions": "The newly created entity must be a device tracker.",
"action": "First, the automation captures the new entity's ID. It then creates a persistent notification within Home Assistant containing the device's friendly name, entity ID, host name, IP address, and MAC address. If the 'alerts ha' [input_boolean.alerts_ha] switch is turned on, it will also send this information as a detailed alert to a Slack channel called 'tbsmarthome' and as a push notification to a mobile device named 'tbiphone15promax'."
},
"human_like": "Sends an alert whenever a new device tracker is discovered on the network, providing its details in Home Assistant and optionally forwarding them to Slack and a mobile phone.",
"complexity": "medium"
}
},
{
"id": "ha_restart",
"result": {
"structured": "TRIGGER: When a mobile app notification action event occurs with action 'restart_ha'. CONDITIONS: None. ACTIONS: Restart Home Assistant.",
"natural_language": {
"trigger": "When a user interacts with a mobile app notification and selects the 'restart_ha' action.",
"conditions": "There are no conditions that must be met.",
"action": "Restarts the Home Assistant system."
},
"human_like": "Restarts Home Assistant when the user taps the restart action in a mobile notification.",
"complexity": "low"
}
},
{
"id": "ha_shutdown",
"result": {
"structured": "TRIGGER: When Home Assistant shutdown event occurs. CONDITIONS: None. ACTIONS: Write a critical log entry with message '**** HOME ASSISTANT STOP ****'. IF alerts ha [input_boolean.alerts_ha] is on THEN send a Slack notification to tbsmarthome [#tbsmarthome] with the message 'Home Assistant Stopped' AND send a mobile notification to mobile_app_tbiphone15promax with title 'Home Assistant Stopped' and message 'Home Assistant has Stopped'.",
"natural_language": {
"trigger": "When Home Assistant begins its shutdown process.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "First, it writes a critical log entry stating '**** HOME ASSISTANT STOP ****'. Then, it checks if the alerts ha [input_boolean.alerts_ha] is turned on. If it is, it sends a notification to the Slack channel tbsmarthome [#tbsmarthome] with the message 'Home Assistant Stopped'. It also sends a push notification to the mobile device mobile_app_tbiphone15promax with the title 'Home Assistant Stopped' and the message 'Home Assistant has Stopped'."
},
"human_like": "Logs a shutdown event and sends alerts via Slack and mobile if alerts are enabled when Home Assistant is stopping.",
"complexity": "medium"
}
},
{
"id": "ha_startup",
"result": {
"structured": "TRIGGER: When Home Assistant starts. CONDITIONS: None. ACTIONS: Write a critical system log entry with the message '**** HOME ASSISTANT START ****'. Create a persistent notification with title 'Automation Startup' and message 'Waiting for startup to complete.' with ID 'hass_restart'. Reset the automation trigger counter [counter.automation_trigger_counter]. Turn off ha startup pending [input_boolean.ha_startup_pending]. Create a persistent notification with title 'Home Assistant Started' and a message containing the start time with ID 'hass_restart'. If alerts ha [input_boolean.alerts_ha] is on, then send a notification to the tbsmarthome [#tbsmarthome] channel and to mobile_app_tbiphone15promax with the start time. Dismiss the persistent notification with ID 'hass_restart'. Write a critical system log entry with the message '**** HOME ASSISTANT STARTUP COMPLETE ****'.",
"natural_language": {
"trigger": "When Home Assistant finishes starting up.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "The automation logs the start event, creates a temporary notification while startup is in progress, resets an automation trigger counter, and marks the startup as no longer pending. It then updates the notification to show the completion time. If alerts for Home Assistant are enabled, it also sends notifications to a Slack channel and a mobile device. Finally, it clears the temporary notification and logs the completion of the startup process."
},
"human_like": "This automation runs a series of cleanup, logging, and notification tasks whenever Home Assistant starts up.",
"complexity": "medium"
}
},
{
"id": "ha_count_triggered_automations",
"result": {
"structured": "TRIGGER: When any Home Assistant automation triggers (event_type: automation_triggered). CONDITIONS: The triggering automation is NOT the automation itself [automation.ha_count_triggered_automations]. ACTIONS: Increment the automation trigger counter [counter.automation_trigger_counter].",
"natural_language": {
"trigger": "Whenever any Home Assistant automation is triggered, generating an 'automation_triggered' event.",
"conditions": "The automation that triggered the event must not be this automation itself, [HA] Count Triggered Automations [automation.ha_count_triggered_automations].",
"action": "Increases the count of the automation trigger counter [counter.automation_trigger_counter] by one."
},
"human_like": "Keeps a running count of how many times other automations in the system are triggered, excluding itself.",
"complexity": "low"
}
},
{
"id": "hibp_notify_new_breach",
"result": {
"structured": "TRIGGER: When hibp breach summary [sensor.hibp_breach_summary] changes state. CONDITIONS: The new state value of hibp breach summary [sensor.hibp_breach_summary] minus the previous state value is greater than or equal to 1. ACTIONS: Send a notification to tbsmarthome [#tbsmarthome] with a Slack-formatted message 'New Breach on HIBP' and details, AND send a notification to mobile_app_tbiphone15promax with a message 'HIBP has added a new breach on one of your email addresses' and title 'New Breach on HIBP', configured for alert and badge presentation.",
"natural_language": {
"trigger": "Whenever the hibp breach summary [sensor.hibp_breach_summary] sensor updates its state.",
"conditions": "The condition checks if the numeric value of the new state is at least one greater than the previous state value, indicating a new breach has been recorded.",
"action": "Sends two notifications: one to a Slack channel via tbsmarthome [#tbsmarthome] with a formatted message about the new breach, and another to a mobile device (mobile_app_tbiphone15promax) with an alert and badge update."
},
"human_like": "Sends alerts to Slack and a mobile phone whenever the Have I Been Pwned service detects a new data breach affecting your monitored email addresses.",
"complexity": "medium"
}
},
{
"id": "presence_holiday_mode_auto_disable",
"result": {
"structured": "TRIGGER: When the group of people [group.people] changes state from not_home to home. CONDITIONS: holiday mode [input_boolean.holiday_mode] is on. ACTIONS: Turn off holiday mode [input_boolean.holiday_mode] AND send a notification via notify.alert with title 'Holiday Mode Auto Disabled' and message 'Holiday Mode Disabled'.",
"natural_language": {
"trigger": "When the group representing all people [group.people] changes from being away (not_home) to being at home (home).",
"conditions": "The holiday mode [input_boolean.holiday_mode] must be currently turned on.",
"action": "Turns off the holiday mode [input_boolean.holiday_mode] and sends a push notification with the title 'Holiday Mode Auto Disabled' and the message 'Holiday Mode Disabled'."
},
"human_like": "Automatically turns off holiday mode and sends a notification when someone returns home.",
"complexity": "low"
}
},
{
"id": "presence_holiday_mode_auto_enable",
"result": {
"structured": "TRIGGER: When group people [group.people] changes state from home to not_home AND remains not_home for 24 hours. CONDITIONS: None. ACTIONS: Turn on holiday mode [input_boolean.holiday_mode] AND send a notification via notify.alert with title 'Holiday Mode Auto Enabled' and message 'Holiday Mode Enabled', configured for time-sensitive push alerts.",
"natural_language": {
"trigger": "When the group tracking all people [group.people] changes from being at home to being away, and stays away for a full 24 hours.",
"conditions": "There are no additional conditions for this automation.",
"action": "It turns on the holiday mode [input_boolean.holiday_mode] and sends a push notification titled 'Holiday Mode Auto Enabled' with the message 'Holiday Mode Enabled'."
},
"human_like": "Automatically enables holiday mode and sends an alert when everyone has been away from home for a full day.",
"complexity": "low"
}
},
{
"id": "influx2entity_internetstats365day",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR When the time matches a pattern of every hour. CONDITIONS: None. ACTIONS: If the trigger is startup, wait for 240 seconds. Then, execute the following services: 1) Update archive internet download max 365day [sensor.archive_internet_download_max_365day] with the maximum daily download speed from the last year. 2) Update archive internet download min 365day [sensor.archive_internet_download_min_365day] with the minimum daily download speed from the last year. 3) Update archive internet download mean 365day [sensor.archive_internet_download_mean_365day] with the mean daily download speed from the last year. 4) Update archive internet upload max 365day [sensor.archive_internet_upload_max_365day] with the maximum daily upload speed from the last year. 5) Update archive internet upload min 365day [sensor.archive_internet_upload_min_365day] with the minimum daily upload speed from the last year. 6) Update archive internet upload mean 365day [sensor.archive_internet_upload_mean_365day] with the mean daily upload speed from the last year.",
"natural_language": {
"trigger": "The automation triggers when Home Assistant first starts up, when the ha startup pending [input_boolean.ha_startup_pending] flag is turned off, or once every hour.",
"conditions": "There are no conditions for this automation.",
"action": "If the automation was triggered by the Home Assistant startup, it first waits for 4 minutes. Then, it runs a series of queries to an InfluxDB database to calculate and update sensor entities with internet speed statistics from the past year. It updates sensors for the maximum, minimum, and average daily download speed, and the maximum, minimum, and average daily upload speed."
},
"human_like": "This automation updates long-term internet speed statistics (daily max, min, and average for both download and upload) from the past year, running at startup and then hourly.",
"complexity": "medium"
}
},
{
"id": "influx2entity_lastfmplaycount365day",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR Every hour (on the hour). CONDITIONS: None. ACTIONS: If the trigger was startup, wait for 240 seconds. Then, execute the service pyscript.influxdb2_query_to_entity to update sensor.archive_last_fm_playcount_365day with the total playcount from the last 365 days, and execute the service pyscript.influxdb2_query_to_entity to update sensor.archive_last_fm_dailyplaycount_365day with the daily derivative (change per day) of the playcount from the last 365 days.",
"natural_language": {
"trigger": "The automation runs when Home Assistant first starts up, when the ha startup pending [input_boolean.ha_startup_pending] switch is turned off, or once every hour.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "If the automation was triggered by Home Assistant starting up, it first waits for four minutes. Then, it runs two queries to an InfluxDB database. The first query calculates the total number of songs played over the last 365 days and updates the sensor archive last fm playcount 365day [sensor.archive_last_fm_playcount_365day]. The second query calculates the daily change in playcount over the same period and updates the sensor archive last fm dailyplaycount 365day [sensor.archive_last_fm_dailyplaycount_365day]."
},
"human_like": "Updates Last.fm music statistics sensors with the total and daily play counts from the past year, running at startup, when the system is ready, and hourly.",
"complexity": "medium"
}
},
{
"id": "c23a62bc-023c-4235-bf6d-bf768bd81006",
"result": {
"structured": "TRIGGER: When thomas baxter [person.thomas_baxter] leaves the zone home. CONDITIONS: None. ACTIONS: Turn off lights with a 20-second transition on devices 126e91428c97177372f5ef7398eb537e AND 6623c3d12a6637f37fab2c6e24c41afc AND stop media playback on devices 8fbcca75df7f6f0eb5cd1cae9194d2d2 AND 8975bd002481c313a15a4822793e8c2c AND 74e08bc2098b8b7eacd3efdba5af32f3 AND 68de45dcbb7f4a3ea545c62e767c7c8b.",
"natural_language": {
"trigger": "When thomas baxter [person.thomas_baxter] leaves the home area.",
"conditions": "There are no conditions.",
"action": "Turn off the lights associated with devices 126e91428c97177372f5ef7398eb537e and 6623c3d12a6637f37fab2c6e24c41afc, fading them out over 20 seconds, and stop any media playback on the media players associated with devices 8fbcca75df7f6f0eb5cd1cae9194d2d2, 8975bd002481c313a15a4822793e8c2c, 74e08bc2098b8b7eacd3efdba5af32f3, and 68de45dcbb7f4a3ea545c62e767c7c8b."
},
"human_like": "When Thomas leaves home, this automation turns off the lights and stops all media players to save energy.",
"complexity": "low"
}
},
{
"id": "notification_lightning_warning",
"result": {
"structured": "TRIGGER: When weather lightning count [sensor.weather_lightning_count] changes state. CONDITIONS: weather lightning distance [sensor.weather_lightning_distance] is below 10. ACTIONS: Send a notification via notify.alert with title 'Weather Alert' and message 'Lightning within 10km of home!'.",
"natural_language": {
"trigger": "Whenever the sensor tracking the count of lightning strikes, weather lightning count [sensor.weather_lightning_count], changes its value.",
"conditions": "The automation only proceeds if the reported distance to the nearest lightning strike, weather lightning distance [sensor.weather_lightning_distance], is less than 10 kilometers.",
"action": "Sends a push notification with the title 'Weather Alert' and the message 'Lightning within 10km of home!' to the designated alert channel."
},
"human_like": "Sends a weather alert notification when lightning is detected within 10 kilometers of the home.",
"complexity": "low"
}
},
{
"id": "logs_counter_reset",
"result": {
"structured": "TRIGGER: When Home Assistant starts. CONDITIONS: None. ACTIONS: Reset logs warning counter [counter.logs_warning_counter] AND reset logs critical counter [counter.logs_critical_counter] AND reset logs error counter [counter.logs_error_counter].",
"natural_language": {
"trigger": "When Home Assistant starts up.",
"conditions": "There are no conditions.",
"action": "Resets the logs warning counter [counter.logs_warning_counter], the logs critical counter [counter.logs_critical_counter], and the logs error counter [counter.logs_error_counter] to zero."
},
"human_like": "Resets all log severity counters when Home Assistant restarts.",
"complexity": "low"
}
},
{
"id": "ha_logfileincrease_notification",
"result": {
"structured": "TRIGGER: When ha logfile recent change [sensor.ha_logfile_recent_change] reports a numeric value above 1. CONDITIONS: None. ACTIONS: Send a notification via notify.alert with a title and message reporting the increase in log file size.",
"natural_language": {
"trigger": "When the sensor monitoring the Home Assistant log file size, ha logfile recent change [sensor.ha_logfile_recent_change], reports an increase of more than 1 megabyte.",
"conditions": "There are no conditions that must be met.",
"action": "Sends an alert notification with a title and message stating the exact amount the log file has increased, and configures the notification for prominent delivery."
},
"human_like": "Sends an alert when the Home Assistant log file grows by more than 1 MB, helping to identify potential issues.",
"complexity": "low"
}
},
{
"id": "logger_setdefaultlevel",
"result": {
"structured": "TRIGGER: When log level [input_select.log_level] changes state. CONDITIONS: None. ACTIONS: Set the default logger level to the current state value of log level [input_select.log_level].",
"natural_language": {
"trigger": "Whenever the selected value for the log level [input_select.log_level] changes.",
"conditions": "There are no conditions that must be met.",
"action": "Sets the default logging level for the system to match the newly selected value from the log level [input_select.log_level]."
},
"human_like": "Updates the system's default logging level whenever the user changes the level selector.",
"complexity": "low"
}
},
{
"id": "ha_log_level_selection",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When log level [input_select.log_level] changes to any state. CONDITIONS: None. ACTIONS: Set the default logger level to the current value of log level [input_select.log_level] AND Write a critical system log entry from this automation with the message '***** HASS LOG LEVEL SET TO : [current log level value] *****'.",
"natural_language": {
"trigger": "This automation runs either when Home Assistant first starts up, or whenever the log level [input_select.log_level] selection is changed.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "It sets the system-wide default logging level to the value currently selected in the log level [input_select.log_level] dropdown. It also writes a critical-level log message to the system log, indicating the new log level that has been set."
},
"human_like": "Automatically applies the selected log level to Home Assistant's logger when the system starts or when the user changes the setting.",
"complexity": "low"
}
},
{
"id": "logs_increment_counter",
"result": {
"structured": "TRIGGER: When a system log event of level ERROR occurs OR when a system log event of level WARNING occurs OR when a system log event of level CRITICAL occurs. CONDITIONS: None. ACTIONS: Choose one action sequence based on the trigger: If the trigger was a WARNING event, increment logs warning counter [counter.logs_warning_counter]. If the trigger was an ERROR event AND the event message does NOT contain the string 'logs_error_counter_increment', increment logs error counter [counter.logs_error_counter]. If the trigger was a CRITICAL event, increment logs critical counter [counter.logs_critical_counter].",
"natural_language": {
"trigger": "The automation is triggered whenever a system log event is generated with a severity level of ERROR, WARNING, or CRITICAL.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "Depending on the type of log event that triggered the automation, a different counter is incremented. For a WARNING event, the logs warning counter [counter.logs_warning_counter] is increased. For an ERROR event, the logs error counter [counter.logs_error_counter] is increased, but only if the log message does not contain the specific text 'logs_error_counter_increment'. For a CRITICAL event, the logs critical counter [counter.logs_critical_counter] is increased."
},
"human_like": "This automation keeps separate counts of warning, error, and critical log messages, filtering out specific error messages to avoid double-counting.",
"complexity": "medium"
}
},
{
"id": "influx2entity_misc",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR Every hour (on the hour). CONDITIONS: None. ACTIONS: If the trigger was Home Assistant startup, wait for 240 seconds. Then, execute the pyscript.influxdb2_query_to_entity service to query the last daily value of Reddit karma over the past year and update archive reddit karma 365day [sensor.archive_reddit_karma_365day]. Then, execute the pyscript.influxdb2_query_to_entity service to query the last daily value of Untappd beers over the past year and update archive untappd beers 365day [sensor.archive_untappd_beers_365day].",
"natural_language": {
"trigger": "This automation runs when Home Assistant first starts, when the ha startup pending [input_boolean.ha_startup_pending] switch is turned off, or every hour on the hour.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "If the automation was triggered by Home Assistant starting, it first waits for four minutes. Then, it runs two queries to an InfluxDB database. The first query fetches the most recent daily Reddit karma value from the past year and updates the archive reddit karma 365day [sensor.archive_reddit_karma_365day] sensor. The second query fetches the most recent daily Untappd beer count from the past year and updates the archive untappd beers 365day [sensor.archive_untappd_beers_365day] sensor."
},
"human_like": "Updates long-term trend sensors for Reddit karma and Untappd beer count every hour or after Home Assistant starts, ensuring the data is current.",
"complexity": "medium"
}
},
{
"id": "alert_mobile_cleared",
"result": {
"structured": "TRIGGER: When a mobile app notification is cleared (event mobile_app_notification_cleared). CONDITIONS: The notification event data contains a 'tag' field. ACTIONS: Turn off the automation itself [automation.notifications_mobile_notification_cleared] (without stopping running actions), send a clear_notification message via the notify.alert service with the tag from the event, and then turn the automation [automation.notifications_mobile_notification_cleared] back on.",
"natural_language": {
"trigger": "Whenever a notification on a mobile device is cleared, triggering the mobile_app_notification_cleared event.",
"conditions": "The cleared notification must have a 'tag' field defined in its event data.",
"action": "The automation first turns itself off (notifications mobile notification cleared [automation.notifications_mobile_notification_cleared]), then sends a command to clear the notification using the notify.alert service, passing along the notification's tag. Finally, it turns itself back on to be ready for the next event."
},
"human_like": "This automation forwards the clearing of a mobile notification to another alert system, ensuring the automation remains active afterwards.",
"complexity": "medium"
}
},
{
"id": "ha_autogroup_monitored_entities",
"result": {
"structured": "TRIGGER: When a service call is made to the group domain with service 'reload' OR every minute (time pattern). CONDITIONS: None. ACTIONS: Update group monitor_unavailable_entities with a filtered list of entities that are in state 'unknown' or 'unavailable', excluding those from ignored domains, disabled device entities, entities in group.ignored_unavailable_entities, the groups themselves, entities from devices or entities with label 'ignored', entities that changed within the last 60 seconds, and entities matching various specific patterns and integrations. Update group monitor_available_updates with a list of all update entities in state 'on'. Update group monitor_offline_integrations with a list of all entities in group.connectivity_monitors that are in state 'off'.",
"natural_language": {
"trigger": "The automation triggers either when the group.reload service is called, or once every minute.",
"conditions": "There are no conditions for this automation.",
"action": "The automation updates three monitoring groups. First, it updates the '[Group] Monitor - Unavailable Entities' group. It populates this group with a complex, filtered list of entities that are currently 'unknown' or 'unavailable'. The filter excludes many types of entities, such as those from specific domains (like 'button', 'conversation'), entities listed in a sensor of disabled entities, entities already in an 'ignored' group, entities that have changed state in the last minute, and entities from a long list of specific integrations or with specific name patterns (like 'rssfeed_', 'zigbee2mqtt', 'sensor.weather_'). Second, it updates the '[Group] Monitor - Available Updates' group with all update entities that have a state of 'on'. Third, it updates the '[Group] Monitor - Offline Integrations' group with all entities that are members of the connectivity monitors [group.connectivity_monitors] group and have a state of 'off'."
},
"human_like": "This automation automatically updates three monitoring groups every minute or when groups are reloaded: one for unavailable entities, one for available updates, and one for offline integrations, using extensive filtering to focus on relevant items.",
"complexity": "high"
}
},
{
"id": "sonos_favourites_play_msnbc",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_msnbc' is received via POST or PUT method from a local network source. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites msnbc [script.sonos_favourites_msnbc] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'MSNBC'.",
"natural_language": {
"trigger": "When a specific webhook request named 'sonos_msnbc' is sent to Home Assistant from a device on the local network using either a POST or PUT method.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "It toggles the state of the 'sonos favourites msnbc' [script.sonos_favourites_msnbc] script and updates the text field 'sonos playlist playing' [input_text.sonos_playlist_playing] to show 'MSNBC'."
},
"human_like": "Starts playing MSNBC on Sonos and updates the display when a specific webhook is triggered from a local device.",
"complexity": "low"
}
},
{
"id": "ha_autogroup_network_devices",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR When a service call to the group domain with service 'reload' occurs OR When the system time matches a pattern of every 5 minutes. CONDITIONS: None. ACTIONS: If the trigger was the startup event, wait for 240 seconds. Then, set the group 'wired_devices' to contain all device_tracker entities whose source_type attribute is 'router' and whose essid attribute is NOT defined, sorted. Set the group 'wireless_devices' to contain all device_tracker entities whose source_type attribute is 'router' and whose essid attribute IS defined, sorted. Set the group 'unknown_devices' to contain all device_tracker entities whose source_type attribute is NOT 'router' or 'bluetooth_le', whose device_type attribute is NOT 'bluetooth', 'wired', 'wireless', 'location', or 'bluetooth_le', and whose integration attribute is NOT 'iCloud3', sorted. Set the group 'bluetooth_devices' to contain all device_tracker entities whose device_type attribute is 'bluetooth', sorted. Set the group 'bluetooth_le_devices' to contain all device_tracker entities whose source_type attribute is 'bluetooth_le', sorted. Set the group 'icloud3_devices' to contain all device_tracker entities whose integration attribute is 'iCloud3', sorted.",
"natural_language": {
"trigger": "The automation runs when Home Assistant first starts up, when the ha startup pending [input_boolean.ha_startup_pending] switch is turned off, when a service call is made to reload the group configuration, or every five minutes on a scheduled basis.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "If the automation was triggered by the Home Assistant startup event, it first waits for four minutes. It then updates several groups of network devices. It creates a group for wired devices by finding all router-connected device trackers without a Wi-Fi network name, a group for wireless devices by finding router-connected device trackers with a Wi-Fi network name, and a group for unknown devices by finding device trackers that don't match common source types or device types and aren't from the iCloud3 integration. It also creates separate groups for Bluetooth devices, Bluetooth Low Energy devices, and devices tracked by the iCloud3 integration. All groups are populated with sorted lists of the relevant device tracker entities."
},
"human_like": "Automatically organizes network-connected device trackers into categorized groups (like wired, wireless, Bluetooth) on startup, schedule, or when requested.",
"complexity": "medium"
}
},
{
"id": "sonos_favourites_play_nova_90s",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_nova_90s' is received via POST or PUT method from a local network. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites nova 90s [script.sonos_favourites_nova_90s] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Nova 90s'.",
"natural_language": {
"trigger": "The automation is triggered when a specific local webhook request, identified by 'sonos_nova_90s', is received using either the POST or PUT method.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "It toggles the 'sonos favourites nova 90s' script [script.sonos_favourites_nova_90s] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Nova 90s'."
},
"human_like": "Starts playing the Nova 90s playlist on Sonos when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_nova_96_9",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_nova_96_9' is received via POST or PUT method, and the request is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites nova 96 9 [script.sonos_favourites_nova_96_9] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Nova 96.9'.",
"natural_language": {
"trigger": "The automation is triggered by a local webhook request (POST or PUT) sent to the specific endpoint 'sonos_nova_96_9'.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "The automation toggles the 'sonos favourites nova 96 9' [script.sonos_favourites_nova_96_9] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to 'Nova 96.9'."
},
"human_like": "Plays the Nova 96.9 radio station on Sonos when a specific webhook is called, and updates a display of what's currently playing.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_nova_nation",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_nova_nation' is received via POST or PUT method from a local network. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites nova nation [script.sonos_favourites_nova_nation] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Nova Nation'.",
"natural_language": {
"trigger": "When a specific webhook request (with the ID 'sonos_nova_nation') is sent to Home Assistant, either via a POST or PUT method, and originates from the local network.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "It toggles the 'sonos favourites nova nation' script [script.sonos_favourites_nova_nation] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Nova Nation'."
},
"human_like": "Starts playing the Nova Nation playlist on Sonos when a specific webhook is triggered, and updates the display to show what's playing.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_nova_throwbacks",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_nova_throwbacks' is received via POST or PUT method from a local network source. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites nova throwbacks [script.sonos_favourites_nova_throwbacks] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Nova Throwbacks'.",
"natural_language": {
"trigger": "When a specific webhook request named 'sonos_nova_throwbacks' is sent to the Home Assistant instance from the local network.",
"conditions": "There are no conditions that must be met.",
"action": "It toggles the 'sonos favourites nova throwbacks' script [script.sonos_favourites_nova_throwbacks] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Nova Throwbacks'."
},
"human_like": "Starts playing the 'Nova Throwbacks' playlist on Sonos when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "notifications_offline_integrations",
"result": {
"structured": "TRIGGER: Every minute (time pattern). CONDITIONS: At least one entity in the group connectivity monitors [group.connectivity_monitors], excluding the entity binary_sensor.ha_connected_integration_offline_integrations, has a state of 'off'. ACTIONS: 1. Set variable current_count to the number of entities meeting the condition. 2. Set variable previous_count to the integer value of offline integration count [input_number.offline_integration_count]. 3. IF current_count is not equal to previous_count THEN: a. Send a notification via notify.alert with a title, a message listing the entity IDs of the offline integrations (formatted), and action buttons for 'Restart HA' and 'Pause Alert'. b. Set the value of offline integration count [input_number.offline_integration_count] to current_count.",
"natural_language": {
"trigger": "The automation runs every minute.",
"conditions": "The automation checks if there is at least one offline integration. Specifically, it looks at all entities in the group connectivity monitors [group.connectivity_monitors], ignores the entity binary_sensor.ha_connected_integration_offline_integrations, and counts how many have a state of 'off'. The condition is true if this count is greater than zero.",
"action": "First, it calculates the current number of offline integrations and retrieves the previously stored count from offline integration count [input_number.offline_integration_count]. If the current count is different from the previous count, it sends a mobile notification with the title 'Offline Integrations Detected'. The notification message lists the names of the offline integrations (derived from their entity IDs) and provides two action buttons: one to restart Home Assistant and another to pause this specific alert. Finally, it updates the stored count in offline integration count [input_number.offline_integration_count] to the new current count."
},
"human_like": "Sends a notification when the number of offline Home Assistant integrations changes, listing the affected integrations and offering quick actions.",
"complexity": "medium"
}
},
{
"id": "003780ee-c3a1-475a-b54f-8f2ef3a5c2dcß",
"result": {
"structured": "TRIGGER: Every 20 minutes (time pattern). CONDITIONS: connected wan [binary_sensor.connected_wan] is on AND it is after sunrise AND it is before sunset. ACTIONS: Update the entity current uv index [sensor.current_uv_index].",
"natural_language": {
"trigger": "The automation runs every 20 minutes.",
"conditions": "The connected wan [binary_sensor.connected_wan] must be on, and the current time must be between sunrise and sunset.",
"action": "Updates the current uv index [sensor.current_uv_index] sensor."
},
"human_like": "Updates the UV index sensor every 20 minutes during daylight hours when the internet connection is active.",
"complexity": "low"
}
},
{
"id": "pause_alert",
"result": {
"structured": "TRIGGER: When a mobile app notification action event occurs. CONDITIONS: The event action string begins with 'pause_alert'. ACTIONS: Turn off the automation notifications clear alert [automation.notifications_clear_alert] (without stopping its current actions) AND attempt to turn off the alert entity whose ID is derived from the event action (specifically, the part after the first 12 characters) AND turn on the automation notifications clear alert [automation.notifications_clear_alert].",
"natural_language": {
"trigger": "When a notification action is received from a mobile app.",
"conditions": "The specific action taken on the notification must be one that starts with the text 'pause_alert'.",
"action": "First, it temporarily disables the 'notifications clear alert' [automation.notifications_clear_alert] automation. Then, it tries to turn off a specific alert, which is identified by the name provided in the notification action. Finally, it re-enables the 'notifications clear alert' [automation.notifications_clear_alert] automation."
},
"human_like": "Handles a 'pause alert' action from a mobile notification by temporarily stopping the alert clearing process, turning off the specified alert, and then resuming the alert clearing automation.",
"complexity": "medium"
}
},
{
"id": "sonos_favourites_play_playlists",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_playlists' is received via POST or PUT method from a local network source. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites playlists [script.sonos_favourites_playlists] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Playlists'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_playlists') is received, either via a POST or PUT method.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "It toggles the state of the 'sonos favourites playlists' script [script.sonos_favourites_playlists] and updates the text input 'sonos playlist playing' [input_text.sonos_playlist_playing] to display 'Playlists'."
},
"human_like": "Starts playing a playlist on Sonos and updates a status display when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "pyscript_getdata_untappd",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR When the time matches a pattern of every 3 hours. CONDITIONS: None. ACTIONS: If the trigger was startup, wait for 240 seconds. Then, execute the service pyscript.getdata_untappd_project52.",
"natural_language": {
"trigger": "This automation can be triggered in three ways: when Home Assistant first starts up, when the ha startup pending [input_boolean.ha_startup_pending] input boolean is turned off, or every three hours on a repeating schedule.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "If the automation was triggered by Home Assistant starting up, it first waits for four minutes (240 seconds). Regardless of the trigger, it then calls the pyscript service 'getdata_untappd_project52'."
},
"human_like": "Fetches Untappd data on Home Assistant startup, when a startup flag is cleared, or every three hours.",
"complexity": "medium"
}
},
{
"id": "pyscript_getdata_essentialenergy",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR At a time pattern matching every 15 minutes. CONDITIONS: None. ACTIONS: If the trigger is the startup event, wait for 240 seconds. Then, call the pyscript service to get data for essential energy outages current [sensor.essential_energy_outages_current] from the current outages dataset. Then, call the pyscript service to get data for essential energy outages future [sensor.essential_energy_outages_future] from the future outages dataset. Then, call the pyscript service to get data for essential energy outages cancelled [sensor.essential_energy_outages_cancelled] from the cancelled outages dataset.",
"natural_language": {
"trigger": "The automation is triggered in three situations: when Home Assistant first starts up, when the ha startup pending [input_boolean.ha_startup_pending] switch is turned off, or every 15 minutes based on a repeating time pattern.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "If the automation was triggered by the Home Assistant startup event, it first waits for 240 seconds (4 minutes). After this delay (or immediately if triggered by the other events), it runs a series of three pyscript service calls. These calls fetch outage data from Essential Energy's website, updating three sensors: one for current outages, one for future outages, and one for cancelled outages."
},
"human_like": "Fetches and updates Essential Energy power outage information at startup, when the system is ready, and every 15 minutes.",
"complexity": "medium"
}
},
{
"id": "pyscript_getdata_hazardwatch",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR at a recurring time pattern every hour. CONDITIONS: None. ACTIONS: Execute the PyScript service getdata_hazardwatch.",
"natural_language": {
"trigger": "When Home Assistant first starts up, and then once every hour after that.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "Runs the PyScript service named getdata_hazardwatch."
},
"human_like": "Fetches hazard watch data when Home Assistant starts and then continues to do so every hour.",
"complexity": "low"
}
},
{
"id": "pyscript_getdata_livetraffic",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR When the time matches the pattern every 30 minutes. CONDITIONS: None. ACTIONS: If the trigger is startup, wait for 240 seconds. Then, call the pyscript.getdata_livetrafficnsw service to update the following sensors with data from their respective URLs: getdata livetrafficnsw majorevents [sensor.getdata_livetrafficnsw_majorevents], getdata livetrafficnsw incidentslga [sensor.getdata_livetrafficnsw_incidentslga], getdata livetrafficnsw roadwork [sensor.getdata_livetrafficnsw_roadwork], getdata livetrafficnsw incidents [sensor.getdata_livetrafficnsw_incidents], getdata livetrafficnsw flood [sensor.getdata_livetrafficnsw_flood], getdata livetrafficnsw alpine [sensor.getdata_livetrafficnsw_alpine], and getdata livetrafficnsw fire [sensor.getdata_livetrafficnsw_fire].",
"natural_language": {
"trigger": "This automation runs when Home Assistant first starts, when the ha startup pending [input_boolean.ha_startup_pending] switch is turned off, or every 30 minutes on the clock.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "If the automation was triggered by the Home Assistant startup event, it first waits for 4 minutes. Then, it fetches and updates traffic data by calling a custom script service for seven different traffic hazard categories: major events, incidents by local government area, roadwork, general incidents, flood conditions, alpine conditions, and fire conditions. Each service call updates a specific sensor with data from a dedicated NSW Live Traffic URL."
},
"human_like": "Fetches and updates NSW Live Traffic data for various hazards on startup, after the system is ready, and every 30 minutes to keep information current.",
"complexity": "medium"
}
},
{
"id": "pyscript_getdata_yourspotify",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR When the system time matches a pattern of every 5 minutes. CONDITIONS: None. ACTIONS: If the trigger was the startup event, wait for 240 seconds, then call the pyscript service getdata_yourspotify. Otherwise, call the pyscript service getdata_yourspotify immediately.",
"natural_language": {
"trigger": "The automation triggers in three situations: when Home Assistant first starts up, when the ha startup pending [input_boolean.ha_startup_pending] helper is turned off, or every 5 minutes based on the system clock.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "If the automation was triggered by Home Assistant starting up, it waits for 4 minutes (240 seconds) before calling the 'getdata_yourspotify' PyScript service. For any other trigger, it calls the 'getdata_yourspotify' service immediately."
},
"human_like": "This automation periodically fetches data from Your Spotify, starting after Home Assistant boots up and then running every 5 minutes.",
"complexity": "medium"
}
},
{
"id": "Python Script - Update ha_overview",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When the system time matches minutes divisible by 30 (every 30 minutes). CONDITIONS: None. ACTIONS: Execute the Python script ha_overview.",
"natural_language": {
"trigger": "When Home Assistant first starts up, or every 30 minutes on the clock (e.g., at :00 and :30 past the hour).",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "Runs the Python script named ha_overview."
},
"human_like": "Runs a system overview script when Home Assistant starts and every half hour to update status information.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_radio_hauraki_99_0_rock_music",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_radio_hauraki_99_0_rock_music' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites radio hauraki 99 0 rock music [script.sonos_favourites_radio_hauraki_99_0_rock_music] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Radio Hauraki 99.0 (Rock Music)'.",
"natural_language": {
"trigger": "When a specific local webhook request (sonos_radio_hauraki_99_0_rock_music) is received, either via a POST or PUT method.",
"conditions": "There are no conditions that need to be met for this automation to proceed.",
"action": "It toggles the 'sonos favourites radio hauraki 99 0 rock music' script [script.sonos_favourites_radio_hauraki_99_0_rock_music] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Radio Hauraki 99.0 (Rock Music)'."
},
"human_like": "Starts playing Radio Hauraki 99.0 (Rock Music) on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_radio_x",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_radio_x' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle sonos favourites radio x [script.sonos_favourites_radio_x] AND set sonos playlist playing [input_text.sonos_playlist_playing] to 'Radio X'.",
"natural_language": {
"trigger": "When a local webhook request with the specific ID 'sonos_radio_x' is received, using either the POST or PUT HTTP method.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "It toggles the state of the sonos favourites radio x [script.sonos_favourites_radio_x] script and updates the sonos playlist playing [input_text.sonos_playlist_playing] text field to show 'Radio X'."
},
"human_like": "Starts playing Radio X on Sonos when a specific webhook is triggered, and updates a display to show what's playing.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_radio_x_00s",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_radio_x_00s' is received via POST or PUT method from a local network. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites radio x 00s [script.sonos_favourites_radio_x_00s] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Radio X 00s'.",
"natural_language": {
"trigger": "When a specific webhook request named 'sonos_radio_x_00s' is sent to Home Assistant from a device on the local network using either the POST or PUT method.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "It toggles the 'sonos favourites radio x 00s' script [script.sonos_favourites_radio_x_00s] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Radio X 00s'."
},
"human_like": "Starts playing the Radio X 00s station on Sonos and updates the display to show what's playing when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_radio_x_90s",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_radio_x_90s' is received via POST or PUT method, and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites radio x 90s [script.sonos_favourites_radio_x_90s] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Radio X 90s'.",
"natural_language": {
"trigger": "The automation is triggered by receiving a specific local webhook request (with the ID 'sonos_radio_x_90s') using either the POST or PUT method.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "It toggles the Sonos favourites radio x 90s script [script.sonos_favourites_radio_x_90s] and updates the sonos playlist playing [input_text.sonos_playlist_playing] text field to show 'Radio X 90s'."
},
"human_like": "Starts playing Radio X 90s on Sonos and updates the display when a specific webhook is called.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_radio_x_chilled",
"result": {
"structured": "TRIGGER: When a webhook request is received at the endpoint 'sonos_radio_x_chilled' using the POST or PUT method, and the request is local only. CONDITIONS: None. ACTIONS: Toggle the state of the script sonos favourites radio x chilled [script.sonos_favourites_radio_x_chilled] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Radio X Chilled'.",
"natural_language": {
"trigger": "When a specific local webhook, identified as 'sonos_radio_x_chilled', is called via a POST or PUT request.",
"conditions": "There are no conditions that need to be met for this automation to run.",
"action": "It toggles the 'sonos favourites radio x chilled' script [script.sonos_favourites_radio_x_chilled] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Radio X Chilled'."
},
"human_like": "Starts playing Radio X Chilled on Sonos when a specific webhook is triggered, and updates the display to show what's playing.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_radio_x_classic_rock",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_radio_x_classic_rock' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Execute the script sonos favourites radio x classic rock [script.sonos_favourites_radio_x_classic_rock] and set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Radio X Classic Rock'.",
"natural_language": {
"trigger": "When a specific local webhook request (sonos_radio_x_classic_rock) is received, either via POST or PUT.",
"conditions": "There are no conditions for this automation.",
"action": "Runs the 'sonos favourites radio x classic rock' script [script.sonos_favourites_radio_x_classic_rock] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Radio X Classic Rock'."
},
"human_like": "Plays Radio X Classic Rock on Sonos and updates the displayed playlist name when triggered by a webhook.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_radio_x_classic_rock_classic_rock",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_radio_x_classic_rock_classic_rock' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites radio x classic rock classic rock [script.sonos_favourites_radio_x_classic_rock_classic_rock] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Radio X Classic Rock (Classic Rock)'.",
"natural_language": {
"trigger": "When a specific local webhook request is received, identified by the ID 'sonos_radio_x_classic_rock_classic_rock'.",
"conditions": "There are no conditions that need to be met.",
"action": "It toggles the playback of the 'Radio X Classic Rock' station by activating the script sonos favourites radio x classic rock classic rock [script.sonos_favourites_radio_x_classic_rock_classic_rock] and updates the text field sonos playlist playing [input_text.sonos_playlist_playing] to show that 'Radio X Classic Rock (Classic Rock)' is now playing."
},
"human_like": "Starts playing Radio X Classic Rock on Sonos and updates the displayed playlist name when triggered by a webhook.",
"complexity": "low"
}
},
{
"id": "notify_action_restart_ha",
"result": {
"structured": "TRIGGER: When a mobile app notification action event occurs with action 'notify_action_restart_ha'. CONDITIONS: None. ACTIONS: Restart Home Assistant.",
"natural_language": {
"trigger": "When a user taps the 'notify_action_restart_ha' action button on a mobile app notification.",
"conditions": "There are no additional conditions that must be met.",
"action": "Restarts the Home Assistant core service."
},
"human_like": "Restarts Home Assistant when the user taps the corresponding action button in a mobile notification.",
"complexity": "low"
}
},
{
"id": "notify_action_start_sungather",
"result": {
"structured": "TRIGGER: When a mobile app notification action event occurs with action 'notify_action_start_sungather'. CONDITIONS: None. ACTIONS: Start the Home Assistant addon '7b536ee6_sungather'.",
"natural_language": {
"trigger": "When a user taps the 'notify_action_start_sungather' action button on a mobile app notification.",
"conditions": "There are no conditions that must be met.",
"action": "Starts the Home Assistant addon named '7b536ee6_sungather'."
},
"human_like": "Starts the Sungather addon when a user taps a specific notification action button on their mobile device.",
"complexity": "low"
}
},
{
"id": "notify_action_restart_zigbee2mqtt",
"result": {
"structured": "TRIGGER: When a mobile app notification action event occurs with action value 'notify_action_restart_zigbee2mqtt'. CONDITIONS: None. ACTIONS: Restart the Home Assistant addon '45df7312_zigbee2mqtt_edge'.",
"natural_language": {
"trigger": "When a user taps a specific action button ('notify_action_restart_zigbee2mqtt') in a notification sent to a mobile device.",
"conditions": "There are no additional conditions that must be met.",
"action": "Restarts the Zigbee2MQTT Edge addon in Home Assistant."
},
"human_like": "Restarts the Zigbee2MQTT Edge addon when a user taps the corresponding action button in a mobile notification.",
"complexity": "low"
}
},
{
"id": "'Admin: Run Chores'",
"result": {
"structured": "TRIGGER: When the time matches a pattern of every 3 hours (hours: /3). CONDITIONS: None. ACTIONS: Execute the shell command run_chores.",
"natural_language": {
"trigger": "The automation triggers every three hours, on the hour (e.g., 0:00, 3:00, 6:00).",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "Runs a shell command named 'run_chores'."
},
"human_like": "Runs a set of maintenance scripts every three hours.",
"complexity": "low"
}
},
{
"id": "presence_night_mode",
"result": {
"structured": "TRIGGER: When sun [sun.sun] changes to below_horizon OR when sun [sun.sun] changes to above_horizon. CONDITIONS: None. ACTIONS: If the trigger was sun_up, then turn off night mode [input_boolean.night_mode]. If the trigger was sun_down, then turn on night mode [input_boolean.night_mode].",
"natural_language": {
"trigger": "When the sun [sun.sun] sets (changes to below the horizon) or when the sun [sun.sun] rises (changes to above the horizon).",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "If the sun has risen, it turns off the night mode [input_boolean.night_mode]. If the sun has set, it turns on the night mode [input_boolean.night_mode]."
},
"human_like": "Automatically turns night mode on at sunset and off at sunrise.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_sky_news_radio",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_sky_news_radio' is received via POST or PUT method, locally only. CONDITIONS: None. ACTIONS: Toggle sonos favourites sky news radio [script.sonos_favourites_sky_news_radio] AND set sonos playlist playing [input_text.sonos_playlist_playing] value to 'Sky News Radio'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_sky_news_radio') is sent to the system using either the POST or PUT method.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "The automation toggles the 'sonos favourites sky news radio' script [script.sonos_favourites_sky_news_radio] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Sky News Radio'."
},
"human_like": "Starts playing Sky News Radio on Sonos and updates the display when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_sky_sports_radio",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_sky_sports_radio' is received via POST or PUT method from a local network. CONDITIONS: None. ACTIONS: Execute script toggle [script.toggle] on target entity sonos favourites sky sports radio [script.sonos_favourites_sky_sports_radio] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Sky Sports Radio'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_sky_sports_radio') is sent to the system.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "It toggles the 'sonos favourites sky sports radio' script [script.sonos_favourites_sky_sports_radio] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Sky Sports Radio'."
},
"human_like": "Starts playing Sky Sports Radio on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "influx2entity_solar365dayyield",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR Every hour (time pattern: hours: /1). CONDITIONS: None. ACTIONS: If the trigger is startup, wait for 240 seconds. Then, call service pyscript.influxdb2_query_to_entity to update archive solar yield 365day [sensor.archive_solar_yield_365day] with the maximum daily solar yield over the past year. Then, call service pyscript.influxdb2_query_to_entity to update archive solar yield 365day avg [sensor.archive_solar_yield_365day_avg] with the 7-day moving average of the maximum daily solar yield over the past year.",
"natural_language": {
"trigger": "The automation runs when Home Assistant starts, when the ha startup pending [input_boolean.ha_startup_pending] input boolean is turned off, or every hour on the hour.",
"conditions": "There are no conditions for this automation.",
"action": "If the automation was triggered by the Home Assistant startup event, it first waits for 240 seconds. Then, it performs two data queries to an InfluxDB database. The first query calculates the maximum daily solar power yield from the past year and updates the sensor archive solar yield 365day [sensor.archive_solar_yield_365day]. The second query calculates a 7-day moving average of those daily maximum yields and updates the sensor archive solar yield 365day avg [sensor.archive_solar_yield_365day_avg]."
},
"human_like": "Updates long-term solar energy production statistics, including yearly total and weekly average, at system startup and every hour.",
"complexity": "medium"
}
},
{
"id": "solcast_update",
"result": {
"structured": "TRIGGER: Every 2 hours (time pattern). CONDITIONS: connected wan [binary_sensor.connected_wan] is on AND the current time is after sunrise AND before sunset. ACTIONS: Wait for a random delay between 30 and 360 seconds, then call the service solcast_solar.update_forecasts.",
"natural_language": {
"trigger": "The automation runs every two hours, on the hour.",
"conditions": "The automation only proceeds if the connected wan [binary_sensor.connected_wan] is reporting an 'on' state, and if the current time is during the day, meaning it is after sunrise and before sunset.",
"action": "After waiting for a random amount of time between 30 seconds and 6 minutes, the automation updates the solar forecasts using the 'solcast_solar.update_forecasts' service."
},
"human_like": "Updates solar energy forecasts every two hours during the daytime, but only when the internet connection is active.",
"complexity": "medium"
}
},
{
"id": "notify_action_restart_gdbackup",
"result": {
"structured": "TRIGGER: When a mobile app notification action event occurs with action 'notify_action_restart_gdbackup'. CONDITIONS: None. ACTIONS: Start the Hass.io addon 'cebe7a76_hassio_google_drive_backup'.",
"natural_language": {
"trigger": "When a user taps the 'notify_action_restart_gdbackup' action button on a mobile app notification.",
"conditions": "There are no conditions that must be met.",
"action": "Starts the Hass.io addon named 'cebe7a76_hassio_google_drive_backup' to initiate a Google Drive backup."
},
"human_like": "Starts the Google Drive backup addon when the user taps a specific action button in a mobile notification.",
"complexity": "low"
}
},
{
"id": "notify_action_start_weatherflow2mqtt",
"result": {
"structured": "TRIGGER: When a mobile app notification action event occurs with action value 'notify_action_start_weatherflow2mqtt'. CONDITIONS: None. ACTIONS: Start the Home Assistant add-on '67f4b1af_weatherflow2mqtt'.",
"natural_language": {
"trigger": "When a user taps the specific notification action button labeled 'notify_action_start_weatherflow2mqtt' on their mobile device.",
"conditions": "There are no conditions that must be met.",
"action": "Starts the Home Assistant add-on with the ID '67f4b1af_weatherflow2mqtt'."
},
"human_like": "Starts the Weatherflow2MQTT add-on when the user taps a specific notification action on their phone.",
"complexity": "low"
}
},
{
"id": "'[Home] Sunset Notification'",
"result": {
"structured": "TRIGGER: When sunset occurs in 5 minutes. CONDITIONS: None. ACTIONS: Send a notification via notify.alert with the title 'The Sun has gone down and the moon has come up' and the message 'Sunset in 5 minutes!', setting the notification badge to 1 and the interruption level to time-sensitive, and presenting it as an alert with a badge.",
"natural_language": {
"trigger": "Five minutes before the sun sets.",
"conditions": "There are no conditions that must be met.",
"action": "Sends a notification with the title 'The Sun has gone down and the moon has come up' and the message 'Sunset in 5 minutes!'. The notification is configured to show a badge, be marked as time-sensitive, and appear as an alert."
},
"human_like": "Sends a time-sensitive notification five minutes before sunset to alert you that the sun is about to set.",
"complexity": "low"
}
},
{
"id": "'1712972875484'",
"result": {
"structured": "TRIGGER: When a webhook with ID 'synology_notify' is received via POST or PUT method, and the request is local-only. CONDITIONS: None. ACTIONS: Send a notification via notify.alert with title 'Synology Notification', message containing the text from the webhook payload ({{trigger.json.text}}), and additional data including tag 'synology_notify', notification_id 'synology_notify', push settings (badge: 1, sound: none, interruption-level: time-sensitive), presentation options (alert, badge), group 'alerts', and two URI actions: 'OPEN WWW' linking to http://192.168.1.100:5000 and 'OPEN APP' linking to app://com.synology.DSfinder.",
"natural_language": {
"trigger": "When a local webhook request with the specific ID 'synology_notify' is received, using either the POST or PUT HTTP method.",
"conditions": "There are no conditions that must be met.",
"action": "Sends an alert notification with the title 'Synology Notification'. The message content is taken directly from the text field in the webhook's JSON payload. The notification is configured with a badge count of 1, no sound, and a time-sensitive interruption level. It will appear in an 'alerts' group and includes two quick-action buttons: one to open the Synology web interface and another to open the Synology mobile app."
},
"human_like": "Forwards notifications from a Synology device to your phone as an actionable alert, allowing you to quickly open the web interface or mobile app.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_talksport",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_talksport' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle sonos favourites talksport [script.sonos_favourites_talksport] AND set sonos playlist playing [input_text.sonos_playlist_playing] value to 'talkSPORT'.",
"natural_language": {
"trigger": "When a local webhook request is made to the specific endpoint 'sonos_talksport' using either the POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the 'sonos favourites talksport' script [script.sonos_favourites_talksport] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'talkSPORT'."
},
"human_like": "Plays talkSPORT radio on the Sonos system when triggered by a specific webhook.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_talksport_2_sports_talk_news",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_talksport_2_sports_talk_news' is received via POST or PUT method from a local network. ACTIONS: Execute the script sonos favourites talksport 2 sports talk news [script.sonos_favourites_talksport_2_sports_talk_news] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'talkSPORT 2 (Sports Talk & News)'.",
"natural_language": {
"trigger": "When a specific local webhook request (sonos_talksport_2_sports_talk_news) is received.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the 'sonos favourites talksport 2 sports talk news' [script.sonos_favourites_talksport_2_sports_talk_news] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to indicate 'talkSPORT 2 (Sports Talk & News)' is now playing."
},
"human_like": "Starts playing the talkSPORT 2 radio station on Sonos when a specific webhook is triggered, and updates the display to show what's playing.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_tamworth_s_88_9fm",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_tamworth_s_88_9fm' is received via POST or PUT method from a local network. ACTIONS: Toggle the script sonos favourites tamworth s 88 9fm [script.sonos_favourites_tamworth_s_88_9fm] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Tamworth's 88.9FM'.",
"natural_language": {
"trigger": "When a specific webhook request (with the ID 'sonos_tamworth_s_88_9fm') is sent to Home Assistant from a local device using either a POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the 'sonos favourites tamworth s 88 9fm' [script.sonos_favourites_tamworth_s_88_9fm] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'Tamworth's 88.9FM'."
},
"human_like": "Starts playing Tamworth's 88.9FM radio on Sonos and updates the display when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "ha_templates_reloaded",
"result": {
"structured": "TRIGGER: When the event 'event_template_reloaded' occurs. CONDITIONS: None. ACTIONS: Write a critical log entry to the system log with the logger name set to the automation's entity ID and the message '**** Templates have been reloaded. ****', then send a browser notification with the same message that lasts for 30 seconds, then wait for 1 second, then refresh the browser.",
"natural_language": {
"trigger": "When the Home Assistant system event for template reloading is fired.",
"conditions": "There are no conditions for this automation.",
"action": "Logs a critical message to the system log, sends a notification to the browser that stays visible for 30 seconds, waits one second, and then refreshes the browser window."
},
"human_like": "Logs and notifies the user when Home Assistant templates are reloaded, then refreshes the browser.",
"complexity": "low"
}
},
{
"id": "notifications_todaysbirthdays",
"result": {
"structured": "TRIGGER: At 07:00. CONDITIONS: The list of anniversary entities with state 0 contains at least one item. ACTIONS: Send a notification titled \"This Week's Birthdays\" with a message listing the friendly names of all anniversary entities that have a state of 0.",
"natural_language": {
"trigger": "The automation triggers daily at 7:00 AM.",
"conditions": "The automation only proceeds if there is at least one anniversary entity currently in a state of 0.",
"action": "Sends a push notification titled \"This Week's Birthdays\" containing a list of the friendly names of all anniversary entities that are in a state of 0."
},
"human_like": "Sends a morning notification listing any birthdays occurring today.",
"complexity": "medium"
}
},
{
"id": "sonos_favourites_play_triplem_2000s",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_triplem_2000s' is received via POST or PUT method, and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites triplem 2000s [script.sonos_favourites_triplem_2000s] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'TripleM 2000s'.",
"natural_language": {
"trigger": "When a specific local webhook request (sonos_triplem_2000s) is received by the system.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the 'sonos favourites triplem 2000s' script [script.sonos_favourites_triplem_2000s] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'TripleM 2000s'."
},
"human_like": "Starts playing the TripleM 2000s playlist on Sonos when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_triplem_greatest_hits_digital",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_triplem_greatest_hits_digital' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Execute the script sonos favourites triplem greatest hits digital [script.sonos_favourites_triplem_greatest_hits_digital] and set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'TripleM Greatest Hits Digital'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_triplem_greatest_hits_digital') is received, either via a POST or PUT method.",
"conditions": "There are no conditions that must be met for this automation to proceed.",
"action": "It toggles the execution of the 'sonos favourites triplem greatest hits digital' [script.sonos_favourites_triplem_greatest_hits_digital] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'TripleM Greatest Hits Digital'."
},
"human_like": "Starts playing the TripleM Greatest Hits Digital playlist on Sonos when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_triplem_soft_rock_digital",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_triplem_soft_rock_digital' is received via POST or PUT method, and the request is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites triplem soft rock digital [script.sonos_favourites_triplem_soft_rock_digital] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'TripleM Soft Rock Digital'.",
"natural_language": {
"trigger": "When a specific local webhook request, identified by the ID 'sonos_triplem_soft_rock_digital', is received using either the POST or PUT method.",
"conditions": "There are no conditions that must be met for this automation to proceed.",
"action": "It toggles the state of the script sonos favourites triplem soft rock digital [script.sonos_favourites_triplem_soft_rock_digital] and updates the text field sonos playlist playing [input_text.sonos_playlist_playing] to show 'TripleM Soft Rock Digital' as the currently playing playlist."
},
"human_like": "Starts playing the TripleM Soft Rock Digital radio station on Sonos and updates the display when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_triple_j_hottest",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_triple_j_hottest' is received via POST or PUT method and is local only. ACTIONS: Execute the script sonos favourites triple j hottest [script.sonos_favourites_triple_j_hottest] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Triple J Hottest'.",
"natural_language": {
"trigger": "When a specific local webhook request (sonos_triple_j_hottest) is received using either a POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the 'sonos favourites triple j hottest' [script.sonos_favourites_triple_j_hottest] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to 'Triple J Hottest'."
},
"human_like": "Starts playing the Triple J Hottest playlist on Sonos when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_triple_j_new_south_wales",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_triple_j_new_south_wales' is received via POST or PUT method, locally only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites triple j new south wales [script.sonos_favourites_triple_j_new_south_wales] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'triple j (New South Wales)'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_triple_j_new_south_wales') is received using either a POST or PUT method.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "It toggles the 'sonos favourites triple j new south wales' [script.sonos_favourites_triple_j_new_south_wales] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'triple j (New South Wales)'."
},
"human_like": "Starts playing the Triple J (New South Wales) radio station on Sonos when triggered by a webhook, and updates the display to show what's playing.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_triple_m_104_9_sydney",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_triple_m_104_9_sydney' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites triple m 104 9 sydney [script.sonos_favourites_triple_m_104_9_sydney] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Triple M 104.9 Sydney'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_triple_m_104_9_sydney') is received, either via a POST or PUT method.",
"conditions": "There are no conditions that need to be met for this automation to proceed.",
"action": "It toggles the 'sonos favourites triple m 104 9 sydney' script [script.sonos_favourites_triple_m_104_9_sydney] to start or stop playback, and it updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Triple M 104.9 Sydney'."
},
"human_like": "Starts or stops playing the Triple M 104.9 Sydney radio station on Sonos when a specific webhook is triggered, and updates the display of what's currently playing.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_triple_m_105_1_melbourne",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_triple_m_105_1_melbourne' is received via POST or PUT method from a local network source. CONDITIONS: None. ACTIONS: Execute the script sonos favourites triple m 105 1 melbourne [script.sonos_favourites_triple_m_105_1_melbourne] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Triple M 105.1 Melbourne'.",
"natural_language": {
"trigger": "When a specific local webhook request (sonos_triple_m_105_1_melbourne) is received, either via POST or PUT.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "It toggles the 'sonos favourites triple m 105 1 melbourne' script [script.sonos_favourites_triple_m_105_1_melbourne] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Triple M 105.1 Melbourne'."
},
"human_like": "Plays Triple M 105.1 Melbourne on Sonos and updates the display when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_triple_m_80s_sydney",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_triple_m_80s_sydney' is received via POST or PUT method and is local only. ACTIONS: Toggle sonos favourites triple m 80s sydney [script.sonos_favourites_triple_m_80s_sydney] AND set sonos playlist playing [input_text.sonos_playlist_playing] value to 'Triple M 80s (Sydney)'.",
"natural_language": {
"trigger": "When a specific local webhook request (sonos_triple_m_80s_sydney) is received, either via a POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "It toggles the state of the 'sonos favourites triple m 80s sydney' [script.sonos_favourites_triple_m_80s_sydney] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'Triple M 80s (Sydney)'."
},
"human_like": "Plays the Triple M 80s (Sydney) radio station on Sonos and updates the display of the currently playing playlist when triggered by a webhook.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_triple_m_90s_sydney",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_triple_m_90s_sydney' is received via POST or PUT method, and the request is local only. CONDITIONS: None. ACTIONS: Execute the script sonos favourites triple m 90s sydney [script.sonos_favourites_triple_m_90s_sydney] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Triple M 90s (Sydney)'.",
"natural_language": {
"trigger": "When a local webhook request (using POST or PUT) is received with the specific ID 'sonos_triple_m_90s_sydney'.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "It toggles the script sonos favourites triple m 90s sydney [script.sonos_favourites_triple_m_90s_sydney] and updates the text field sonos playlist playing [input_text.sonos_playlist_playing] to show 'Triple M 90s (Sydney)'."
},
"human_like": "Starts playing the Triple M 90s (Sydney) radio station on Sonos and updates the display of the currently playing playlist when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_triple_m_classic_rock_digital_sydney",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_triple_m_classic_rock_digital_sydney' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites triple m classic rock digital sydney [script.sonos_favourites_triple_m_classic_rock_digital_sydney] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Triple M Classic Rock Digital (Sydney)'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_triple_m_classic_rock_digital_sydney') is received, either via a POST or PUT method.",
"conditions": "There are no conditions that need to be met for this automation to run.",
"action": "Toggles the 'sonos favourites triple m classic rock digital sydney' script [script.sonos_favourites_triple_m_classic_rock_digital_sydney] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Triple M Classic Rock Digital (Sydney)'."
},
"human_like": "Starts playing the Triple M Classic Rock Digital (Sydney) station on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_triple_m_hard_n_heavy_sydney",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_triple_m_hard_n_heavy_sydney' is received via POST or PUT method from a local network source. CONDITIONS: None. ACTIONS: Toggle sonos favourites triple m hard n heavy sydney [script.sonos_favourites_triple_m_hard_n_heavy_sydney] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Triple M Hard n Heavy (Sydney)'.",
"natural_language": {
"trigger": "When a specific local webhook request (sonos_triple_m_hard_n_heavy_sydney) is received.",
"conditions": "There are no conditions that must be met.",
"action": "It toggles the 'sonos favourites triple m hard n heavy sydney' script [script.sonos_favourites_triple_m_hard_n_heavy_sydney] and updates the 'sonos playlist playing' text field [input_text.sonos_playlist_playing] to show 'Triple M Hard n Heavy (Sydney)'."
},
"human_like": "Starts playing the Triple M Hard n Heavy (Sydney) radio station on Sonos when triggered by a webhook, and updates the display to show what's playing.",
"complexity": "low"
}
},
{
"id": "ha_autogroup_tvguide",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR When a service call is made to the group domain with service reload OR Every hour (on the hour). CONDITIONS: None. ACTIONS: If the trigger is startup, wait for 240 seconds. Then, set the group tvguide_fta to a sorted list of all entities that have an attribute 'category' equal to 'tvguide' and an attribute 'channel_group' equal to 'FTA'. Set the group tvguide_foxtel_news to a sorted list of all entities that have an attribute 'category' equal to 'tvguide' and an attribute 'channel_group' equal to 'Foxtel News'. Set the group tvguide_foxtel_sport to a sorted list of all entities that have an attribute 'category' equal to 'tvguide' and an attribute 'channel_group' equal to 'Foxtel Sport'. Set the group tvguide_optus_sport to a sorted list combining: 1) all entities with entity_id matching the pattern 'sensor.tvguide_optussport*', and 2) all entities that have an attribute 'category' equal to 'tvguide' and an attribute 'channel_group' equal to 'Optus'. Set the group tvguide_uk to a sorted list of all entities that have an attribute 'category' equal to 'tvguide' and an attribute 'channel_group' equal to 'UK'. Set the group tvguide_uk_sport to a sorted list combining: 1) all entities that have an attribute 'category' equal to 'tvguide', an attribute 'channel_group' equal to 'UK', and an entity_id matching the pattern 'sensor.tvguide_eurosport*', 2) all entities that have an attribute 'category' equal to 'tvguide', an attribute 'channel_group' equal to 'UK', and an entity_id matching the pattern 'sensor.tvguide_sky_sports*', and 3) all entities that have an attribute 'category' equal to 'tvguide', an attribute 'channel_group' equal to 'UK', and an entity_id matching the pattern 'sensor.tvguide_tnt*'. Set the group tvguide_uk_radio to a sorted list of all entities that have an attribute 'category' equal to 'tvguide' and an attribute 'channel_group' equal to 'UKRadio'. Set the group tvguide_us to a sorted list of all entities that have an attribute 'category' equal to 'tvguide' and an attribute 'channel_group' equal to 'US'.",
"natural_language": {
"trigger": "The automation runs when Home Assistant first starts up, when the ha startup pending [input_boolean.ha_startup_pending] switch is turned off, when the group configuration is manually reloaded via a service call, or once every hour.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "If the automation was triggered by the Home Assistant startup, it first waits for 4 minutes. It then updates several TV guide groups. It populates each group with a sorted list of sensor entities based on their 'category' and 'channel_group' attributes. Specifically, it creates groups for Free-to-Air (FTA) channels, Foxtel News channels, Foxtel Sport channels, Optus Sport channels (combining pattern-matched and attribute-matched entities), UK channels, UK Sport channels (combining entities from several specific sport channel patterns), UK Radio channels, and US channels."
},
"human_like": "Automatically organizes TV guide sensors into channel groups based on their category and channel group attributes, updating these groups on startup, when pending startup is complete, when groups are reloaded, or hourly.",
"complexity": "high"
}
},
{
"id": "unavailable_entities_notification",
"result": {
"structured": "TRIGGER: When unavailable entities [sensor.unavailable_entities] changes state. CONDITIONS: The previous state AND the new state of unavailable entities [sensor.unavailable_entities] are both numeric values. ACTIONS: If unavailable entities [sensor.unavailable_entities] is below 1, dismiss the persistent notification with ID 'unavailable_entities'. Otherwise, create a persistent notification with ID 'unavailable_entities', title 'Unavailable Entities', and a message listing the entity IDs from the sensor's attribute.",
"natural_language": {
"trigger": "Whenever the state of the unavailable entities [sensor.unavailable_entities] sensor changes.",
"conditions": "The automation only runs if both the previous state and the new state of the unavailable entities [sensor.unavailable_entities] sensor are valid numbers.",
"action": "If the sensor reports a value less than 1 (meaning no unavailable entities), it dismisses any existing notification about unavailable entities. If the sensor reports 1 or more, it creates a new persistent notification titled 'Unavailable Entities' that lists all the unavailable entity IDs."
},
"human_like": "Shows a persistent notification when there are unavailable devices or entities, and clears it when everything is back online.",
"complexity": "medium"
}
},
{
"id": "notifications_updates_available",
"result": {
"structured": "TRIGGER: When the time matches a pattern of every 3 hours OR When home assistant core update [update.home_assistant_core_update] becomes on OR When home assistant operating system update [update.home_assistant_operating_system_update] becomes on OR When hacs update [update.hacs_update] becomes on. CONDITIONS: The current time is between 06:00:00 and 20:00:00. ACTIONS: Send a notification via notify.alert with title 'Updates Available' and a message listing all update entities that are on, have defined latest_version and installed_version attributes, and whose latest_version is not in a list of ignored values. The message formats each update's name and version change. Also create a persistent notification with the same title and message.",
"natural_language": {
"trigger": "The automation triggers every three hours, or whenever the home assistant core update [update.home_assistant_core_update], home assistant operating system update [update.home_assistant_operating_system_update], or hacs update [update.hacs_update] becomes available (state changes to 'on').",
"conditions": "The automation only runs if the current time is between 6:00 AM and 8:00 PM.",
"action": "Sends a mobile alert and creates a persistent notification titled 'Updates Available'. The message lists all update entities that are currently available, showing their name and the version change from the installed version to the latest version, provided the data is valid and not in a list of ignored states."
},
"human_like": "Sends a notification during daytime hours when system or add-on updates become available, or on a regular three-hour schedule.",
"complexity": "medium"
}
},
{
"id": "'1696920090820'",
"result": {
"structured": "TRIGGER: When bom average [sensor.bom_average] becomes unavailable AND remains unavailable for 2 minutes. CONDITIONS: None. ACTIONS: Execute service multiscrape.trigger_bom_average.",
"natural_language": {
"trigger": "When the bom average [sensor.bom_average] sensor reports a state of 'unavailable' and stays in that state for two minutes.",
"conditions": "There are no conditions that must be met.",
"action": "Triggers the 'multiscrape.trigger_bom_average' service to attempt to update the data."
},
"human_like": "Automatically tries to refresh the BOM average data if it becomes unavailable for two minutes.",
"complexity": "low"
}
},
{
"id": "'1702689288792'",
"result": {
"structured": "TRIGGER: When the tag attribute of blueforcer awtrix light latest release [sensor.blueforcer_awtrix_light_latest_release] changes. CONDITIONS: None. ACTIONS: Wait for 2 minutes, then publish an MQTT message to topic 'pixelclock/doupdate', then send a mobile notification titled 'pixelclock Updated' with message 'pixelclock updated with latest firmware' (tag: pixelclock_updated, notification_id: pixelclock_updated), then create a persistent notification titled 'pixelclock Update' with message 'pixelclock updated with latest firmware' (notification_id: pixelclock_updated).",
"natural_language": {
"trigger": "Whenever the tag attribute of the sensor blueforcer awtrix light latest release [sensor.blueforcer_awtrix_light_latest_release] changes.",
"conditions": "There are no conditions that must be met.",
"action": "After a two-minute delay, the automation publishes an MQTT command to the topic 'pixelclock/doupdate' to trigger a firmware update. It then sends a mobile alert notification titled 'pixelclock Updated' and creates a persistent notification in Home Assistant, both confirming the update."
},
"human_like": "Automatically triggers a firmware update for the pixelclock and sends a confirmation notification when a new firmware version is detected.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_virgin_radio_anthems_uk",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_virgin_radio_anthems_uk' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Execute the script sonos favourites virgin radio anthems uk [script.sonos_favourites_virgin_radio_anthems_uk] and set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Virgin Radio Anthems UK'.",
"natural_language": {
"trigger": "When a local webhook request (using POST or PUT) with the specific ID 'sonos_virgin_radio_anthems_uk' is received.",
"conditions": "There are no conditions that must be met.",
"action": "It runs the script named sonos favourites virgin radio anthems uk [script.sonos_favourites_virgin_radio_anthems_uk] and updates the text field sonos playlist playing [input_text.sonos_playlist_playing] to show 'Virgin Radio Anthems UK'."
},
"human_like": "Starts playing Virgin Radio Anthems UK on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_virgin_radio_britpop_uk",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_virgin_radio_britpop_uk' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle sonos favourites virgin radio britpop uk [script.sonos_favourites_virgin_radio_britpop_uk] AND set sonos playlist playing [input_text.sonos_playlist_playing] to 'Virgin Radio Britpop UK'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_virgin_radio_britpop_uk') is received using either the POST or PUT method.",
"conditions": "There are no conditions that must be met.",
"action": "Toggle the 'sonos favourites virgin radio britpop uk' [script.sonos_favourites_virgin_radio_britpop_uk] script, and update the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to 'Virgin Radio Britpop UK'."
},
"human_like": "Starts playing Virgin Radio Britpop UK on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_virgin_radio_chilled_uk",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_virgin_radio_chilled_uk' is received via POST or PUT method from a local network source. CONDITIONS: None. ACTIONS: Execute the script sonos favourites virgin radio chilled uk [script.sonos_favourites_virgin_radio_chilled_uk] and set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Virgin Radio Chilled UK'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_virgin_radio_chilled_uk') is received.",
"conditions": "There are no conditions that must be met.",
"action": "It toggles the 'sonos favourites virgin radio chilled uk' [script.sonos_favourites_virgin_radio_chilled_uk] script and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'Virgin Radio Chilled UK'."
},
"human_like": "Plays Virgin Radio Chilled UK on Sonos and updates the display when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_virgin_radio_groove_uk",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_virgin_radio_grove_uk' is received via POST or PUT method, and is local only. ACTIONS: Execute the script sonos favourites virgin radio groove uk [script.sonos_favourites_virgin_radio_grove_uk] and set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Virgin Radio Groove UK'.",
"natural_language": {
"trigger": "When a specific local webhook request named 'sonos_virgin_radio_grove_uk' is received, either via a POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "Runs the script called 'sonos favourites virgin radio groove uk' [script.sonos_favourites_virgin_radio_grove_uk] and updates the text field 'sonos playlist playing' [input_text.sonos_playlist_playing] to show 'Virgin Radio Groove UK'."
},
"human_like": "Plays Virgin Radio Groove UK on Sonos and updates the display when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "sonos_favourites_play_virgin_radio_uk",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_virgin_radio_uk' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Toggle the script sonos favourites virgin radio uk [script.sonos_favourites_virgin_radio_uk] AND set the value of sonos playlist playing [input_text.sonos_playlist_playing] to 'Virgin Radio UK'.",
"natural_language": {
"trigger": "When a specific local webhook request (with the ID 'sonos_virgin_radio_uk') is received using either the POST or PUT method.",
"conditions": "There are no conditions for this automation.",
"action": "Toggles the 'sonos favourites virgin radio uk' [script.sonos_favourites_virgin_radio_uk] script to start or stop playback, and updates the 'sonos playlist playing' [input_text.sonos_playlist_playing] text field to show 'Virgin Radio UK'."
},
"human_like": "Starts or stops playing Virgin Radio UK on Sonos and updates the displayed playlist name when a specific webhook is triggered.",
"complexity": "low"
}
},
{
"id": "'1710400217767'",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR at every 15th minute of the hour. CONDITIONS: (sun state day [sensor.sun_state_day] is Day) AND (sungrow sg5kd daily generation [sensor.sungrow_sg5kd_daily_generation] is unavailable for 5 minutes OR the time elapsed since the last update of sungrow sg5kd daily generation [sensor.sungrow_sg5kd_daily_generation] is greater than 240 minutes). ACTIONS: Restart the Hass.io addon '7b536ee6_sungather' AND send a notification titled 'Sungather Restarted' with the message 'Solar data hasn't been updated in 5 minutes, Sungather has been restarted'.",
"natural_language": {
"trigger": "The automation triggers either when Home Assistant starts up, or at regular intervals every 15 minutes (e.g., at :00, :15, :30, :45).",
"conditions": "The automation only runs if it is currently daytime, as indicated by the sun state day [sensor.sun_state_day] being 'Day'. Additionally, it requires that the solar generation data is not being updated. This is true if the sungrow sg5kd daily generation [sensor.sungrow_sg5kd_daily_generation] sensor has been in an 'unavailable' state for at least 5 minutes, or if more than 240 minutes (4 hours) have passed since its last update, regardless of its state.",
"action": "It restarts the Sungather addon to attempt to restore data flow and sends an alert notification to inform the user that the addon was restarted due to a lack of recent solar data updates."
},
"human_like": "Automatically restarts the Sungather solar monitoring addon and sends an alert if solar data stops updating during the daytime.",
"complexity": "medium"
}
},
{
"id": "'[Addon Watchguard] Zigbee2MQTT'",
"result": {
"structured": "TRIGGER: When the time pattern matches every 5 minutes. CONDITIONS: (zigbee2mqtt bridge connection state [binary_sensor.zigbee2mqtt_bridge_connection_state] is off) OR (zigbee2mqtt bridge connection state [binary_sensor.zigbee2mqtt_bridge_connection_state] is unavailable). ACTIONS: Restart the Home Assistant addon '45df7312_zigbee2mqtt' AND send a notification with title 'Zigbee2MQTT Restarted' and message 'Zigbee2MQTT connectivity has stopped, addon has been restarted' to notify.alert.",
"natural_language": {
"trigger": "The automation runs every 5 minutes.",
"conditions": "If the zigbee2mqtt bridge connection state [binary_sensor.zigbee2mqtt_bridge_connection_state] is either off or unavailable.",
"action": "Restarts the Zigbee2MQTT addon and sends an alert notification to inform that the addon was restarted due to a connectivity issue."
},
"human_like": "Automatically restarts the Zigbee2MQTT addon and sends an alert if the bridge connection is lost or unavailable.",
"complexity": "low"
}
},
{
"id": "watchman_notifyunavailable",
"result": {
"structured": "TRIGGER: When watchman missing entities [sensor.watchman_missing_entities] changes state. CONDITIONS: The new integer state of watchman missing entities [sensor.watchman_missing_entities] is greater than its previous integer state. ACTIONS: Execute watchman.report service, then wait 30 seconds, then check if the current integer state of watchman missing entities [sensor.watchman_missing_entities] is still greater than the original previous state, and if true, create a persistent notification titled 'Unavailable Entities' with the message 'There are new unavailable entities'.",
"natural_language": {
"trigger": "Whenever the sensor watchman missing entities [sensor.watchman_missing_entities] changes its state.",
"conditions": "The condition checks that the new numeric value reported by the sensor is higher than the old numeric value it had before the change.",
"action": "First, it triggers a Watchman report. After a 30-second delay, it checks again if the count of missing entities is still higher than the original count from before the report. If it is, it creates a persistent notification titled 'Unavailable Entities' to alert the user that there are new unavailable entities."
},
"human_like": "Sends a notification when new entities become unavailable, first running a diagnostic report and then confirming the issue still exists after a short delay.",
"complexity": "medium"
}
},
{
"id": "influx2entity_365daychaffeydam",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR When the time matches a pattern (every hour). CONDITIONS: None. ACTIONS: If the trigger is the startup event, wait for 240 seconds. Then, execute three service calls in sequence: 1. Call pyscript.influxdb2_query_to_entity to query the last year of data for waternsw_chaffey_dam_storage, calculate daily maximums, and update archive waternsw chaffeydam 30day [sensor.archive_waternsw_chaffeydam_30day]. 2. Call pyscript.influxdb2_query_to_entity to query the last year of data for waternsw_keepit_dam_storage, calculate daily maximums, and update archive waternsw keepitdam 30day [sensor.archive_waternsw_keepitdam_30day]. 3. Call pyscript.influxdb2_query_to_entity to query the last year of data for waternsw_split_rock_dam_storage, calculate daily maximums, and update archive waternsw splitrockdam 30day [sensor.archive_waternsw_splitrockdam_30day].",
"natural_language": {
"trigger": "The automation runs in three situations: when Home Assistant first starts up, when the ha startup pending [input_boolean.ha_startup_pending] is turned off, or every hour on the hour.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "If the automation was triggered by the Home Assistant startup, it first waits for 4 minutes (240 seconds). Then, it performs three data queries. It fetches the last year of data for three different dam storage sensors, calculates the daily maximum value for each, and updates three corresponding sensor entities: archive waternsw chaffeydam 30day [sensor.archive_waternsw_chaffeydam_30day], archive waternsw keepitdam 30day [sensor.archive_waternsw_keepitdam_30day], and archive waternsw splitrockdam 30day [sensor.archive_waternsw_splitrockdam_30day] with the results."
},
"human_like": "This automation updates long-term (365-day) historical dam level sensors for Chaffey, Keepit, and Split Rock dams, running at startup and then hourly.",
"complexity": "medium"
}
},
{
"id": "influx2entity_yearlybomstats",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR When the time pattern matches every hour (hours: /1). CONDITIONS: None. ACTIONS: If the trigger is the startup event, wait for 240 seconds. Then, execute five queries to an InfluxDB database and update sensor entities: 1. Query for the maximum daily temperature over the past year for tamworth_airport_temp, update archive bomtemp max 365day [sensor.archive_bomtemp_max_365day]. 2. Query for the minimum daily temperature over the past year for tamworth_airport_temp, update archive bomtemp min 365day [sensor.archive_bomtemp_min_365day]. 3. Query for the daily temperature range over the past year for tamworth_airport_temp, update archive bomtemp range 365day [sensor.archive_bomtemp_range_365day]. 4. Query for the maximum daily rainfall over the past year for tamworth_airport_rain_since_9am, update archive bomrain 365day [sensor.archive_bomrain_365day]. 5. Query for the cumulative sum of the maximum daily rainfall over the past year for tamworth_airport_rain_since_9am, update archive bomrain 365day cume [sensor.archive_bomrain_365day_cume].",
"natural_language": {
"trigger": "This automation runs when Home Assistant first starts, when the ha startup pending [input_boolean.ha_startup_pending] switch is turned off, or once every hour.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "If the automation was triggered by the Home Assistant startup, it first waits for 4 minutes. Then, it performs a series of five database queries to calculate yearly weather statistics from the Bureau of Meteorology (BOM) data. It updates sensors with the maximum daily temperature, minimum daily temperature, daily temperature range, maximum daily rainfall, and the cumulative yearly rainfall for the Tamworth airport location over the past year."
},
"human_like": "Updates yearly weather statistics (like max/min temperature and rainfall) from BOM data at startup and then refreshes them every hour.",
"complexity": "medium"
}
},
{
"id": "influx2entity_yearlyhomestats",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR When the time matches the pattern every hour. ACTIONS: If the trigger was the startup event, wait for 240 seconds. Then, execute the following five service calls sequentially: 1. Query InfluxDB for the minimum daily temperature over the past year from the tempest_st_00056115_temperature sensor and update archive homeoutsidetemp min 365day [sensor.archive_homeoutsidetemp_min_365day]. 2. Query InfluxDB for the maximum daily temperature over the past year from the tempest_st_00056115_temperature sensor and update archive homeoutsidetemp max 365day [sensor.archive_homeoutsidetemp_max_365day]. 3. Query InfluxDB for the daily temperature range over the past year from the tempest_st_00056115_temperature sensor and update archive homeoutsidetemp range 365day [sensor.archive_homeoutsidetemp_range_365day]. 4. Query InfluxDB for the maximum daily rainfall over the past year from the tempest_st_00056115_rain_today sensor and update archive homerain 365day [sensor.archive_homerain_365day]. 5. Query InfluxDB for the cumulative sum of the maximum daily rainfall over the past year from the tempest_st_00056115_rain_today sensor and update archive homerain 365day cume [sensor.archive_homerain_365day_cume].",
"natural_language": {
"trigger": "The automation runs when Home Assistant first starts, when the ha startup pending [input_boolean.ha_startup_pending] input boolean is turned off, or every hour on the hour.",
"conditions": "There are no conditions to evaluate for this automation.",
"action": "If the automation was triggered by the Home Assistant startup event, it first waits for four minutes. Then, it performs a series of five queries to an InfluxDB database to calculate and update yearly weather statistics. It updates the minimum, maximum, and range of daily outside temperatures over the past year, as well as the maximum daily rainfall and the cumulative rainfall total for the past year. These values are stored in their respective sensor entities."
},
"human_like": "This automation updates yearly weather statistics, including temperature extremes and rainfall totals, every hour and after Home Assistant starts up.",
"complexity": "medium"
}
},
{
"id": "influx2entity_weatherarchive",
"result": {
"structured": "TRIGGER: When Home Assistant starts up OR When ha startup pending [input_boolean.ha_startup_pending] turns off OR When the time matches a pattern of every hour (hours: /1). CONDITIONS: None. ACTIONS: If the trigger is the startup event, wait for 240 seconds. Then, execute a series of pyscript.influxdb2_query_to_entity service calls to update sensor entities with aggregated weather data from InfluxDB. The queries calculate: daily maximum temperature over the last month for sensor.weather_archive_temperature_maximum_daily; daily minimum temperature over the last month for sensor.weather_archive_temperature_minimum_daily; daily precipitation sum over the last year for sensor.weather_archive_precipitation_daily; weekly precipitation sum over the last year for sensor.weather_archive_precipitation_weekly; monthly precipitation sum over the last year for sensor.weather_archive_precipitation_monthly; monthly maximum temperature over the last year for sensor.weather_archive_temperature_maximum_monthly; weekly maximum temperature over the last year for sensor.weather_archive_temperature_maximum_weekly; monthly minimum temperature over the last year for sensor.weather_archive_temperature_minimum_monthly; weekly minimum temperature over the last year for sensor.weather_archive_temperature_minimum_weekly.",
"natural_language": {
"trigger": "The automation runs when Home Assistant starts up, when the ha startup pending [input_boolean.ha_startup_pending] input boolean is turned off, or once every hour.",
"conditions": "There are no conditions for this automation.",
"action": "If the automation was triggered by the Home Assistant startup event, it first waits for 240 seconds. Then, it runs a series of queries to an InfluxDB database to fetch and aggregate historical weather data. These queries populate several sensor entities with calculated values: the daily maximum and minimum temperatures from the past month, and daily, weekly, and monthly precipitation sums and temperature extremes (maximum and minimum) from the past year."
},
"human_like": "This automation updates a set of weather archive sensors with historical temperature and precipitation data, running at startup and then hourly.",
"complexity": "medium"
}
},
{
"id": "Webhook - Office Lamp & Sonos Off",
"result": {
"structured": "TRIGGER: When a webhook with ID 'office_lampsonos_off' is received via POST or PUT locally OR when an iOS event with actionName 'LightsSonosActionOver' is fired. CONDITIONS: None. ACTIONS: Turn off office lamp [light.office_lamp] AND stop media playback on office sonos [media_player.office_sonos].",
"natural_language": {
"trigger": "When a specific local webhook request (office_lampsonos_off) is received using the POST or PUT method, or when an iOS shortcut or action named 'LightsSonosActionOver' is triggered.",
"conditions": "There are no additional conditions that must be met.",
"action": "Turns off the office lamp [light.office_lamp] and stops any media that is playing on the office sonos [media_player.office_sonos]."
},
"human_like": "Turns off the office lamp and stops the Sonos speaker when triggered by a webhook or an iOS shortcut.",
"complexity": "low"
}
},
{
"id": "Webhook - Office Lamp Toggle",
"result": {
"structured": "TRIGGER: When a webhook with ID office_lamp_toggle is received via POST or PUT locally OR When an iOS event with actionName OfficeLightsOn is fired. CONDITIONS: None. ACTIONS: Toggle office lamp [light.office_lamp].",
"natural_language": {
"trigger": "The automation is triggered either by receiving a specific local webhook request (with the ID 'office_lamp_toggle' using POST or PUT methods) or by an iOS event indicating the 'OfficeLightsOn' action was fired.",
"conditions": "There are no conditions that must be met for the action to execute.",
"action": "Toggles the state of the office lamp [light.office_lamp], turning it on if it's off, or off if it's on."
},
"human_like": "Toggles the office lamp on or off when triggered by a webhook or an iOS shortcut.",
"complexity": "low"
}
},
{
"id": "Webhook - Set Media Volume",
"result": {
"structured": "TRIGGER: When a webhook with ID 'set_media_volume' is received via POST or PUT method from a local network. CONDITIONS: None. ACTIONS: Set the volume level of the media player(s) specified in the webhook payload (entities from trigger.json.entities) to the value specified in the webhook payload (parameter from trigger.json.parameter).",
"natural_language": {
"trigger": "When a local webhook request with the specific ID 'set_media_volume' is received, using either the POST or PUT HTTP method.",
"conditions": "There are no additional conditions for this automation.",
"action": "Adjusts the volume of the specified media player(s) to the requested level. The target media player entities and the desired volume level are extracted from the data sent with the webhook."
},
"human_like": "Allows external systems to adjust media player volume by sending a local webhook request.",
"complexity": "low"
}
},
{
"id": "Webhook - Office Sonos Play Source Trigger from Stream Deck",
"result": {
"structured": "TRIGGER: When a webhook with ID 'sonos_play_source' is received via POST or PUT method and is local only. CONDITIONS: None. ACTIONS: Select the source specified in the webhook's JSON payload ('{{ trigger.json.parameter }}') on the office sonos [media_player.office_sonos] media player.",
"natural_language": {
"trigger": "The automation is triggered when a local webhook request with the specific ID 'sonos_play_source' is received, using either the POST or PUT HTTP method.",
"conditions": "There are no conditions that must be met for the action to execute.",
"action": "It changes the audio source on the office sonos [media_player.office_sonos] to the source name provided in the 'parameter' field of the incoming webhook's JSON data."
},
"human_like": "Changes the music source on the Office Sonos speaker based on a command sent from a Stream Deck.",
"complexity": "low"
}
},
{
"id": "z2m_disable_join_timer",
"result": {
"structured": "TRIGGER: When the timer z2m permit join timer [timer.z2m_permit_join] finishes. CONDITIONS: None. ACTIONS: Publish a message to the MQTT topic 'zigbee2mqtt/bridge/config/permit_join' with the payload 'false' AND turn off z2m permit join [input_boolean.z2m_permit_join].",
"natural_language": {
"trigger": "When the z2m permit join timer [timer.z2m_permit_join] completes its countdown.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a command via MQTT to disable the Zigbee2MQTT device pairing mode and turns off the associated status indicator, z2m permit join [input_boolean.z2m_permit_join]."
},
"human_like": "Automatically disables the Zigbee2MQTT device pairing mode when the designated timer runs out.",
"complexity": "low"
}
},
{
"id": "z2m_enable_join",
"result": {
"structured": "TRIGGER: When z2m permit join [input_boolean.z2m_permit_join] turns on. CONDITIONS: None. ACTIONS: Publish 'true' to MQTT topic 'zigbee2mqtt/bridge/config/permit_join' AND start timer z2m permit join timer [timer.z2m_permit_join].",
"natural_language": {
"trigger": "When the z2m permit join [input_boolean.z2m_permit_join] is switched on.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a command to the Zigbee2MQTT bridge to allow new devices to join the network and starts a timer called z2m permit join timer [timer.z2m_permit_join]."
},
"human_like": "Enables the Zigbee2MQTT network to accept new device pairings when a switch is turned on.",
"complexity": "low"
}
},
{
"id": "z2m_restart_no_lights",
"result": {
"structured": "TRIGGER: When office lamp [light.office_lamp] OR bedroom lamp [light.bedroom_lamp] becomes unavailable AND remains unavailable for 5 minutes. CONDITIONS: None. ACTIONS: Restart the Zigbee2MQTT addon (addon: 45df7312_zigbee2mqtt) AND send a notification with title 'Zigbee2MQTT Restarted' and message 'Zigbee2MQTT connectivity has stopped, addon has been restarted'.",
"natural_language": {
"trigger": "When either the office lamp [light.office_lamp] or the bedroom lamp [light.bedroom_lamp] becomes unavailable and stays in that state for five minutes.",
"conditions": "There are no conditions that must be met.",
"action": "Restarts the Zigbee2MQTT addon and sends a notification alerting that the addon was restarted due to a connectivity issue."
},
"human_like": "Automatically restarts the Zigbee2MQTT addon and sends an alert if either the office or bedroom lamp becomes unavailable for five minutes.",
"complexity": "low"
}
},
{
"id": "z2m_disable_join",
"result": {
"structured": "TRIGGER: When z2m permit join [input_boolean.z2m_permit_join] changes to off. CONDITIONS: None. ACTIONS: Publish 'false' to MQTT topic 'zigbee2mqtt/bridge/config/permit_join' AND cancel z2m permit join timer [timer.z2m_permit_join].",
"natural_language": {
"trigger": "When the z2m permit join [input_boolean.z2m_permit_join] is turned off.",
"conditions": "There are no conditions.",
"action": "Sends a message to the Zigbee2MQTT bridge to disable device joining and cancels the associated timer."
},
"human_like": "Disables the Zigbee2MQTT device joining mode and stops the related timer when the permit join switch is turned off.",
"complexity": "low"
}
}
]