AutomationDataset/Daverover66/automation-descriptions.json

2199 lines
511 KiB
JSON

[
{
"id": "Ad-Hoc Charging",
"result": {
"structured": "TRIGGER: When the time is exactly 02:00:00 (Start charge) OR When the time is exactly 05:00:00 (Stop charge). CONDITIONS: None. ACTIONS: If the trigger is Start charge, then turn on ad hoc charging local switch [switch.ad_hoc_charging_local] AND turn on ad hoc tou charging 2 socket 1 switch [switch.ad_hoc_tou_charging_2_socket_1]. If the trigger is Stop charge, then turn off ad hoc charging local switch [switch.ad_hoc_charging_local] AND turn off ad hoc tou charging 2 socket 1 switch [switch.ad_hoc_tou_charging_2_socket_1].",
"natural_language": {
"trigger": "The automation triggers at two specific times: at 2:00 AM and at 5:00 AM.",
"conditions": "There are no conditions that need to be met for the actions to run.",
"action": "If the trigger is the 2:00 AM event, the automation turns on both the ad hoc charging local switch [switch.ad_hoc_charging_local] and the ad hoc tou charging 2 socket 1 switch [switch.ad_hoc_tou_charging_2_socket_1]. If the trigger is the 5:00 AM event, it turns both of those switches off."
},
"human_like": "Automatically starts charging at 2 AM and stops it at 5 AM by controlling two charging switches.",
"complexity": "low"
}
},
{
"id": "Alert when OneDrive is close to storage limit",
"result": {
"structured": "TRIGGER: When onedrive drive state sensor [sensor.onedrive_drive_state] changes from normal to nearing OR When onedrive drive state sensor [sensor.onedrive_drive_state] changes from nearing to critical. CONDITIONS: None. ACTIONS: Execute text notify dave script [script.text_notify_dave] with a title 'OneDrive is almost full!' and a message containing the current values of my drive used storage sensor [sensor.my_drive_used_storage], my drive total available sensor [sensor.my_drive_total_available], and my drive remaining storage sensor [sensor.my_drive_remaining_storage].",
"natural_language": {
"trigger": "The automation triggers when the onedrive drive state sensor [sensor.onedrive_drive_state] transitions from a 'normal' state to a 'nearing' state, or from a 'nearing' state to a 'critical' state.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "It sends a notification to a phone by running the text notify dave script [script.text_notify_dave]. The notification includes a warning title and a detailed message showing the current used storage, total available storage, and remaining storage from the respective sensors."
},
"human_like": "Sends a phone alert when OneDrive storage is getting full, providing details on current usage.",
"complexity": "low"
}
},
{
"id": "Alexa Set Volume for Announcements",
"result": {
"structured": "TRIGGER: When alexa volume level announcements input number [input_number.alexa_volume_level_announcements] changes state. CONDITIONS: None. ACTIONS: Set volume level for media players dave's echo pop media player [media_player.dave_s_echo_pop], guest bedroom echo dot media player [media_player.guest_bedroom_echo_dot], living room dot media player [media_player.living_room_dot], kitchen echo show media player [media_player.kitchen_echo_show], main bedroom dot media player [media_player.main_bedroom_dot], dave's 2nd echo pop 2 media player [media_player.dave_s_2nd_echo_pop_2], seans room dot media player [media_player.seans_room_dot], and dave's 2nd echo pop media player [media_player.dave_s_2nd_echo_pop] to the current numeric value of alexa volume level announcements input number [input_number.alexa_volume_level_announcements].",
"natural_language": {
"trigger": "Whenever the value of the alexa volume level announcements input number [input_number.alexa_volume_level_announcements] changes.",
"conditions": "There are no conditions that must be met.",
"action": "Sets the volume level of all listed Alexa devices (dave's echo pop media player [media_player.dave_s_echo_pop], guest bedroom echo dot media player [media_player.guest_bedroom_echo_dot], living room dot media player [media_player.living_room_dot], kitchen echo show media player [media_player.kitchen_echo_show], main bedroom dot media player [media_player.main_bedroom_dot], dave's 2nd echo pop 2 media player [media_player.dave_s_2nd_echo_pop_2], seans room dot media player [media_player.seans_room_dot], and dave's 2nd echo pop media player [media_player.dave_s_2nd_echo_pop]) to match the new value of the alexa volume level announcements input number [input_number.alexa_volume_level_announcements]."
},
"human_like": "Synchronizes the announcement volume across all Alexa devices whenever a central volume slider is adjusted.",
"complexity": "low"
}
},
{
"id": "All Govee Lighting v2.0",
"result": {
"structured": "TRIGGER: When sun sun sensor [sun.sun] changes from below_horizon to above_horizon (sunrise) OR when lunchtime binary sensor [binary_sensor.lunchtime] changes from off to on OR when afternoon binary sensor [binary_sensor.afternoon] changes from off to on OR when dinner time binary sensor [binary_sensor.dinner_time] changes from off to on OR when evening binary sensor [binary_sensor.evening] changes from off to on OR when sun sun sensor [sun.sun] changes from above_horizon to below_horizon (sunset) OR when living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold] for 20 seconds OR when living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] is above upper light threshold level input number [input_number.upper_light_threshold_level] for 20 seconds OR when living room tv switch [switch.living_room_tv] changes from off to on OR when living room tv switch [switch.living_room_tv] changes from on to off. CONDITIONS: None (global conditions list is empty). ACTIONS: Choose one sequence based on the trigger and its specific conditions: 1. For sunrise trigger AND we are in bed input boolean [input_boolean.we_are_in_bed] is off: Create scene snapshot 'before_sunrise', wait 20 seconds, then turn on multiple lights with 'Sunrise' effect and brightness settings in parallel, wait 30 minutes, then activate scene before sunrise scene [scene.before_sunrise]. 2. For Lunchtime trigger: Turn on multiple lights with 'Forest' or 'Spring' effects and brightness settings in parallel, wait 20 seconds, create scene snapshot 'lunchtime_govee', wait 20 seconds, then if living room occupied binary sensor [binary_sensor.living_room_occupied] is off, turn off the same lights. 3. For Afternoon trigger: Turn on multiple lights with 'Rustling Leaves' or 'Forest' effects and brightness settings in parallel, wait 20 seconds, create scene snapshot 'afternoon_govee', wait 20 seconds, then if living room occupied binary sensor [binary_sensor.living_room_occupied] is off, turn off the same lights. 4. For Dinnertime trigger: Turn on multiple lights with 'Candlelight', 'Fall', or 'Twilight' effects and brightness settings in parallel, wait 20 seconds, create scene snapshot 'dinnertime_govee', wait 20 seconds, then if living room occupied binary sensor [binary_sensor.living_room_occupied] is off, turn off the same lights. 5. For Evening trigger: Turn on multiple lights with 'Fire' or 'Fall' effects and brightness settings in parallel, wait 20 seconds, create scene snapshot 'evening_govee', wait 20 seconds, then if living room occupied binary sensor [binary_sensor.living_room_occupied] is off, turn off the same lights. 6. For sunset trigger AND we are in bed input boolean [input_boolean.we_are_in_bed] is off: Turn on multiple lights with 'Warm' or 'Sunset Glow' effects and brightness settings in parallel, wait 30 minutes, then if afternoon binary sensor [binary_sensor.afternoon] is on, activate afternoon govee scene [scene.afternoon_govee], otherwise turn on multiple lights with 'Fire' or 'Fall' effects. 7. For Low Light trigger AND living room tv switch [switch.living_room_tv] is on: Turn on dreamview g1 pro 2 light [light.dreamview_g1_pro_2]. 8. For Good Light trigger AND living room tv switch [switch.living_room_tv] is on: Turn off dreamview g1 pro 2 light [light.dreamview_g1_pro_2]. 9. For TV on trigger AND (day binary sensor [binary_sensor.day] is off OR living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold]): Turn on dreamview g1 pro 2 light [light.dreamview_g1_pro_2]. 10. For TV off trigger AND dreamview g1 pro 2 light [light.dreamview_g1_pro_2] is on: Turn off dreamview g1 pro 2 light [light.dreamview_g1_pro_2].",
"natural_language": {
"trigger": "The automation can be triggered by several events: sunrise, sunset, the start of lunchtime, afternoon, dinnertime, or evening as indicated by their respective binary sensors, changes in the living room light level (either dropping below a low threshold or rising above a high threshold for 20 seconds), or the living room TV being turned on or off.",
"conditions": "There are no global conditions that apply to all triggers. Each action sequence has its own specific conditions that must be met for that sequence to run.",
"action": "Depending on which trigger occurs and its specific conditions, the automation will perform one of several sequences. These sequences primarily involve setting various Govee lights to specific effects and brightness levels to match the time of day or activity (like sunrise, lunch, dinner, evening, or sunset), creating scene snapshots of those settings, and later restoring them or turning lights off if the room is unoccupied. It also controls a dreamview light based on TV state and ambient light levels."
},
"human_like": "This automation manages Govee lighting throughout the day, creating atmospheric scenes for different times (like sunrise, lunch, and evening) and adjusting TV backlighting based on ambient light.",
"complexity": "high"
}
},
{
"id": "All Govee Lighting v2.0",
"result": {
"structured": "TRIGGER: When sun sun sensor [sun.sun] changes from below_horizon to above_horizon (sunrise) OR when lunchtime binary sensor [binary_sensor.lunchtime] changes from off to on OR when afternoon binary sensor [binary_sensor.afternoon] changes from off to on OR when dinner time binary sensor [binary_sensor.dinner_time] changes from off to on OR when evening binary sensor [binary_sensor.evening] changes from off to on OR when sun sun sensor [sun.sun] changes from above_horizon to below_horizon (sunset) OR when living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold] for 20 seconds OR when living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] is above upper light threshold level input number [input_number.upper_light_threshold_level] for 20 seconds OR when living room tv switch [switch.living_room_tv] changes from off to on OR when living room tv switch [switch.living_room_tv] changes from on to off. CONDITIONS: None. ACTIONS: Choose based on trigger and conditions: 1. IF (trigger is sunrise) AND (we are in bed input boolean [input_boolean.we_are_in_bed] is off) THEN create scene snapshot 'before_sunrise', wait 5 seconds, set multiple lights to Sunrise effect at specified brightness, run script.update_govee_scene_tracker with new_scene Sunrise, wait 30 minutes, then turn on scene before sunrise scene [scene.before_sunrise]. 2. IF (trigger is Lunchtime) THEN set multiple lights to Lunchtime effects (Forest/Spring), run script.update_govee_scene_tracker with new_scene Lunchtime, wait 20 seconds, IF living room occupied binary sensor [binary_sensor.living_room_occupied] is off THEN turn off specified lights. 3. IF (trigger is Afternoon) THEN set multiple lights to Afternoon effects (Rustling Leaves/Forest), run script.update_govee_scene_tracker with new_scene Afternoon, wait 20 seconds, IF living room occupied binary sensor [binary_sensor.living_room_occupied] is off THEN turn off specified lights. 4. IF (trigger is Dinnertime) THEN set multiple lights to Dinnertime effects (Candlelight/Fall/Twilight), run script.update_govee_scene_tracker with new_scene Dinnertime, wait 20 seconds, IF living room occupied binary sensor [binary_sensor.living_room_occupied] is off THEN turn off specified lights. 5. IF (trigger is Evening) THEN set multiple lights to Evening effects (Fire/Fall), run script.update_govee_scene_tracker with new_scene Evening, wait 20 seconds, IF living room occupied binary sensor [binary_sensor.living_room_occupied] is off THEN turn off specified lights. 6. IF (trigger is sunset) AND (we are in bed input boolean [input_boolean.we_are_in_bed] is off) THEN set multiple lights to Sunset effects, run script.update_govee_scene_tracker with new_scene Sunset, wait 30 minutes, IF afternoon binary sensor [binary_sensor.afternoon] is on THEN turn on afternoon govee scene [scene.afternoon_govee] and run script.update_govee_scene_tracker with new_scene Afternoon ELSE set multiple lights to Evening effects and run script.update_govee_scene_tracker with new_scene Evening. 7. IF (trigger is Low Light) AND (living room tv switch [switch.living_room_tv] is on) THEN turn on dreamview g1 pro 2 light [light.dreamview_g1_pro_2]. 8. IF (trigger is Good Light) AND (living room tv switch [switch.living_room_tv] is on) THEN turn off dreamview g1 pro 2 light [light.dreamview_g1_pro_2]. 9. IF (trigger is TV on) AND ((day binary sensor [binary_sensor.day] is off) OR (living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold])) THEN turn on dreamview g1 pro 2 light [light.dreamview_g1_pro_2]. 10. IF (trigger is TV off) AND (dreamview g1 pro 2 light [light.dreamview_g1_pro_2] is on) THEN turn off dreamview g1 pro 2 light [light.dreamview_g1_pro_2].",
"natural_language": {
"trigger": "The automation can be triggered by several events: sunrise, sunset, specific time-of-day sensors turning on (lunchtime, afternoon, dinnertime, evening), the living room light level being too low or too high for 20 seconds, or the living room TV being turned on or off.",
"conditions": "There are no global conditions for the entire automation. Each action branch has its own specific conditions that must be met after the trigger occurs.",
"action": "Depending on which trigger fires and any additional conditions, the automation performs one of several actions. These include creating scene snapshots, setting multiple Govee lights to specific effects and brightness levels for different times of day, updating a scene tracker, and optionally turning lights off if the room becomes unoccupied. It also controls a Dreamview light based on TV state and ambient light levels."
},
"human_like": "This automation manages Govee lighting throughout the day, setting different scenes and effects for sunrise, sunset, and various times like lunch or evening, and also controls a TV backlight based on ambient light.",
"complexity": "high"
}
},
{
"id": "HEATING - All Automations",
"result": {
"structured": "TRIGGER: When person david forrester [person.david_forrester] changes from home to not_home AND remains for 2 minutes OR When person david forrester [person.david_forrester] changes from not_home to home AND remains for 2 minutes OR When person gem forrester [person.gem_forrester] changes from home to not_home AND remains for 2 minutes OR When person gem forrester [person.gem_forrester] changes from not_home to home AND remains for 2 minutes OR When any of the following entities changes to 'on' AND remains for 30 seconds: front door sense contact binary sensor [binary_sensor.front_door_sense_contact], back door sensor contact binary sensor [binary_sensor.back_door_sensor_contact], side door sensor contact binary sensor [binary_sensor.side_door_sensor_contact], kitchen window left contact binary sensor [binary_sensor.kitchen_window_left_contact], kitchen window right contact binary sensor [binary_sensor.kitchen_window_right_contact], living room window left contact binary sensor [binary_sensor.living_room_window_left_contact], living room window right contact binary sensor [binary_sensor.living_room_window_right_contact], hallway window contact binary sensor [binary_sensor.hallway_window_contact] OR When any of the same list of entities changes to 'off' OR When dining room window right contact binary sensor [binary_sensor.dining_room_window_right_contact] is opened OR When dining room window right contact binary sensor [binary_sensor.dining_room_window_right_contact] is not_opened OR When cloakroom window contact binary sensor [binary_sensor.cloakroom_window_contact] is opened OR When cloakroom window contact binary sensor [binary_sensor.cloakroom_window_contact] is not_opened OR When en suite window sensor contact binary sensor [binary_sensor.en_suite_window_sensor_contact] is opened OR When en suite window sensor contact binary sensor [binary_sensor.en_suite_window_sensor_contact] is not_opened OR When office window sensor contact binary sensor [binary_sensor.office_window_sensor_contact] is opened OR When office window sensor contact binary sensor [binary_sensor.office_window_sensor_contact] is not_opened OR When main bedroom window left contact binary sensor [binary_sensor.main_bedroom_window_left_contact] OR main bedroom window right contact binary sensor [binary_sensor.main_bedroom_window_right_contact] changes to 'on' OR When main bedroom window left contact binary sensor [binary_sensor.main_bedroom_window_left_contact] OR main bedroom window right contact binary sensor [binary_sensor.main_bedroom_window_right_contact] changes to 'off' OR When guest bedroom window left contact binary sensor [binary_sensor.guest_bedroom_window_left_contact] OR guest bedroom window right contact binary sensor [binary_sensor.guest_bedroom_window_right_contact] changes to 'on' OR When guest bedroom window left contact binary sensor [binary_sensor.guest_bedroom_window_left_contact] OR guest bedroom window right contact binary sensor [binary_sensor.guest_bedroom_window_right_contact] changes to 'off' OR When any of the following entities changes to 'on': sean's bedroom window left contact binary sensor [binary_sensor.sean_s_bedroom_window_left_contact], sean's bedroom window right contact binary sensor [binary_sensor.sean_s_bedroom_window_right_contact], jamie's bedroom window left contact binary sensor [binary_sensor.jamie_s_bedroom_window_left_contact], bathroom window contact binary sensor [binary_sensor.bathroom_window_contact], jamie's bedroom window right contact binary sensor [binary_sensor.jamie_s_bedroom_window_right_contact] OR When any of the following entities changes to 'off': sean's bedroom window left contact binary sensor [binary_sensor.sean_s_bedroom_window_left_contact], sean's bedroom window right contact binary sensor [binary_sensor.sean_s_bedroom_window_right_contact], bathroom window contact binary sensor [binary_sensor.bathroom_window_contact], jamie's bedroom window left contact binary sensor [binary_sensor.jamie_s_bedroom_window_left_contact], jamie's bedroom window right contact binary sensor [binary_sensor.jamie_s_bedroom_window_right_contact] OR When kids bathroom window left contact binary sensor [binary_sensor.kids_bathroom_window_left_contact] OR kids bathroom window right contact binary sensor [binary_sensor.kids_bathroom_window_right_contact] changes to 'on' OR When kids bathroom window left contact binary sensor [binary_sensor.kids_bathroom_window_left_contact] OR kids bathroom window right contact binary sensor [binary_sensor.kids_bathroom_window_right_contact] changes to 'off'. CONDITIONS: None (global conditions list is empty). ACTIONS: The automation uses a choose action to select one of many sequences based on the trigger and additional conditions. The sequences are: 1. IF trigger is Dave Away AND person gem forrester [person.gem_forrester] is not_home AND (desired heating mode input select [input_select.desired_heating_mode] is 'On' OR 'Auto') THEN execute heating turn off all radiators script [script.heating_turn_off_all_radiators]. 2. IF trigger is Gem Away AND person david forrester [person.david_forrester] is not_home AND (desired heating mode input select [input_select.desired_heating_mode] is 'On' OR 'Auto') THEN execute heating turn off all radiators script [script.heating_turn_off_all_radiators]. 3. IF trigger is Dave Home AND person gem forrester [person.gem_forrester] is not_home AND desired heating mode input select [input_select.desired_heating_mode] is 'Auto' THEN execute heating resume schedule all radiators script [script.heating_resume_schedule_all_radiators]. 4. IF trigger is Gem Home AND person david forrester [person.david_forrester] is not_home AND desired heating mode input select [input_select.desired_heating_mode] is 'Auto' THEN execute heating resume schedule all radiators script [script.heating_resume_schedule_all_radiators]. 5. IF trigger is Downstairs Door or Window Open AND (downstairs climate [climate.downstairs] HVAC mode is 'auto' OR 'heat') THEN set downstairs climate [climate.downstairs] HVAC mode to 'off'. 6. IF trigger is Downstairs Door or Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is 'Auto' THEN set downstairs climate [climate.downstairs] HVAC mode to 'auto'. 7. IF trigger is Cloakroom Window Open AND (cloakroom climate [climate.cloakroom] HVAC mode is 'auto' OR 'heat') THEN set cloakroom climate [climate.cloakroom] HVAC mode to 'off'. 8. IF trigger is Cloakroom Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is 'Auto' THEN set cloakroom climate [climate.cloakroom] HVAC mode to 'auto'. 9. IF trigger is En-Suite Window Open AND (en suite bathroom climate [climate.en_suite_bathroom] HVAC mode is 'auto' OR 'heat') THEN set en suite bathroom climate [climate.en_suite_bathroom] HVAC mode to 'off'. 10. IF trigger is En-Suite Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is 'Auto' THEN set en suite bathroom climate [climate.en_suite_bathroom] HVAC mode to 'auto'. 11. IF trigger is Office Window Open AND (office climate [climate.office] HVAC mode is 'auto' OR 'heat') THEN set office climate [climate.office] HVAC mode to 'off'. 12. IF trigger is Office Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is 'Auto' THEN set office climate [climate.office] HVAC mode to 'auto'. 13. IF trigger is Bedroom Window Open AND (master bedroom climate [climate.master_bedroom] HVAC mode is 'heat' OR 'auto') THEN set master bedroom climate [climate.master_bedroom] HVAC mode to 'off'. 14. IF trigger is Bedroom Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is 'Auto' THEN set master bedroom climate [climate.master_bedroom] HVAC mode to 'auto'. 15. IF trigger is Guest Bedroom Window Open AND (guest bedroom climate [climate.guest_bedroom] HVAC mode is 'heat' OR 'auto') THEN set guest bedroom climate [climate.guest_bedroom] HVAC mode to 'off'. 16. IF trigger is Guest Bedroom Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is 'Auto' THEN set guest bedroom climate [climate.guest_bedroom] HVAC mode to 'auto'. 17. IF trigger is Upstairs Windows Open AND (upstairs climate [climate.upstairs] HVAC mode is 'heat' OR 'auto') THEN set upstairs climate [climate.upstairs] HVAC mode to 'off'. 18. IF trigger is Upstairs Windows Closed AND desired heating mode input select [input_select.desired_heating_mode] is 'Auto' THEN set upstairs climate [climate.upstairs] HVAC mode to 'auto'. 19. IF trigger is Kids Bathroom Window Open AND (kids bathroom climate [climate.kids_bathroom] HVAC mode is 'heat' OR 'auto') THEN set kids bathroom climate [climate.kids_bathroom] HVAC mode to 'off'. 20. IF trigger is Kids Bathroom Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is 'Auto' THEN set kids bathroom climate [climate.kids_bathroom] HVAC mode to 'auto'.",
"natural_language": {
"trigger": "The automation can be triggered in many ways related to occupancy and window/door states. It triggers when either person david forrester [person.david_forrester] or person gem forrester [person.gem_forrester] leaves home (changes to not_home) or arrives home (changes to home), but only after the new state has been stable for two minutes. It also triggers when any of the main downstairs doors or windows (front door sense contact binary sensor [binary_sensor.front_door_sense_contact], back door sensor contact binary sensor [binary_sensor.back_door_sensor_contact], side door sensor contact binary sensor [binary_sensor.side_door_sensor_contact], kitchen window left contact binary sensor [binary_sensor.kitchen_window_left_contact], kitchen window right contact binary sensor [binary_sensor.kitchen_window_right_contact], living room window left contact binary sensor [binary_sensor.living_room_window_left_contact], living room window right contact binary sensor [binary_sensor.living_room_window_right_contact], or hallway window contact binary sensor [binary_sensor.hallway_window_contact]) opens (changes to 'on') for at least 30 seconds, or when any of them closes (changes to 'off'). Additionally, it triggers on the specific opening or closing of individual windows in other rooms: the dining room window right contact binary sensor [binary_sensor.dining_room_window_right_contact], cloakroom window contact binary sensor [binary_sensor.cloakroom_window_contact], en suite window sensor contact binary sensor [binary_sensor.en_suite_window_sensor_contact], and office window sensor contact binary sensor [binary_sensor.office_window_sensor_contact]. Finally, it triggers on groups of windows opening or closing for the main bedroom, guest bedroom, a group of upstairs windows (sean's and jamie's bedrooms and a bathroom), and the kids bathroom.",
"conditions": "There are no global conditions that apply to all triggers. Instead, each possible action has its own set of conditions that are checked only when its corresponding trigger occurs.",
"action": "The action taken depends entirely on which trigger fired and the state of other entities at that time. For occupancy changes: If the last person leaves home and the heating mode is set to 'On' or 'Auto', it turns off all radiators. If one person returns home while the other is away and the heating mode is 'Auto', it resumes the heating schedule for all radiators. For window/door events: If a window or door opens and the corresponding room's heating is currently in 'heat' or 'auto' mode, it turns that specific room's heating off. If a window or door closes and the overall heating mode is set to 'Auto', it sets that room's heating back to 'auto' mode."
},
"human_like": "This automation manages the home's heating based on occupancy and open windows, turning heating off when everyone is away or a window is open, and resuming it when someone returns or windows are closed.",
"complexity": "high"
}
},
{
"id": "All Lights Automation",
"result": {
"structured": "TRIGGER: When any of the listed motion/presence sensors (camera hub g3 ddd9 motion sensor [binary_sensor.camera_hub_g3_ddd9_motion_sensor], dining room presence sensor occupancy [binary_sensor.dining_room_presence_sensor_occupancy], hallway camera cell motion detection [binary_sensor.hallway_camera_cell_motion_detection], lower landing motion occupancy [binary_sensor.lower_landing_motion_occupancy], seans room camera cell motion detection [binary_sensor.seans_room_camera_cell_motion_detection], jamie's room cam cell motion detection [binary_sensor.jamie_s_room_cam_cell_motion_detection], guest bedroom camera cell motion detection [binary_sensor.guest_bedroom_camera_cell_motion_detection], guest bedroom motion occupancy [binary_sensor.guest_bedroom_motion_occupancy], main bedroom fp2 presence sensor 1 [binary_sensor.main_bedroom_fp2_presence_sensor_1], main bedroom fp2 presence sensor 2 [binary_sensor.main_bedroom_fp2_presence_sensor_2], main bedroom fp2 presence sensor 3 [binary_sensor.main_bedroom_fp2_presence_sensor_3], main bedroom fp2 presence sensor 4 [binary_sensor.main_bedroom_fp2_presence_sensor_4], office presence sensor occupancy [binary_sensor.office_presence_sensor_occupancy], cloakroom presence occupancy [binary_sensor.cloakroom_presence_occupancy], jack and jill presence occupancy [binary_sensor.jack_and_jill_presence_occupancy], upper landing presence occupancy [binary_sensor.upper_landing_presence_occupancy]) change from off to on. OR When any of the same motion/presence sensors remain on for 2 minutes and then change to off. OR When any of the listed light level sensors (living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level], main bedroom fp2 light sensor light level sensor [sensor.main_bedroom_fp2_light_sensor_light_level], average light level downstairs sensor [sensor.average_light_level_downstairs], average light level upstairs sensor [sensor.average_light_level_upstairs], average indoor light level sensor [sensor.average_indoor_light_level], dining room presence sensor illuminance sensor [sensor.dining_room_presence_sensor_illuminance], office presence sensor illuminance lux sensor [sensor.office_presence_sensor_illuminance_lux], upper landing presence illuminance lux sensor [sensor.upper_landing_presence_illuminance_lux], jack and jill presence illuminance lux sensor [sensor.jack_and_jill_presence_illuminance_lux]) fall below 20. OR When any of the same light level sensors rise above 80. OR When any of the listed door sensors (garage door left contact [binary_sensor.garage_door_left_contact], garage door right contact [binary_sensor.garage_door_right_contact], loft hatch sensor contact [binary_sensor.loft_hatch_sensor_contact], back door sensor contact [binary_sensor.back_door_sensor_contact]) change from off to on. OR When any of the same door sensors change from on to off. OR When cloakroom light switch [switch.cloakroom_light] is turned on. OR When timer cloakroom light [timer.cloakroom_light] finishes. OR When lights out [binary_sensor.lights_out] changes from off to on. OR At sunset with a 30-minute offset (before sunset). CONDITIONS: holiday mode [input_boolean.holiday_mode] is off. ACTIONS: A choose block executes one of many sequences based on matching trigger IDs and additional conditions. The sequences are: 1. If trigger is Door Open AND the triggering entity's friendly name contains 'Loft' AND loft light [light.loft_light] is off, then turn on loft light [light.loft_light]. 2. If trigger is Door Closed AND the triggering entity's friendly name contains 'Loft' AND loft light [light.loft_light] is on, then turn off loft light [light.loft_light]. 3. If trigger is Cloakroom light on, then start timer cloakroom light [timer.cloakroom_light]. 4. If trigger is Cloakroom Light off AND cloakroom light 2 [light.cloakroom_light_2] is on, then turn off cloakroom light 2 [light.cloakroom_light_2]. 5. If trigger is Door Open AND the triggering entity's friendly name contains 'Garage' AND garage lights [light.garage_lights] is off, then turn on garage lights [light.garage_lights]. 6. If trigger is Door Closed AND the triggering entity's friendly name contains 'Garage Door Right' AND garage door left contact [binary_sensor.garage_door_left_contact] is off AND garage lights [light.garage_lights] is on, then turn off garage lights [light.garage_lights]. 7. If trigger is Door Closed AND the triggering entity's friendly name contains 'Garage Door Left' AND garage door right contact [binary_sensor.garage_door_right_contact] is off AND garage lights [light.garage_lights] is on, then turn off garage lights [light.garage_lights]. 8. If trigger is Door Open AND the triggering entity's friendly name contains 'Back' AND the current time is after sunset and before sunrise, then turn on back door light [light.back_door_light] with color_temp 500 and brightness_pct 75. 9. If trigger is Door Closed AND the triggering entity's friendly name contains 'Back' AND back door light [light.back_door_light] is on, then turn off back door light [light.back_door_light] with transition 300. 10. If trigger is Motion AND the triggering entity's friendly name contains 'Guest' AND lights out [binary_sensor.lights_out] is off AND average light level upstairs sensor [sensor.average_light_level_upstairs] is below 20 AND guest bedroom bedside lamps active [input_boolean.guest_bedroom_bedside_lamps_active] is on, then turn on guest bedroom bedside lamp left [light.guest_bedroom_bedside_lamp_left] and guest bedroom bedside lamp right [light.guest_bedroom_bedside_lamp_right] with color_temp 500 and brightness_pct 5. 11. If trigger is No Motion AND the triggering entity's friendly name contains 'Guest' AND guest bedroom bedside lamp left [light.guest_bedroom_bedside_lamp_left] is on AND guest bedroom bedside lamp right [light.guest_bedroom_bedside_lamp_right] is on AND room occupied guest bedroom [input_boolean.room_occupied_guest_bedroom] is off, then turn off guest bedroom bedside lamp left [light.guest_bedroom_bedside_lamp_left] and guest bedroom bedside lamp right [light.guest_bedroom_bedside_lamp_right]. 12. If trigger is Motion AND (the triggering entity's friendly name contains 'Lower' OR contains 'Upper') AND average light level upstairs sensor [sensor.average_light_level_upstairs] is below 20 AND lights out [binary_sensor.lights_out] is off AND landing lights [light.landing_lights] is off AND the current time is between 07:00:00 and 22:00:00, then turn on landing lights [light.landing_lights] with color_temp 500 and brightness_pct 15. 13. If trigger is No Motion AND (the triggering entity's friendly name contains 'Lower' OR contains 'Upper') AND landing lights [light.landing_lights] is on AND lower landing occupancy [input_boolean.lower_landing_occupancy] is off, then turn off landing lights [light.landing_lights]. 14. If trigger is Motion AND the triggering entity's friendly name contains 'Daves' AND main bedroom fp2 light sensor light level sensor [sensor.main_bedroom_fp2_light_sensor_light_level] is below 20 AND lights out [binary_sensor.lights_out] is off AND main bedroom bedside lamps active [input_boolean.main_bedroom_bedside_lamps_active] is on, then turn on daddy's bedside lamp socket 1 [switch.daddys_bedside_lamp_socket_1]. 15. If trigger is Motion AND the triggering entity's friendly name contains 'Gem' AND main bedroom fp2 light sensor light level sensor [sensor.main_bedroom_fp2_light_sensor_light_level] is below 20 AND lights out [binary_sensor.lights_out] is off AND main bedroom bedside lamps active [input_boolean.main_bedroom_bedside_lamps_active] is on, then turn on mummy's bedside lamp socket 1 [switch.mummys_bedside_lamp_socket_1]. 16. If trigger is No Motion AND the triggering entity's friendly name contains 'Daves' AND daddy's bedside lamp socket 1 [switch.daddys_bedside_lamp_socket_1] is on AND dad's side of bed occupied [input_boolean.dad_s_side_of_bed_occupied] is off, then turn off daddy's bedside lamp socket 1 [switch.daddys_bedside_lamp_socket_1]. 17. If trigger is No Motion AND the triggering entity's friendly name contains 'Gem' AND mummy's bedside lamp socket 1 [switch.mummys_bedside_lamp_socket_1] is on AND mum's side of bed occupied [input_boolean.mum_s_side_of_bed_occupied] is off, then turn off mummy's bedside lamp socket 1 [switch.mummys_bedside_lamp_socket_1]. 18. If trigger is Dusk AND holiday mode [input_boolean.holiday_mode] is off, then: if corner lamp local [switch.corner_lamp_local] is off, turn it on; turn on stair lights [light.stair_lights]; turn on under shelf lights local [switch.under_shelf_lights_local]; turn on bed lamps [light.bed_lamps]; if standard lamp socket 1 [switch.standard_lamp_socket_1] is off, turn it on; if living room tv switch [switch.living_room_tv] is on, turn on dreamview g1 pro [light.dreamview_g1_pro]. 19. If trigger is Lights Out, then: if corner lamp [light.corner_lamp] is on AND living room occupied [input_boolean.living_room_occupied] is off, turn off corner lamp [light.corner_lamp]; if standard lamp [light.standard_lamp] is on AND room occupied hallway [input_boolean.room_occupied_hallway] is off, turn off standard lamp [light.standard_lamp]; if under shelf lights local [switch.under_shelf_lights_local] is on AND room occupied kitchen [input_boolean.room_occupied_kitchen] is off, turn off under shelf lights local [switch.under_shelf_lights_local]; if dreamview g1 pro [light.dreamview_g1_pro] is on AND living room tv switch [switch.living_room_tv] is off AND living room occupied [input_boolean.living_room_occupied] is off, turn off dreamview g1 pro [light.dreamview_g1_pro]; if back door light [light.back_door_light] is on AND back door sensor contact [binary_sensor.back_door_sensor_contact] is off AND room occupied kitchen [input_boolean.room_occupied_kitchen] is off, turn off back door light [light.back_door_light]; if landing lights [light.landing_lights] is on AND lower landing occupancy [input_boolean.lower_landing_occupancy] is off, turn off landing lights [light.landing_lights]; if guest bedroom bedside lamp left [light.guest_bedroom_bedside_lamp_left] is on AND room occupied guest bedroom [input_boolean.room_occupied_guest_bedroom] is on, turn off guest bedroom bedside lamp left [light.guest_bedroom_bedside_lamp_left] and guest bedroom bedside lamp right [light.guest_bedroom_bedside_lamp_right]; if daddy's bedside lamp socket 1 [switch.daddys_bedside_lamp_socket_1] is on AND main bedroom fp2 presence sensor 2 [binary_sensor.main_bedroom_fp2_presence_sensor_2] is on, turn off daddy's bedside lamp socket 1 [switch.daddys_bedside_lamp_socket_1]; if mummy's bedside lamp socket 1 [switch.mummys_bedside_lamp_socket_1] is on AND main bedroom fp2 presence sensor 3 [binary_sensor.main_bedroom_fp2_presence_sensor_3] is on, turn off mummy's bedside lamp socket 1 [switch.mummys_bedside_lamp_socket_1]. 20. If trigger is Good Light AND the triggering entity's friendly name contains 'Living' AND corner lamp [light.corner_lamp] is on AND standard lamp [light.standard_lamp] is on, then turn off corner lamp [light.corner_lamp] and standard lamp [light.standard_lamp]. 21. If trigger is Good Light AND the triggering entity's friendly name contains 'Main', then: if daddy's bedside lamp socket 1 [switch.daddys_bedside_lamp_socket_1] is on, turn it off; if mummy's bedside lamp socket 1 [switch.mummys_bedside_lamp_socket_1] is on, turn it off. 22. If trigger is Good Light AND the triggering entity's friendly name contains 'Upstairs', then: if guest bedroom bedside lamp left [light.guest_bedroom_bedside_lamp_left] is on, turn it off; if guest bedroom bedside lamp right [light.guest_bedroom_bedside_lamp_right] is on, turn it off. 23. If trigger is Good Light AND the triggering entity's friendly name contains 'Upstairs' AND landing lights [light.landing_lights] is on, then turn off landing lights [light.landing_lights]. 24. If trigger is Motion AND the triggering entity's friendly name contains 'Cloakroom' AND cloakroom light 2 [light.cloakroom_light_2] is off AND average light level downstairs sensor [sensor.average_light_level_downstairs] is below 20, then turn on cloakroom light 2 [light.cloakroom_light_2]. 25. If trigger is No Motion AND the triggering entity's friendly name contains 'Cloakroom' AND cloakroom light 2 [light.cloakroom_light_2] is on, then turn off cloakroom light 2 [light.cloakroom_light_2]. 26. If trigger is Low Light AND the triggering entity's friendly name contains 'Living' AND corner lamp [light.corner_lamp] is off, then turn on corner lamp [light.corner_lamp] and standard lamp [light.standard_lamp].",
"natural_language": {
"trigger": "The automation can be triggered by several events: motion or presence is detected (sensor changes from off to on) in any of the many listed rooms; motion or presence stops being detected after being on for two minutes; the light level in any monitored area falls below 20; the light level rises above 80; any of the garage doors, loft hatch, or back door opens or closes; the cloakroom light switch is manually turned on; the cloakroom light timer finishes; the 'lights out' mode is activated; or it's 30 minutes before sunset.",
"conditions": "The automation only runs if holiday mode is turned off. Depending on which trigger fired, additional specific conditions are checked to determine which action to take. These include checking the friendly name of the triggering sensor to identify the room (e.g., contains 'Guest', 'Loft', 'Garage'), the current state of lights, the current light level, the time of day, whether certain rooms are occupied, and the status of specific input booleans for lamp activation.",
"action": "Based on the trigger and conditions, the automation performs one of many possible actions. These actions include turning lights on or off in specific rooms (like the loft, garage, back door, guest bedroom, landings, main bedroom sides, cloakroom, and living room), starting a timer for the cloakroom light, and executing a coordinated 'dusk' routine that turns on several ambient lights and lamps around the house. A separate 'lights out' routine turns off various lights if their corresponding rooms are unoccupied. It also includes logic to turn off lamps when light levels are sufficiently high."
},
"human_like": "This automation intelligently controls lights throughout the house based on motion, door activity, ambient light levels, and time of day, creating a hands-free lighting experience that saves energy and provides convenience.",
"complexity": "high"
}
},
{
"id": "All Presence and Occupancy",
"result": {
"structured": "TRIGGER: When any of the listed motion/presence sensors (kitchen presence sensor presence sensor 1 [binary_sensor.kitchen_presence_sensor_presence_sensor_1], kitchen presence sensor presence sensor 2 [binary_sensor.kitchen_presence_sensor_presence_sensor_2], presence sensor fp2 4b3c presence sensor 3 [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_3], presence sensor fp2 4b3c presence sensor 4 [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_4], dining room presence sensor occupancy [binary_sensor.dining_room_presence_sensor_occupancy], living room fp2 presence sensor 1 [binary_sensor.living_room_fp2_presence_sensor_1], hallway camera cell motion detection [binary_sensor.hallway_camera_cell_motion_detection], lower landing motion occupancy [binary_sensor.lower_landing_motion_occupancy], seans room camera cell motion detection [binary_sensor.seans_room_camera_cell_motion_detection], jamie's room cam cell motion detection [binary_sensor.jamie_s_room_cam_cell_motion_detection], guest bedroom camera cell motion detection [binary_sensor.guest_bedroom_camera_cell_motion_detection], guest bedroom motion occupancy [binary_sensor.guest_bedroom_motion_occupancy], main bedroom fp2 presence sensor 1 [binary_sensor.main_bedroom_fp2_presence_sensor_1], main bedroom fp2 presence sensor 4 [binary_sensor.main_bedroom_fp2_presence_sensor_4], office presence sensor occupancy [binary_sensor.office_presence_sensor_occupancy], cloakroom presence occupancy [binary_sensor.cloakroom_presence_occupancy], main bathroom presence occupancy [binary_sensor.main_bathroom_presence_occupancy], jack and jill presence occupancy [binary_sensor.jack_and_jill_presence_occupancy], upper landing presence occupancy [binary_sensor.upper_landing_presence_occupancy], garage camera cell motion detection 2 [binary_sensor.garage_camera_cell_motion_detection_2]) changes from off to on (Motion) OR when any of the same sensors changes from on to off (No Motion) OR when any of the listed Alexa media players (kitchen echo show [media_player.kitchen_echo_show], dave's echo pop [media_player.dave_s_echo_pop], dave's 2nd echo pop [media_player.dave_s_2nd_echo_pop], living room dot [media_player.living_room_dot], seans room dot [media_player.seans_room_dot], dave's 2nd echo pop 2 [media_player.dave_s_2nd_echo_pop_2], guest bedroom echo dot [media_player.guest_bedroom_echo_dot], main bedroom dot [media_player.main_bedroom_dot]) attribute last_called changes to true (Last Called Alexa) OR when any of the listed switches (living room tv [switch.living_room_tv], ingrid socket 1 [switch.ingrid_socket_1], casper switch 0 [switch.casper_switch_0]) changes from off to on (TV Turned On) OR when any of the listed external door sensors (back door sensor contact [binary_sensor.back_door_sensor_contact], front door sense contact [binary_sensor.front_door_sense_contact], side door sensor contact [binary_sensor.side_door_sensor_contact], garage door left contact [binary_sensor.garage_door_left_contact], garage door right contact [binary_sensor.garage_door_right_contact]) changes state (External Door Open) OR when any of the listed chair/bed sensors (living room fp2 presence sensor 2 [binary_sensor.living_room_fp2_presence_sensor_2], living room fp2 presence sensor 3 [binary_sensor.living_room_fp2_presence_sensor_3], living room fp2 presence sensor 4 [binary_sensor.living_room_fp2_presence_sensor_4], main bedroom fp2 presence sensor 2 [binary_sensor.main_bedroom_fp2_presence_sensor_2], main bedroom fp2 presence sensor 3 [binary_sensor.main_bedroom_fp2_presence_sensor_3], living room fp2 presence sensor 5 [binary_sensor.living_room_fp2_presence_sensor_5]) changes from off to on (Chair or Bed Occupied) OR when any of the same chair/bed sensors changes from on to off (Chair or Bed Vacated). CONDITIONS: None (empty list). ACTIONS: A choose block with multiple conditional sequences. Each sequence is executed if its specific conditions are met. The conditions are based on the trigger ID and template filters checking the friendly_name of the triggering entity. The actions set the room presence input text [input_text.room_presence] to a specific room/zone value and turn on or off corresponding occupancy input_booleans. The logic is: IF (trigger is Motion OR TV Turned On OR Last Called Alexa) AND (trigger friendly_name contains 'Living') THEN set room_presence to 'living_room' AND turn on living room occupied [input_boolean.living_room_occupied]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Living') AND (living room tv [switch.living_room_tv] is off) THEN turn off living room occupied [input_boolean.living_room_occupied]. IF (trigger is Chair or Bed Occupied) AND (trigger friendly_name contains 'Sofa') THEN set room_presence to 'living_room_sofa' AND turn on living room sofa occupied [input_boolean.living_room_sofa_occupied]. IF (trigger is Chair or Bed Vacated) AND (trigger friendly_name contains 'Sofa') THEN turn off living room sofa occupied [input_boolean.living_room_sofa_occupied]. IF (trigger is Chair or Bed Occupied) AND (trigger friendly_name contains 'Recliner') THEN set room_presence to 'living_room_recliner' AND turn on recliner sofa occupied [input_boolean.recliner_sofa_occupied]. IF (trigger is Chair or Bed Vacated) AND (trigger friendly_name contains 'Recliner') THEN turn off recliner sofa occupied [input_boolean.recliner_sofa_occupied]. IF (trigger is Chair or Bed Occupied) AND (trigger friendly_name contains 'Corner') THEN set room_presence to 'living_room_corner_chair' AND turn on living room corner chair occupied [input_boolean.living_room_corner_chair_occupied]. IF (trigger is Chair or Bed Vacated) AND (trigger friendly_name contains 'Corner') THEN turn off living room corner chair occupied [input_boolean.living_room_corner_chair_occupied]. IF (trigger is Chair or Bed Occupied) AND (trigger friendly_name contains 'Desk') THEN set room_presence to 'living_room_desk' AND turn on living room desk occupied [input_boolean.living_room_desk_occupied]. IF (trigger is Chair or Bed Vacated) AND (trigger friendly_name contains 'Desk') THEN turn off living room desk occupied [input_boolean.living_room_desk_occupied]. IF (trigger is Motion OR Last Called Alexa OR TV Turned On) AND ((trigger friendly_name contains 'Ingrid') OR (trigger friendly_name contains 'Kitchen')) THEN set room_presence to 'kitchen' AND turn on room occupied kitchen [input_boolean.room_occupied_kitchen]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Kitchen') AND (ingrid socket 1 [switch.ingrid_socket_1] is off) THEN turn off room occupied kitchen [input_boolean.room_occupied_kitchen]. IF (trigger is Motion OR Last Called Alexa) AND (trigger friendly_name contains 'Dining') THEN set room_presence to 'dining_room' AND turn on room occupied dining room [input_boolean.room_occupied_dining_room]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Dining') THEN turn off room occupied dining room [input_boolean.room_occupied_dining_room]. IF (trigger is Motion) AND (trigger friendly_name contains 'Hallway') THEN set room_presence to 'hallway' AND turn on room occupied hallway [input_boolean.room_occupied_hallway]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Hallway') THEN turn off room occupied hallway [input_boolean.room_occupied_hallway]. IF (trigger is Motion) AND (trigger friendly_name contains 'Lower') THEN set room_presence to 'lower_landing' AND turn on lower landing occupancy [input_boolean.lower_landing_occupancy]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Lower') THEN turn off lower landing occupancy [input_boolean.lower_landing_occupancy]. IF (trigger is Motion OR Last Called Alexa) AND (trigger friendly_name contains 'Main') THEN set room_presence to 'main_bedroom' AND turn on room occupied main bedroom [input_boolean.room_occupied_main_bedroom]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Main') THEN turn off room occupied main bedroom [input_boolean.room_occupied_main_bedroom]. IF (trigger is Chair or Bed Occupied) AND (trigger friendly_name contains 'Daves') THEN set room_presence to 'dads_side_of_bed' AND turn on dad's side of bed occupied [input_boolean.dad_s_side_of_bed_occupied]. IF (trigger is Chair or Bed Vacated) AND (trigger friendly_name contains 'Daves') THEN turn off dad's side of bed occupied [input_boolean.dad_s_side_of_bed_occupied]. IF (trigger is Chair or Bed Occupied) AND (trigger friendly_name contains 'Gem') THEN set room_presence to 'mums_side_of_bed' AND turn on mum's side of bed occupied [input_boolean.mum_s_side_of_bed_occupied]. IF (trigger is Chair or Bed Vacated) AND (trigger friendly_name contains 'Gem') THEN turn off mum's side of bed occupied [input_boolean.mum_s_side_of_bed_occupied]. IF (trigger is Motion) AND (trigger friendly_name contains 'Suite') THEN set room_presence to 'en_suite' AND turn on room occupied en suite bathroom [input_boolean.room_occupied_en_suite_bathroom]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Suite') THEN turn off room occupied en suite bathroom [input_boolean.room_occupied_en_suite_bathroom]. IF (trigger is Motion OR Last Called Alexa) AND (trigger friendly_name contains 'Jamie') THEN set room_presence to 'jamies_room' AND turn on room occupied jamie's room [input_boolean.room_occupied_jamie_s_room]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Jamie') THEN turn off room occupied jamie's room [input_boolean.room_occupied_jamie_s_room]. IF (trigger is Motion OR Last Called Alexa) AND (trigger friendly_name contains 'Sean') THEN set room_presence to 'seans_room' AND turn on room occupied sean's room [input_boolean.room_occupied_sean_s_room]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Sean') THEN turn off room occupied sean's room [input_boolean.room_occupied_sean_s_room]. IF (trigger is Motion OR Last Called Alexa) AND (trigger friendly_name contains 'Guest') THEN set room_presence to 'guest_bedroom' AND turn on room occupied guest bedroom [input_boolean.room_occupied_guest_bedroom]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Guest') THEN turn off room occupied guest bedroom [input_boolean.room_occupied_guest_bedroom]. IF (trigger is Motion OR Last Called Alexa) AND (trigger friendly_name contains 'Office') THEN set room_presence to 'office' AND turn on room occupied office [input_boolean.room_occupied_office]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Office') THEN turn off room occupied office [input_boolean.room_occupied_office]. IF (trigger is Motion) AND (trigger friendly_name contains 'Garage') THEN set room_presence to 'garage' AND turn on room occupied garage [input_boolean.room_occupied_garage]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Garage') THEN turn off room occupied garage [input_boolean.room_occupied_garage]. IF (trigger is Motion) AND (trigger friendly_name contains 'Cloakroom') THEN set room_presence to 'cloakroom' AND turn on room occupied cloakroom [input_boolean.room_occupied_cloakroom]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Cloakroom') THEN turn off room occupied cloakroom [input_boolean.room_occupied_cloakroom]. IF (trigger is Motion) AND (trigger friendly_name contains 'Bathroom') THEN set room_presence to 'bathroom' AND turn on room occupied main bathroom [input_boolean.room_occupied_main_bathroom]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Bathroom') THEN turn off room occupied main bathroom [input_boolean.room_occupied_main_bathroom]. IF (trigger is Motion) AND (trigger friendly_name contains 'Upper') THEN set room_presence to 'upper_landing' AND turn on upper landing occupied [input_boolean.upper_landing_occupied]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Upper') THEN turn off upper landing occupied [input_boolean.upper_landing_occupied]. IF (trigger is Motion) AND (trigger friendly_name contains 'Jack') THEN set room_presence to 'kids_bathroom' AND turn on room occupied jack jill [input_boolean.room_occupied_jack_jill]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Jack') THEN turn off room occupied jack jill [input_boolean.room_occupied_jack_jill]. IF (trigger is Motion) AND (trigger friendly_name contains 'Dinner') THEN set room_presence to 'kitchen_table' AND turn on kitchen table occupied [input_boolean.kitchen_table_occupied]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Dinner') THEN turn off kitchen table occupied [input_boolean.kitchen_table_occupied]. IF (trigger is Motion) AND (trigger friendly_name contains 'Back') THEN set room_presence to 'back_door_zone' AND turn on back door zone occupied [input_boolean.back_door_zone_occupied]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Back') THEN turn off back door zone occupied [input_boolean.back_door_zone_occupied]. IF (trigger is Motion) AND (trigger friendly_name contains 'Utility') THEN set room_presence to 'utility_room' AND turn on utility room occupied [input_boolean.utility_room_occupied]. IF (trigger is No Motion) AND (trigger friendly_name contains 'Utility') THEN turn off utility room occupied [input_boolean.utility_room_occupied].",
"natural_language": {
"trigger": "The automation triggers on a wide variety of events across the home. These include motion starting or stopping on many presence and motion sensors in rooms like the kitchen, living room, dining room, hallways, bedrooms, bathrooms, garage, and more. It also triggers when an Alexa device is last called, when certain switches (like the living room TV or kitchen appliances) are turned on, when external doors (back, front, side, garage) open or close, and when specific chair or bed occupancy sensors detect someone sitting down or getting up.",
"conditions": "There are no global conditions. Instead, the automation uses a complex set of conditional branches to determine which specific action to take based on which trigger fired and the name of the device that triggered it.",
"action": "Based on which trigger occurred and the name of the triggering device, the automation updates a central text field to indicate the latest area of presence and turns on or off corresponding occupancy flags for rooms and specific zones. For example, motion in a kitchen-named sensor sets the presence to 'kitchen' and marks the kitchen as occupied. Motion stopping in the same area, provided a related appliance is off, marks it as unoccupied. Similar logic applies to living room seating (sofa, recliner, corner chair, desk), bedrooms, bathrooms, hallways, the garage, and even specific zones like the back door or utility room. The automation also handles Alexa interactions and TV usage as indicators of room occupancy."
},
"human_like": "This automation tracks where people are in the home by monitoring motion, device usage, and seat occupancy, then updates room occupancy statuses accordingly.",
"complexity": "high"
}
},
{
"id": "All Tablet Automations",
"result": {
"structured": "TRIGGER: When sm t736b battery state sensor [sensor.sm_t736b_battery_state] becomes full OR When sm t736b battery state sensor [sensor.sm_t736b_battery_state] becomes charging OR When jamie's samsung tablet network type sensor [sensor.jamie_s_samsung_tablet_network_type] changes state OR When jamie's samsung tablet battery level sensor [sensor.jamie_s_samsung_tablet_battery_level] falls below 10 OR When jamie's samsung tablet battery level sensor [sensor.jamie_s_samsung_tablet_battery_level] rises above 99 OR When sean's samsung galaxy network type sensor [sensor.sean_s_samsung_galaxy_network_type] changes state OR When sean's samsung galaxy battery level sensor [sensor.sean_s_samsung_galaxy_battery_level] falls below 10 OR When sean's samsung galaxy battery level sensor [sensor.sean_s_samsung_galaxy_battery_level] rises above 99. CONDITIONS: None. ACTIONS: Choose one action based on which trigger fired: 1. If trigger is Daves tablet charged, then run text notify dave script [script.text_notify_dave] with title 'TABLET CHARGED' and message 'Your tablet is charged.'. 2. If trigger is Jamie Network Type AND person jamie [person.jamie] is home, then run text notify dave script [script.text_notify_dave] with title 'JAMIE TABLET' and message 'Jamie's tablet has changed network.'. 3. If trigger is Jamie Low Battery, then run text notify dave script [script.text_notify_dave] with title 'JAMIE TABLET' and message 'Jamie's tablet needs charged.'. 4. If trigger is Jamie Fully Charged, then run text notify dave script [script.text_notify_dave] with title 'JAMIE TABLET' and message 'Jamie's tablet is charged.'. 5. If trigger is Sean Network Type AND person sean [person.sean] is home, then run text notify dave script [script.text_notify_dave] with title 'SEAN TABLET' and message 'Sean's tablet has changed network.'. 6. If trigger is Sean Low Battery, then run text notify dave script [script.text_notify_dave] with title 'SEAN TABLET' and message 'Sean's tablet needs charged.'. 7. If trigger is Sean Fully Charged, then run text notify dave script [script.text_notify_dave] with title 'SEAN TABLET' and message 'Sean's tablet is charged.'.",
"natural_language": {
"trigger": "The automation can be triggered by several events: when Dave's tablet battery state becomes full or charging, when Jamie's tablet network type changes, when Jamie's tablet battery level falls below 10% or rises above 99%, when Sean's tablet network type changes, or when Sean's tablet battery level falls below 10% or rises above 99%.",
"conditions": "There are no global conditions that apply to all triggers. However, for the triggers related to a tablet's network type changing, an additional condition checks if the corresponding person (Jamie or Sean) is at home.",
"action": "Depending on which specific trigger occurred, the automation sends a text notification to Dave. It notifies him when his own tablet is charged, when Jamie's or Sean's tablet battery is low or fully charged, and when Jamie's or Sean's tablet network changes (but only if that person is home at the time)."
},
"human_like": "Sends text notifications to Dave about the charging status and network changes for his, Jamie's, and Sean's tablets.",
"complexity": "medium"
}
},
{
"id": "All Tablet Automations V2.0",
"result": {
"structured": "TRIGGER: When sm t736b battery state sensor [sensor.sm_t736b_battery_state] becomes full OR When sm t736b battery state sensor [sensor.sm_t736b_battery_state] becomes charging OR When jamie's samsung tablet network type sensor [sensor.jamie_s_samsung_tablet_network_type] changes state OR When jamie's samsung tablet battery level sensor [sensor.jamie_s_samsung_tablet_battery_level] falls below 10 OR When jamie's samsung tablet battery level sensor [sensor.jamie_s_samsung_tablet_battery_level] rises above 99 OR When sean's samsung galaxy network type sensor [sensor.sean_s_samsung_galaxy_network_type] changes state OR When sean's samsung galaxy battery level sensor [sensor.sean_s_samsung_galaxy_battery_level] falls below 10 OR When sean's samsung galaxy battery level sensor [sensor.sean_s_samsung_galaxy_battery_level] rises above 99 OR When jamie's samsung tablet battery state sensor [sensor.jamie_s_samsung_tablet_battery_state] becomes charging OR When sean's samsung galaxy battery state sensor [sensor.sean_s_samsung_galaxy_battery_state] becomes charging. CONDITIONS: (NOT (trigger.id is jamie_network OR sean_network)) OR (trigger.id is jamie_network AND person jamie [person.jamie] is home) OR (trigger.id is sean_network AND person sean [person.sean] is home). ACTIONS: First, if the trigger.id is jamie_now_charging or sean_now_charging, dismiss the corresponding persistent notification. Second, run the text notify dave script [script.text_notify_dave] with a custom title and message based on the trigger.id. Third, if the trigger.id is jamie_low_battery, wait 10 minutes, then if jamie's samsung tablet is charging binary sensor [binary_sensor.jamie_s_samsung_tablet_is_charging] is off, create a persistent notification. Fourth, if the trigger.id is sean_low_battery, wait 10 minutes, then if sean's samsung galaxy is charging binary sensor [binary_sensor.sean_s_samsung_galaxy_is_charging] is off, create a persistent notification.",
"natural_language": {
"trigger": "The automation triggers on various tablet status changes. This includes when a tablet named Dave's tablet is fully charged or starts charging, when Jamie's or Sean's tablet changes its network connection, when their battery levels drop below 10% or rise above 99%, and when they start charging.",
"conditions": "For network change triggers, the automation only proceeds if the change is not related to Jamie's or Sean's tablet, or if it is Jamie's tablet network change and Jamie is home, or if it is Sean's tablet network change and Sean is home. This prevents notifications for network changes when the person is not at home.",
"action": "The automation performs several actions based on which trigger fired. It first clears any 'still not charging' notification if a tablet has just started charging. It then sends a text notification to Dave summarizing the tablet status change. Finally, for low battery triggers, it waits 10 minutes and, if the tablet is still not charging, creates a persistent notification as a reminder."
},
"human_like": "This automation monitors tablet battery levels, charging status, and network connections for Dave, Jamie, and Sean, sending appropriate notifications and reminders to ensure tablets are charged.",
"complexity": "high"
}
},
{
"id": "Audible Notifications",
"result": {
"structured": "TRIGGER: When the time reaches the value set in audible notification on input datetime [input_datetime.audible_notification_on] OR when the time reaches the value set in audible notification off input datetime [input_datetime.audible_notification_off]. CONDITIONS: None. ACTIONS: Choose based on trigger: If the trigger is 'on' AND family home binary sensor [binary_sensor.family_home] is on, then turn on audible notifications input boolean [input_boolean.audible_notifications]. If the trigger is 'off' AND audible notifications input boolean [input_boolean.audible_notifications] is on, then turn off audible notifications input boolean [input_boolean.audible_notifications].",
"natural_language": {
"trigger": "The automation runs at a specific time set by the 'audible notification on input datetime' [input_datetime.audible_notification_on] or at the time set by the 'audible notification off input datetime' [input_datetime.audible_notification_off].",
"conditions": "There are no global conditions for this automation. Conditions are evaluated within the action's choice logic.",
"action": "If the automation was triggered by the 'on' time and the family home binary sensor [binary_sensor.family_home] indicates someone is home, it turns on the audible notifications input boolean [input_boolean.audible_notifications]. If it was triggered by the 'off' time and the audible notifications are currently on, it turns them off."
},
"human_like": "Automatically turns audible notifications on or off at scheduled times, but only turns them on if someone is home.",
"complexity": "medium"
}
},
{
"id": "a3739bb0-632d-4526-bf82-ee4e27b80882",
"result": {
"structured": "TRIGGER: When room audio sensor [sensor.room_audio] changes state. CONDITIONS: None. ACTIONS: Set the value of room with alexa presence input text [input_text.room_with_alexa_presence] to the current state of room audio sensor [sensor.room_audio]. Publish the current state of room audio sensor [sensor.room_audio] to the MQTT topic 'house/presence/current_room' with retain flag true. Publish the current state of room presence input text [input_text.room_presence] to the MQTT topic 'house/presence/backup_room' with retain flag true.",
"natural_language": {
"trigger": "Whenever the room audio sensor [sensor.room_audio] reports a new state.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "First, it updates the room with alexa presence input text [input_text.room_with_alexa_presence] to match the current value from the room audio sensor [sensor.room_audio]. Then, it publishes that same value to the MQTT topic 'house/presence/current_room' and retains the message. Finally, it publishes the current value of the room presence input text [input_text.room_presence] to the MQTT topic 'house/presence/backup_room' and retains that message as well."
},
"human_like": "Updates and publishes the current room location based on audio detection, using Alexa presence as the primary source and a backup presence state.",
"complexity": "low"
}
},
{
"id": "28c0e7a6-4024-48c9-a422-8b8ffc3a86d1",
"result": {
"structured": "TRIGGER: When the state of any of the following media players changes: kitchen echo show media player [media_player.kitchen_echo_show], living room pop media player [media_player.living_room_pop], dining room pop media player [media_player.dining_room_pop], main bedroom dot media player [media_player.main_bedroom_dot], guest bedroom echo dot media player [media_player.guest_bedroom_echo_dot], office pop media player [media_player.office_pop], jamie's room dot media player [media_player.jamie_s_room_dot], sean's room dot media player [media_player.sean_s_room_dot]. CONDITIONS: The new last_called_timestamp attribute of the triggering media player is greater than its previous last_called_timestamp attribute. ACTIONS: Set the date and time of last time alexa called input datetime [input_datetime.last_time_alexa_called] to the current date and time.",
"natural_language": {
"trigger": "Whenever the state of any of the eight listed Alexa media players in various rooms changes.",
"conditions": "The condition checks if the 'last_called_timestamp' attribute of the specific device that triggered the automation has increased, meaning the device has been used for a call or interaction more recently than before.",
"action": "Updates the 'last time alexa called' input datetime entity with the current date and time."
},
"human_like": "Updates a timestamp whenever any Alexa device in the home is used for a call, keeping track of the most recent interaction.",
"complexity": "medium"
}
},
{
"id": "Aura Lamp",
"result": {
"structured": "TRIGGER: When sunset occurs OR when sunrise occurs OR when morning binary sensor [binary_sensor.morning] changes from off to on OR when lunchtime binary sensor [binary_sensor.lunchtime] changes from off to on OR when afternoon binary sensor [binary_sensor.afternoon] changes from off to on OR when dinner time binary sensor [binary_sensor.dinner_time] changes from off to on OR when evening binary sensor [binary_sensor.evening] changes from off to on. CONDITIONS: None. ACTIONS: Choose an action based on the trigger: If triggered by sunrise, turn on kitchen aura lamp 2 light [light.kitchen_aura_lamp_2] with effect 'Sunrise', wait 30 minutes, then check: if washing machine finished input boolean [input_boolean.washing_machine_finished] is on, set lamp to red color at 1% brightness; else if garage dehumidifier full input boolean [input_boolean.garage_dehumidifier_full] is on, set lamp to cyan color at 1% brightness; else set lamp to effect 'Morning'. If triggered by sunset, turn on kitchen aura lamp 2 light [light.kitchen_aura_lamp_2] with effect 'Sunset', wait 30 minutes, then check: if afternoon binary sensor [binary_sensor.afternoon] is on, set lamp to effect 'Forest'; else if dinner time binary sensor [binary_sensor.dinner_time] is on, set lamp to effect 'Eating Dots'; else set lamp to effect 'Firefly'. If triggered by morning binary sensor [binary_sensor.morning], set lamp to effect 'Morning'. If triggered by lunchtime binary sensor [binary_sensor.lunchtime], set lamp to effect 'Falling Petals'. If triggered by afternoon binary sensor [binary_sensor.afternoon], set lamp to effect 'Forest'. If triggered by dinner time binary sensor [binary_sensor.dinner_time], set lamp to effect 'Eating Dots'. If triggered by evening binary sensor [binary_sensor.evening], set lamp to effect 'Firefly'.",
"natural_language": {
"trigger": "The automation can be triggered by several events: at sunset, at sunrise, or when any of the time-of-day binary sensors (morning, lunchtime, afternoon, dinner time, or evening) turn on.",
"conditions": "There are no conditions that must be met for the automation to run; it will execute whenever a trigger occurs.",
"action": "Depending on which trigger fired, the kitchen aura lamp 2 light [light.kitchen_aura_lamp_2] is set to a specific light effect or color. For a sunrise trigger, it starts with a 'Sunrise' effect, waits 30 minutes, and then checks the status of appliances: if the washing machine is finished, the lamp turns red; if the garage dehumidifier is full, it turns cyan; otherwise, it uses a 'Morning' effect. For a sunset trigger, it starts with a 'Sunset' effect, waits 30 minutes, and then selects an effect based on the current time of day: 'Forest' for afternoon, 'Eating Dots' for dinner time, or 'Firefly' otherwise. For triggers from the time-of-day sensors, the lamp is set directly to a corresponding effect: 'Morning' for morning, 'Falling Petals' for lunchtime, 'Forest' for afternoon, 'Eating Dots' for dinner time, and 'Firefly' for evening."
},
"human_like": "Sets the mood lighting on the kitchen aura lamp throughout the day based on sunrise, sunset, and different times of day, with special colors for appliance notifications in the morning.",
"complexity": "high"
}
},
{
"id": "Aurora Alert",
"result": {
"structured": "TRIGGER: When aurora aurora visibility visibility sensor [sensor.aurora_aurora_visibility_visibility] rises above 10 OR when aurora aurora visibility visibility sensor [sensor.aurora_aurora_visibility_visibility] falls below 5. CONDITIONS: None. ACTIONS: Choose based on which trigger fired. If the trigger was 'aurora on', then: 1. Run script.text_notify_parents with title 'AURORA ALERT - HIGHLY PROBABLE' and message 'There may be a visible aurora tonight'. 2. Check if audible notifications input boolean [input_boolean.audible_notifications] is on. 3. If dave home binary sensor [binary_sensor.dave_home] is on, run script.jarvis_speech_engine_v3_0 to announce to 'dave', else run script.jarvis_speech_engine_v3_0 to announce to 'gem'. If the trigger was 'aurora off', then: 1. Run script.text_notify_parents with title 'AURORA ALERT - ALERT OVER' and message 'That will be that for the Northern Lights then.'. 2. Check if audible notifications input boolean [input_boolean.audible_notifications] is on. 3. If dave home binary sensor [binary_sensor.dave_home] is on, run script.jarvis_speech_engine_v3_0 to announce to 'dave', else run script.jarvis_speech_engine_v3_0 to announce to 'gem'.",
"natural_language": {
"trigger": "The automation triggers when the aurora visibility sensor [sensor.aurora_aurora_visibility_visibility] indicates a high probability of aurora visibility (value above 10) or when the probability drops (value below 5).",
"conditions": "There are no conditions that must be met before the actions run.",
"action": "Depending on which trigger fired, the automation will send a text notification to parents and, if audible notifications are enabled, make a speech announcement. If the aurora visibility becomes high, it sends an alert and announces a good chance of seeing the Northern Lights. If the visibility drops, it sends an alert over message and announces that the chance has passed. The speech announcement is directed to 'Dave' if he is home, otherwise to 'Gem'."
},
"human_like": "Sends alerts and announcements when the probability of seeing the Northern Lights becomes high or ends, notifying parents via text and making a voice announcement if someone is home.",
"complexity": "medium"
}
},
{
"id": "'ESPHome: Update all ESPHome devices'",
"result": {
"structured": "TRIGGER: When any ESPHome update entity (matching pattern '^update.') changes to state 'on'. CONDITIONS: None. ACTIONS: Execute script.esphome_update_all_esphome_devices.",
"natural_language": {
"trigger": "When the system detects that an update is available for any ESPHome device, indicated by an update entity turning on.",
"conditions": "There are no conditions that must be met.",
"action": "Runs the script 'esphome_update_all_esphome_devices' to update all ESPHome devices."
},
"human_like": "Automatically updates all ESPHome devices when any one of them has a new update available.",
"complexity": "low"
}
},
{
"id": "Automations Control Automation",
"result": {
"structured": "TRIGGER: At 15:30:00 (Enable) OR At 19:30:00 (Disable) OR When any of the following input booleans changes from off to on: kids bedtime announcement played [input_boolean.kids_bedtime_announcement_played], school morning announcement played [input_boolean.school_morning_announcement_played], school pick up announcement played [input_boolean.school_pick_up_announcement_played], morning briefing played [input_boolean.morning_briefing_played] (Toggle On). CONDITIONS: None. ACTIONS: Choose based on trigger: IF trigger is Enable THEN turn on get desired battery discharge automation [automation.get_desired_battery_discharge] AND turn on discharge battery to desired automation [automation.discharge_battery_to_desired]. IF trigger is Disable THEN turn off get desired battery discharge automation [automation.get_desired_battery_discharge] (with stop_actions) AND turn off discharge battery to desired automation [automation.discharge_battery_to_desired] (with stop_actions). IF trigger is Toggle On AND the friendly_name of the triggered entity contains 'Bedtime' THEN IF (daddy's bedside lamp socket 1 switch [switch.daddys_bedside_lamp_socket_1] is on OR mummy's bedside lamp socket 1 switch [switch.mummys_bedside_lamp_socket_1] is on) THEN turn off mummy's bedside lamp socket 1 switch [switch.mummys_bedside_lamp_socket_1] AND turn off daddy's bedside lamp socket 1 switch [switch.daddys_bedside_lamp_socket_1]; AND turn off main bedroom bedside lamps active input boolean [input_boolean.main_bedroom_bedside_lamps_active].",
"natural_language": {
"trigger": "The automation can be triggered in three ways: at 3:30 PM, at 7:30 PM, or when any of the announcement input booleans (kids bedtime announcement played [input_boolean.kids_bedtime_announcement_played], school morning announcement played [input_boolean.school_morning_announcement_played], school pick up announcement played [input_boolean.school_pick_up_announcement_played], or morning briefing played [input_boolean.morning_briefing_played]) changes from off to on.",
"conditions": "There are no global conditions for this automation.",
"action": "The action depends on which trigger occurred. If triggered at 3:30 PM, it turns on two battery-related automations: get desired battery discharge automation [automation.get_desired_battery_discharge] and discharge battery to desired automation [automation.discharge_battery_to_desired]. If triggered at 7:30 PM, it turns off those same two automations, stopping any ongoing actions. If triggered by an announcement boolean turning on, and the announcement's name contains 'Bedtime', it will first check if either of the bedside lamps are on. If so, it turns them both off. Finally, it turns off the main bedroom bedside lamps active input boolean [input_boolean.main_bedroom_bedside_lamps_active]."
},
"human_like": "This automation manages other automations and devices based on time and announcements, turning battery automations on/off at scheduled times and turning off bedside lamps when a bedtime announcement is played.",
"complexity": "medium"
}
},
{
"id": "Automations That Run When HA Starts or When Groups Reload",
"result": {
"structured": "TRIGGER: When Home Assistant starts OR When group kitchen occupancy group [group.kitchen_occupancy] changes state to unknown. CONDITIONS: None. ACTIONS: Execute script.update_critical_battery_group_2, wait 1 minute, execute script.update_rechargeable_battery_group, wait 1 minute, execute script.update_srv_critical_battery_group, wait 1 minute, execute script.update_occupancy_groups.",
"natural_language": {
"trigger": "This automation runs either when Home Assistant starts up, or when the group kitchen occupancy group [group.kitchen_occupancy] changes its state to 'unknown'.",
"conditions": "There are no conditions for this automation.",
"action": "It runs a sequence of scripts with delays in between. First, it runs the script 'update_critical_battery_group_2'. After waiting for one minute, it runs 'update_rechargeable_battery_group'. After another one-minute delay, it runs 'update_srv_critical_battery_group'. Finally, after a final one-minute delay, it runs 'update_occupancy_groups'."
},
"human_like": "Runs a series of system update scripts when Home Assistant starts or when the kitchen occupancy group resets, with pauses between each script to manage system load.",
"complexity": "medium"
}
},
{
"id": "Guest Bedroom Lights with presence",
"result": {
"structured": "TRIGGER: When guest bedroom motion occupancy binary sensor [binary_sensor.guest_bedroom_motion_occupancy] changes from off to on OR When guest bedroom motion occupancy binary sensor [binary_sensor.guest_bedroom_motion_occupancy] changes from on to off AND remains off for 1 minute OR When upstairs light level sensor [sensor.upstairs_light_level] goes below 20 OR When upstairs light level sensor [sensor.upstairs_light_level] goes above 80. CONDITIONS: (guest bedroom bedside lamps active input boolean [input_boolean.guest_bedroom_bedside_lamps_active] is on) AND (holiday mode input boolean [input_boolean.holiday_mode] is off) AND (lights out binary sensor [binary_sensor.lights_out] is off). ACTIONS: (IF (trigger is Light on) AND (lights out binary sensor [binary_sensor.lights_out] is off) AND (average light level upstairs sensor [sensor.average_light_level_upstairs] is below 20) THEN turn on guest bedroom bedside lamp left light [light.guest_bedroom_bedside_lamp_left] and guest bedroom bedside lamp right light [light.guest_bedroom_bedside_lamp_right] with color temperature 500 and brightness 5%) OR (IF (trigger is Light off) AND (guest bedroom bedside lamp left light [light.guest_bedroom_bedside_lamp_left] is on) AND (guest bedroom bedside lamp right light [light.guest_bedroom_bedside_lamp_right] is on) THEN turn off guest bedroom bedside lamp left light [light.guest_bedroom_bedside_lamp_left] and guest bedroom bedside lamp right light [light.guest_bedroom_bedside_lamp_right]) OR (IF (trigger is Low Light) AND (guest bedroom bedside lamp left light [light.guest_bedroom_bedside_lamp_left] is off) AND (guest bedroom bedside lamp right light [light.guest_bedroom_bedside_lamp_right] is off) AND (room occupied guest bedroom input boolean [input_boolean.room_occupied_guest_bedroom] is on) THEN turn on guest bedroom bedside lamp left light [light.guest_bedroom_bedside_lamp_left] and guest bedroom bedside lamp right light [light.guest_bedroom_bedside_lamp_right] with color temperature 500 and brightness 50%) OR (IF (trigger is Good Light) AND (room occupied guest bedroom input boolean [input_boolean.room_occupied_guest_bedroom] is on) AND (guest bedroom bedside lamp left light [light.guest_bedroom_bedside_lamp_left] is on) AND (guest bedroom bedside lamp right light [light.guest_bedroom_bedside_lamp_right] is on) THEN turn off guest bedroom bedside lamp left light [light.guest_bedroom_bedside_lamp_left] and guest bedroom bedside lamp right light [light.guest_bedroom_bedside_lamp_right]).",
"natural_language": {
"trigger": "The automation can be triggered in four ways: when motion is first detected in the guest bedroom, when motion stops being detected for at least one minute, when the overall upstairs light level falls below 20, or when it rises above 80.",
"conditions": "For the automation to run at all, the guest bedroom bedside lamps must be set to active, holiday mode must be off, and the 'lights out' mode must not be active.",
"action": "Depending on which trigger fired and the state of other lights and sensors, the automation will either turn the bedside lamps on or off. If motion is detected and the upstairs is dark, it turns the lamps on at a low 5% brightness. If motion has been absent for a minute and the lamps are on, it turns them off. If the upstairs light level is low, the room is marked as occupied, and the lamps are off, it turns them on at a 50% brightness. Conversely, if the light level is good, the room is occupied, and the lamps are on, it turns them off."
},
"human_like": "This automation intelligently controls the guest bedroom bedside lamps based on motion, ambient light levels, and room occupancy, ensuring lights are only on when needed.",
"complexity": "high"
}
},
{
"id": "kitchen_lights_with_presence",
"result": {
"structured": "TRIGGER: When kitchen presence sensor presence sensor 1 [binary_sensor.kitchen_presence_sensor_presence_sensor_1] changes from off to on OR When kitchen presence sensor presence sensor 1 [binary_sensor.kitchen_presence_sensor_presence_sensor_1] changes from on to off and remains for 30 seconds OR When presence sensor fp2 4b3c presence sensor 3 [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_3] changes from off to on OR When presence sensor fp2 4b3c presence sensor 3 [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_3] changes from on to off and remains for 30 seconds OR When back door sensor contact [binary_sensor.back_door_sensor_contact] changes from off to on OR When presence sensor fp2 4b3c presence sensor 4 [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_4] changes from off to on OR When presence sensor fp2 4b3c presence sensor 4 [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_4] changes from on to off and remains for 30 seconds OR When kitchen presence sensor light sensor light level [sensor.kitchen_presence_sensor_light_sensor_light_level] falls below low light threshold input number [input_number.low_light_threshold] OR When kitchen presence sensor light sensor light level [sensor.kitchen_presence_sensor_light_sensor_light_level] rises above upper light threshold level input number [input_number.upper_light_threshold_level] OR When lunchtime binary sensor [binary_sensor.lunchtime] changes from off to on OR When lunchtime binary sensor [binary_sensor.lunchtime] changes from on to off OR When dinner time binary sensor [binary_sensor.dinner_time] changes from off to on OR When dinner time binary sensor [binary_sensor.dinner_time] changes from on to off OR When lights out binary sensor [binary_sensor.lights_out] changes to off. CONDITIONS: holiday mode input boolean [input_boolean.holiday_mode] is off. ACTIONS: Choose from multiple sequences based on trigger and conditions: 1. IF trigger is Lights On AND overnight binary sensor [binary_sensor.overnight] is on THEN turn on kitchen lights 2 [light.kitchen_lights_2] with warm white color (RGB 255,254,223) and low brightness (10). 2. IF trigger is Lights On AND (morning binary sensor [binary_sensor.morning] is on OR afternoon binary sensor [binary_sensor.afternoon] is on OR evening binary sensor [binary_sensor.evening] is on) AND kitchen presence sensor light sensor light level [sensor.kitchen_presence_sensor_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold] THEN turn on kitchen lights 2 [light.kitchen_lights_2] with color temperature 367 and brightness 28. 3. IF trigger is Lights On AND (lunchtime binary sensor [binary_sensor.lunchtime] is on OR dinner time binary sensor [binary_sensor.dinner_time] is on) AND kitchen presence sensor light sensor light level [sensor.kitchen_presence_sensor_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold] THEN turn on kitchen lights 2 [light.kitchen_lights_2] with color temperature 200 and full brightness (255). 4. IF trigger is Lights Off THEN turn off kitchen lights 2 [light.kitchen_lights_2]. 5. IF trigger is Back Door Entry AND the sun is below the horizon (before sunrise OR after sunset) AND back door zone light [light.back_door_zone_light] is off THEN turn on back door zone light [light.back_door_zone_light] with color temperature 500 and brightness 127. 6. IF trigger is BDZ On AND (kitchen presence sensor light sensor light level [sensor.kitchen_presence_sensor_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold] OR (season sensor [sensor.season] is autumn OR winter AND the time is between 17:35:00 and 21:00:00)) THEN turn on back door zone light [light.back_door_zone_light] with color temperature 500 and brightness 128. 7. IF trigger is BDZ Off THEN turn off back door zone light [light.back_door_zone_light]. 8. IF trigger is Utility On AND lights out binary sensor [binary_sensor.lights_out] is off AND the sun is below the horizon (after sunset AND before sunrise) THEN turn on utility room light [light.utility_room_light] with color temperature 500 and brightness 199. 9. IF trigger is Utility Off THEN turn off utility room light [light.utility_room_light]. 10. IF trigger is Low Light AND kitchen presence sensor presence sensor 1 [binary_sensor.kitchen_presence_sensor_presence_sensor_1] is on AND (morning binary sensor [binary_sensor.morning] is on OR afternoon binary sensor [binary_sensor.afternoon] is on OR evening binary sensor [binary_sensor.evening] is on) AND kitchen lights 2 [light.kitchen_lights_2] is off THEN turn on kitchen lights 2 [light.kitchen_lights_2] with color temperature 367 and brightness 28. 11. IF trigger is Low Light AND kitchen presence sensor presence sensor 1 [binary_sensor.kitchen_presence_sensor_presence_sensor_1] is on AND (lunchtime binary sensor [binary_sensor.lunchtime] is on OR dinner time binary sensor [binary_sensor.dinner_time] is on) AND kitchen lights 2 [light.kitchen_lights_2] is off THEN turn on kitchen lights 2 [light.kitchen_lights_2] with color temperature 200 and full brightness (255). 12. IF trigger is Good Light THEN turn off kitchen lights 2 [light.kitchen_lights_2]. 13. IF trigger is Lunchtime starts OR Dinner Time Starts AND kitchen lights 2 [light.kitchen_lights_2] is on THEN turn on kitchen lights 2 [light.kitchen_lights_2] with color temperature 200 and full brightness (255). 14. IF trigger is lunchtime ends OR Dinner Time Ends AND kitchen lights 2 [light.kitchen_lights_2] is on THEN turn on kitchen lights 2 [light.kitchen_lights_2] with color temperature 367 and brightness 28. 15. IF trigger is Allow Lights on AND room occupied kitchen input boolean [input_boolean.room_occupied_kitchen] is on AND kitchen presence sensor light sensor light level [sensor.kitchen_presence_sensor_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold] THEN turn on kitchen lights 2 [light.kitchen_lights_2] with color temperature 367 and brightness 28.",
"natural_language": {
"trigger": "The automation can be triggered by many events: when the main kitchen presence sensor [binary_sensor.kitchen_presence_sensor_presence_sensor_1] detects or stops detecting presence (with a 30-second delay for turning off); when a secondary presence sensor in the back door zone [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_3] detects or stops detecting presence (with a 30-second delay for turning off); when the back door contact sensor [binary_sensor.back_door_sensor_contact] opens; when a presence sensor in the utility area [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_4] detects or stops detecting presence (with a 30-second delay for turning off); when the kitchen light level [sensor.kitchen_presence_sensor_light_sensor_light_level] falls below or rises above configured thresholds; when lunchtime or dinner time starts or ends; or when a general 'lights out' restriction [binary_sensor.lights_out] is lifted.",
"conditions": "The automation only runs if holiday mode [input_boolean.holiday_mode] is turned off. Beyond this, each specific action has its own set of conditions based on the trigger, time of day, light levels, and the state of other sensors and lights.",
"action": "Depending on the trigger and conditions, the automation controls three lights: the main kitchen lights [light.kitchen_lights_2], a back door zone light [light.back_door_zone_light], and a utility room light [light.utility_room_light]. Actions include turning lights on with specific brightness and color temperature settings for different scenarios (like overnight, meal times, or low light during the day) or turning them off when presence is no longer detected or light levels are sufficient."
},
"human_like": "This automation intelligently controls the kitchen, back door, and utility room lights based on presence, time of day, meal times, and ambient light levels, ensuring lights are only on when needed.",
"complexity": "high"
}
},
{
"id": "Main Bedroom Lights with Presence",
"result": {
"structured": "TRIGGER: When main bedroom fp2 presence sensor 2 binary sensor [binary_sensor.main_bedroom_fp2_presence_sensor_2] OR main bedroom fp2 presence sensor 3 binary sensor [binary_sensor.main_bedroom_fp2_presence_sensor_3] changes from off to on (Lights On) OR When main bedroom fp2 presence sensor 2 binary sensor [binary_sensor.main_bedroom_fp2_presence_sensor_2] OR main bedroom fp2 presence sensor 3 binary sensor [binary_sensor.main_bedroom_fp2_presence_sensor_3] changes from on to off and remains off for 1 minute (Lights Off) OR When main bedroom fp2 light sensor light level sensor [sensor.main_bedroom_fp2_light_sensor_light_level] falls below low light threshold input number [input_number.low_light_threshold] (Low Light) OR When main bedroom fp2 light sensor light level sensor [sensor.main_bedroom_fp2_light_sensor_light_level] rises above upper light threshold level input number [input_number.upper_light_threshold_level] (Good Light). CONDITIONS: holiday mode input boolean [input_boolean.holiday_mode] is off AND lights out binary sensor [binary_sensor.lights_out] is off. ACTIONS: Choose based on trigger and conditions: 1) IF trigger is Lights On AND trigger entity's friendly name contains 'Daves' AND main bedroom fp2 light sensor light level sensor [sensor.main_bedroom_fp2_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold] AND main bedroom bedside lamps active input boolean [input_boolean.main_bedroom_bedside_lamps_active] is on THEN turn on sonoff 1001f6d950 light [light.sonoff_1001f6d950] with 5% brightness and 500 color temp. 2) IF trigger is Lights On AND trigger entity's friendly name contains 'Gem' AND main bedroom fp2 light sensor light level sensor [sensor.main_bedroom_fp2_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold] AND main bedroom bedside lamps active input boolean [input_boolean.main_bedroom_bedside_lamps_active] is on THEN turn on sonoff 1001f6d982 light [light.sonoff_1001f6d982] with 5% brightness and 500 color temp. 3) IF trigger is Lights Off AND trigger entity's friendly name contains 'Daves' AND sonoff 1001f6d950 light [light.sonoff_1001f6d950] is on THEN turn off sonoff 1001f6d950 light [light.sonoff_1001f6d950]. 4) IF trigger is Lights Off AND trigger entity's friendly name contains 'Gem' AND sonoff 1001f6d982 light [light.sonoff_1001f6d982] is on THEN turn off sonoff 1001f6d982 light [light.sonoff_1001f6d982]. 5) IF trigger is Low Light AND room occupied main bedroom input boolean [input_boolean.room_occupied_main_bedroom] is on AND main bedroom bedside lamps active input boolean [input_boolean.main_bedroom_bedside_lamps_active] is on THEN turn on both sonoff 1001f6d950 light [light.sonoff_1001f6d950] and sonoff 1001f6d982 light [light.sonoff_1001f6d982] with 5% brightness and 500 color temp. 6) IF trigger is Good Light AND (sonoff 1001f6d950 light [light.sonoff_1001f6d950] is on OR sonoff 1001f6d982 light [light.sonoff_1001f6d982] is on) THEN turn off both sonoff 1001f6d950 light [light.sonoff_1001f6d950] and sonoff 1001f6d982 light [light.sonoff_1001f6d982].",
"natural_language": {
"trigger": "The automation can be triggered in four ways: when either the main bedroom fp2 presence sensor 2 [binary_sensor.main_bedroom_fp2_presence_sensor_2] or main bedroom fp2 presence sensor 3 [binary_sensor.main_bedroom_fp2_presence_sensor_3] detects someone entering (changes from off to on); when either of those sensors detects someone leaving and the state remains 'off' for one full minute; when the main bedroom fp2 light sensor light level [sensor.main_bedroom_fp2_light_sensor_light_level] falls below a configured low-light threshold; or when the same light level rises above a configured upper-light threshold.",
"conditions": "For the automation to run at all, two global conditions must be met: the holiday mode [input_boolean.holiday_mode] must be off, and the lights out [binary_sensor.lights_out] sensor must be off.",
"action": "Depending on which trigger fired and other specific conditions, different actions are taken. If presence is detected on 'Dave's' side of the bed and the room is dark and bedside lamps are active, a specific lamp [light.sonoff_1001f6d950] is turned on dimly. The same happens for 'Gem's' side, controlling a different lamp [light.sonoff_1001f6d982]. If presence is lost on a specific side, the corresponding lamp is turned off, but only if it is currently on. If the overall room light level becomes too low while the room is occupied and bedside lamps are active, both bedside lamps are turned on dimly. Conversely, if the room light level becomes sufficiently bright and either bedside lamp is on, both lamps are turned off."
},
"human_like": "Automatically controls the main bedroom bedside lamps based on presence detection and ambient light levels, turning them on for specific occupants in low light and off when they leave or when the room is bright enough.",
"complexity": "high"
}
},
{
"id": "Peak/Cheap rate select for Go Utility meter",
"result": {
"structured": "TRIGGER: When the time is 00:30:00 (with variable 'tariff' set to 'Off Peak') OR When the time is 04:30:00 (with variable 'tariff' set to 'Peak'). CONDITIONS: None. ACTIONS: Set octopus go select [select.octopus_go] to the value of the variable 'tariff'.",
"natural_language": {
"trigger": "The automation runs every day at 12:30 AM and again at 4:30 AM.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "It sets the octopus go select [select.octopus_go] to 'Off Peak' at 12:30 AM and to 'Peak' at 4:30 AM."
},
"human_like": "Automatically switches the electricity tariff setting between 'Off Peak' and 'Peak' times based on a daily schedule.",
"complexity": "low"
}
},
{
"id": "Back Door Light Needed",
"result": {
"structured": "TRIGGER: When back door light switch switch [switch.back_door_light_switch] changes from off to on OR When back door light switch switch [switch.back_door_light_switch] changes from on to off. CONDITIONS: None. ACTIONS: If back door light light [light.back_door_light] is off, then turn on back door light light [light.back_door_light]. Otherwise, turn off back door light light [light.back_door_light].",
"natural_language": {
"trigger": "Whenever the back door light switch switch [switch.back_door_light_switch] is turned on or turned off.",
"conditions": "There are no conditions that must be met.",
"action": "If the back door light light [light.back_door_light] is currently off, it will be turned on. If the light is already on, it will be turned off."
},
"human_like": "Toggles the back door light on or off to match the state of its physical switch.",
"complexity": "low"
}
},
{
"id": "Back Door Related Automations",
"result": {
"structured": "TRIGGER: When back door sensor contact binary sensor [binary_sensor.back_door_sensor_contact] changes from closed (off) to open (on) OR When back door sensor contact binary sensor [binary_sensor.back_door_sensor_contact] changes from closed (off) to open (on) AND remains open for 2 minutes OR When back door sensor contact binary sensor [binary_sensor.back_door_sensor_contact] changes from open (on) to closed (off) OR At sunrise. CONDITIONS: None. ACTIONS: Choose based on trigger: 1) If triggered by the door opening (Chime): Turn on back door light light [light.back_door_light] at full brightness if before sunrise AND after sunset, turn on back door zone light light [light.back_door_zone_light] unconditionally, and play a door sound on jarvis kitchen media player media player [media_player.jarvis_kitchen_media_player] if audible notifications input boolean [input_boolean.audible_notifications] is on AND announcement playing input boolean [input_boolean.announcement_playing] is off. 2) If triggered by the door closing (Chime Off): Play a door sound on jarvis kitchen media player media player [media_player.jarvis_kitchen_media_player] if announcement playing input boolean [input_boolean.announcement_playing] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on, then run script back door zone light dim when door closed script [script.back_door_light_dim_when_door_closed] if back door light light [light.back_door_light] is on. 3) If triggered by the door being open for 2 minutes (Door still open) AND audible notifications input boolean [input_boolean.audible_notifications] is on AND guest mode input boolean [input_boolean.guest_mode] is off: Run script jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a random message about the door being open, directing the message to 'dave' if dave home binary sensor [binary_sensor.dave_home] is on, otherwise to 'gem'. 4) If triggered by sunrise: Turn off back door light light [light.back_door_light] if it is on.",
"natural_language": {
"trigger": "This automation is triggered in four ways: when the back door sensor contact binary sensor [binary_sensor.back_door_sensor_contact] first opens, when it remains open for two minutes, when it closes, or at sunrise.",
"conditions": "There are no global conditions for this automation; however, specific conditions are checked within each action path.",
"action": "Depending on which trigger occurs, different actions are taken. When the door opens, the back door light is turned on if it's dark outside, the back door zone light is turned on, and a door chime sound is played if notifications are enabled. When the door closes, the chime sound is played again if allowed, and the back door light is dimmed off via a script if it was on. If the door is left open for two minutes and guest mode is off, a random, humorous announcement is made via a speech engine script, directed to a specific person based on who is home. At sunrise, if the back door light is still on, it is turned off."
},
"human_like": "This automation manages lights and announcements for the back door, turning lights on when opened, playing sounds, reminding someone if it's left open, and ensuring lights are off by sunrise.",
"complexity": "high"
}
},
{
"id": "Back Door Zone Light Needed",
"result": {
"structured": "TRIGGER: When kitchen light switch left switch [switch.kitchen_light_switch_left] turns on OR when kitchen light switch left switch [switch.kitchen_light_switch_left] turns off. CONDITIONS: None. ACTIONS: If back door zone light light [light.back_door_zone_light] is off, then turn it on. Otherwise, turn it off.",
"natural_language": {
"trigger": "Whenever the kitchen light switch left switch [switch.kitchen_light_switch_left] changes its state, either from off to on or from on to off.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "The automation checks the state of the back door zone light light [light.back_door_zone_light]. If it is off, the light is turned on. If it is already on, the light is turned off."
},
"human_like": "Toggles the back door zone light on or off whenever the kitchen light switch is flipped, ensuring the area is lit when needed.",
"complexity": "low"
}
},
{
"id": "Bathrooms Presence",
"result": {
"structured": "TRIGGER: When cloakroom presence occupancy binary sensor [binary_sensor.cloakroom_presence_occupancy] changes from off to on OR When cloakroom presence occupancy binary sensor [binary_sensor.cloakroom_presence_occupancy] changes from on to off AND remains off for 30 seconds OR When jack and jill presence occupancy binary sensor [binary_sensor.jack_and_jill_presence_occupancy] changes from off to on OR When jack and jill presence occupancy binary sensor [binary_sensor.jack_and_jill_presence_occupancy] changes from on to off AND remains off for 30 seconds OR When main bathroom presence occupancy binary sensor [binary_sensor.main_bathroom_presence_occupancy] changes from off to on OR When main bathroom presence occupancy binary sensor [binary_sensor.main_bathroom_presence_occupancy] changes from on to off AND remains off for 30 seconds. CONDITIONS: None. ACTIONS: Choose based on trigger: IF trigger is Cloak Presence THEN set room presence input text [input_text.room_presence] to 'cloakroom' AND turn on room occupied cloakroom input boolean [input_boolean.room_occupied_cloakroom]. IF trigger is Cloak Absence THEN turn off room occupied cloakroom input boolean [input_boolean.room_occupied_cloakroom]. IF trigger is Main Bathroom Presence THEN set room presence input text [input_text.room_presence] to 'main_bathroom' AND turn on room occupied main bathroom input boolean [input_boolean.room_occupied_main_bathroom]. IF trigger is Main Bathroom Absence THEN turn off room occupied main bathroom input boolean [input_boolean.room_occupied_main_bathroom]. IF trigger is Boys Bathroom Presence THEN set room presence input text [input_text.room_presence] to 'boys_bathroom' AND turn on room occupied jack jill input boolean [input_boolean.room_occupied_jack_jill]. IF trigger is Boys Bathroom Absence THEN turn off room occupied jack jill input boolean [input_boolean.room_occupied_jack_jill].",
"natural_language": {
"trigger": "The automation is triggered by changes in occupancy sensors in three bathrooms. It triggers when the cloakroom presence occupancy binary sensor [binary_sensor.cloakroom_presence_occupancy] detects someone entering (changes from off to on) or when it detects someone leaving and the room remains empty for 30 seconds (changes from on to off and stays off for 30 seconds). Similarly, it triggers for the jack and jill presence occupancy binary sensor [binary_sensor.jack_and_jill_presence_occupancy] and the main bathroom presence occupancy binary sensor [binary_sensor.main_bathroom_presence_occupancy] with the same logic for entry and exit.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "Depending on which sensor triggered the automation, different actions are performed. If the cloakroom sensor detects presence, it sets a text field to indicate the cloakroom is occupied and turns on a corresponding status flag. If it detects absence, it turns off that status flag. The same pattern applies to the main bathroom and the jack and jill bathroom: presence triggers set the text field to the bathroom's name and turn on its status flag, while absence triggers only turn off the status flag."
},
"human_like": "This automation tracks occupancy in three bathrooms, updating a central status text and turning on or off individual room occupancy flags when people enter or leave.",
"complexity": "medium"
}
},
{
"id": "Battery Increased Notification",
"result": {
"structured": "TRIGGER: When the event battery_notes_battery_increased occurs. CONDITIONS: None. ACTIONS: Create a persistent notification with the title '{{ trigger.event.data.device_name }} Battery Increased' and the message 'The device has increased its battery level. Consequently, I have marked it as replaced. If this is not the case, you know what to do.'",
"natural_language": {
"trigger": "When the system receives a 'battery_notes_battery_increased' event.",
"conditions": "There are no conditions; the action runs immediately after the trigger.",
"action": "Creates a persistent notification. The title includes the name of the device from the event data, followed by 'Battery Increased'. The message states that the device's battery level has increased, it has been marked as replaced, and instructs the user to take action if this is incorrect."
},
"human_like": "Sends a notification when a device's battery level increases, indicating it has likely been replaced.",
"complexity": "low"
}
},
{
"id": "Battery Low Notification",
"result": {
"structured": "TRIGGER: When a battery_notes_battery_threshold event occurs with battery_low set to true OR When a battery_notes_battery_threshold event occurs with battery_low set to false. CONDITIONS: None. ACTIONS: If the triggering event had battery_low true, create a persistent notification with a title containing the device name and a message containing the battery level, required battery quantity, and battery type. If the triggering event had battery_low false, dismiss the persistent notification identified by the device_id and source_entity_id from the event.",
"natural_language": {
"trigger": "The automation is triggered by a battery status event, either when a device's battery is reported as low or when it is reported as no longer low.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "If the battery is low, a persistent notification is created to alert the user, showing the device name, battery level, and the type and quantity of batteries needed. If the battery is no longer low, the corresponding notification is automatically dismissed."
},
"human_like": "Sends a notification when a device's battery is low and removes it when the battery level recovers.",
"complexity": "medium"
}
},
{
"id": "Battery Replaced",
"result": {
"structured": "TRIGGER: When an event of type battery_notes_battery_increased occurs. CONDITIONS: None. ACTIONS: Call the service battery_notes.set_battery_replaced with data: device_id = trigger.event.data.device_id and source_entity_id = trigger.event.data.source_entity_id.",
"natural_language": {
"trigger": "When a system event named 'battery_notes_battery_increased' is received.",
"conditions": "There are no conditions to check.",
"action": "Calls a custom service named 'battery_notes.set_battery_replaced', passing along the device ID and source entity ID from the event that triggered the automation."
},
"human_like": "Records a battery replacement when a significant battery level increase is detected.",
"complexity": "low"
}
},
{
"id": "Battery Settings Confirm",
"result": {
"structured": "TRIGGER: When solaredge i1 storage default mode select [select.solaredge_i1_storage_default_mode] changes state from 'Maximize Self Consumption' OR When solaredge i1 storage default mode select [select.solaredge_i1_storage_default_mode] changes state to 'Maximize Self Consumption' OR When solaredge i1 storage command mode select [select.solaredge_i1_storage_command_mode] changes state from 'Maximize Self Consumption' OR When solaredge i1 storage command mode select [select.solaredge_i1_storage_command_mode] changes state to 'Maximize Self Consumption' OR When solaredge i1 storage control mode select [select.solaredge_i1_storage_control_mode] changes state from 'Remote Control' OR When solaredge i1 storage control mode select [select.solaredge_i1_storage_control_mode] changes state to 'Remote Control'. CONDITIONS: None. ACTIONS: Choose from the following cases: 1. IF triggered by 'Storage Default Mode Wrong' AND desired storage default mode correct input boolean [input_boolean.desired_storage_default_mode_correct] is 'on' THEN toggle desired storage default mode correct input boolean [input_boolean.desired_storage_default_mode_correct]. 2. IF triggered by 'Storage Default Mode Correct' AND desired storage default mode correct input boolean [input_boolean.desired_storage_default_mode_correct] is 'off' THEN toggle desired storage default mode correct input boolean [input_boolean.desired_storage_default_mode_correct]. 3. IF triggered by 'Storage Cmd Mode Wrong' AND desired storage cmd mode correct input boolean [input_boolean.desired_storage_cmd_mode_correct] is 'on' THEN toggle desired storage cmd mode correct input boolean [input_boolean.desired_storage_cmd_mode_correct]. 4. IF triggered by 'Storage Cmd Mode Correct' AND desired storage cmd mode correct input boolean [input_boolean.desired_storage_cmd_mode_correct] is 'off' THEN toggle desired storage cmd mode correct input boolean [input_boolean.desired_storage_cmd_mode_correct]. 5. IF triggered by 'Storage Control Mode Wrong' AND desired storage control mode correct input boolean [input_boolean.desired_storage_control_mode_correct] is 'on' THEN toggle desired storage control mode correct input boolean [input_boolean.desired_storage_control_mode_correct]. 6. IF triggered by 'Storage Control Mode Correct' AND desired storage control mode correct input boolean [input_boolean.desired_storage_control_mode_correct] is 'off' THEN toggle desired storage control mode correct input boolean [input_boolean.desired_storage_control_mode_correct].",
"natural_language": {
"trigger": "The automation runs when any of the three SolarEdge battery setting selectors changes state. Specifically, it triggers when the storage default mode changes from or to 'Maximize Self Consumption', when the storage command mode changes from or to 'Maximize Self Consumption', or when the storage control mode changes from or to 'Remote Control'.",
"conditions": "There are no global conditions for this automation.",
"action": "Depending on which trigger fired and the current state of a corresponding input boolean, the automation toggles that boolean to reflect whether the setting is correct. For each of the three settings (default mode, command mode, control mode), there are two triggers: one for when the setting becomes wrong (leaves the desired value) and one for when it becomes correct (enters the desired value). If the setting becomes wrong and its corresponding boolean is on (indicating it was correct), the boolean is toggled off. If the setting becomes correct and its corresponding boolean is off (indicating it was wrong), the boolean is toggled on."
},
"human_like": "Keeps track of whether the SolarEdge battery settings are correctly configured by toggling indicator switches when the settings change.",
"complexity": "medium"
}
},
{
"id": "Bedtime and Get up Actions",
"result": {
"structured": "TRIGGER: When master bed occupancy bed occupied both binary sensor [binary_sensor.master_bed_occupancy_bed_occupied_both] changes from on to off AND remains off for 1 minute (someone is up) OR When master bed occupancy bed occupied both binary sensor [binary_sensor.master_bed_occupancy_bed_occupied_both] changes from off to on AND remains on for 1 minute (we are in bed) OR When master bed occupancy bed occupied either binary sensor [binary_sensor.master_bed_occupancy_bed_occupied_either] changes from on to off AND remains off for 2 minutes (we are up) OR When master bed occupancy bed occupied either binary sensor [binary_sensor.master_bed_occupancy_bed_occupied_either] changes from off to on AND remains on for 1 minute (someone is in bed). CONDITIONS: None. ACTIONS: Choose one action sequence based on conditions: 1. IF (trigger is we are in bed) AND (time is after 21:30:00) AND (we are in bed input boolean [input_boolean.we_are_in_bed] is off) THEN run script.goodnight_2. 2. IF (trigger is we are up) AND (we are in bed input boolean [input_boolean.we_are_in_bed] is on) AND (time is after 06:55:00 AND before 21:00:00) THEN run script.good_morning_2. 3. IF (trigger is someone is in bed) AND (time is after 21:00:00) AND (dave home binary sensor [binary_sensor.dave_home] is off OR gem home binary sensor [binary_sensor.gem_home] is off) AND (we are in bed input boolean [input_boolean.we_are_in_bed] is off) THEN run script.goodnight_2.",
"natural_language": {
"trigger": "The automation can be triggered in four ways: when the master bed occupancy bed occupied both binary sensor [binary_sensor.master_bed_occupancy_bed_occupied_both] changes from occupied to unoccupied and stays that way for one minute, when it changes from unoccupied to occupied and stays that way for one minute, when the master bed occupancy bed occupied either binary sensor [binary_sensor.master_bed_occupancy_bed_occupied_either] changes from occupied to unoccupied and stays that way for two minutes, or when it changes from unoccupied to occupied and stays that way for one minute.",
"conditions": "There are no global conditions. The actions are chosen based on a set of internal conditions that are evaluated when the automation runs.",
"action": "Depending on which trigger fired and the state of other entities, the automation will run one of two scripts. If the bed becomes occupied after 9:30 PM and the 'we are in bed' flag is off, it runs the 'goodnight_2' script. If the bed becomes unoccupied between 6:55 AM and 9:00 PM and the 'we are in bed' flag is on, it runs the 'good_morning_2' script. If someone gets into bed after 9:00 PM and at least one person is not home, and the 'we are in bed' flag is off, it also runs the 'goodnight_2' script."
},
"human_like": "Automatically runs bedtime or wake-up routines based on bed occupancy, time of day, and whether people are home.",
"complexity": "medium"
}
},
{
"id": "Bedtime for Jamie",
"result": {
"structured": "TRIGGER: When a voice command is recognized as 'it's bedtime', 'goodnight', or 'It is bedtime' (Voice) OR When we are in bed input boolean [input_boolean.we_are_in_bed] changes from off to on (Stop play). CONDITIONS: None. ACTIONS: Choose based on trigger: IF trigger is Voice AND assist satellite jarvis jamie assist satellite [assist_satellite.jarvis_jamie_assist_satellite] is processing THEN set conversation response to empty, announce a random goodnight message to assist satellite jarvis jamie assist satellite [assist_satellite.jarvis_jamie_assist_satellite], set volume of jamie's room dot media player [media_player.jamie_s_room_dot] to the value from alexa volume level low input number [input_number.alexa_volume_level_low], then in parallel: play 'Play Bedtime music from Amazon Music' on jamie's room dot media player [media_player.jamie_s_room_dot] AND turn off jamies light toggle input boolean [input_boolean.jamies_light_toggle]. IF trigger is Stop play THEN stop media playback on jamie's room dot media player [media_player.jamie_s_room_dot].",
"natural_language": {
"trigger": "The automation is triggered either by a specific voice command (like 'it's bedtime', 'goodnight', or 'It is bedtime') or when the 'we are in bed' status changes from off to on.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "Depending on what triggered the automation, different actions are performed. If triggered by a voice command and the assist satellite is currently processing, the system will: suppress the normal voice response, announce a random, fun goodnight message to Jamie, lower the volume of the media player in Jamie's room, and then simultaneously start playing bedtime music and turn off Jamie's light. If triggered by the 'we are in bed' status change, the system will simply stop any media that is currently playing in Jamie's room."
},
"human_like": "This automation helps with Jamie's bedtime routine by responding to a goodnight command or a bed status change, playing music, turning off the light, and giving a fun bedtime message.",
"complexity": "medium"
}
},
{
"id": "Bedtime for Sean",
"result": {
"structured": "TRIGGER: When a voice command is recognized as 'it's bedtime', 'goodnight', or 'It is bedtime' OR When we are in bed input boolean [input_boolean.we_are_in_bed] changes from off to on. CONDITIONS: None. ACTIONS: If the trigger is a voice command AND assist satellite jarvis sean assist satellite [assist_satellite.jarvis_sean_assist_satellite] is processing, then: 1. Silence the normal voice response. 2. Announce a random Marvel-themed goodnight message on assist satellite jarvis sean assist satellite [assist_satellite.jarvis_sean_assist_satellite]. 3. Wait 10 seconds. 4. Set the volume of jarvis sean media player media player [media_player.jarvis_sean_media_player] to 25%. 5. In parallel: a. Play audiobook library item 5 on jarvis sean media player 2 media player [media_player.jarvis_sean_media_player_2]. b. Turn off seans light toggle input boolean [input_boolean.seans_light_toggle]. If the trigger is we are in bed input boolean [input_boolean.we_are_in_bed] changing from off to on, then: 1. Stop playback on jarvis sean media player 2 media player [media_player.jarvis_sean_media_player_2].",
"natural_language": {
"trigger": "The automation starts either when a voice command like 'it's bedtime', 'goodnight', or 'It is bedtime' is spoken, or when the we are in bed input boolean [input_boolean.we_are_in_bed] is turned on from an off state.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "Depending on what triggered the automation, different actions occur. If it was triggered by a voice command and the assist satellite jarvis sean assist satellite [assist_satellite.jarvis_sean_assist_satellite] is currently processing, the system will: suppress the normal voice response, play a random Marvel-themed goodnight message on the satellite, wait 10 seconds, lower the volume of the jarvis sean media player media player [media_player.jarvis_sean_media_player] to 25%, and then simultaneously start playing a specific audiobook on the jarvis sean media player 2 media player [media_player.jarvis_sean_media_player_2] and turn off the seans light toggle input boolean [input_boolean.seans_light_toggle]. If the automation was triggered by the we are in bed input boolean [input_boolean.we_are_in_bed] being turned on, the action is simply to stop any media playing on the jarvis sean media player 2 media player [media_player.jarvis_sean_media_player_2]."
},
"human_like": "This automation provides a fun, themed bedtime routine for Sean when a voice command is given, and stops his audiobook when the household goes to bed.",
"complexity": "medium"
}
},
{
"id": "Birthday Announcements",
"result": {
"structured": "TRIGGER: When the calendar birthdays calendar [calendar.birthdays] event starts with an offset of 7 hours and 45 minutes. CONDITIONS: audible notifications input boolean [input_boolean.audible_notifications] is on. ACTIONS: Set volume of living room pop media player [media_player.living_room_pop] to 0.4, then execute script.birthday_announcement with parameter 'where' set to 'living_room', then wait for 15 seconds, then play 'Awesome Birthday Song in everywhere group' from AMAZON_MUSIC on living room pop media player [media_player.living_room_pop], then set volume of living room pop media player [media_player.living_room_pop] to 0.4.",
"natural_language": {
"trigger": "The automation is triggered at 7:45 AM on the day an event starts in the birthday calendar [calendar.birthdays].",
"conditions": "The automation only runs if the audible notifications input boolean [input_boolean.audible_notifications] is turned on.",
"action": "First, it sets the volume of the living room pop media player [media_player.living_room_pop] to 40%. Then, it runs a birthday announcement script for the living room. After a 15-second delay, it plays the 'Awesome Birthday Song in everywhere group' from Amazon Music on the same media player. Finally, it sets the volume of the media player back to 40%."
},
"human_like": "Plays a birthday song and announcement in the living room at 7:45 AM on birthdays, but only if audible notifications are enabled.",
"complexity": "medium"
}
},
{
"id": "Boys Bedroom Presence and Lights",
"result": {
"structured": "TRIGGER: When jamie room presence occupancy binary sensor [binary_sensor.jamie_room_presence_occupancy] changes from off to on OR When jamies room occupied binary sensor [binary_sensor.jamies_room_occupied] changes from on to off OR When sean room presence occupancy binary sensor [binary_sensor.sean_room_presence_occupancy] changes from off to on OR When seans room occupied binary sensor [binary_sensor.seans_room_occupied] changes from on to off. CONDITIONS: None. ACTIONS: Choose based on trigger: IF trigger is Jamie Presence THEN set room presence input text [input_text.room_presence] to 'jamies_room' AND turn on room occupied jamie's room input boolean [input_boolean.room_occupied_jamie_s_room] AND IF (jamies room light level sensor [sensor.jamies_room_light_level] is below low light threshold input number [input_number.low_light_threshold] AND current time is between 08:00:00 and 19:45:00 on any day of the week) THEN turn on jamies light toggle input boolean [input_boolean.jamies_light_toggle]. IF trigger is Sean Presence THEN set room presence input text [input_text.room_presence] to 'seans_room' AND turn on room occupied sean's room input boolean [input_boolean.room_occupied_sean_s_room] AND IF (seans room light level sensor [sensor.seans_room_light_level] is below low light threshold input number [input_number.low_light_threshold] AND current time is between 08:00:00 and 19:45:00 on any day of the week) THEN turn on seans light toggle input boolean [input_boolean.seans_light_toggle]. IF trigger is Jamie Absence THEN turn off room occupied jamie's room input boolean [input_boolean.room_occupied_jamie_s_room] AND turn off jamies light toggle input boolean [input_boolean.jamies_light_toggle]. IF trigger is Sean Absence THEN turn off room occupied sean's room input boolean [input_boolean.room_occupied_sean_s_room] AND turn off seans light toggle input boolean [input_boolean.seans_light_toggle].",
"natural_language": {
"trigger": "The automation triggers when presence is detected or cleared in either boy's room. Specifically, it runs when Jamie's presence sensor becomes active, when Jamie's room is marked as unoccupied, when Sean's presence sensor becomes active, or when Sean's room is marked as unoccupied.",
"conditions": "There are no global conditions that must be met for the automation to run.",
"action": "Depending on which trigger occurred, the automation performs different actions. If Jamie's presence is detected, it sets a text field to indicate his room, marks his room as occupied, and if the light level is low and the time is between 8 AM and 7:45 PM, it also turns on his light toggle. If Sean's presence is detected, it performs the same set of actions for his room. If Jamie's room becomes unoccupied, it turns off his room occupancy and light toggle. If Sean's room becomes unoccupied, it turns off his room occupancy and light toggle."
},
"human_like": "Manages room occupancy and lighting for the boys' bedrooms, turning lights on when someone enters during the day if it's dark, and turning everything off when they leave.",
"complexity": "medium"
}
},
{
"id": "Boys Bedtime Announcements v2.0",
"result": {
"structured": "TRIGGER: At the time set in school night sean input datetime [input_datetime.school_night_sean] OR At the time set in school night jamie input datetime [input_datetime.school_night_jamie] OR At the time set in non school night input datetime [input_datetime.non_school_night]. CONDITIONS: (None). ACTIONS: Choose one sequence based on conditions: IF (Trigger is School Bedtime Sean) AND (school tomorrow sensor [sensor.school_tomorrow] is True) AND (audible notifications input boolean [input_boolean.audible_notifications] is on) AND (seans bedtime announcement played input boolean [input_boolean.seans_bedtime_announcement_played] is off) THEN run script.sean_bedtime_announcement. ELSE IF (Trigger is School Bedtime Jamie) AND (school tomorrow sensor [sensor.school_tomorrow] is True) AND (audible notifications input boolean [input_boolean.audible_notifications] is on) AND (jamies bedtime announcement played input boolean [input_boolean.jamies_bedtime_announcement_played] is off) THEN run script.jamie_bedtime_announcement. ELSE IF (Trigger is Non School Bedtime) AND (school tomorrow sensor [sensor.school_tomorrow] is False) AND (audible notifications input boolean [input_boolean.audible_notifications] is on) AND ((seans bedtime announcement played input boolean [input_boolean.seans_bedtime_announcement_played] is off) AND (jamies bedtime announcement played input boolean [input_boolean.jamies_bedtime_announcement_played] is off)) THEN run script.boys_bedtime_announcement.",
"natural_language": {
"trigger": "The automation triggers at three different scheduled times: the bedtime for Sean on school nights, the bedtime for Jamie on school nights, and the bedtime for both boys on non-school nights.",
"conditions": "There are no global conditions; the conditions are evaluated separately for each possible action path within the 'choose' block.",
"action": "Depending on which time triggered the automation and the current system state, it will play a specific bedtime announcement. If it's Sean's school bedtime, school is tomorrow, audible notifications are enabled, and Sean's announcement hasn't been played yet, it plays Sean's announcement. If it's Jamie's school bedtime with the same conditions for school and notifications, and Jamie's announcement hasn't been played, it plays Jamie's announcement. If it's the non-school bedtime, school is not tomorrow, audible notifications are on, and neither Sean's nor Jamie's announcement has been played, it plays a joint announcement for both boys."
},
"human_like": "Plays personalised bedtime announcements for the boys at their scheduled times, checking if it's a school night and ensuring announcements aren't repeated.",
"complexity": "medium"
}
},
{
"id": "Boys' room blinds",
"result": {
"structured": "TRIGGER: At 07:30:00 (weekday open) OR At 08:00:00 (weekend open) OR At sunset (Winter close). CONDITIONS: None. ACTIONS: Choose based on trigger and conditions: 1. IF (trigger is weekday open) AND (day of week sensor [sensor.day_of_week] is Monday, Tuesday, Wednesday, Thursday, or Friday) AND (schoolday binary sensor [binary_sensor.schoolday] is on OR fridayschool binary sensor [binary_sensor.fridayschool] is on) THEN open jamies room blind cover [cover.jamies_room_blind] and seans room blind cover [cover.seans_room_blind]. 2. IF (trigger is weekday open) AND ((day of week sensor [sensor.day_of_week] is Saturday or Sunday) OR ((schoolday binary sensor [binary_sensor.schoolday] is off) AND (fridayschool binary sensor [binary_sensor.fridayschool] is off))) THEN open jamies room blind cover [cover.jamies_room_blind] and seans room blind cover [cover.seans_room_blind]. 3. IF (trigger is Winter close) THEN close jamies room blind cover [cover.jamies_room_blind] and seans room blind cover [cover.seans_room_blind].",
"natural_language": {
"trigger": "The automation is triggered at 7:30 AM, at 8:00 AM, or at sunset.",
"conditions": "There are no global conditions. The actions are selected based on which trigger fired and the state of certain sensors.",
"action": "If the trigger is the 7:30 AM weekday open trigger, and it's a weekday (Monday to Friday), and either the schoolday binary sensor [binary_sensor.schoolday] or the fridayschool binary sensor [binary_sensor.fridayschool] indicates a school day is on, then the blinds in Jamie's and Sean's rooms are opened. If the trigger is the 7:30 AM weekday open trigger, but it's a weekend day (Saturday or Sunday) or both school day sensors indicate it's not a school day, the blinds are also opened. If the trigger is the sunset trigger, the blinds in both rooms are closed."
},
"human_like": "Automatically opens the boys' room blinds at 7:30 AM on school days, at 8:00 AM on weekends or holidays, and closes them at sunset.",
"complexity": "medium"
}
},
{
"id": "Boys' room blinds V2.0",
"result": {
"structured": "TRIGGER: At the time set in jamie's room blind opening time input datetime [input_datetime.jamie_s_room_blind_opening_time] OR At the time set in sean's room blind opening time input datetime [input_datetime.sean_s_room_blind_opening_time] OR At 07:32:00 OR At 07:47:00 OR At sunset OR At 19:30:00. CONDITIONS: None. ACTIONS: Choose based on which trigger fired: If jamie_open trigger fired, then open jamies room blind cover [cover.jamies_room_blind] AND turn off jamie's bedside lamp input boolean [input_boolean.jamie_s_bedside_lamp]. If sean_open trigger fired, then open seans room blind cover [cover.seans_room_blind] AND turn off sean's bedside lamp input boolean [input_boolean.sean_s_bedside_lamp]. If fallback_school_open trigger fired AND (schoolday binary sensor [binary_sensor.schoolday] is on OR fridayschool binary sensor [binary_sensor.fridayschool] is on) AND jamies room blind cover [cover.jamies_room_blind] is closed, then open both jamies room blind cover [cover.jamies_room_blind] and seans room blind cover [cover.seans_room_blind] AND turn off both jamie's bedside lamp input boolean [input_boolean.jamie_s_bedside_lamp] and sean's bedside lamp input boolean [input_boolean.sean_s_bedside_lamp] AND create a persistent notification with title 'Fallback Trigger Used' and a message about using fallback school day logic. If fallback_weekend_open trigger fired AND schoolday binary sensor [binary_sensor.schoolday] is off AND fridayschool binary sensor [binary_sensor.fridayschool] is off AND jamies room blind cover [cover.jamies_room_blind] is closed, then open both jamies room blind cover [cover.jamies_room_blind] and seans room blind cover [cover.seans_room_blind] AND turn off both jamie's bedside lamp input boolean [input_boolean.jamie_s_bedside_lamp] and sean's bedside lamp input boolean [input_boolean.sean_s_bedside_lamp] AND create a persistent notification with title 'Fallback Trigger Used' and a message about using fallback weekend/holiday logic. If winter_close trigger fired, then close both jamies room blind cover [cover.jamies_room_blind] and seans room blind cover [cover.seans_room_blind] AND turn on both jamie's bedside lamp input boolean [input_boolean.jamie_s_bedside_lamp] and sean's bedside lamp input boolean [input_boolean.sean_s_bedside_lamp]. If summer_close trigger fired, then close both jamies room blind cover [cover.jamies_room_blind] and seans room blind cover [cover.seans_room_blind] AND turn on both jamie's bedside lamp input boolean [input_boolean.jamie_s_bedside_lamp] and sean's bedside lamp input boolean [input_boolean.sean_s_bedside_lamp].",
"natural_language": {
"trigger": "The automation can be triggered at six different times: at the individual scheduled opening times for Jamie's and Sean's blinds, at 7:32 AM, at 7:47 AM, at sunset, and at 7:30 PM.",
"conditions": "There are no global conditions for the automation. However, specific conditions apply within the action choices. The fallback school day action requires that it is a school day (either a regular schoolday or a Friday school day) and that Jamie's blind is closed. The fallback weekend action requires that it is not a school day (neither a regular schoolday nor a Friday school day) and that Jamie's blind is closed.",
"action": "Depending on which trigger fired, the automation performs different actions. If Jamie's scheduled time triggers, it opens his blind and turns off his lamp. If Sean's scheduled time triggers, it opens his blind and turns off his lamp. If the 7:32 AM trigger fires on a school day and Jamie's blind is closed, it opens both boys' blinds, turns off both lamps, and sends a notification. If the 7:47 AM trigger fires on a non-school day and Jamie's blind is closed, it opens both boys' blinds, turns off both lamps, and sends a notification. If the sunset trigger fires, it closes both blinds and turns on both lamps. If the 7:30 PM trigger fires, it closes both blinds and turns on both lamps."
},
"human_like": "This automation manages the blinds and bedside lamps in the boys' rooms, opening them in the morning based on individual schedules or fallback times depending on school days, and closing them in the evening.",
"complexity": "high"
}
},
{
"id": "Bread Maker",
"result": {
"structured": "TRIGGER: When kitchen socket power power sensor [sensor.kitchen_socket_power_power] remains above 50 watts for 15 seconds OR When bread timer timer [timer.bread_timer] finishes. CONDITIONS: None. ACTIONS: Choose based on trigger: If triggered by Start AND bread done input boolean [input_boolean.bread_done] is off AND the previous state of the power sensor is not 'unknown' or 'unavailable', THEN turn on bread done input boolean [input_boolean.bread_done] AND start bread timer timer [timer.bread_timer]. If triggered by Time AND bread done input boolean [input_boolean.bread_done] is on AND kitchen socket power power sensor [sensor.kitchen_socket_power_power] is below 10 watts, THEN turn off bread done input boolean [input_boolean.bread_done] AND run text notify parents script [script.text_notify_parents] with a notification message.",
"natural_language": {
"trigger": "The automation can start in two ways: either when the kitchen socket power power sensor [sensor.kitchen_socket_power_power] shows a power consumption above 50 watts for a continuous period of 15 seconds, or when the bread timer timer [timer.bread_timer] finishes its countdown.",
"conditions": "There are no global conditions that apply to both triggers. Instead, specific conditions are checked for each possible trigger path within the action sequence.",
"action": "The automation performs different actions depending on which trigger activated it. If it was triggered by the power sensor (Start), it checks that the bread done input boolean [input_boolean.bread_done] is off and that the power sensor's previous state was valid. If these are true, it marks the bread as in progress by turning on the bread done input boolean and starts a timer. If it was triggered by the timer finishing (Time), it checks that the bread done input boolean is still on and that the power consumption is now low (below 10 watts). If so, it marks the bread as done by turning off the input boolean and sends a text notification to parents via the text notify parents script [script.text_notify_parents]."
},
"human_like": "Automatically starts a timer when the bread maker is turned on and sends a notification when the bread is likely finished, based on power usage and a timer.",
"complexity": "medium"
}
},
{
"id": "Calendar Event Announcements",
"result": {
"structured": "TRIGGER: When an event from forrester events calendar [calendar.forrester_events] starts, with an offset of 32 minutes before the event start time. CONDITIONS: audible notifications input boolean [input_boolean.audible_notifications] is on. ACTIONS: IF dave home binary sensor [binary_sensor.dave_home] is on THEN run script.jarvis_speech_engine_v3_0 [script.jarvis_speech_engine_v3_0] with target 'dave' and a message generated from a template. The template fetches upcoming events from calendar events sensor [sensor.calendar_events], selects the next event after the current time, and announces its title and start time. If the event description contains car-related tags (#car, #drive, #needscar, #trip) AND car plugged in input boolean [input_boolean.car_plugged_in] is on, it adds a reminder to unplug the car. If the car is plugged in but the event does not need a car, it adds a conditional reminder. If no upcoming event is found, it announces 'No upcoming events found.' ELSE run the same script.jarvis_speech_engine_v3_0 [script.jarvis_speech_engine_v3_0] with target 'gem' and the same templated message.",
"natural_language": {
"trigger": "The automation is triggered 32 minutes before an event from the forrester events calendar [calendar.forrester_events] is scheduled to start.",
"conditions": "The automation only runs if the audible notifications input boolean [input_boolean.audible_notifications] is switched on.",
"action": "If Dave is home, as indicated by the dave home binary sensor [binary_sensor.dave_home] being on, a speech announcement is made to Dave using the jarvis speech engine. The announcement checks the calendar events sensor [sensor.calendar_events] for the next upcoming event. It announces the event title and its start time. If the event description suggests a car is needed and the car plugged in input boolean [input_boolean.car_plugged_in] is on, it reminds Dave to unplug the car. If the car is plugged in but the event doesn't explicitly need a car, it gives a general reminder. If no upcoming events are found, it says so. If Dave is not home, the same announcement is made to Gem instead."
},
"human_like": "Announces upcoming calendar events 32 minutes before they start, with a reminder about the car's charging status if needed, and directs the announcement to the person who is home.",
"complexity": "medium"
}
},
{
"id": "'Charge Battery from Clipped Solar '",
"result": {
"structured": "TRIGGER: When home battery grid charging [input_boolean.home_battery_grid_charging] OR rolec battery master [input_boolean.rolec_battery_master] changes from on to off OR When sun sun sensor [sun.sun] elevation rises above 10 OR When solaredge b1 state of energy sensor [sensor.solaredge_b1_state_of_energy] rises above 99.5 OR Every 5 minutes. CONDITIONS: None. ACTIONS: Choose one sequence based on conditions: 1. IF trigger is Grid Charge Finished AND solcast pv forecast forecast today [sensor.solcast_pv_forecast_forecast_today] is above 30 THEN turn on charge rate limited [input_boolean.charge_rate_limited] AND set solaredge i1 storage charge limit number [number.solaredge_i1_storage_charge_limit] to the value of storage charge limit input number [input_number.storage_charge_limit]. 2. IF trigger is Smart Sunrise Trigger AND charge rate limited [input_boolean.charge_rate_limited] is off AND home battery grid charging [input_boolean.home_battery_grid_charging] is off AND solcast pv forecast forecast today [sensor.solcast_pv_forecast_forecast_today] is above 30 THEN turn on charge rate limited [input_boolean.charge_rate_limited] AND set solaredge i1 storage charge limit number [number.solaredge_i1_storage_charge_limit] to the value of storage charge limit input number [input_number.storage_charge_limit]. 3. IF trigger is Charge Complete AND charge rate limited [input_boolean.charge_rate_limited] is on THEN turn off charge rate limited [input_boolean.charge_rate_limited] AND set solaredge i1 storage charge limit number [number.solaredge_i1_storage_charge_limit] to 7000. 4. IF trigger is Update AND charge rate limited [input_boolean.charge_rate_limited] is on THEN set solaredge i1 storage charge limit number [number.solaredge_i1_storage_charge_limit] to the value of battery charge limit dynamic sensor [sensor.battery_charge_limit_dynamic].",
"natural_language": {
"trigger": "The automation can be triggered in four ways: when either the home battery grid charging [input_boolean.home_battery_grid_charging] or the rolec battery master [input_boolean.rolec_battery_master] finishes charging (turns from on to off); when the sun's elevation [sun.sun] rises above 10 degrees; when the battery's state of energy [sensor.solaredge_b1_state_of_energy] exceeds 99.5%; or every 5 minutes.",
"conditions": "There are no global conditions. The actions are selected based on which trigger occurred and the state of other entities at that time.",
"action": "Depending on the trigger and conditions, the automation will either enable a limited charging mode and set a dynamic charge limit, or disable the limited mode and set a fixed high limit. Specifically: 1) If a grid or car charge just finished and solar production is forecast to be high, it enables limited charging and sets the limit from a predefined input. 2) If the sun is high enough in the morning, limited charging is off, grid charging is off, and solar forecast is high, it enables limited charging and sets the limit. 3) If the battery is nearly full and limited charging is active, it turns off the limited mode and sets a high fixed charge limit of 7000. 4) Every 5 minutes while limited charging is active, it updates the charge limit dynamically based on a sensor value."
},
"human_like": "Manages battery charging to use excess solar power efficiently, enabling a dynamic charge limit when solar production is forecast to be high and disabling it when the battery is full.",
"complexity": "high"
}
},
{
"id": "Check the house is secure via Voice",
"result": {
"structured": "TRIGGER: When a voice command matches any of the following phrases: 'Run a security check', 'Check the house security', 'Perform a security check', 'Check for motion', 'Check the doors', 'Check the security cameras', 'Check the garage security'. CONDITIONS: None. ACTIONS: 1. Set a variable 'selected_query' based on the spoken command, mapping it to a specific security query type. 2. Create a persistent notification for debugging, showing the selected query. 3. Execute the script 'script.security_check' with the 'security_query' variable, storing the result in 'response'. 4. Parse the script response into variables 'camera_response' and 'response'. 5. Wait up to 30 seconds for either 'camera_response' or 'response' to become non-empty. 6. Use Google Generative AI to generate a conversational security report based on the parsed 'response' data, storing the result in 'security_response'. 7. Combine 'camera_response.text' and 'security_response.text' into a variable 'full_response'. 8. Create a persistent notification for debugging, showing the full response. 9. Set the conversation response to the 'full_response.text'.",
"natural_language": {
"trigger": "When a user issues a voice command asking to run a security check, check house security, perform a security check, check for motion, check the doors, check the security cameras, or check the garage security.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "The automation first determines the specific type of security check requested based on the exact phrase spoken. It then runs a security check script with that query, waits for the results, and uses an AI to generate a brief, conversational report on the status of doors, windows, motion, and the alarm. This report is then spoken back to the user as the voice assistant's response, with debug notifications created along the way."
},
"human_like": "When asked via voice, this automation performs a security check of the house and announces the results in a conversational manner.",
"complexity": "high"
}
},
{
"id": "Cloakroom Lights on with Presence",
"result": {
"structured": "TRIGGER: When cloakroom presence occupancy binary sensor [binary_sensor.cloakroom_presence_occupancy] changes from off to on OR When cloakroom presence occupancy binary sensor [binary_sensor.cloakroom_presence_occupancy] changes from on to off OR When timer.finished event occurs for cloakroom light timer [timer.cloakroom_light] OR When cloakroom presence illuminance sensor [sensor.cloakroom_presence_illuminance] is below 30 OR When cloakroom door binary sensor [binary_sensor.cloakroom_door] changes from off to on. CONDITIONS: None (global). ACTIONS: Choose based on conditions: 1. If trigger is Presence OR Door Open AND quiet time boys binary sensor [binary_sensor.quiet_time_boys] is off, then turn on cloakroom switch light 2 light [light.cloakroom_switch_light_2], start cloakroom light timer [timer.cloakroom_light], and if it is before sunrise OR after sunset OR cloakroom presence illuminance sensor [sensor.cloakroom_presence_illuminance] is below 30, then turn on cloakroom switch light light [light.cloakroom_switch_light]. 2. If trigger is Presence OR Door Open AND quiet time boys binary sensor [binary_sensor.quiet_time_boys] is on AND (cloakroom presence illuminance sensor [sensor.cloakroom_presence_illuminance] is below 30 OR it is before sunrise OR after sunset), then turn on cloakroom switch light light [light.cloakroom_switch_light] and start cloakroom light timer [timer.cloakroom_light]. 3. If trigger is Absence AND cloakroom light timer [timer.cloakroom_light] is idle, then turn off cloakroom switch light light [light.cloakroom_switch_light] and if cloakroom switch light 2 light [light.cloakroom_switch_light_2] is on, then turn it off. 4. If trigger is Timer Done AND cloakroom presence occupancy binary sensor [binary_sensor.cloakroom_presence_occupancy] is off, then if quiet time boys binary sensor [binary_sensor.quiet_time_boys] is off, turn off cloakroom switch light 2 light [light.cloakroom_switch_light_2] and if cloakroom switch light light [light.cloakroom_switch_light] is on, turn it off; otherwise, turn off cloakroom switch light light [light.cloakroom_switch_light]. 5. If trigger is Low Light AND cloakroom occupied binary sensor [binary_sensor.cloakroom_occupied] is on, then turn on cloakroom switch light light [light.cloakroom_switch_light].",
"natural_language": {
"trigger": "The automation triggers when someone enters the cloakroom (cloakroom presence occupancy binary sensor [binary_sensor.cloakroom_presence_occupancy] changes to on), when someone leaves (the same sensor changes to off), when the cloakroom light timer [timer.cloakroom_light] finishes, when the light level in the cloakroom (cloakroom presence illuminance sensor [sensor.cloakroom_presence_illuminance]) falls below 30, or when the cloakroom door (cloakroom door binary sensor [binary_sensor.cloakroom_door]) opens.",
"conditions": "There are no global conditions applied to all triggers; conditions are evaluated separately within each action path.",
"action": "Depending on which trigger occurs and other state checks, the automation will: 1) When someone enters or the door opens outside of quiet time, it turns on the extractor (cloakroom switch light 2 light [light.cloakroom_switch_light_2]), starts a timer, and if it's dark (based on sunset/sunrise or low light level), also turns on the main light (cloakroom switch light light [light.cloakroom_switch_light]). 2) During quiet time, if someone enters or the door opens and it's dark, it only turns on the main light and starts the timer. 3) When someone leaves and the timer is idle, it turns off the main light and, if the extractor is on, turns it off as well. 4) When the timer finishes and no one is present, it turns off the lights, handling the extractor differently depending on whether quiet time is active. 5) If the light level becomes low while the cloakroom is occupied, it turns on the main light."
},
"human_like": "Automatically controls the cloakroom lights and extractor based on occupancy, door activity, light levels, and a timer, with different behaviors during quiet hours.",
"complexity": "high"
}
},
{
"id": "Clocks Changing",
"result": {
"structured": "TRIGGER: When the time is 10:00:00 OR when the time is 19:00:00. CONDITIONS: The value of daylight savings days until sensor [sensor.daylight_savings_days_until] is 7 OR 1. ACTIONS: Execute script.text_notify_dave [script.text_notify_dave] with a message containing the number of days until the clocks change and the action phrase from daylight savings phrase sensor [sensor.daylight_savings_phrase]. THEN, if the value of daylight savings days until sensor [sensor.daylight_savings_days_until] is 0, toggle bst input boolean [input_boolean.bst] AND toggle gmt input boolean [input_boolean.gmt].",
"natural_language": {
"trigger": "The automation runs at 10:00 AM or 7:00 PM.",
"conditions": "It only proceeds if the daylight savings days until sensor [sensor.daylight_savings_days_until] shows that there are exactly 7 or 1 day left until the clocks change.",
"action": "First, it sends a text notification via the text notify dave script [script.text_notify_dave]. The message includes how many days are left until the clocks change and whether you will gain or lose an hour, as indicated by the daylight savings phrase sensor [sensor.daylight_savings_phrase]. Then, if the sensor shows that there are zero days left (meaning the change is today), it toggles the state of both the bst input boolean [input_boolean.bst] and the gmt input boolean [input_boolean.gmt]."
},
"human_like": "Sends a reminder about upcoming daylight saving time changes and toggles timezone indicators on the day of the change.",
"complexity": "medium"
}
},
{
"id": "Clock Chime",
"result": {
"structured": "TRIGGER: When the time matches the pattern at minute 0 OR minute 15 OR minute 30 OR minute 45. CONDITIONS: (Current time is after clock chime on time [input_datetime.clock_chime_on_time] AND before clock chime off time [input_datetime.clock_chime_off_time]) AND (audible notifications input boolean [input_boolean.audible_notifications] is on) AND (clock chime input boolean [input_boolean.clock_chime] is on) AND (family home binary sensor [binary_sensor.family_home] is on OR guest mode input boolean [input_boolean.guest_mode] is on). ACTIONS: If trigger is minute 15 OR minute 45, then check if clock chime quarter toll input boolean [input_boolean.clock_chime_quarter_toll] is off OR clock chime sound input select [input_select.clock_chime_sound] is Cuckoo Clock, and if true, stop the automation. If trigger is minute 30, then check if clock chime half toll input boolean [input_boolean.clock_chime_half_toll] is off, and if true, stop the automation. Then, wait until dave's 2nd echo pop media player [media_player.dave_s_2nd_echo_pop] is not playing, with a timeout of 2 minutes. Finally, execute script alexa_voice with a message that selects an audio file based on the clock chime sound and the current minute.",
"natural_language": {
"trigger": "The automation triggers at the top of the hour (minute 0), quarter past (minute 15), half past (minute 30), and quarter to (minute 45).",
"conditions": "The current time must be within the window defined by the clock chime on time [input_datetime.clock_chime_on_time] and off time [input_datetime.clock_chime_off_time]. Audible notifications [input_boolean.audible_notifications] and the main clock chime [input_boolean.clock_chime] must both be turned on. Additionally, either someone is detected at home via the family home sensor [binary_sensor.family_home], or guest mode [input_boolean.guest_mode] is active.",
"action": "First, the automation checks if specific quarter or half tolls are disabled and stops if they are. For quarter-hour chimes (15 or 45 minutes past), it stops if the quarter toll is disabled or if the selected sound is a Cuckoo Clock. For the half-hour chime (30 minutes past), it stops if the half toll is disabled. Then, it waits for up to two minutes for the living room Echo device [media_player.dave_s_2nd_echo_pop] to finish any current playback. Finally, it plays a clock chime sound on the living room Echo. The specific sound file played depends on the selected chime sound (Cuckoo Clock or Grandfather Clock) and the current time."
},
"human_like": "Plays a clock chime sound on the living room speaker at quarter-hour intervals during the day, but only when someone is home and notifications are enabled.",
"complexity": "high"
}
},
{
"id": "Clock Chime v2.0",
"result": {
"structured": "TRIGGER: When the time matches the pattern at minute 0 OR minute 15 OR minute 30 OR minute 45. CONDITIONS: (Current time is after clock chime on time input datetime [input_datetime.clock_chime_on_time] AND before clock chime off time input datetime [input_datetime.clock_chime_off_time]) AND (audible notifications input boolean [input_boolean.audible_notifications] is on) AND (clock chime input boolean [input_boolean.clock_chime] is on) AND (family home binary sensor [binary_sensor.family_home] is on OR guest mode input boolean [input_boolean.guest_mode] is on). ACTIONS: If trigger is minute 15 OR minute 45, then check if clock chime quarter toll input boolean [input_boolean.clock_chime_quarter_toll] is off OR clock chime sound input select [input_select.clock_chime_sound] is Cuckoo Clock. If true, stop execution. If trigger is minute 30, then check if clock chime half toll input boolean [input_boolean.clock_chime_half_toll] is off. If true, stop execution. Otherwise, execute script.clock_voice with data template selecting a sound file based on clock chime sound input select [input_select.clock_chime_sound] and the trigger minute.",
"natural_language": {
"trigger": "The automation triggers at the top of the hour (minute 0), quarter past (minute 15), half past (minute 30), and quarter to (minute 45).",
"conditions": "The current time must be within the window defined by the clock chime on time input datetime [input_datetime.clock_chime_on_time] and clock chime off time input datetime [input_datetime.clock_chime_off_time]. The audible notifications input boolean [input_boolean.audible_notifications] and the clock chime input boolean [input_boolean.clock_chime] must both be turned on. Additionally, either the family home binary sensor [binary_sensor.family_home] must be on, indicating someone is home, or the guest mode input boolean [input_boolean.guest_mode] must be on.",
"action": "First, the automation checks if the chime should be suppressed. For quarter-hour triggers (15 or 45 minutes past), it stops if the quarter toll is disabled or if the selected sound is a Cuckoo Clock. For the half-hour trigger (30 minutes past), it stops if the half toll is disabled. If not stopped, it plays a clock chime sound in the living room. The specific sound file is chosen based on the selected chime sound (Cuckoo Clock or Grandfather Clock) and the current hour or quarter."
},
"human_like": "Plays a clock chime sound on the hour, quarter, half, and three-quarter marks, but only during a scheduled time window and when the system is configured to allow it.",
"complexity": "high"
}
},
{
"id": "Count Front Door Motion While Out",
"result": {
"structured": "TRIGGER: When front door motion detected binary sensor [binary_sensor.front_door_motion_detected] changes to on. CONDITIONS: family home binary sensor [binary_sensor.family_home] is off. ACTIONS: Increment counter front door motion detected counter [counter.front_door_motion_detected].",
"natural_language": {
"trigger": "When motion is detected at the front door, as reported by the front door motion detected binary sensor [binary_sensor.front_door_motion_detected].",
"conditions": "The automation only runs if the family home binary sensor [binary_sensor.family_home] indicates that the home is unoccupied (state is off).",
"action": "Increases the count on the counter front door motion detected counter [counter.front_door_motion_detected] by one."
},
"human_like": "Counts motion events at the front door while the house is empty.",
"complexity": "low"
}
},
{
"id": "logger_level_set",
"result": {
"structured": "TRIGGER: When logger level input select [input_select.logger_level] changes state. CONDITIONS: None. ACTIONS: Set the logger level for the homeassistant.components domain to the current state of logger level input select [input_select.logger_level].",
"natural_language": {
"trigger": "Whenever the logger level input select [input_select.logger_level] changes its selected value.",
"conditions": "There are no conditions that must be met.",
"action": "Sets the logging level for Home Assistant components to match the newly selected level from the logger level input select [input_select.logger_level]."
},
"human_like": "Updates the Home Assistant component logging level whenever a user changes the level selector.",
"complexity": "low"
}
},
{
"id": "Dining Room Presence and Lights",
"result": {
"structured": "TRIGGER: When dining room presence sensor occupancy binary sensor [binary_sensor.dining_room_presence_sensor_occupancy] changes from off to on OR When dining room occupied binary sensor [binary_sensor.dining_room_occupied] changes from on to off. CONDITIONS: None. ACTIONS: Choose based on trigger: If trigger is Presence, then set room presence input text [input_text.room_presence] value to 'dining_room', turn on room occupied dining room input boolean [input_boolean.room_occupied_dining_room], AND if dining room light level sensor [sensor.dining_room_light_level] is below 30 OR the sun is below the horizon (after sunset OR before sunrise), then turn on dining room light toggle input boolean [input_boolean.dining_room_light_toggle]. If trigger is Absence, then turn off room occupied dining room input boolean [input_boolean.room_occupied_dining_room] AND turn off dining room light toggle input boolean [input_boolean.dining_room_light_toggle].",
"natural_language": {
"trigger": "The automation is triggered either when the dining room presence sensor occupancy binary sensor [binary_sensor.dining_room_presence_sensor_occupancy] detects presence (changes from off to on) or when the dining room occupied binary sensor [binary_sensor.dining_room_occupied] indicates the room is no longer occupied (changes from on to off).",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "Depending on which trigger occurred, different actions are taken. If presence is detected, the system first updates the room presence input text [input_text.room_presence] to 'dining_room' and marks the room as occupied by turning on the room occupied dining room input boolean [input_boolean.room_occupied_dining_room]. Then, if the light level in the dining room is low (below 30 lux) or it is nighttime (after sunset or before sunrise), it also turns on the dining room light toggle input boolean [input_boolean.dining_room_light_toggle]. If the trigger was an absence, the system turns off both the room occupied dining room input boolean [input_boolean.room_occupied_dining_room] and the dining room light toggle input boolean [input_boolean.dining_room_light_toggle]."
},
"human_like": "Manages dining room occupancy and lighting by turning lights on when someone enters in low light or at night, and turning them off when the room becomes empty.",
"complexity": "medium"
}
},
{
"id": "Dishwasher Notification When Finished",
"result": {
"structured": "TRIGGER: When dishwasher power consumed sensor [sensor.dishwasher_power_consumed] remains above 10W for 1 minute OR When dishwasher power consumed sensor [sensor.dishwasher_power_consumed] remains below 10W for 3 minutes. CONDITIONS: None. ACTIONS: Choose based on trigger: If triggered by Dishwasher On AND dishwasher on input boolean [input_boolean.dishwasher_on] is off, then turn on dishwasher on input boolean [input_boolean.dishwasher_on] and set dishwasher started input datetime [input_datetime.dishwasher_started] to current time. If triggered by Dishwasher off AND dishwasher on input boolean [input_boolean.dishwasher_on] is on AND the time elapsed since dishwasher started input datetime [input_datetime.dishwasher_started] is greater than 4800 seconds, then wait 30 seconds, turn off dishwasher on input boolean [input_boolean.dishwasher_on], and then perform notification actions. Notification actions: If audible notifications input boolean [input_boolean.audible_notifications] is on AND dave home binary sensor [binary_sensor.dave_home] is on, announce to Dave via jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0]. Else, if gem home binary sensor [binary_sensor.gem_home] is on AND gem workstation status binary sensor [binary_sensor.gem_workstation_status] is off, announce to Gem via jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0]. Else, if audible notifications input boolean [input_boolean.audible_notifications] is on, announce to all via jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0]. Additionally, if text notifications input boolean [input_boolean.text_notifications] is on AND text notifications dave input boolean [input_boolean.text_notifications_dave] is on, send a text to Dave via text notify dave script [script.text_notify_dave]. If text notifications input boolean [input_boolean.text_notifications] is on AND text notifications gem input boolean [input_boolean.text_notifications_gem] is on, send a text to Gem via Text Notify Gem script [script.text_notify_gem].",
"natural_language": {
"trigger": "The automation is triggered when the dishwasher power consumed sensor [sensor.dishwasher_power_consumed] shows power consumption above 10 watts for at least one minute, or when it shows power consumption below 10 watts for at least three minutes.",
"conditions": "There are no global conditions for this automation. The conditions are evaluated within the action's choose block.",
"action": "Depending on which trigger fired, the automation performs different actions. If the dishwasher starts (power above 10W), it marks the dishwasher as on by turning on the dishwasher on input boolean [input_boolean.dishwasher_on] and records the start time in dishwasher started input datetime [input_datetime.dishwasher_started]. If the dishwasher stops (power below 10W) and it was previously marked as on, and the cycle lasted more than 80 minutes, it waits 30 seconds, marks the dishwasher as off, and then sends notifications. Notifications are sent based on user presence and preferences: an audible announcement is made to Dave if he is home and audible notifications are enabled, or to Gem if she is home and not at her workstation, or to the whole house if audible notifications are on. Additionally, text messages are sent to Dave and/or Gem if their respective text notification preferences are enabled."
},
"human_like": "This automation monitors the dishwasher's power usage to detect when it starts and finishes a cycle, then sends personalized audible and text notifications to the household when it's done.",
"complexity": "high"
}
},
{
"id": "En Suite Lights with presence",
"result": {
"structured": "TRIGGER: When en suite presence occupancy binary sensor [binary_sensor.en_suite_presence_occupancy] changes from off to on (Presence Detected) OR when en suite switch left switch [switch.en_suite_switch_left] changes from off to on (Light On) OR when en suite presence occupancy binary sensor [binary_sensor.en_suite_presence_occupancy] changes from on to off and remains off for 1 minute (Absence Detected) OR when en suite door contact binary sensor [binary_sensor.en_suite_door_contact] changes from on to off (Door Closed) OR when en suite door contact binary sensor [binary_sensor.en_suite_door_contact] changes from off to on (Door Open) OR when timer.finished event occurs for entity timer.en_suite_light (Timer Done) OR at 18:30:00 (Auto Off) OR at 19:30:00 (Auto On) OR when timer.finished event occurs for entity timer.en_suite_light_long (Long Timer Done). CONDITIONS: None (global conditions list is empty). ACTIONS: Choose one action sequence based on trigger and conditions: 1. IF trigger is Presence Detected AND allow en suite lights on input boolean [input_boolean.allow_en_suite_lights_on] is on AND en suite switch left switch [switch.en_suite_switch_left] is off AND (en suite presence illuminance sensor [sensor.en_suite_presence_illuminance] is below low light threshold input number [input_number.low_light_threshold] OR the sun is between sunset and sunrise) THEN turn on en suite switch left switch [switch.en_suite_switch_left]. 2. IF trigger is Timer Done OR Absence Detected AND en suite door contact binary sensor [binary_sensor.en_suite_door_contact] is on AND en suite light timer [timer.en_suite_light] is idle AND en suite switch left switch [switch.en_suite_switch_left] is on AND allow en suite auto lights input boolean [input_boolean.allow_en_suite_auto_lights] is on THEN turn off en suite switch left switch [switch.en_suite_switch_left]. 3. IF trigger is Door Open AND allow en suite lights on input boolean [input_boolean.allow_en_suite_lights_on] is on THEN IF en suite switch left switch [switch.en_suite_switch_left] is on THEN turn it off ELSE IF en suite presence occupancy binary sensor [binary_sensor.en_suite_presence_occupancy] is off AND (en suite presence illuminance sensor [sensor.en_suite_presence_illuminance] is below low light threshold input number [input_number.low_light_threshold] OR the sun is between sunset and sunrise) THEN turn on en suite switch left switch [switch.en_suite_switch_left]. 4. IF trigger is Auto Off AND day of week sensor [sensor.day_of_week] is Sunday THEN turn off allow en suite auto lights input boolean [input_boolean.allow_en_suite_auto_lights]. 5. IF trigger is Auto On AND day of week sensor [sensor.day_of_week] is Sunday THEN turn on allow en suite auto lights input boolean [input_boolean.allow_en_suite_auto_lights]. 6. IF trigger is Long Timer Done AND en suite door contact binary sensor [binary_sensor.en_suite_door_contact] is off AND en suite switch left switch [switch.en_suite_switch_left] is on AND Room Occupied En Suite [input_boolean.room_occupied_en_suite] is off THEN turn off en suite switch left switch [switch.en_suite_switch_left]. 7. IF trigger is Light On THEN start both en suite light timer [timer.en_suite_light] and en suite light long timer [timer.en_suite_light_long].",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when motion is first detected in the en suite, when the light switch is manually turned on, when motion has been absent for one minute, when the en suite door is closed, when the en suite door is opened, when a short (5-minute) timer finishes, at 6:30 PM, at 7:30 PM, or when a long (30-minute) timer finishes.",
"conditions": "There are no global conditions that apply to all triggers. Instead, each specific action path has its own set of conditions.",
"action": "Depending on what triggered the automation and the current state of the room, one of several actions will occur. If someone enters and motion is detected, the light will turn on, but only if automatic lights are allowed, the light is currently off, and the room is dark enough. If motion stops for a minute or the short timer ends while the door is open, the light will turn off, but only if auto-lights are allowed. Opening the door can either turn the light on (if it's dark and no one is inside) or off (if it was already on). At 6:30 PM on Sundays, the system will disable the auto-light feature, and at 7:30 PM on Sundays, it will re-enable it. If the long timer finishes while the door is closed and the room is marked as unoccupied, the light will turn off. Finally, whenever the light is manually turned on, it starts both the short and long timers."
},
"human_like": "This automation manages the en suite lights, turning them on automatically when you enter if it's dark, and turning them off after you leave, with special rules for door status, timers, and scheduled overrides on Sundays.",
"complexity": "high"
}
},
{
"id": "'ESPHome: Update all ESPHome devices'",
"result": {
"structured": "TRIGGER: When the number of ESPHome update entities that are in the 'on' state is greater than zero. CONDITIONS: None. ACTIONS: Execute script.esphome_update_all_esphome_devices.",
"natural_language": {
"trigger": "When at least one ESPHome device has an update available, indicated by its update entity being in the 'on' state.",
"conditions": "There are no conditions that must be met.",
"action": "Runs the script 'esphome_update_all_esphome_devices' to update all ESPHome devices."
},
"human_like": "Automatically updates all ESPHome devices when any of them has a new firmware version available.",
"complexity": "low"
}
},
{
"id": "Family Has Arrived",
"result": {
"structured": "TRIGGER: When family home binary sensor [binary_sensor.family_home] changes from off to on OR when family is home input boolean [input_boolean.family_is_home] changes from off to on. CONDITIONS: family is home input boolean [input_boolean.family_is_home] is off. ACTIONS: Turn on family is home input boolean [input_boolean.family_is_home].",
"natural_language": {
"trigger": "The automation can be triggered in two ways: either when the family home binary sensor [binary_sensor.family_home] detects that the family has arrived home, changing from 'off' to 'on', or when the family is home input boolean [input_boolean.family_is_home] is manually switched from 'off' to 'on'.",
"conditions": "The automation only runs if the family is home input boolean [input_boolean.family_is_home] is currently in the 'off' state, ensuring it only activates when the family is not already marked as home.",
"action": "It sets the family as being home by turning on the family is home input boolean [input_boolean.family_is_home]."
},
"human_like": "Marks the family as being home, either automatically via a sensor or manually via a switch, but only if they aren't already marked as home.",
"complexity": "low"
}
},
{
"id": "'Family has left '",
"result": {
"structured": "TRIGGER: When family home binary sensor [binary_sensor.family_home] changes from on to off OR when family is home input boolean [input_boolean.family_is_home] changes from on to off. CONDITIONS: None. ACTIONS: If the trigger was family home binary sensor [binary_sensor.family_home] changing from on to off, then turn off family is home input boolean [input_boolean.family_is_home] AND turn on welcome home input boolean [input_boolean.welcome_home].",
"natural_language": {
"trigger": "The automation runs when either the family home binary sensor [binary_sensor.family_home] changes from 'on' to 'off', or when the family is home input boolean [input_boolean.family_is_home] is manually changed from 'on' to 'off'.",
"conditions": "There are no conditions that must be met for the automation to proceed.",
"action": "If the automation was triggered by the family home binary sensor [binary_sensor.family_home] changing state, it will first turn off the family is home input boolean [input_boolean.family_is_home] and then turn on the welcome home input boolean [input_boolean.welcome_home]. If the automation was triggered by the manual change of the family is home input boolean, no action is taken."
},
"human_like": "When the system detects the family has left, it updates the home status and prepares a 'welcome home' flag for their return.",
"complexity": "medium"
}
},
{
"id": "FitBit Automations",
"result": {
"structured": "TRIGGER: When sense battery level 3 sensor [sensor.sense_battery_level_3] battery level falls below 20 OR When sense battery level 3 sensor [sensor.sense_battery_level_3] battery level rises above 99.9. CONDITIONS: None. ACTIONS: If the trigger was Low battery, then run script text notify dave [script.text_notify_dave] with a message 'Your FitBit battery is low. Please charge.'. If the trigger was Charged, then run script text notify dave [script.text_notify_dave] with a message 'Your FitBit battery is charged.'.",
"natural_language": {
"trigger": "The automation is triggered when the battery level reported by the sense battery level 3 sensor [sensor.sense_battery_level_3] either drops below 20 percent or rises above 99.9 percent.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "Depending on which trigger occurred, a notification script is run. If the battery is low, the text notify dave [script.text_notify_dave] script sends a message saying the FitBit battery is low and needs charging. If the battery is charged, the same script sends a message saying the FitBit battery is charged."
},
"human_like": "Sends a text notification to Dave when his FitBit battery is either low or fully charged.",
"complexity": "low"
}
},
{
"id": "Fridge & Freezer Door Watch",
"result": {
"structured": "TRIGGER: When fridge door sensor contact binary sensor [binary_sensor.fridge_door_sensor_contact] remains open for 2 minutes OR When freezer door sensor contact binary sensor [binary_sensor.freezer_door_sensor_contact] remains open for 2 minutes. CONDITIONS: None. ACTIONS: (IF (trigger is Fridge Door Open) AND (audible notifications input boolean [input_boolean.audible_notifications] is on) THEN: 1. Send a random TTS notification via notify.alexa_media_kitchen_echo_show about the fridge door being open. 2. Wait 2 minutes. 3. IF (fridge door sensor contact binary sensor [binary_sensor.fridge_door_sensor_contact] is still open) THEN send a random TTS notification via notify.alexa_media_kitchen_echo_show that the fridge door is still open. ELSE send a random TTS notification via notify.alexa_media_kitchen_echo_show that the fridge door is closed.) OR (IF (trigger is Freezer Door Open) AND (audible notifications input boolean [input_boolean.audible_notifications] is on) THEN: 1. Send a random TTS notification via notify.alexa_media_kitchen_echo_show about the freezer door being open. 2. Wait 1 minute. 3. IF (freezer door sensor contact binary sensor [binary_sensor.freezer_door_sensor_contact] is still open) THEN send a random TTS notification via notify.alexa_media_kitchen_echo_show that the freezer door is still open. ELSE send a random TTS notification via notify.alexa_media_kitchen_echo_show that the freezer door is closed.).",
"natural_language": {
"trigger": "When the fridge door sensor contact binary sensor [binary_sensor.fridge_door_sensor_contact] has been open for two minutes, or when the freezer door sensor contact binary sensor [binary_sensor.freezer_door_sensor_contact] has been open for two minutes.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "If the fridge door was the trigger and audible notifications input boolean [input_boolean.audible_notifications] is on, the system will send a random, humorous voice notification to the kitchen Alexa device about the fridge door being open. After a two-minute delay, it checks if the fridge door is still open. If it is, it sends a follow-up notification. If it has been closed, it sends a 'thank you' notification. If the freezer door was the trigger and audible notifications are on, it follows a similar pattern: an initial notification, a one-minute delay, and then a follow-up check to send either a reminder or an all-clear message."
},
"human_like": "Warns you with a humorous voice announcement if the fridge or freezer door has been left open for too long, and follows up to see if it's been closed.",
"complexity": "medium"
}
},
{
"id": "Front Door Visitor",
"result": {
"structured": "TRIGGER: When front doorbell camera visitor [binary_sensor.front_doorbell_camera_visitor] changes from off to on OR When front door sense contact [binary_sensor.front_door_sense_contact] changes from off to on OR When dave home [binary_sensor.dave_home] changes from on to off OR When dave home [binary_sensor.dave_home] changes from off to on OR When family home [binary_sensor.family_home] changes from on to off OR When family home [binary_sensor.family_home] changes from off to on OR When front doorbell camera motion [binary_sensor.front_doorbell_camera_motion] OR front door person detected [binary_sensor.front_door_person_detected] changes from off to on OR At time 08:30:00 OR 15:10:00 OR At time 08:55:00 OR 15:25:00. CONDITIONS: None. ACTIONS: Choose based on trigger: IF trigger is Visitor THEN take snapshot from front doorbell camera snapshots clear [camera.front_doorbell_camera_snapshots_clear], delay 1 second, send notification with image to mobile app dave's samsung galaxy [notify.mobile_app_daves_samsung_galaxy] and notify mobile app [notify.mobile_app_sm_s901b], toggle front doorbell active [input_boolean.front_doorbell_active], set front doorbell camera auto quick reply time [number.front_doorbell_camera_auto_quick_reply_time] to 30, set front doorbell camera auto quick reply message [select.front_doorbell_camera_auto_quick_reply_message] to 'Hi, please leave the package at the door. We will get it later.', and (disabled) show browser popup with live camera view. IF trigger is Door Open AND front doorbell active [input_boolean.front_doorbell_active] is on THEN toggle front doorbell active [input_boolean.front_doorbell_active] and set front doorbell camera auto quick reply message [select.front_doorbell_camera_auto_quick_reply_message] to 'off'. IF trigger is Dave Out AND workday sensor [binary_sensor.workday_sensor] is on AND gem holidays [calendar.gem_holidays] is off THEN set front doorbell camera auto quick reply message [select.front_doorbell_camera_auto_quick_reply_message] to 'Hi, please leave the package at the door. We will get it later.'. IF trigger is Dave Home THEN set front doorbell camera auto quick reply message [select.front_doorbell_camera_auto_quick_reply_message] to 'off'. IF trigger is Motion Detected AND doorbell motion no trigger [input_boolean.doorbell_motion_no_trigger] is off AND family home [binary_sensor.family_home] is off THEN execute script.doorbell_camera_snapshot_ai_notify. IF trigger is Time off THEN turn on doorbell motion no trigger [input_boolean.doorbell_motion_no_trigger]. IF trigger is Time on THEN turn off doorbell motion no trigger [input_boolean.doorbell_motion_no_trigger].",
"natural_language": {
"trigger": "The automation can be triggered by several events: when the front doorbell camera visitor [binary_sensor.front_doorbell_camera_visitor] detects a visitor, when the front door sense contact [binary_sensor.front_door_sense_contact] opens, when the dave home [binary_sensor.dave_home] or family home [binary_sensor.family_home] presence sensors change state (either leaving or arriving), when motion or a person is detected by the front doorbell camera motion [binary_sensor.front_doorbell_camera_motion] or front door person detected [binary_sensor.front_door_person_detected] sensors, or at specific times related to the school run (08:30, 15:10, 08:55, and 15:25).",
"conditions": "There are no global conditions applied to all triggers. Instead, specific conditions are checked within each action path based on which trigger fired.",
"action": "The actions depend on which trigger occurred. If a visitor is detected, a snapshot is taken, notifications are sent to mobile devices, the doorbell active state is toggled, an auto-reply message is set, and a camera popup is shown (though this is disabled). If the door opens while the doorbell is active, the active state is toggled off and the auto-reply is disabled. If Dave leaves on a workday that is not a holiday, the auto-reply message is set. When Dave arrives home, the auto-reply is turned off. If motion is detected while the family is away and motion triggering is not suppressed, an AI snapshot notification script runs. At the start of the school run times, motion triggering is suppressed, and at the end of the school run times, it is re-enabled."
},
"human_like": "Manages front door notifications, auto-replies, and motion alerts based on doorbell presses, door openings, presence changes, and scheduled times, ensuring relevant alerts are sent when someone is at the door or during specific daily routines.",
"complexity": "high"
}
},
{
"id": "Frost Warning",
"result": {
"structured": "TRIGGER: When outside thermal comfort frost risk sensor [sensor.outdside_thermal_comfort_frost_risk] changes to 'probable' and remains for 5 minutes OR changes to 'high' and remains for 5 minutes OR changes from 'high' to 'probable' and remains for 5 minutes OR changes to 'no_risk' and remains for 5 minutes. CONDITIONS: None. ACTIONS: Choose one action sequence based on the trigger ID: (IF trigger ID is 'Probable' THEN run script.text_notify_parents with title 'FROST RISK - PROBABLE' AND message 'There may be a frost tonight.' AND IF audible notifications input boolean [input_boolean.audible_notifications] is on AND announcement playing input boolean [input_boolean.announcement_playing] is off THEN IF dave home binary sensor [binary_sensor.dave_home] is on THEN run script.jarvis_speech_engine_v3_0 to announce to Dave, ELSE run script.jarvis_speech_engine_v3_0 to announce to Gem) OR (IF trigger ID is 'High Probability' THEN run script.text_notify_parents with title 'FROST RISK - HIGHLY PROBABLE' AND message 'There will most likely be a frost tonight.' AND IF audible notifications input boolean [input_boolean.audible_notifications] is on AND announcement playing input boolean [input_boolean.announcement_playing] is off THEN IF dave home binary sensor [binary_sensor.dave_home] is on THEN run script.jarvis_speech_engine_v3_0 to announce to Dave, ELSE run script.jarvis_speech_engine_v3_0 to announce to Gem) OR (IF trigger ID is 'Probable again' THEN run script.text_notify_parents with title 'FROST RISK - PROBABLE AGAIN' AND message 'The frost risk has dropped to probable again.' AND IF audible notifications input boolean [input_boolean.audible_notifications] is on AND announcement playing input boolean [input_boolean.announcement_playing] is off THEN IF dave home binary sensor [binary_sensor.dave_home] is on THEN run script.jarvis_speech_engine_v3_0 to announce to Dave, ELSE run script.jarvis_speech_engine_v3_0 to announce to Gem) OR (IF trigger ID is 'No Risk' THEN run script.text_notify_parents with title 'FROST RISK - CANCELLED' AND message 'There is no chance of frost at the moment.' AND IF audible notifications input boolean [input_boolean.audible_notifications] is on AND announcement playing input boolean [input_boolean.announcement_playing] is off THEN IF dave home binary sensor [binary_sensor.dave_home] is on THEN run script.jarvis_speech_engine_v3_0 to announce to Dave, ELSE run script.jarvis_speech_engine_v3_0 to announce to Gem).",
"natural_language": {
"trigger": "The automation triggers when the outside thermal comfort frost risk sensor [sensor.outdside_thermal_comfort_frost_risk] reports a frost risk level of 'probable', 'high', a change from 'high' back to 'probable', or 'no_risk', and each state remains stable for five minutes.",
"conditions": "There are no global conditions for this automation.",
"action": "Depending on which trigger fired, a different set of actions is performed. For a 'probable' frost risk, a text notification is sent to parents, and if audible notifications are enabled and no other announcement is playing, a voice announcement is made to Dave if he is home, otherwise to Gem. For a 'high' frost risk, a similar process occurs with a different notification message. If the risk drops from 'high' back to 'probable', a notification about the reduced risk is sent and announced. Finally, if the risk becomes 'no_risk', a cancellation notification is sent and announced."
},
"human_like": "This automation sends frost risk warnings and announcements to household members when the outdoor frost risk level changes, ensuring notifications are only given when appropriate and audible alerts target the correct person.",
"complexity": "high"
}
},
{
"id": "Garage Dehumdifier Water Tray Full",
"result": {
"structured": "TRIGGER: When garage dehumidifier water tray full [sensor.garage_dehumidifier_water_tray_full] changes from not_full to full OR when garage dehumidifier water tray full [sensor.garage_dehumidifier_water_tray_full] changes from full to not_full OR when garage thermometer temperature [sensor.garage_thermometer_temperature] falls below garage thermal comfort dew point [sensor.garage_thermal_comfort_dew_point] OR when garage thermometer temperature [sensor.garage_thermometer_temperature] rises above 8 OR when humidifier garage dehumidifier 2 [humidifier.garage_dehumidifier_2] turns off. CONDITIONS: None (global). ACTIONS: Choose based on trigger: 1. IF trigger is Full THEN: Send a random text notification via script.text_notify_dave, AND if audible notifications input boolean [input_boolean.audible_notifications] is on, set announcement playing input boolean [input_boolean.announcement_playing] on, play a random audible announcement via script.jarvis_speech_engine_v3_0, wait 15 seconds, turn off announcement playing input boolean [input_boolean.announcement_playing], turn on kitchen aura lamp 2 light [light.kitchen_aura_lamp_2] with specific color and brightness, AND turn on garage dehumidifier full input boolean [input_boolean.garage_dehumidifier_full]. 2. IF trigger is Not Full THEN: Turn off garage dehumidifier full input boolean [input_boolean.garage_dehumidifier_full], AND if audible notifications input boolean [input_boolean.audible_notifications] is on, set announcement playing input boolean [input_boolean.announcement_playing] on, play a random audible announcement via script.jarvis_speech_engine_v3_0, wait 15 seconds, turn off announcement playing input boolean [input_boolean.announcement_playing], AND set kitchen aura lamp 2 light [light.kitchen_aura_lamp_2] effect based on time of day: IF morning binary sensor [binary_sensor.morning] is on THEN effect 'Morning', ELSE IF lunchtime binary sensor [binary_sensor.lunchtime] is on THEN effect 'Falling Petals', ELSE IF afternoon binary sensor [binary_sensor.afternoon] is on THEN effect 'Forest', ELSE IF dinner time binary sensor [binary_sensor.dinner_time] is on THEN effect 'Eating Dots', ELSE effect 'Firefly' (all at 1% brightness). 3. IF trigger is Rust Risk THEN: Send a text notification via script.text_notify_dave with a specific message. 4. IF trigger is Restart AND humidifier garage dehumidifier 2 [humidifier.garage_dehumidifier_2] is off AND garage thermometer humidity [sensor.garage_thermometer_humidity] is above 60 THEN: Turn on humidifier garage dehumidifier 2 [humidifier.garage_dehumidifier_2]. 5. IF trigger is Off AND garage thermometer temperature [sensor.garage_thermometer_temperature] is below 10 THEN: Send a text notification via script.text_notify_dave with a specific message.",
"natural_language": {
"trigger": "The automation can be triggered by several events: when the garage dehumidifier water tray full sensor [sensor.garage_dehumidifier_water_tray_full] reports that it has become full, when it reports that it is no longer full, when the garage thermometer temperature [sensor.garage_thermometer_temperature] drops below the dew point, when the garage temperature rises above 8 degrees, or when the garage dehumidifier unit [humidifier.garage_dehumidifier_2] itself is turned off.",
"conditions": "There are no global conditions that apply to all triggers. Specific conditions are checked within the action sequences for certain triggers.",
"action": "Depending on which trigger fired, different actions are taken. If the tray becomes full, it sends a random text and optional voice notification, turns on a specific light, and marks a helper switch as on. If the tray is emptied, it turns off that helper switch, sends a different optional voice notification, and sets the light to an effect based on the time of day. If the temperature falls below the dew point, a warning text notification is sent. If the temperature is above 8 degrees and the dehumidifier is off while humidity is high, the dehumidifier is turned back on. If the dehumidifier turns off while the temperature is very low, a text notification is sent to explain the shutdown."
},
"human_like": "Manages the garage dehumidifier by notifying when the water tray is full or empty, warning about rust risk, and automatically restarting the unit when conditions are safe, all with optional voice announcements and visual light cues.",
"complexity": "high"
}
},
{
"id": "Garage Lights With Doors",
"result": {
"structured": "TRIGGER: When garage door state sensor [sensor.garage_door_state] changes to Open OR When garage door state sensor [sensor.garage_door_state] changes to Closed. CONDITIONS: None. ACTIONS: Choose based on trigger: IF trigger is Open AND garage lights light [light.garage_lights] is off THEN turn on garage lights light [light.garage_lights]. IF trigger is Closed AND garage lights light [light.garage_lights] is on THEN turn off garage lights light [light.garage_lights].",
"natural_language": {
"trigger": "When the garage door state sensor [sensor.garage_door_state] reports the door is either opened or closed.",
"conditions": "There are no additional conditions.",
"action": "If the door was opened and the garage lights light [light.garage_lights] are off, the lights are turned on. If the door was closed and the garage lights light [light.garage_lights] are on, the lights are turned off."
},
"human_like": "Automatically turns the garage lights on when the door opens and off when the door closes, but only if the lights are in the opposite state.",
"complexity": "medium"
}
},
{
"id": "Get Battery Output Limit",
"result": {
"structured": "TRIGGER: At 21:05:00 daily. CONDITIONS: None. ACTIONS: 1. Send a notification titled 'Battery Output Limit' with message 'Do you want to limit the battery output overnight?' and action buttons 'Yes' and 'No' to mobile app dave's samsung galaxy notify [notify.mobile_app_daves_samsung_galaxy]. 2. Wait for a response via mobile app notification action event with action 'YES' OR 'NO' for up to 30 minutes. 3. Choose based on wait outcome: IF (no response received within timeout) THEN turn on allow battery output limit input boolean [input_boolean.allow_battery_output_limit] AND run text notify dave script [script.text_notify_dave] with title 'BATTERY WILL BE LIMITED OVERNIGHT' and message 'Please ensure you have set time slots.' OR IF (response action is 'YES') THEN turn on allow battery output limit input boolean [input_boolean.allow_battery_output_limit] AND run text notify dave script [script.text_notify_dave] with title 'BATTERY WILL BE LIMITED OVERNIGHT' and message 'Please ensure you have set time slots.' OR IF (response action is 'NO') THEN IF allow battery output limit input boolean [input_boolean.allow_battery_output_limit] is on THEN turn it off AND run text notify dave script [script.text_notify_dave] with title 'BATTERY WILL NOT BE LIMITED OVERNIGHT' and message 'Please check no time slots are set.'.",
"natural_language": {
"trigger": "Every day at 9:05 PM.",
"conditions": "There are no conditions.",
"action": "First, a notification is sent to the mobile app dave's samsung galaxy notify [notify.mobile_app_daves_samsung_galaxy] asking if the battery output should be limited overnight, providing 'Yes' and 'No' buttons. The automation then waits for up to 30 minutes for a response via a notification action. If no response is received within that time, it will turn on the allow battery output limit input boolean [input_boolean.allow_battery_output_limit] and send a confirmation message via the text notify dave script [script.text_notify_dave] stating the battery will be limited and to ensure time slots are set. If the response is 'Yes', it performs the same actions: turning on the input boolean and sending the confirmation message. If the response is 'No', it checks if the allow battery output limit input boolean [input_boolean.allow_battery_output_limit] is on, and if so, turns it off. It then sends a message via the text notify dave script [script.text_notify_dave] stating the battery will not be limited and to check that no time slots are set."
},
"human_like": "Asks at 9:05 PM if the home battery should be limited overnight, and acts based on the user's response or a timeout, sending appropriate notifications.",
"complexity": "medium"
}
},
{
"id": "Get ready for school",
"result": {
"structured": "TRIGGER: When the time reaches get ready for school at [input_datetime.get_ready_for_school_at]. CONDITIONS: calendar school day calendar [calendar.school_day] is on AND audible notifications input boolean [input_boolean.audible_notifications] is on. ACTIONS: Execute boys get dressed announcement script [script.boys_get_dressed_announcement], then wait 10 minutes, then execute boys brush teeth announcement script [script.boys_brush_teeth_announcement], then wait 30 seconds, then turn off living room tv switch [switch.living_room_tv], then turn off media player sky q main [media_player.sky_q_main], then wait 10 minutes, then execute boys late for school script [script.boys_late_for_school], then turn on school morning announcement played input boolean [input_boolean.school_morning_announcement_played], then toggle sean dressed first input boolean [input_boolean.sean_dressed_first].",
"natural_language": {
"trigger": "The automation runs at a specific time set by the get ready for school at [input_datetime.get_ready_for_school_at].",
"conditions": "It only runs if the calendar school day calendar [calendar.school_day] indicates it is a school day and the audible notifications input boolean [input_boolean.audible_notifications] is turned on.",
"action": "It starts by playing an announcement for the boys to get dressed. After a 10-minute delay, it plays an announcement for them to brush their teeth. Following a 30-second pause, it turns off the living room TV and the main Sky Q media player. After another 10-minute delay, it plays a 'late for school' announcement. Finally, it marks that the morning announcement has been played and toggles a flag tracking who got dressed first."
},
"human_like": "Manages the school morning routine by playing timed announcements, turning off entertainment, and tracking completion, but only on school days when notifications are enabled.",
"complexity": "medium"
}
},
{
"id": "Google Drive Backup Monitor",
"result": {
"structured": "TRIGGER: When backups stale binary sensor [binary_sensor.backups_stale] changes from off to on. CONDITIONS: None. ACTIONS: Send a notification to the mobile app associated with the device ID stored in my mobile phone id input text [input_text.my_mobile_phone_id] with title 'There is an issue with the backups' and message 'Access the Home Assistant Google Drive Backup add-on for details'.",
"natural_language": {
"trigger": "When the backups stale binary sensor [binary_sensor.backups_stale] changes from off to on, indicating the backups have become stale.",
"conditions": "There are no conditions for this automation.",
"action": "Sends a notification to the mobile phone identified by the my mobile phone id input text [input_text.my_mobile_phone_id] helper. The notification has the title 'There is an issue with the backups' and the message 'Access the Home Assistant Google Drive Backup add-on for details'."
},
"human_like": "Sends a phone notification to Dave when the Google Drive backup system reports a failure.",
"complexity": "low"
}
},
{
"id": "Granny Charger Toggle",
"result": {
"structured": "TRIGGER: When solaredge b1 state of energy sensor [sensor.solaredge_b1_state_of_energy] changes state OR When solar panel production w sensor [sensor.solar_panel_production_w] changes state. CONDITIONS: None. ACTIONS: Choose one sequence based on conditions. SEQUENCE 1: IF (Trigger is Panel Power) AND (valkyrie switch 1 switch [switch.valkyrie_switch_1] is on) AND (granny charger local switch [switch.granny_charger_local] is off) AND (solaredge b1 state of energy sensor [sensor.solaredge_b1_state_of_energy] is above 95%) AND (solar exported power w sensor [sensor.solar_exported_power_w] is above 2500) THEN Turn on granny charger local switch [switch.granny_charger_local]. SEQUENCE 2: IF (Trigger is Battery Charge Level) AND (solar house consumption w sensor [sensor.solar_house_consumption_w] is above solar panel production w sensor [sensor.solar_panel_production_w]) AND (granny charger local switch [switch.granny_charger_local] is on) THEN Turn off granny charger local switch [switch.granny_charger_local]. SEQUENCE 3: IF (Trigger is Battery Charge Level) AND (solaredge b1 state of energy sensor [sensor.solaredge_b1_state_of_energy] is below 97) AND (granny charger local switch [switch.granny_charger_local] is on) THEN Turn off granny charger local switch [switch.granny_charger_local].",
"natural_language": {
"trigger": "The automation runs whenever the battery charge level [sensor.solaredge_b1_state_of_energy] changes, or when the solar panel production power [sensor.solar_panel_production_w] changes.",
"conditions": "There are no global conditions. The automation uses a choose action to select which action to perform based on a set of internal conditions.",
"action": "The automation has three possible actions, selected by a choose block. The first action turns on the granny charger [switch.granny_charger_local] if the solar panel power triggered the automation, the kitchen switch [switch.valkyrie_switch_1] is on, the charger is currently off, the battery is more than 95% charged, and the exported solar power is over 2500W. The second action turns off the granny charger if the battery level triggered the automation, the house is consuming more power than the panels are producing, and the charger is on. The third action also turns off the granny charger if the battery level triggered the automation, the battery charge is below 97%, and the charger is on."
},
"human_like": "Automatically controls a granny charger for an electric vehicle, turning it on when there is excess solar power and the battery is full, and turning it off when household consumption is high or the battery is low.",
"complexity": "high"
}
},
{
"id": "Greenhouse & Polytunnel Temp Monitor",
"result": {
"structured": "TRIGGER: When greenhouse thermometer temperature sensor [sensor.greenhouse_thermometer_temperature] OR poly tunnel temperature temperature sensor [sensor.poly_tunnel_temperature_temperature] OR lean to greenhouse thermometer temperature sensor [sensor.lean_to_greenhouse_thermometer_temperature] remains below 18 for 5 minutes OR When greenhouse thermometer temperature sensor [sensor.greenhouse_thermometer_temperature] OR poly tunnel temperature temperature sensor [sensor.poly_tunnel_temperature_temperature] OR lean to greenhouse thermometer temperature sensor [sensor.lean_to_greenhouse_thermometer_temperature] remains above 25 for 5 minutes OR When the time is 21:02:00. CONDITIONS: None. ACTIONS: Choose based on trigger and conditions: IF trigger is Open AND the triggered sensor's friendly name contains 'Poly' AND poly tunnel door 1 contact binary sensor [binary_sensor.poly_tunnel_door_1_contact] is off AND poly tunnel door upper binary sensor [binary_sensor.poly_tunnel_door_upper] is off AND poly tunnel door 2 2 binary sensor [binary_sensor.poly_tunnel_door_2_2] is off THEN run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a random message about the poly tunnel being too hot. IF trigger is Open AND the triggered sensor's friendly name contains 'Lean' AND lean to greenhouse door binary sensor [binary_sensor.lean_to_greenhouse_door] is off THEN run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a random message about the lean-to greenhouse being too hot. IF trigger is Open AND the triggered sensor's friendly name does NOT contain 'Lean' and does NOT contain 'Poly' AND greenhouse door contact binary sensor [binary_sensor.greenhouse_door_contact] is off THEN run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a random message about the greenhouse being too hot. IF trigger is Close AND the triggered sensor's friendly name contains 'Poly' AND (poly tunnel door 1 contact binary sensor [binary_sensor.poly_tunnel_door_1_contact] is on OR poly tunnel door 2 2 binary sensor [binary_sensor.poly_tunnel_door_2_2] is on OR poly tunnel door upper binary sensor [binary_sensor.poly_tunnel_door_upper] is on) THEN run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a random message about the poly tunnel being too cold. IF trigger is Close AND the triggered sensor's friendly name contains 'Lean' AND lean to greenhouse door binary sensor [binary_sensor.lean_to_greenhouse_door] is on THEN run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a random message about the lean-to greenhouse being too cold. IF trigger is Close AND the triggered sensor's friendly name does NOT contain 'Lean' and does NOT contain 'Poly' AND greenhouse door contact binary sensor [binary_sensor.greenhouse_door_contact] is on THEN run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a random message about the greenhouse being too cold. IF trigger is Last check AND lean to greenhouse door binary sensor [binary_sensor.lean_to_greenhouse_door] is on THEN run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a message reporting which greenhouse and poly tunnel doors are open or stating they are all closed.",
"natural_language": {
"trigger": "The automation is triggered in three ways: first, when the temperature in any of the monitored greenhouses (greenhouse thermometer temperature sensor [sensor.greenhouse_thermometer_temperature], poly tunnel temperature temperature sensor [sensor.poly_tunnel_temperature_temperature], or lean to greenhouse thermometer temperature sensor [sensor.lean_to_greenhouse_thermometer_temperature]) stays below 18 degrees for at least five minutes. Second, when the temperature in any of those same sensors stays above 25 degrees for at least five minutes. Third, every day at 9:02 PM.",
"conditions": "There are no global conditions; the automation proceeds directly to actions based on which trigger occurred and specific checks within the action sequence.",
"action": "The automation uses a set of conditional choices to decide what to do. If the temperature is too high (Open trigger), it checks which specific greenhouse sensor triggered and if the corresponding door is closed, then plays a sarcastic voice message via the jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] complaining about the heat and asking for the door to be opened. If the temperature is too low (Close trigger), it checks which greenhouse sensor triggered and if the corresponding door is open, then plays a sarcastic voice message complaining about the cold and asking for the door to be closed. If the trigger is the nightly check at 9:02 PM, and the lean to greenhouse door binary sensor [binary_sensor.lean_to_greenhouse_door] is open, it calculates a summary of all open greenhouse and poly tunnel doors and announces it via the speech engine. If the door is closed, it announces that all doors are closed."
},
"human_like": "This automation monitors greenhouse temperatures and doors, using a sarcastic voice assistant to remind you to open or close doors when it's too hot or cold, and gives a nightly status report.",
"complexity": "high"
}
},
{
"id": "Greenhouse Heating Toggle",
"result": {
"structured": "TRIGGER: When greenhouse thermometer temperature sensor [sensor.greenhouse_thermometer_temperature] falls below 6 OR when greenhouse thermometer temperature sensor [sensor.greenhouse_thermometer_temperature] rises above 10. CONDITIONS: None. ACTIONS: If the trigger is Greenhouse Heater On, then turn on heater greenhouse s1 switch [switch.heater_greenhouse_s1] AND heater greenhouse s2 switch [switch.heater_greenhouse_s2]. If the trigger is Greenhouse Heater Off, then turn off heater greenhouse s1 switch [switch.heater_greenhouse_s1] AND heater greenhouse s2 switch [switch.heater_greenhouse_s2].",
"natural_language": {
"trigger": "When the greenhouse thermometer temperature sensor [sensor.greenhouse_thermometer_temperature] drops below 6 degrees, or when it rises above 10 degrees.",
"conditions": "There are no conditions that must be met.",
"action": "If the temperature drops below 6 degrees, the automation turns on both the heater greenhouse s1 switch [switch.heater_greenhouse_s1] and the heater greenhouse s2 switch [switch.heater_greenhouse_s2]. If the temperature rises above 10 degrees, it turns both of those switches off."
},
"human_like": "Automatically turns the greenhouse heaters on when it gets too cold and off when it gets warm enough.",
"complexity": "low"
}
},
{
"id": "Grid Charge Battery Overnight with Go",
"result": {
"structured": "TRIGGER: At 21:00:00 (Activate Grid Charge) OR When target timeframes octopus energy charge home battery [binary_sensor.target_timeframes_octopus_energy_charge_home_battery] changes from off to on (Start Grid Charge) OR When target timeframes octopus energy charge home battery [binary_sensor.target_timeframes_octopus_energy_charge_home_battery] changes from on to off (Stop Grid Charge) OR When solaredge i1 advanced power control switch [switch.solaredge_i1_advanced_power_control] changes from unavailable to on (Inverter Reset). CONDITIONS: None (global). ACTIONS: Choose based on trigger: IF trigger is Activate Grid Charge THEN turn on grid charge home battery input boolean [input_boolean.grid_charge_home_battery]. IF trigger is Start Grid Charge AND grid charge home battery input boolean [input_boolean.grid_charge_home_battery] is on THEN turn on home battery grid charging input boolean [input_boolean.home_battery_grid_charging] AND run grid charge battery script [script.grid_charge_battery]. IF trigger is Stop Grid Charge THEN run turn off script [script.turn_off] on script.grid_charge_battery AND set solaredge i1 storage command mode select [select.solaredge_i1_storage_command_mode] to 'Maximize Self Consumption' AND turn off home battery grid charging input boolean [input_boolean.home_battery_grid_charging] AND turn off grid charge home battery input boolean [input_boolean.grid_charge_home_battery]. IF trigger is Inverter Reset AND grid charge home battery input boolean [input_boolean.grid_charge_home_battery] is on AND time is between 00:30:00 and 05:30:00 AND target timeframes octopus energy charge home battery [binary_sensor.target_timeframes_octopus_energy_charge_home_battery] is on THEN run grid charge battery script [script.grid_charge_battery].",
"natural_language": {
"trigger": "The automation can be triggered in four ways: at 9:00 PM, when the target timeframes octopus energy charge home battery [binary_sensor.target_timeframes_octopus_energy_charge_home_battery] becomes active, when it becomes inactive, or when the solaredge i1 advanced power control switch [switch.solaredge_i1_advanced_power_control] becomes available again after being unavailable.",
"conditions": "There are no global conditions. Specific conditions are checked within the action choices depending on which trigger occurred.",
"action": "Depending on the trigger, the automation performs different sequences. At 9:00 PM, it enables the grid charge home battery input boolean [input_boolean.grid_charge_home_battery]. If the target timeframes sensor becomes active and the grid charge boolean is already on, it enables the home battery grid charging input boolean [input_boolean.home_battery_grid_charging] and starts the grid charge battery script [script.grid_charge_battery]. If the target timeframes sensor becomes inactive, it stops the charging script, changes the inverter's storage command mode to 'Maximize Self Consumption', and turns off both charging-related booleans. Finally, if the inverter resets and becomes available, and it's within the overnight charging window (between 12:30 AM and 5:30 AM) while the target timeframes sensor is active, it restarts the grid charge battery script."
},
"human_like": "Manages overnight grid charging for the home battery, starting at 9 PM or when a cheap energy window begins, and ensuring charging resumes if the inverter resets during the scheduled time.",
"complexity": "high"
}
},
{
"id": "Guest Bedroom Lights with presence",
"result": {
"structured": "TRIGGER: When group spare room motion group [group.spare_room_motion] changes from off to on OR guest bedroom occupied binary sensor [binary_sensor.guest_bedroom_occupied] changes from on to off OR guest bedroom motion illuminance sensor [sensor.guest_bedroom_motion_illuminance] falls below low light threshold input number [input_number.low_light_threshold] OR guest bedroom motion illuminance sensor [sensor.guest_bedroom_motion_illuminance] rises above upper light threshold level input number [input_number.upper_light_threshold_level] OR guest bed motion right occupancy binary sensor [binary_sensor.guest_bed_motion_right_occupancy] OR guest bed motion left occupancy binary sensor [binary_sensor.guest_bed_motion_left_occupancy] changes from off to on OR guest bed motion right occupancy binary sensor [binary_sensor.guest_bed_motion_right_occupancy] OR guest bed motion left occupancy binary sensor [binary_sensor.guest_bed_motion_left_occupancy] changes from on to off and remains for 30 seconds OR spare room light switch switch [switch.spare_room_light_switch] changes from off to on OR spare room light switch switch [switch.spare_room_light_switch] changes from on to off. CONDITIONS: holiday mode input boolean [input_boolean.holiday_mode] is off. ACTIONS: Choose based on trigger and conditions: 1) IF trigger is Light on AND guest bedroom bedside lamps active input boolean [input_boolean.guest_bedroom_bedside_lamps_active] is on AND (sun is before sunrise OR after sunset OR guest bedroom motion illuminance sensor [sensor.guest_bedroom_motion_illuminance] is below low light threshold input number [input_number.low_light_threshold]) AND guest mode input boolean [input_boolean.guest_mode] is off THEN turn on spare room lights light [light.spare_room_lights]. 2) IF trigger is Light off AND guest bedroom allow lights off input boolean [input_boolean.guest_bedroom_allow_lights_off] is on THEN turn off spare room lights light [light.spare_room_lights]. 3) IF trigger is Low Light AND guest bedroom occupied binary sensor [binary_sensor.guest_bedroom_occupied] is on AND lights out binary sensor [binary_sensor.lights_out] is off AND guest mode input boolean [input_boolean.guest_mode] is off THEN turn on spare room lights light [light.spare_room_lights]. 4) IF trigger is Good Light THEN turn off guest bedroom bedside lamp left light [light.guest_bedroom_bedside_lamp_left], guest bedroom bedside lamp right light [light.guest_bedroom_bedside_lamp_right], and spare room lights light [light.spare_room_lights]. 5) IF trigger is Bedside light on AND triggered entity friendly name contains 'Right' AND guest bedroom bedside lamps active input boolean [input_boolean.guest_bedroom_bedside_lamps_active] is on AND (sun is before sunrise OR after sunset OR guest bedroom motion illuminance sensor [sensor.guest_bedroom_motion_illuminance] is below low light threshold input number [input_number.low_light_threshold]) THEN turn on guest bedroom bedside lamp right light [light.guest_bedroom_bedside_lamp_right]. 6) IF trigger is Bedside light off AND triggered entity friendly name contains 'Right' AND guest bedroom allow lights off input boolean [input_boolean.guest_bedroom_allow_lights_off] is on THEN turn off guest bedroom bedside lamp right light [light.guest_bedroom_bedside_lamp_right]. 7) IF trigger is Bedside light on AND triggered entity friendly name contains 'Left' AND guest bedroom bedside lamps active input boolean [input_boolean.guest_bedroom_bedside_lamps_active] is on AND (sun is before sunrise OR after sunset OR guest bedroom motion illuminance sensor [sensor.guest_bedroom_motion_illuminance] is below low light threshold input number [input_number.low_light_threshold]) THEN turn on guest bedroom bedside lamp left light [light.guest_bedroom_bedside_lamp_left]. 8) IF trigger is Bedside light off AND triggered entity friendly name contains 'Left' AND guest bedroom allow lights off input boolean [input_boolean.guest_bedroom_allow_lights_off] is on THEN turn off guest bedroom bedside lamp left light [light.guest_bedroom_bedside_lamp_left]. 9) IF trigger is Ironing on OR Ironing off THEN IF guest mode input boolean [input_boolean.guest_mode] is off THEN run script.ironing_lights ELSE toggle spare room lights light [light.spare_room_lights].",
"natural_language": {
"trigger": "The automation can be triggered by several events: motion is detected in the spare room (group.spare_room_motion), the guest bedroom is marked as unoccupied (binary_sensor.guest_bedroom_occupied), the light level in the guest bedroom falls below a low threshold (sensor.guest_bedroom_motion_illuminance), the light level rises above a high threshold, motion is detected on either side of the guest bed (binary_sensor.guest_bed_motion_right_occupancy or binary_sensor.guest_bed_motion_left_occupancy), motion on either side of the bed stops for 30 seconds, or the spare room light switch (switch.spare_room_light_switch) is turned on or off.",
"conditions": "The automation only runs if holiday mode (input_boolean.holiday_mode) is turned off. The specific actions taken then depend on which trigger occurred and a set of further conditions.",
"action": "Depending on the trigger and conditions, the automation will: turn the main room lights (light.spare_room_lights) on or off; turn the individual bedside lamps (light.guest_bedroom_bedside_lamp_left, light.guest_bedroom_bedside_lamp_right) on or off; or, when the ironing switch is used, either run a special lighting script or simply toggle the main lights based on whether guest mode is active."
},
"human_like": "This automation intelligently controls the lights in the guest bedroom based on motion, occupancy, ambient light levels, and manual switch inputs, ensuring appropriate lighting for guests and daily use.",
"complexity": "high"
}
},
{
"id": "Guest Bedroom Smart Button Automation",
"result": {
"structured": "TRIGGER: When event smart button upstairs 1 action event [event.smart_button_upstairs_1_action] changes state. CONDITIONS: The previous state of the trigger entity was not 'unavailable'. ACTIONS: If the event_type attribute of the new state is 'single', execute spare room tv toggle 2 script [script.spare_room_tv_toggle_2]. OR If the event_type attribute of the new state is 'release' AND guest mode input boolean [input_boolean.guest_mode] is off, execute spare room night light script [script.spare_room_night_light].",
"natural_language": {
"trigger": "When the event smart button upstairs 1 action event [event.smart_button_upstairs_1_action] reports a change, such as a button press.",
"conditions": "The automation only runs if the button's previous state was not 'unavailable', ensuring it's a valid event.",
"action": "Depending on the type of button press, different actions occur. A single press toggles the TV via the spare room tv toggle 2 script [script.spare_room_tv_toggle_2]. If the button is released and the guest mode input boolean [input_boolean.guest_mode] is turned off, it activates night lights by running the spare room night light script [script.spare_room_night_light]."
},
"human_like": "Controls the guest bedroom TV and night lights using a smart button, with different actions for a single press versus a release when guest mode is off.",
"complexity": "medium"
}
},
{
"id": "Guest Mode Audio Feedback",
"result": {
"structured": "TRIGGER: When guest mode input boolean [input_boolean.guest_mode] changes from off to on. CONDITIONS: None. ACTIONS: Turn on announcement playing input boolean [input_boolean.announcement_playing], execute jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with parameters where=all, type=announcement, and a random message from a predefined list, wait for 5 seconds, then turn off announcement playing input boolean [input_boolean.announcement_playing].",
"natural_language": {
"trigger": "When the guest mode input boolean [input_boolean.guest_mode] is turned on.",
"conditions": "There are no conditions that must be met.",
"action": "First, it sets the announcement playing input boolean [input_boolean.announcement_playing] to on. Then, it runs the jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] to announce a randomly selected message about enabling guest mode to all speakers. After a 5-second delay, it turns off the announcement playing input boolean [input_boolean.announcement_playing]."
},
"human_like": "Announces that guest mode has been enabled using a voice assistant, with a short delay before clearing the announcement status.",
"complexity": "low"
}
},
{
"id": "HACS Updates Notify",
"result": {
"structured": "TRIGGER: When hacs updates available sensor [sensor.hacs_updates_available] has a value above 1 OR When hacs updates available sensor [sensor.hacs_updates_available] has a value above 4. CONDITIONS: None. ACTIONS: If the trigger was Single Update, then run text notify dave script [script.text_notify_dave] with a message about a single new HACS component update. If the trigger was More Updates, then run text notify dave script [script.text_notify_dave] with a message about 5 HACS component updates waiting.",
"natural_language": {
"trigger": "When the hacs updates available sensor [sensor.hacs_updates_available] reports more than 1 update available, or when it reports more than 4 updates available.",
"conditions": "There are no conditions for this automation.",
"action": "Depending on which trigger fired, a notification script is run. If the sensor value is above 1, a script sends a notification about a single new HACS update. If the sensor value is above 4, a different script sends a notification stating there are now 5 HACS updates waiting."
},
"human_like": "Sends a notification when HACS updates are available, with a different message for a single update versus multiple updates.",
"complexity": "medium"
}
},
{
"id": "this_is_halloween",
"result": {
"structured": "TRIGGER: When the time reaches the value set in halloween show input datetime [input_datetime.halloween_show]. ACTIONS: Turn on this is halloween input boolean [input_boolean.this_is_halloween], then wait for 2 hours, then turn off this is halloween input boolean [input_boolean.this_is_halloween].",
"natural_language": {
"trigger": "At the specific time set in the halloween show input datetime [input_datetime.halloween_show].",
"conditions": "There are no conditions for this automation.",
"action": "It turns on the this is halloween input boolean [input_boolean.this_is_halloween], waits for two hours, and then turns it off."
},
"human_like": "Activates a Halloween-themed mode for two hours starting at a pre-set time.",
"complexity": "low"
}
},
{
"id": "operation haunted house",
"result": {
"structured": "TRIGGER: When this is halloween input boolean [input_boolean.this_is_halloween] changes from off to on OR When this is halloween input boolean [input_boolean.this_is_halloween] changes from on to off. ACTIONS: If the trigger is start (off to on), then execute the following sequence: 1. Run audio volume extra spooky script [script.audio_volume_extra_spooky]. 2. Play the media file 'http://192.168.0.95:8123/local/haunted_sounds/This_is_Halloween.mp3' on all jarvis media player media player [media_player.all_jarvis_media_player]. 3. Wait for 3 minutes and 20 seconds. 4. Turn on haunted house script [script.haunted_house]. If the trigger is stop (on to off), then execute the following sequence: 1. Turn off haunted house script [script.haunted_house]. 2. Activate scene before haunting scene [scene.before_haunting].",
"natural_language": {
"trigger": "When the this is halloween input boolean [input_boolean.this_is_halloween] is turned on from an off state, or when it is turned off from an on state.",
"conditions": "There are no explicit conditions; the automation uses a choose action that selects a sequence based on which trigger occurred.",
"action": "If the automation was triggered by turning on the this is halloween input boolean, it first runs the audio volume extra spooky script to adjust audio settings, then plays the 'This is Halloween' music on the all jarvis media player, waits for 3 minutes and 20 seconds, and finally starts the haunted house script. If the automation was triggered by turning off the this is halloween input boolean, it stops the haunted house script and restores the previous state by activating the scene before haunting scene."
},
"human_like": "Starts a Halloween-themed sequence with spooky audio and effects when enabled, and restores the normal scene when disabled.",
"complexity": "medium"
}
},
{
"id": "Hallway Lights Needed",
"result": {
"structured": "TRIGGER: When hallway light switch 1 switch [switch.hallway_light_switch_1] changes from off to on OR When hallway light switch 1 switch [switch.hallway_light_switch_1] changes from on to off OR When hallway light switch 2 right switch [switch.hallway_light_switch_2_right] changes from off to on OR When hallway light switch 2 right switch [switch.hallway_light_switch_2_right] changes from on to off. CONDITIONS: None. ACTIONS: If hallway lights light [light.hallway_lights] is off, then turn on hallway lights light [light.hallway_lights]. Otherwise, turn off hallway lights light [light.hallway_lights].",
"natural_language": {
"trigger": "When either the hallway light switch 1 switch [switch.hallway_light_switch_1] or the hallway light switch 2 right switch [switch.hallway_light_switch_2_right] is turned on or off.",
"conditions": "There are no conditions.",
"action": "If the hallway lights light [light.hallway_lights] are currently off, they will be turned on. If they are already on, they will be turned off."
},
"human_like": "Toggles the hallway lights on or off whenever either of the two hallway light switches is flipped.",
"complexity": "medium"
}
},
{
"id": "Hallway Presence",
"result": {
"structured": "TRIGGER: When hallway motion binary sensor [binary_sensor.hallway_motion] changes from off to on OR When hallway motion binary sensor [binary_sensor.hallway_motion] changes from on to off AND remains off for 30 seconds. CONDITIONS: None. ACTIONS: If the trigger was hallway motion binary sensor [binary_sensor.hallway_motion] turning on, then set room presence input text [input_text.room_presence] to 'hallway' AND turn on room occupied hallway input boolean [input_boolean.room_occupied_hallway]. If the trigger was hallway motion binary sensor [binary_sensor.hallway_motion] turning off and remaining off for 30 seconds, then turn off room occupied hallway input boolean [input_boolean.room_occupied_hallway].",
"natural_language": {
"trigger": "When motion is first detected in the hallway (the hallway motion binary sensor [binary_sensor.hallway_motion] changes from off to on), or when motion is no longer detected and the sensor remains off for 30 seconds.",
"conditions": "There are no conditions that must be checked.",
"action": "If motion is detected, the system records 'hallway' in the room presence input text [input_text.room_presence] and marks the hallway as occupied by turning on the room occupied hallway input boolean [input_boolean.room_occupied_hallway]. If motion has been absent for 30 seconds, the system marks the hallway as unoccupied by turning off the room occupied hallway input boolean [input_boolean.room_occupied_hallway]."
},
"human_like": "Tracks presence in the hallway, marking it as occupied when motion is detected and as unoccupied after motion has stopped for 30 seconds.",
"complexity": "medium"
}
},
{
"id": "HEATING - All Automations",
"result": {
"structured": "TRIGGER: When dave home binary sensor [binary_sensor.dave_home] changes from on to off AND remains for 2 minutes OR When dave home binary sensor [binary_sensor.dave_home] changes from off to on AND remains for 2 minutes OR When gem home binary sensor [binary_sensor.gem_home] changes from on to off AND remains for 2 minutes OR When gem home binary sensor [binary_sensor.gem_home] changes from off to on AND remains for 2 minutes OR When any of the following entities changes to on AND remains for 30 seconds: front door sense contact binary sensor [binary_sensor.front_door_sense_contact], back door sensor contact binary sensor [binary_sensor.back_door_sensor_contact], side door sensor contact binary sensor [binary_sensor.side_door_sensor_contact], kitchen window left contact binary sensor [binary_sensor.kitchen_window_left_contact], kitchen window right contact binary sensor [binary_sensor.kitchen_window_right_contact], living room window left contact binary sensor [binary_sensor.living_room_window_left_contact], living room window right contact binary sensor [binary_sensor.living_room_window_right_contact], hallway window contact binary sensor [binary_sensor.hallway_window_contact] OR When any of the following entities changes to off: front door sense contact binary sensor [binary_sensor.front_door_sense_contact], back door sensor contact binary sensor [binary_sensor.back_door_sensor_contact], side door sensor contact binary sensor [binary_sensor.side_door_sensor_contact], kitchen window left contact binary sensor [binary_sensor.kitchen_window_left_contact], kitchen window right contact binary sensor [binary_sensor.kitchen_window_right_contact], living room window left contact binary sensor [binary_sensor.living_room_window_left_contact], living room window right contact binary sensor [binary_sensor.living_room_window_right_contact], hallway window contact binary sensor [binary_sensor.hallway_window_contact] OR When dining room window right contact binary sensor [binary_sensor.dining_room_window_right_contact] is opened OR When dining room window right contact binary sensor [binary_sensor.dining_room_window_right_contact] is not_opened OR When cloakroom window contact binary sensor [binary_sensor.cloakroom_window_contact] is opened OR When cloakroom window contact binary sensor [binary_sensor.cloakroom_window_contact] is not_opened OR When en suite window sensor contact binary sensor [binary_sensor.en_suite_window_sensor_contact] is opened OR When en suite window sensor contact binary sensor [binary_sensor.en_suite_window_sensor_contact] is not_opened OR When office window sensor contact binary sensor [binary_sensor.office_window_sensor_contact] is opened OR When office window sensor contact binary sensor [binary_sensor.office_window_sensor_contact] is not_opened OR When any of the following entities changes to on: main bedroom window left contact binary sensor [binary_sensor.main_bedroom_window_left_contact], main bedroom window right contact binary sensor [binary_sensor.main_bedroom_window_right_contact] OR When any of the following entities changes to off: main bedroom window left contact binary sensor [binary_sensor.main_bedroom_window_left_contact], main bedroom window right contact binary sensor [binary_sensor.main_bedroom_window_right_contact] OR When any of the following entities changes to on: guest bedroom window left contact binary sensor [binary_sensor.guest_bedroom_window_left_contact], guest bedroom window right contact binary sensor [binary_sensor.guest_bedroom_window_right_contact] OR When any of the following entities changes to off: guest bedroom window left contact binary sensor [binary_sensor.guest_bedroom_window_left_contact], guest bedroom window right contact binary sensor [binary_sensor.guest_bedroom_window_right_contact] OR When any of the following entities changes to on: sean's bedroom window left contact binary sensor [binary_sensor.sean_s_bedroom_window_left_contact], sean's bedroom window right contact binary sensor [binary_sensor.sean_s_bedroom_window_right_contact], bathroom window contact binary sensor [binary_sensor.bathroom_window_contact], jamie's bedroom window left contact binary sensor [binary_sensor.jamie_s_bedroom_window_left_contact], jamie's bedroom window right contact binary sensor [binary_sensor.jamie_s_bedroom_window_right_contact] OR When any of the following entities changes to off: sean's bedroom window left contact binary sensor [binary_sensor.sean_s_bedroom_window_left_contact], sean's bedroom window right contact binary sensor [binary_sensor.sean_s_bedroom_window_right_contact], bathroom window contact binary sensor [binary_sensor.bathroom_window_contact], jamie's bedroom window left contact binary sensor [binary_sensor.jamie_s_bedroom_window_left_contact], jamie's bedroom window right contact binary sensor [binary_sensor.jamie_s_bedroom_window_right_contact] OR When any of the following entities changes to on: kids bathroom window left contact binary sensor [binary_sensor.kids_bathroom_window_left_contact], kids bathroom window right contact binary sensor [binary_sensor.kids_bathroom_window_right_contact] OR When any of the following entities changes to off: kids bathroom window left contact binary sensor [binary_sensor.kids_bathroom_window_left_contact], kids bathroom window right contact binary sensor [binary_sensor.kids_bathroom_window_right_contact]. CONDITIONS: None. ACTIONS: Choose based on trigger and conditions: IF trigger is Dave Away AND person gem forrester [person.gem_forrester] is not_home AND (desired heating mode input select [input_select.desired_heating_mode] is On OR desired heating mode input select [input_select.desired_heating_mode] is Auto) THEN execute heating turn off all radiators script [script.heating_turn_off_all_radiators]. IF trigger is Gem Away AND person david forrester [person.david_forrester] is not_home AND (desired heating mode input select [input_select.desired_heating_mode] is On OR desired heating mode input select [input_select.desired_heating_mode] is Auto) THEN execute heating turn off all radiators script [script.heating_turn_off_all_radiators]. IF trigger is Dave Home OR Gem Home AND desired heating mode input select [input_select.desired_heating_mode] is Auto THEN IF downstairs climate [climate.downstairs] is off AND upstairs climate [climate.upstairs] is off THEN execute heating resume schedule all radiators script [script.heating_resume_schedule_all_radiators]. IF trigger is Downstairs Door or Window Open AND (downstairs climate [climate.downstairs] hvac_mode is auto OR downstairs climate [climate.downstairs] hvac_mode is heat) THEN set downstairs climate [climate.downstairs] hvac_mode to off. IF trigger is Downstairs Door or Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is Auto THEN set downstairs climate [climate.downstairs] hvac_mode to auto. IF trigger is Cloakroom Window Open AND (cloakroom climate [climate.cloakroom] hvac_mode is auto OR cloakroom climate [climate.cloakroom] hvac_mode is heat) THEN set cloakroom climate [climate.cloakroom] hvac_mode to off. IF trigger is Cloakroom Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is Auto THEN set cloakroom climate [climate.cloakroom] hvac_mode to auto. IF trigger is En-Suite Window Open AND (en suite bathroom climate [climate.en_suite_bathroom] hvac_mode is auto OR en suite bathroom climate [climate.en_suite_bathroom] hvac_mode is heat) THEN set en suite bathroom climate [climate.en_suite_bathroom] hvac_mode to off. IF trigger is En-Suite Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is Auto THEN set en suite bathroom climate [climate.en_suite_bathroom] hvac_mode to auto. IF trigger is Office Window Open AND (office climate [climate.office] hvac_mode is auto OR office climate [climate.office] hvac_mode is heat) THEN set office climate [climate.office] hvac_mode to off. IF trigger is Office Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is Auto THEN set office climate [climate.office] hvac_mode to auto. IF trigger is Bedroom Window Open AND (master bedroom climate [climate.master_bedroom] hvac_mode is heat OR master bedroom climate [climate.master_bedroom] hvac_mode is auto) THEN set master bedroom climate [climate.master_bedroom] hvac_mode to off. IF trigger is Bedroom Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is Auto THEN set master bedroom climate [climate.master_bedroom] hvac_mode to auto. IF trigger is Guest Bedroom Window Open AND (guest bedroom climate [climate.guest_bedroom] hvac_mode is heat OR guest bedroom climate [climate.guest_bedroom] hvac_mode is auto) THEN set guest bedroom climate [climate.guest_bedroom] hvac_mode to off. IF trigger is Guest Bedroom Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is Auto THEN set guest bedroom climate [climate.guest_bedroom] hvac_mode to auto. IF trigger is Upstairs Windows Open AND (upstairs climate [climate.upstairs] hvac_mode is heat OR upstairs climate [climate.upstairs] hvac_mode is auto) THEN set upstairs climate [climate.upstairs] hvac_mode to off. IF trigger is Upstairs Windows Closed AND desired heating mode input select [input_select.desired_heating_mode] is Auto THEN set upstairs climate [climate.upstairs] hvac_mode to auto. IF trigger is Kids Bathroom Window Open AND (kids bathroom climate [climate.kids_bathroom] hvac_mode is heat OR kids bathroom climate [climate.kids_bathroom] hvac_mode is auto) THEN set kids bathroom climate [climate.kids_bathroom] hvac_mode to off. IF trigger is Kids Bathroom Window Closed AND desired heating mode input select [input_select.desired_heating_mode] is Auto THEN set kids bathroom climate [climate.kids_bathroom] hvac_mode to auto.",
"natural_language": {
"trigger": "The automation is triggered by a variety of events related to occupancy and window/door states. It triggers when either Dave or Gem's home status changes (from home to away or away to home) and remains stable for two minutes. It also triggers when any of the main downstairs doors or windows (front door, back door, side door, kitchen windows, living room windows, hallway window) open and stay open for 30 seconds, or when they close. Additional triggers are based on specific windows opening or closing in other rooms: the dining room, cloakroom, en-suite, office, main bedroom, guest bedroom, a group of upstairs windows (Sean's bedroom, Jamie's bedroom, and the main bathroom), and the kids' bathroom windows.",
"conditions": "There are no global conditions for the entire automation. Instead, each possible action is gated by a set of conditions within a 'choose' block, which are evaluated only when the corresponding trigger occurs.",
"action": "The action taken depends entirely on which trigger fired and the state of other entities at that time. If Dave leaves and Gem is also not home while the heating mode is set to 'On' or 'Auto', all radiators are turned off. The same happens if Gem leaves and Dave is not home under the same heating mode conditions. If either Dave or Gem returns home and the heating mode is 'Auto', and both the downstairs and upstairs climate controls are off, the heating schedule is resumed for all radiators. For all window/door triggers, if the corresponding room's climate control is in 'heat' or 'auto' mode when a window opens, that specific climate entity is turned off. If a window closes and the global heating mode is 'Auto', the corresponding climate entity is set back to 'auto' mode."
},
"human_like": "This automation manages home heating by turning it off when windows are opened or when everyone is away, and turning it back on when windows are closed or someone returns home, depending on the selected heating mode.",
"complexity": "high"
}
},
{
"id": "Heating Master Control",
"result": {
"structured": "TRIGGER: When gem home binary sensor [binary_sensor.gem_home] changes from on to off AND remains off for 1 hour OR When gem home binary sensor [binary_sensor.gem_home] changes from off to on AND remains on for 5 minutes OR When family home binary sensor [binary_sensor.family_home] changes from on to off OR When family home binary sensor [binary_sensor.family_home] changes from off to on OR When winter mode input boolean [input_boolean.winter_mode] changes from on to off OR When winter mode input boolean [input_boolean.winter_mode] changes from off to on OR When downstairs climate [climate.downstairs] attribute temperature changes (trigger disabled). CONDITIONS: None. ACTIONS: Choose one sequence based on trigger and conditions: 1. IF trigger is Gem Out AND (day of week sensor [sensor.day_of_week] is Thursday OR day of week sensor [sensor.day_of_week] is Wednesday) THEN create scene office heating before [scene.office_heating_before] snapshotting heating comfort temperature office input number [input_number.heating_comfort_temperature_office] and office heating on input boolean [input_boolean.office_heating_on] AND set heating comfort temperature office input number [input_number.heating_comfort_temperature_office] to 5. 2. IF trigger is Gem In AND (day of week sensor [sensor.day_of_week] is Thursday OR day of week sensor [sensor.day_of_week] is Wednesday) THEN activate scene office heating before [scene.office_heating_before]. 3. IF trigger is Family Out AND winter mode input boolean [input_boolean.winter_mode] is on THEN create scene house heating before [scene.house_heating_before] snapshotting multiple heating entities AND set heating comfort temperature boys rooms input number [input_number.heating_comfort_temperature_boys_rooms], heating comfort temperature cloakroom input number [input_number.heating_comfort_temperature_cloakroom], heating comfort temperature en suite input number [input_number.heating_comfort_temperature_en_suite], heating comfort temperature master bedroom input number [input_number.heating_comfort_temperature_master_bedroom], heating comfort temperature downstairs input number [input_number.heating_comfort_temperature_downstairs], heating comfort temperature upstairs input number [input_number.heating_comfort_temperature_upstairs], and heating comfort temperature office input number [input_number.heating_comfort_temperature_office] to 5. 4. IF trigger is Family Back AND winter mode input boolean [input_boolean.winter_mode] is on THEN activate scene house heating before [scene.house_heating_before], wait 1 second, turn off winter mode input boolean [input_boolean.winter_mode], wait 1 second, turn on winter mode input boolean [input_boolean.winter_mode]. 5. IF trigger is On THEN turn on downstairs heating on input boolean [input_boolean.downstairs_heating_on], upstairs heating on input boolean [input_boolean.upstairs_heating_on], cloakroom heating on input boolean [input_boolean.cloakroom_heating_on], master bedroom heating on input boolean [input_boolean.master_bedroom_heating_on], en suite heating on input boolean [input_boolean.en_suite_heating_on], office heating on input boolean [input_boolean.office_heating_on], boys rooms heating on input boolean [input_boolean.boys_rooms_heating_on], master bedroom heating on input boolean [input_boolean.master_bedroom_heating_on]. 6. IF trigger is Off THEN turn off downstairs heating on input boolean [input_boolean.downstairs_heating_on], upstairs heating on input boolean [input_boolean.upstairs_heating_on], cloakroom heating on input boolean [input_boolean.cloakroom_heating_on], master bedroom heating on input boolean [input_boolean.master_bedroom_heating_on], en suite heating on input boolean [input_boolean.en_suite_heating_on], office heating on input boolean [input_boolean.office_heating_on], boys rooms heating on input boolean [input_boolean.boys_rooms_heating_on], master bedroom heating on input boolean [input_boolean.master_bedroom_heating_on]. 7. IF trigger is Downstairs Target Temp AND trigger context id is not none AND trigger context parent_id is not none AND trigger context user_id is none THEN run script text notify dave [script.text_notify_dave] with message 'target temp changed by automation' and title 'DOWNSTAIRS HEATING'. 8. IF trigger is Downstairs Target Temp AND trigger context id is not none AND trigger context parent_id is none AND trigger context user_id is not none THEN run script text notify dave [script.text_notify_dave] with message 'target temp changed by dashboard' and title 'DOWNSTAIRS HEATING'.",
"natural_language": {
"trigger": "The automation is triggered by several events: when Gem leaves home (the gem home binary sensor [binary_sensor.gem_home] changes from 'on' to 'off' and stays off for an hour), when Gem returns home (the sensor changes from 'off' to 'on' and stays on for five minutes), when the family leaves home (the family home binary sensor [binary_sensor.family_home] changes from 'on' to 'off'), when the family returns home (the sensor changes from 'off' to 'on'), when winter mode is turned off (the winter mode input boolean [input_boolean.winter_mode] changes from 'on' to 'off'), when winter mode is turned on (the input boolean changes from 'off' to 'on'), or when the target temperature of the downstairs climate [climate.downstairs] changes (though this specific trigger is disabled).",
"conditions": "There are no global conditions applied to all triggers. Instead, each possible action sequence has its own set of conditions that must be met for it to run.",
"action": "Depending on which trigger fired and any additional conditions, the automation performs one of several actions. If Gem leaves on a Wednesday or Thursday, it saves the current office heating settings and then lowers the office comfort temperature to a minimum of 5. When Gem returns on those same days, it restores the saved office heating settings. If the whole family leaves and winter mode is on, it saves the heating settings for the entire house and lowers comfort temperatures in multiple zones to 5. When the family returns and winter mode is on, it restores the house heating settings, briefly toggles winter mode off and on. Turning winter mode on switches on heating in all zones, while turning it off switches heating off in all zones. Finally, if the downstairs target temperature changes, it sends a notification to Dave indicating whether the change was made by an automation or via the dashboard, based on the context of the change."
},
"human_like": "This automation manages home heating based on occupancy and winter mode, saving energy by lowering temperatures when people are away and restoring them upon return, while also providing notifications for temperature changes.",
"complexity": "high"
}
},
{
"id": "Home Announcements",
"result": {
"structured": "TRIGGER: At the time set in input_datetime.school_night OR At the time set in input_datetime.non_school_night OR At the time set in input_datetime.school_pick_up_time_mon_to_thurs OR At the time set in input_datetime.school_pick_up_time_friday OR At the time set in input_datetime.get_ready_for_school_at OR When office hours [binary_sensor.office_hours] changes from off to on OR When office hours [binary_sensor.office_hours] changes from on to off OR When last alexa called [sensor.last_alexa_called] changes state OR When kitchen presence sensor presence sensor 1 [binary_sensor.kitchen_presence_sensor_presence_sensor_1] changes from off to on OR At 09:15:00 OR When gem's samsung galaxy home [binary_sensor.gems_samsung_galaxy_home] changes from on to off OR When gem's samsung galaxy home [binary_sensor.gems_samsung_galaxy_home] changes from off to on. CONDITIONS: audible notifications [input_boolean.audible_notifications] is on AND holiday mode [input_boolean.holiday_mode] is off AND quiet time [binary_sensor.quiet_time] is off. ACTIONS: Choose based on trigger ID: IF trigger is School Night Bedtime Boys AND Schoolnight [binary_sensor.schoolnight] is on AND calendar school holidays [calendar.school_holidays] is off THEN set announcements volume [script.set_announcements_volume] for room audio [sensor.room_audio], speak a random bedtime message via speech engine for tts [script.speech_engine_for_tts] with voice Brian, run script 1693070811673 [script.1693070811673], and turn on kids bedtime announcement played [input_boolean.kids_bedtime_announcement_played]. IF trigger is Non School Bedtime AND (Schoolnight [binary_sensor.schoolnight] is off OR calendar school holidays [calendar.school_holidays] is on) THEN set announcements volume [script.set_announcements_volume] for room audio [sensor.room_audio], speak a random non-school bedtime message via speech engine for tts [script.speech_engine_for_tts] with voice Brian, run script 1693070811673 [script.1693070811673], and turn on kids bedtime announcement played [input_boolean.kids_bedtime_announcement_played]. IF trigger is Get ready for school AND ((schoolday [binary_sensor.schoolday] is on OR fridayschool [binary_sensor.fridayschool] is on) AND calendar school holidays [calendar.school_holidays] is off) THEN set announcements volume [script.set_announcements_volume] for Living Room, wait 2 seconds, speak a random get dressed message via speech engine for tts [script.speech_engine_for_tts] to Living Room with voice Brian, wait 10 minutes, speak a random brush teeth message via speech engine for tts [script.speech_engine_for_tts] to Living Room with voice Brian, wait 10 seconds, turn off living room tv switch [switch.living_room_tv], turn off media player sky q main [media_player.sky_q_main], IF dreamview g1 pro light [light.dreamview_g1_pro] is on THEN turn it off, wait 10 minutes, speak a random late for school message via speech engine for tts [script.speech_engine_for_tts] for room audio [sensor.room_audio] with voice Brian, run script 1693070811673 [script.1693070811673], and turn on school morning announcement played [input_boolean.school_morning_announcement_played]. IF trigger is School pick up AND schoolday [binary_sensor.schoolday] is on AND calendar school holidays [calendar.school_holidays] is off THEN set announcements volume [script.set_announcements_volume] for room audio [sensor.room_audio], speak a random school pickup message via speech engine for tts [script.speech_engine_for_tts] for room audio [sensor.room_audio] with voice Brian, run script 1693070811673 [script.1693070811673], and turn on school pick up announcement played [input_boolean.school_pick_up_announcement_played]. IF trigger is Friday School Pick Up Time AND fridayschool [binary_sensor.fridayschool] is on AND calendar school holidays [calendar.school_holidays] is off THEN set announcements volume [script.set_announcements_volume] for room audio [sensor.room_audio], speak a random Friday school pickup message via speech engine for tts [script.speech_engine_for_tts] for room audio [sensor.room_audio] with voice Brian, run script 1693070811673 [script.1693070811673], and turn on school pick up announcement played [input_boolean.school_pick_up_announcement_played]. IF trigger is Office in use AND workday sensor [binary_sensor.workday_sensor] is on AND gem holidays [calendar.gem_holidays] is off AND person gem forrester [person.gem_forrester] is home THEN turn off office echo pop socket 1 [switch.office_echo_pop_socket_1]. IF trigger is Office not in use AND workday sensor [binary_sensor.workday_sensor] is on AND gem holidays [calendar.gem_holidays] is off AND office echo pop socket 1 [switch.office_echo_pop_socket_1] is off THEN turn on office echo pop socket 1 [switch.office_echo_pop_socket_1]. IF trigger is Kitchen Motion AND time is after 09:15:00 AND before 10:30:00 AND morning briefing played [input_boolean.morning_briefing_played] is off THEN run alexa morning briefing [script.alexa_morning_briefing] and turn on morning briefing played [input_boolean.morning_briefing_played]. IF trigger is Last Alexa Called THEN set last time alexa called [input_datetime.last_time_alexa_called] to the last_changed timestamp of last alexa called [sensor.last_alexa_called]. IF trigger is Time for morning briefing AND morning briefing played [input_boolean.morning_briefing_played] is off AND room occupied kitchen [input_boolean.room_occupied_kitchen] is on THEN run alexa morning briefing [script.alexa_morning_briefing] and turn on morning briefing played [input_boolean.morning_briefing_played]. IF trigger is Gem out of office AND workday sensor [binary_sensor.workday_sensor] is on AND office echo pop socket 1 [switch.office_echo_pop_socket_1] is off THEN turn on device c87e83074cbfccb86ac70e0749a1f23f [c87e83074cbfccb86ac70e0749a1f23f] and turn on gem gone out to office [input_boolean.gem_gone_out_to_office]. IF trigger is Gem in office AND workday sensor [binary_sensor.workday_sensor] is on AND office echo pop socket 1 [switch.office_echo_pop_socket_1] is on THEN turn off gem gone out to office [input_boolean.gem_gone_out_to_office] and turn off device c87e83074cbfccb86ac70e0749a1f23f [c87e83074cbfccb86ac70e0749a1f23f].",
"natural_language": {
"trigger": "The automation can be triggered by various events: scheduled times for school night bedtime, non-school night bedtime, school pick-up times (Monday to Thursday and Friday), get ready for school time, changes in office hours usage, changes in the last Alexa called sensor, motion detected in the kitchen, a fixed time of 09:15, and changes in Gem's Samsung Galaxy Home presence sensor.",
"conditions": "For any trigger to proceed, the system must have audible notifications enabled, holiday mode disabled, and quiet time off. Depending on the specific trigger, additional conditions apply. For bedtime announcements, it checks if it's a school night or holiday. For school morning routines, it verifies it's a school day and not a holiday. For office-related triggers, it checks workday status, Gem's holiday calendar, and Gem's presence. For morning briefing triggers, it checks the time window and whether the briefing has already been played.",
"action": "The actions vary based on the trigger. They include setting announcement volumes, playing randomised spoken messages for bedtime, school preparation, and pick-up reminders, turning off entertainment devices, controlling lights, running scripts, and updating status flags. Office-related triggers control a socket switch and track Gem's office departure. Motion and time triggers can initiate a morning briefing. The Last Alexa Called trigger logs the timestamp."
},
"human_like": "This automation manages daily family announcements and routines, including bedtime reminders for the kids, school morning preparations, pick-up alerts, office device control, and morning briefings, all while respecting quiet times and holidays.",
"complexity": "high"
}
},
{
"id": "Home Battery Overnight Charge Type",
"result": {
"structured": "TRIGGER: At 21:05:00 (Set) OR At 07:00:00 (Reset). CONDITIONS: None. ACTIONS: If trigger is Set THEN send notification via text notify dave script [script.text_notify_dave] and jarvis speech engine script [script.jarvis_speech_engine] with the value of solar battery charge overnight logic sensor [sensor.solar_battery_charge_overnight_logic]. THEN IF solar battery charge overnight logic sensor [sensor.solar_battery_charge_overnight_logic] is 'a full charge' THEN set home battery charge length input number [input_number.home_battery_charge_length] to 3. ELSE IF solar battery charge overnight logic sensor [sensor.solar_battery_charge_overnight_logic] is 'a one thirty charge' THEN set home battery charge length input number [input_number.home_battery_charge_length] to 1.5. ELSE IF solar battery charge overnight logic sensor [sensor.solar_battery_charge_overnight_logic] is 'a one hour charge' THEN set home battery charge length input number [input_number.home_battery_charge_length] to 1. ELSE turn off grid charge home battery input boolean [input_boolean.grid_charge_home_battery]. If trigger is Reset THEN set home battery charge length input number [input_number.home_battery_charge_length] to 3.",
"natural_language": {
"trigger": "The automation runs at 9:05 PM (labelled 'Set') and at 7:00 AM (labelled 'Reset').",
"conditions": "There are no conditions.",
"action": "If the trigger is the 9:05 PM event, it first sends a text notification via the text notify dave script [script.text_notify_dave] and an audio notification via the jarvis speech engine script [script.jarvis_speech_engine], announcing the overnight charge type from the solar battery charge overnight logic sensor [sensor.solar_battery_charge_overnight_logic]. Then, based on the sensor's state, it sets the home battery charge length input number [input_number.home_battery_charge_length] to a specific value: 3 hours for a full charge, 1.5 hours for a one thirty charge, or 1 hour for a one hour charge. If the sensor state does not match any of these, it turns off the grid charge home battery input boolean [input_boolean.grid_charge_home_battery]. If the trigger is the 7:00 AM event, it resets the home battery charge length input number [input_number.home_battery_charge_length] to 3 hours."
},
"human_like": "Sets the home battery's overnight charging schedule and notifies the user in the evening, then resets the charge duration in the morning.",
"complexity": "medium"
}
},
{
"id": "Home Battery Watch",
"result": {
"structured": "TRIGGER: When solaredge b1 status sensor [sensor.solaredge_b1_status] remains in state B_STATUS_IDLE for 2 minutes OR When solaredge b1 status sensor [sensor.solaredge_b1_status] remains in state unavailable for 2 minutes OR When solaredge b1 status sensor [sensor.solaredge_b1_status] remains in state unknown for 2 minutes. CONDITIONS: None. ACTIONS: Choose based on trigger: IF (trigger is Home Battery Idle) AND (sun is below horizon) THEN execute text notify dave script [script.text_notify_dave] with message 'The Home Battery is idle' and title 'HOME BATTERY'. ELSE IF (trigger is Home Battery Unavailable OR trigger is Home Battery Unknown) THEN execute text notify dave script [script.text_notify_dave] with message 'There is a problem with the Home Battery' and title 'HOME BATTERY', THEN turn on announcement playing input boolean [input_boolean.announcement_playing], THEN execute jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with parameters where='dave', type='announcement', message='There is a problem with the home battery. Can you please investigate immediately.', THEN wait for 5 seconds, THEN turn off announcement playing input boolean [input_boolean.announcement_playing].",
"natural_language": {
"trigger": "When the solaredge b1 status sensor [sensor.solaredge_b1_status] reports the status 'B_STATUS_IDLE', 'unavailable', or 'unknown' for a continuous period of two minutes.",
"conditions": "There are no conditions that must be met before the actions are executed.",
"action": "If the battery is reported as idle and it is after sunset, a text notification is sent to Dave. If the battery is reported as unavailable or unknown, a text notification is sent to Dave, an announcement flag is turned on, a voice announcement is played asking Dave to investigate the problem, a short delay of five seconds is applied, and then the announcement flag is turned off."
},
"human_like": "Monitors the home battery status and sends notifications to Dave if it becomes idle after sunset or if it becomes unavailable or unknown, including a voice announcement for serious issues.",
"complexity": "medium"
}
},
{
"id": "Hot Water, solar and gas",
"result": {
"structured": "TRIGGER: When electricity bill today sensor [sensor.electricity_bill_today] is below 0 OR When power grid export sensor [sensor.power_grid_export] is above 2800 for 20 seconds OR When power battery load sensor [sensor.power_battery_load] is above 500 for 20 seconds OR When hot water energy consumption daily sensor [sensor.hot_water_energy_consumption_daily] is above 6 OR At 16:00:00 OR When timer solar hot water heating timer [timer.solar_hot_water_heating] finishes OR At 17:30:00 OR At 21:00:00 OR When battery state of charge sensor [sensor.battery_state_of_charge] is above 99. CONDITIONS: None (conditions are evaluated within the choose action). ACTIONS: Choose from multiple sequences based on trigger and conditions: 1. IF trigger is Activate AND sun is between sunrise and sunset THEN turn on allow valkyrie on input boolean [input_boolean.allow_valkyrie_on] AND IF power grid export sensor [sensor.power_grid_export] is above 2500 THEN turn on valkyrie solar hot water light [light.valkyrie_solar_hot_water] AND start timer solar hot water heating timer [timer.solar_hot_water_heating]. 2. IF trigger is Switch On AND sun is between sunrise and sunset AND allow valkyrie on input boolean [input_boolean.allow_valkyrie_on] is on AND valkyrie solar hot water light [light.valkyrie_solar_hot_water] is off THEN turn on valkyrie solar hot water light [light.valkyrie_solar_hot_water] AND start timer solar hot water heating timer [timer.solar_hot_water_heating]. 3. IF trigger is Switch Off AND valkyrie solar hot water light [light.valkyrie_solar_hot_water] is on THEN turn off valkyrie solar hot water light [light.valkyrie_solar_hot_water] AND pause timer solar hot water heating timer [timer.solar_hot_water_heating]. 4. IF trigger is Deactivate OR Timer Done OR 6kWh Energy Used THEN turn off allow valkyrie on input boolean [input_boolean.allow_valkyrie_on] AND IF valkyrie solar hot water light [light.valkyrie_solar_hot_water] is not unavailable AND is on THEN turn it off AND cancel timer solar hot water heating timer [timer.solar_hot_water_heating] ELSE wait up to 30 minutes for valkyrie solar hot water light [light.valkyrie_solar_hot_water] to be on, then turn it off and cancel the timer. 5. IF trigger is Time On AND hot water energy consumption daily sensor [sensor.hot_water_energy_consumption_daily] is below 2.5 THEN set water heater hot water [water_heater.hot_water] timer for 30 minutes. 6. IF trigger is Last Check AND hot water energy consumption daily sensor [sensor.hot_water_energy_consumption_daily] is below 2.5 THEN set water heater hot water [water_heater.hot_water] timer for 30 minutes. 7. IF trigger is Battery Charged AND rolec energy consumption daily sensor [sensor.rolec_energy_consumption_daily] is above 5 AND sun is between sunrise and sunset THEN turn on allow valkyrie on input boolean [input_boolean.allow_valkyrie_on] AND IF power grid export sensor [sensor.power_grid_export] is above 2500 THEN turn on valkyrie solar hot water light [light.valkyrie_solar_hot_water] AND start timer solar hot water heating timer [timer.solar_hot_water_heating].",
"natural_language": {
"trigger": "The automation can be triggered by several events: when the electricity bill for the day becomes negative, when the power exported to the grid exceeds 2800 watts for 20 seconds, when the battery load exceeds 500 watts for 20 seconds, when the daily hot water energy consumption exceeds 6 kWh, at 4:00 PM, when the solar hot water heating timer finishes, at 5:30 PM, at 9:00 PM, or when the battery state of charge exceeds 99%.",
"conditions": "There are no global conditions. Instead, each possible action sequence has its own set of conditions that are checked when the corresponding trigger fires. These conditions involve the time of day (sunrise to sunset), the state of the allow valkyrie on switch, the state of the solar hot water heater, the level of grid export, the daily hot water energy consumption, and the daily electric vehicle charging consumption.",
"action": "Depending on which trigger occurs and the associated conditions, the automation will perform one of several actions. It can activate the solar hot water heater (Valkyrie) when there is excess solar power, deactivate it when battery load is high or at scheduled times, or turn on the gas water heater in the evening if hot water usage has been low. It also has a special mode to activate the solar heater if the battery is fully charged and the electric vehicle was charged overnight."
},
"human_like": "This automation manages hot water heating by prioritizing solar power when it's abundant, using a battery as a buffer, and scheduling a gas backup in the evening if needed.",
"complexity": "high"
}
},
{
"id": "Intermittent Grid Charge Battery.",
"result": {
"structured": "TRIGGER: When time is 21:00:00 OR When octopus energy target intermittent best rates 3 hours overnight binary sensor [binary_sensor.octopus_energy_target_intermittent_best_rates_3_hours_overnight] changes from off to on OR When octopus energy target intermittent best rates 3 hours overnight binary sensor [binary_sensor.octopus_energy_target_intermittent_best_rates_3_hours_overnight] changes from on to off OR When timer.finished or timer.cancelled event occurs for timer home battery 3 hour charge period timer [timer.home_battery_3_hour_charge_period] OR When morning binary sensor [binary_sensor.morning] changes from off to on OR When solaredge i1 advanced power control switch [switch.solaredge_i1_advanced_power_control] changes from unavailable to on OR When octopus energy target best half hour for pre peak topuo binary sensor [binary_sensor.octopus_energy_target_best_half_hour_for_pre_peak_topuo] changes from off to on OR When octopus energy target best half hour for pre peak topuo binary sensor [binary_sensor.octopus_energy_target_best_half_hour_for_pre peak topuo] changes from on to off. CONDITIONS: None. ACTIONS: Choose based on trigger: 1) If trigger is Activate Grid Charge, turn on grid charge home battery input boolean [input_boolean.grid_charge_home_battery]. 2) If trigger is Start Grid Charge AND grid charge home battery input boolean [input_boolean.grid_charge_home_battery] is on, turn on home battery grid charging input boolean [input_boolean.home_battery_grid_charging] AND run grid charge battery script [script.grid_charge_battery]. 3) If trigger is Stop Grid Charge, turn off grid charge battery script [script.grid_charge_battery], set solaredge i1 storage command mode select [select.solaredge_i1_storage_command_mode] to Maximize Self Consumption, turn off home battery grid charging input boolean [input_boolean.home_battery_grid_charging], AND pause timer home battery 3 hour charge period timer [timer.home_battery_3_hour_charge_period]. 4) If trigger is End Grid Charge, turn off grid charge battery script [script.grid_charge_battery], turn off home battery grid charging input boolean [input_boolean.home_battery_grid_charging], turn off grid charge home battery input boolean [input_boolean.grid_charge_home_battery], wait 1 minute, AND set solaredge i1 storage command mode select [select.solaredge_i1_storage_command_mode] to Maximize Self Consumption. 5) If trigger is Reset Timer, wait 33 minutes AND cancel timer home battery 3 hour charge period timer [timer.home_battery_3_hour_charge_period]. 6) If trigger is Inverter Reset AND grid charge home battery input boolean [input_boolean.grid_charge_home_battery] is on AND octopus energy target intermittent best rates 3 hours overnight binary sensor [binary_sensor.octopus_energy_target_intermittent_best_rates_3_hours_overnight] is on, run grid charge battery script [script.grid_charge_battery]. 7) If trigger is Topup AND (solar battery daytime topup needed sensor [sensor.solar_battery_daytime_topup_needed] is true OR battery state of charge sensor [sensor.battery_state_of_charge] is below 50), run battery pre peak top up script [script.battery_pre_peak_top_up]. 8) If trigger is Topdown AND home battery grid charging input boolean [input_boolean.home_battery_grid_charging] is on, run battery pre peak top down script [script.battery_pre_peak_top_down].",
"natural_language": {
"trigger": "The automation can be triggered by any of the following events: the clock reaching 9:00 PM; the octopus energy target intermittent best rates 3 hours overnight binary sensor [binary_sensor.octopus_energy_target_intermittent_best_rates_3_hours_overnight] turning on or off; the timer home battery 3 hour charge period timer [timer.home_battery_3_hour_charge_period] finishing or being cancelled; the morning binary sensor [binary_sensor.morning] turning on; the solaredge i1 advanced power control switch [switch.solaredge_i1_advanced_power_control] becoming available (changing from unavailable to on); or the octopus energy target best half hour for pre peak topuo binary sensor [binary_sensor.octopus_energy_target_best_half_hour_for_pre_peak_topuo] turning on or off.",
"conditions": "There are no global conditions for this automation. Specific conditions are checked within the action's choose block for each trigger path.",
"action": "Depending on which trigger fired, the automation performs different actions. At 9:00 PM, it enables the grid charging mode. If the overnight rates sensor turns on and grid charging is enabled, it starts the battery charging script. If the rates sensor turns off, it stops charging, changes the inverter mode, and pauses a timer. If the charging timer ends or is cancelled, it stops everything and resets the mode after a delay. When morning arrives, it waits and cancels the charging timer. If the inverter resets during a charging period, it restarts the charging script. If a pre-peak top-up window starts and the battery needs a top-up, it runs a top-up script. If that window ends while the battery is grid charging, it runs a top-down script."
},
"human_like": "This automation manages home battery charging based on electricity rates, time of day, and system status to optimize for cost and battery level.",
"complexity": "high"
}
},
{
"id": "Its Christmas",
"result": {
"structured": "TRIGGER: When Day of Year [sensor.day_of_year] is above 334 OR when Day of Year [sensor.day_of_year] is above 5. CONDITIONS: None. ACTIONS: If the trigger is 'Christmas On ' then turn off test govee lighting automation [automation.test_govee_lighting] AND turn on all govee lighting christmas automation [automation.all_govee_lighting_christmas]. If the trigger is 'Christmas Off' then turn off all govee lighting christmas automation [automation.all_govee_lighting_christmas] AND turn on test govee lighting automation [automation.test_govee_lighting].",
"natural_language": {
"trigger": "The automation triggers when the Day of Year [sensor.day_of_year] sensor reports a value greater than 334, or when it reports a value greater than 5.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "Depending on which trigger fired: If the 'Christmas On ' trigger fired, it will turn off the test govee lighting automation [automation.test_govee_lighting] and turn on the all govee lighting christmas automation [automation.all_govee_lighting_christmas]. If the 'Christmas Off' trigger fired, it will turn off the all govee lighting christmas automation [automation.all_govee_lighting_christmas] and turn on the test govee lighting automation [automation.test_govee_lighting]."
},
"human_like": "Switches Govee lights to a Christmas-themed lighting mode during the holiday season and back to a normal test mode afterwards.",
"complexity": "medium"
}
},
{
"id": "Jamie JARVIS VPE Restart if stuck responding.",
"result": {
"structured": "TRIGGER: When assist satellite jarvis jamie assist satellite [assist_satellite.jarvis_jamie_assist_satellite] remains in the 'responding' state for 1 minute. CONDITIONS: None. ACTIONS: Press home assistant voice 0963e5 restart button [button.home_assistant_voice_0963e5_restart]. Wait for assist satellite jarvis jamie assist satellite [assist_satellite.jarvis_jamie_assist_satellite] to change from 'unavailable' (within a 1 minute timeout). Then, in parallel: Run text notify dave script [script.text_notify_dave] with title 'JAMIE VPE' and message 'I have restarted'. AND Set the volume of jarvis jamie media player media player [media_player.jarvis_jamie_media_player] to the value of jarvis volume level low input number [input_number.jarvis_volume_level_low] if quiet time boys binary sensor [binary_sensor.quiet_time_boys] is 'on', otherwise set it to the value of jarvis volume level announcement input number [input_number.jarvis_volume_level_announcement].",
"natural_language": {
"trigger": "When the voice assistant satellite in Jamie's room, assist satellite jarvis jamie assist satellite [assist_satellite.jarvis_jamie_assist_satellite], has been stuck in a 'responding' state for one full minute.",
"conditions": "There are no conditions that must be checked before proceeding.",
"action": "The automation first presses the restart button for the voice assistant, home assistant voice 0963e5 restart button [button.home_assistant_voice_0963e5_restart]. It then waits for up to one minute for the satellite to become unavailable, indicating a restart has begun. Once that happens, or after the timeout, it performs two actions at the same time: it sends a notification to Dave via the text notify dave script [script.text_notify_dave] saying 'I have restarted', and it adjusts the volume of Jamie's media player, jarvis jamie media player media player [media_player.jarvis_jamie_media_player]. The volume is set to a low level if it's quiet time for the boys, as indicated by quiet time boys binary sensor [binary_sensor.quiet_time_boys], or to a standard announcement level otherwise."
},
"human_like": "Automatically restarts Jamie's voice assistant if it gets stuck responding, then notifies Dave and adjusts the speaker volume appropriately.",
"complexity": "medium"
}
},
{
"id": "JARVIS Daily Restart",
"result": {
"structured": "TRIGGER: When lunchtime binary sensor [binary_sensor.lunchtime] changes from off to on. CONDITIONS: None. ACTIONS: Press home assistant voice 09152e restart button [button.home_assistant_voice_09152e_restart], then wait for assist satellite jarvis kitchen assist satellite [assist_satellite.jarvis_kitchen_assist_satellite] to change from unavailable to idle, then press home assistant voice 09399c restart button [button.home_assistant_voice_09399c_restart], then wait for assist satellite jarvis downstairs assist satellite [assist_satellite.jarvis_downstairs_assist_satellite] to change from unavailable to idle, then press jarvis office restart button [button.jarvis_office_restart], then wait for assist satellite jarvis office assist satellite [assist_satellite.jarvis_office_assist_satellite] to change from unavailable to idle, then press home assistant voice 0963e5 restart button [button.home_assistant_voice_0963e5_restart], then wait for assist satellite jarvis jamie assist satellite [assist_satellite.jarvis_jamie_assist_satellite] to change from unavailable to idle, then press home assistant voice 095e21 restart button [button.home_assistant_voice_095e21_restart], then wait for assist satellite jarvis sean assist satellite [assist_satellite.jarvis_sean_assist_satellite] to change from unavailable to idle, then press home assistant voice 09387b restart button [button.home_assistant_voice_09387b_restart].",
"natural_language": {
"trigger": "When the lunchtime binary sensor [binary_sensor.lunchtime] turns on.",
"conditions": "There are no conditions.",
"action": "It will press the home assistant voice 09152e restart button [button.home_assistant_voice_09152e_restart] to restart the first device. Then, it will wait for the assist satellite jarvis kitchen assist satellite [assist_satellite.jarvis_kitchen_assist_satellite] to become available and idle. Once that happens, it will press the home assistant voice 09399c restart button [button.home_assistant_voice_09399c_restart] and wait for the assist satellite jarvis downstairs assist satellite [assist_satellite.jarvis_downstairs_assist_satellite] to become idle. Next, it will press the jarvis office restart button [button.jarvis_office_restart] and wait for the assist satellite jarvis office assist satellite [assist_satellite.jarvis_office_assist_satellite] to become idle. It then presses the home assistant voice 0963e5 restart button [button.home_assistant_voice_0963e5_restart] and waits for the assist satellite jarvis jamie assist satellite [assist_satellite.jarvis_jamie_assist_satellite] to become idle. After that, it presses the home assistant voice 095e21 restart button [button.home_assistant_voice_095e21_restart] and waits for the assist satellite jarvis sean assist satellite [assist_satellite.jarvis_sean_assist_satellite] to become idle. Finally, it presses the home assistant voice 09387b restart button [button.home_assistant_voice_09387b_restart]."
},
"human_like": "Restarts all the JARVIS voice assistant satellites in sequence when lunchtime begins, ensuring each device is ready before moving to the next.",
"complexity": "medium"
}
},
{
"id": "Kids Bathroom Lights with presence",
"result": {
"structured": "TRIGGER: When jack and jill presence occupancy binary sensor [binary_sensor.jack_and_jill_presence_occupancy] changes from off to on OR When jack and jill presence occupancy binary sensor [binary_sensor.jack_and_jill_presence_occupancy] changes from on to off and remains off for 2 minutes OR At 20:00:10 OR When Jamie Bathroom Switch Left [switch.jamie_bathroom_switch_left] OR Sean Bathroom Switch Right [switch.sean_bathroom_switch_right] changes from off to on OR When Jamie Bathroom Switch Left [switch.jamie_bathroom_switch_left] OR Sean Bathroom Switch Right [switch.sean_bathroom_switch_right] changes from on to off. CONDITIONS: holiday mode input boolean [input_boolean.holiday_mode] is off. ACTIONS: (IF trigger is Light On AND allow kids bathroom lights max input boolean [input_boolean.allow_kids_bathroom_lights_max] is off AND time is between 07:00:00 and 20:00:00 AND Jack and Jill Presence Illuminance [sensor.jack_and_jill_presence_illuminance] is below low light threshold input number [input_number.low_light_threshold] THEN turn on kids bathroom light light [light.kids_bathroom_light] with color_temp 200 and brightness 64) OR (IF trigger is Light On AND allow kids bathroom lights max input boolean [input_boolean.allow_kids_bathroom_lights_max] is off AND time is between 20:00:00 and 07:00:00 AND Jack and Jill Presence Illuminance [sensor.jack_and_jill_presence_illuminance] is below low light threshold input number [input_number.low_light_threshold] THEN turn on kids bathroom light light [light.kids_bathroom_light] with rgb_color [255, 248, 52] and brightness 26) OR (IF trigger is Light Off AND kids bathroom light light [light.kids_bathroom_light] is on AND allow kids bathroom lights max input boolean [input_boolean.allow_kids_bathroom_lights_max] is off THEN turn off kids bathroom light light [light.kids_bathroom_light]) OR (IF trigger is Dim on THEN turn on kids bathroom light light [light.kids_bathroom_light] with rgb_color [255, 248, 52] and brightness 26, wait 10 seconds, IF Kids Bathroom Occupied [binary_sensor.kids_bathroom_occupied] is off THEN turn off kids bathroom light light [light.kids_bathroom_light]) OR (IF trigger is Lights to Max THEN turn on allow kids bathroom lights max input boolean [input_boolean.allow_kids_bathroom_lights_max] AND turn on kids bathroom light light [light.kids_bathroom_light] with brightness 255 and color_temp 154) OR (IF trigger is Lights to Presence THEN turn off allow kids bathroom lights max input boolean [input_boolean.allow_kids_bathroom_lights_max] AND turn off kids bathroom light light [light.kids_bathroom_light]).",
"natural_language": {
"trigger": "The automation can be triggered in five ways: when the jack and jill presence occupancy binary sensor [binary_sensor.jack_and_jill_presence_occupancy] first detects presence (changes from off to on); when the same sensor reports no presence for two minutes (changes from on to off and stays off for 2 minutes); at a specific time of 20:00:10; when either the Jamie Bathroom Switch Left [switch.jamie_bathroom_switch_left] or the Sean Bathroom Switch Right [switch.sean_bathroom_switch_right] is turned on; or when either of those same switches is turned off.",
"conditions": "The automation only runs if the holiday mode input boolean [input_boolean.holiday_mode] is turned off.",
"action": "Depending on which trigger fired and other conditions, the automation performs one of several actions. If presence is detected during the day and the light level is low, it turns the kids bathroom light light [light.kids_bathroom_light] on to a dim, cool white. If presence is detected at night and the light level is low, it turns the light on to a dim, warm yellow. If presence has been absent for two minutes and the light is on, it turns the light off. At 20:00:10, it briefly turns the light on to a warm yellow, then checks if the bathroom is occupied after a short delay; if not, it turns the light off. If a physical switch is turned on, it enables a 'max lights' mode and sets the light to full brightness. If a physical switch is turned off, it disables the 'max lights' mode and turns the light off."
},
"human_like": "Automatically controls the kids' bathroom light based on presence, time of day, and manual switch overrides, ensuring it's only on when needed and adjusting brightness and color for comfort.",
"complexity": "high"
}
},
{
"id": "Kindle Tablet WiFi Check",
"result": {
"structured": "TRIGGER: When weather display battery level 2 sensor [sensor.weather_display_battery_level_2] changes state OR When kindle tablet battery level sensor [sensor.kindle_tablet_battery_level] changes state OR Every 30 minutes (time pattern). CONDITIONS: None. ACTIONS: Choose based on trigger: IF trigger is Batt Level Cx THEN set weather tablet battery last updated input datetime [input_datetime.weather_tablet_battery_last_updated] to current datetime. IF trigger is Kindle Batt Level Cx THEN set office tablet battery last update input datetime [input_datetime.office_tablet_battery_last_update] to current datetime. IF trigger is Weather Display Periodic AND (current time minus weather tablet battery last updated input datetime [input_datetime.weather_tablet_battery_last_updated] > 3600 seconds) THEN run text notify dave script [script.text_notify_dave] with alert message for Weather Tablet AND create persistent notification for Weather Tablet. IF trigger is Weather Display Periodic AND (current time minus office tablet battery last update input datetime [input_datetime.office_tablet_battery_last_update] > 3600 seconds) THEN run text notify dave script [script.text_notify_dave] with alert message for Office Tablet AND create persistent notification for Office Tablet.",
"natural_language": {
"trigger": "The automation triggers when the battery level of the weather display battery level 2 sensor [sensor.weather_display_battery_level_2] changes, when the battery level of the kindle tablet battery level sensor [sensor.kindle_tablet_battery_level] changes, or every 30 minutes on a schedule.",
"conditions": "There are no global conditions for this automation.",
"action": "Depending on which trigger activated the automation, different actions are taken. If the weather display battery level changes, it updates the timestamp for the weather tablet battery last updated input datetime [input_datetime.weather_tablet_battery_last_updated]. If the kindle tablet battery level changes, it updates the timestamp for the office tablet battery last update input datetime [input_datetime.office_tablet_battery_last_update]. If the scheduled 30-minute trigger fires, it checks if the timestamp for the weather tablet is older than one hour; if so, it sends a text alert via the text notify dave script [script.text_notify_dave] and creates a persistent notification. It also checks if the timestamp for the office tablet is older than one hour; if so, it sends a similar text alert and creates a persistent notification for that tablet."
},
"human_like": "Monitors tablet battery sensors to keep their last-updated timestamps current and sends alerts if a tablet's battery data hasn't been reported for over an hour.",
"complexity": "medium"
}
},
{
"id": "Kitchen Lights Needed",
"result": {
"structured": "TRIGGER: When kitchen light switch right switch [switch.kitchen_light_switch_right] turns on from off. CONDITIONS: Kitchen Occupied [binary_sensor.kitchen_occupied] is on. ACTIONS: Disable kitchen lights with presence 2 automation [automation.kitchen_lights_with_presence_2]. Turn on kitchen lights 2 light [light.kitchen_lights_2] to 100% brightness and 6500K color temperature. Wait for either Kitchen Occupied [binary_sensor.kitchen_occupied] to turn off OR kitchen light switch right switch [switch.kitchen_light_switch_right] to turn off (with no delay). If either occurs within 1 hour, then re-enable kitchen lights with presence 2 automation [automation.kitchen_lights_with_presence_2] and turn off kitchen lights 2 light [light.kitchen_lights_2]. If the timeout of 1 hour is reached without either trigger, the automation stops and does not execute the final actions.",
"natural_language": {
"trigger": "When the kitchen light switch right switch [switch.kitchen_light_switch_right] is manually turned on.",
"conditions": "The kitchen must be detected as occupied, meaning the Kitchen Occupied [binary_sensor.kitchen_occupied] sensor is on.",
"action": "First, it disables another automation called kitchen lights with presence 2 [automation.kitchen_lights_with_presence_2] to prevent conflicts. Then, it turns on the kitchen lights 2 [light.kitchen_lights_2] to full brightness with a cool white color. After that, it waits for up to one hour for either the kitchen to become unoccupied (Kitchen Occupied [binary_sensor.kitchen_occupied] turns off) or for the light switch to be turned off. If either of these events happens within the hour, it re-enables the kitchen lights with presence 2 automation and turns off the kitchen lights. If an hour passes with neither event, the automation simply stops waiting and does not turn the lights off or re-enable the other automation."
},
"human_like": "Overrides the kitchen lights to full brightness when someone manually turns on the light switch while the kitchen is occupied, and will turn them off again when the kitchen is empty or the switch is turned off.",
"complexity": "medium"
}
},
{
"id": "Kitchen Lights with Presence",
"result": {
"structured": "TRIGGER: When kitchen presence sensor presence sensor 1 binary sensor [binary_sensor.kitchen_presence_sensor_presence_sensor_1] changes from off to on (Lights On) OR When kitchen presence sensor presence sensor 1 binary sensor [binary_sensor.kitchen_presence_sensor_presence_sensor_1] changes from on to off and remains off for 30 seconds (Lights Off) OR When presence sensor fp2 4b3c presence sensor 3 binary sensor [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_3] changes from off to on (BDZ On) OR When presence sensor fp2 4b3c presence sensor 3 binary sensor [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_3] changes from on to off and remains off for 30 seconds (BDZ Off) OR When kitchen presence sensor light sensor light level sensor [sensor.kitchen_presence_sensor_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold] for 20 seconds (Low Light) OR When kitchen presence sensor light sensor light level sensor [sensor.kitchen_presence_sensor_light_sensor_light_level] is above upper light threshold level input number [input_number.upper_light_threshold_level] for 30 seconds (Good Light) OR When lights out binary sensor [binary_sensor.lights_out] changes to off (Allow Lights on) OR When day binary sensor [binary_sensor.day] changes from on to off (sunset) OR When dave location sensor [sensor.dave_location] OR gem location sensor [sensor.gem_location] changes from Kitchen to another state (Not in Kitchen) OR When switch adaptive lighting sleep mode kitchen lights switch [switch.adaptive_lighting_sleep_mode_kitchen_lights] changes from off to on and remains on for 10 seconds (Dim lights). CONDITIONS: holiday mode input boolean [input_boolean.holiday_mode] is off. ACTIONS: Based on the trigger, execute one of the following sequences: 1. If trigger is sunset: Turn on under shelf lights local switch [switch.under_shelf_lights_local]. 2. If trigger is Lights On AND kitchen presence sensor light sensor light level sensor [sensor.kitchen_presence_sensor_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold]: Turn on kitchen lights 2 light [light.kitchen_lights_2]. 3. If trigger is Lights Off: Turn off kitchen lights 2 light [light.kitchen_lights_2]. 4. If trigger is BDZ On AND (kitchen presence sensor light sensor light level sensor [sensor.kitchen_presence_sensor_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold] OR (season sensor [sensor.season] is autumn OR winter AND time is between 17:35:00 and 21:00:00)): Turn on back door zone light light [light.back_door_zone_light]. 5. If trigger is BDZ Off: Turn off back door zone light light [light.back_door_zone_light]. 6. If trigger is Low Light AND kitchen lights 2 light [light.kitchen_lights_2] is off AND kitchen presence sensor presence sensor 1 binary sensor [binary_sensor.kitchen_presence_sensor_presence_sensor_1] is on: Turn on kitchen lights 2 light [light.kitchen_lights_2]. 7. If trigger is Good Light: Turn off kitchen lights 2 light [light.kitchen_lights_2]. 8. If trigger is Allow Lights on AND room occupied kitchen input boolean [input_boolean.room_occupied_kitchen] is on AND kitchen presence sensor light sensor light level sensor [sensor.kitchen_presence_sensor_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold]: Turn on kitchen lights 2 light [light.kitchen_lights_2]. 9. If trigger is Dim lights: Turn on kitchen lights 2 light [light.kitchen_lights_2], wait 10 seconds, then if Kitchen Occupied [binary_sensor.kitchen_occupied] is off, turn off kitchen lights 2 light [light.kitchen_lights_2].",
"natural_language": {
"trigger": "The automation can be triggered by several events: when the primary kitchen presence sensor detects someone entering or leaving (with a 30-second delay for leaving), when the back door zone presence sensor detects someone entering or leaving (with a 30-second delay for leaving), when the kitchen light level is below a low threshold for 20 seconds or above a high threshold for 30 seconds, when a general 'lights out' signal is turned off, when the day changes to night (sunset), when either Dave or Gem leaves the kitchen, or when the adaptive lighting sleep mode for the kitchen lights is activated for 10 seconds.",
"conditions": "The automation only runs if holiday mode is turned off. Depending on which trigger fired, additional conditions are checked. For example, turning on the main kitchen lights when presence is detected also requires the light level to be low. Turning on the back door zone light requires either low light levels or it to be autumn/winter and between 5:35 PM and 9:00 PM. Turning on lights due to low light levels also requires the main kitchen lights to be off and the primary presence sensor to be active. Turning on lights when the 'lights out' signal is cleared requires the kitchen to be marked as occupied and the light level to be low. The 'dim lights' sequence checks if the kitchen is still unoccupied after a 10-second delay.",
"action": "The automation performs different actions based on the trigger and conditions. It can turn on or off the main kitchen lights, turn on or off the back door zone light, or turn on the under-shelf lights. A special sequence for 'dim lights' turns on the main lights, waits 10 seconds, and then turns them off only if the kitchen is no longer occupied."
},
"human_like": "This automation intelligently controls the kitchen and back door lights based on presence, light levels, time of day, and season, ensuring lights are only on when needed and turning them off when the room is empty or sufficiently bright.",
"complexity": "high"
}
},
{
"id": "Kitchen Presence",
"result": {
"structured": "TRIGGER: When kitchen presence sensor presence sensor 1 [binary_sensor.kitchen_presence_sensor_presence_sensor_1] changes from off to on OR kitchen presence sensor presence sensor 2 [binary_sensor.kitchen_presence_sensor_presence_sensor_2] changes from off to on OR presence sensor fp2 4b3c presence sensor 3 [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_3] changes from off to on OR utility room motion [sensor.utility_room_motion] changes from Clear to Detected OR presence sensor fp2 4b3c presence sensor 5 [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_5] changes from off to on OR kitchen presence sensor presence sensor 1 [binary_sensor.kitchen_presence_sensor_presence_sensor_1] changes from on to off AND remains for 30 seconds OR kitchen presence sensor presence sensor 2 [binary_sensor.kitchen_presence_sensor_presence_sensor_2] changes from on to off AND remains for 30 seconds OR presence sensor fp2 4b3c presence sensor 3 [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_3] changes from on to off AND remains for 30 seconds OR utility room motion [sensor.utility_room_motion] changes from Detected to Clear AND remains for 30 seconds OR presence sensor fp2 4b3c presence sensor 5 [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_5] changes from on to off AND remains for 30 seconds OR kitchen echo show media player [media_player.kitchen_echo_show] attribute last_called changes to true OR Switch Ingrid [switch.ingrid] changes from off to on. CONDITIONS: None. ACTIONS: Choose based on trigger ID: If Kitchen Presence OR Alexa OR TV, set room presence [input_text.room_presence] to 'kitchen' AND turn on room occupied kitchen [input_boolean.room_occupied_kitchen]. If Kitchen Absence, turn off room occupied kitchen [input_boolean.room_occupied_kitchen]. If Table Presence, set room presence [input_text.room_presence] to 'kitchen_table' AND turn on kitchen table occupied [input_boolean.kitchen_table_occupied]. If Table Absence, turn off kitchen table occupied [input_boolean.kitchen_table_occupied]. If Back Door Presence, set room presence [input_text.room_presence] to 'back_door_zone' AND turn on back door zone occupied [input_boolean.back_door_zone_occupied]. If Back Door Absence, turn off back door zone occupied [input_boolean.back_door_zone_occupied]. If Sink Presence, set room presence [input_text.room_presence] to 'kitchen_sink' AND turn on Kitchen Sink Occupied [input_boolean.kitchen_sink_occupied]. If Sink Absence, turn off Kitchen Sink Occupied [input_boolean.kitchen_sink_occupied]. If Utility Presence, set room presence [input_text.room_presence] to 'utility_room' AND turn on utility room occupied [input_boolean.utility_room_occupied]. If Utility Absence, turn off utility room occupied [input_boolean.utility_room_occupied].",
"natural_language": {
"trigger": "The automation is triggered by various events indicating presence or absence in the kitchen area. Presence triggers include: the kitchen presence sensor presence sensor 1 [binary_sensor.kitchen_presence_sensor_presence_sensor_1] detecting presence, the kitchen presence sensor presence sensor 2 [binary_sensor.kitchen_presence_sensor_presence_sensor_2] detecting presence, the presence sensor fp2 4b3c presence sensor 3 [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_3] detecting presence, the utility room motion [sensor.utility_room_motion] detecting motion, or the presence sensor fp2 4b3c presence sensor 5 [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_5] detecting presence. Additional triggers for general kitchen activity are when the kitchen echo show media player [media_player.kitchen_echo_show] is last called or when the Switch Ingrid [switch.ingrid] is turned on. Absence triggers occur when any of the five presence/motion sensors remains in an 'off' or 'Clear' state for 30 seconds after a change to that state.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "Depending on which trigger fired, different actions are taken. If presence is detected by the main kitchen sensor, the Alexa, or the TV, the system sets the current room presence to 'kitchen' and marks the kitchen as occupied. If the main kitchen sensor indicates absence, the kitchen is marked as unoccupied. Similar logic applies to specific zones: the kitchen table, back door zone, kitchen sink, and utility room. For each zone, a corresponding presence trigger sets the room presence text and turns on a specific occupancy boolean, while an absence trigger turns off that same boolean."
},
"human_like": "This automation tracks occupancy in different zones of the kitchen (like the table, sink, back door, and utility room) using motion and presence sensors, and updates a central room presence indicator.",
"complexity": "high"
}
},
{
"id": "Kitchen Smart Buttons Automation",
"result": {
"structured": "TRIGGER: When event smart button downstairs 2 action event [event.smart_button_downstairs_2_action] changes state. CONDITIONS: The previous state of the trigger entity was not 'unavailable'. ACTIONS: Choose action based on the event_type attribute: IF event_type is 'release' THEN use TTS to say 'did you mean to hold and release the button? This has not been programmed yet. Please try again.' on jarvis kitchen media player media player [media_player.jarvis_kitchen_media_player]. IF event_type is 'single' THEN execute kitchen tv toggle script [script.kitchen_tv_toggle]. IF event_type is 'double' THEN execute kitchen tv toggle script [script.kitchen_tv_toggle]. IF event_type is 'triple' THEN use TTS to say 'did you mean to press the button three times? This has not been programmed yet. Please try again.' on jarvis kitchen media player media player [media_player.jarvis_kitchen_media_player]. IF event_type is 'quadruple' THEN use TTS to say 'did you mean to press the button four times? This has not been programmed yet. Please try again.' on jarvis kitchen media player media player [media_player.jarvis_kitchen_media_player].",
"natural_language": {
"trigger": "Whenever the smart button downstairs 2 action event [event.smart_button_downstairs_2_action] changes its state.",
"conditions": "The button event must not have been in an 'unavailable' state before the change.",
"action": "Depending on the type of button press detected, the automation will perform different actions. A single or double press will toggle the kitchen TV via the kitchen tv toggle script [script.kitchen_tv_toggle]. A release, triple press, or quadruple press will trigger a voice message from the jarvis kitchen media player media player [media_player.jarvis_kitchen_media_player] stating that the specific action has not been programmed yet."
},
"human_like": "This automation handles presses on a smart kitchen button, toggling the TV for single or double presses, and providing voice feedback for other press types.",
"complexity": "medium"
}
},
{
"id": "Kitchen Tablet Charge Toggle",
"result": {
"structured": "TRIGGER: When sm t220 battery level sensor [sensor.sm_t220_battery_level] is below 30 OR When sm t220 battery level sensor [sensor.sm_t220_battery_level] is above 98 OR When weather display battery level 2 sensor [sensor.weather_display_battery_level_2] is below 30 OR When weather display battery level 2 sensor [sensor.weather_display_battery_level_2] is above 99 AND remains above 99 for 10 minutes. CONDITIONS: None. ACTIONS: If triggered by Kitchen Tablet Battery Low, turn on kitchen tablet local switch [switch.kitchen_tablet_local]. If triggered by Kitchen Tablet Battery Charged, turn off kitchen tablet local switch [switch.kitchen_tablet_local]. If triggered by Weather Tablet Battery Low, turn on weather display none switch [switch.weather_display_none]. If triggered by Weather Tablet Battery Charged, turn off weather display none switch [switch.weather_display_none].",
"natural_language": {
"trigger": "The automation triggers when the battery level of the kitchen tablet [sensor.sm_t220_battery_level] falls below 30% or rises above 98%, or when the battery level of the weather tablet [sensor.weather_display_battery_level_2] falls below 30% or rises above 99% and stays above 99% for at least 10 minutes.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "Depending on which trigger occurred, the automation will either turn on or off the corresponding charger switch. If the kitchen tablet battery is low, it turns on its charger [switch.kitchen_tablet_local]. If the kitchen tablet battery is charged, it turns off its charger. If the weather tablet battery is low, it turns on its charger [switch.weather_display_none]. If the weather tablet battery is charged, it turns off its charger."
},
"human_like": "Automatically manages the charging of the kitchen and weather tablets by turning their chargers on when the battery is low and off when it's sufficiently charged.",
"complexity": "medium"
}
},
{
"id": "Kitchen TV Toggle On and Off",
"result": {
"structured": "TRIGGER: When media player sky q kitchen mini 2 [media_player.sky_q_kitchen_mini_2] changes state to playing AND the previous state was not unknown, unavailable, or paused. OR When media player sky q kitchen mini 2 [media_player.sky_q_kitchen_mini_2] changes state to off AND the previous state was not unknown, unavailable, or paused. CONDITIONS: None. ACTIONS: If the trigger was 'Ingrid & Sky toggle on', run kitchen tv toggle script [script.kitchen_tv_toggle]. If the trigger was 'Ingrid & Sky toggle off', run kitchen tv toggle script [script.kitchen_tv_toggle].",
"natural_language": {
"trigger": "When the media player sky q kitchen mini 2 [media_player.sky_q_kitchen_mini_2] starts playing, provided it wasn't previously in an unknown, unavailable, or paused state. Alternatively, when the same media player turns off, also provided it wasn't previously in an unknown, unavailable, or paused state.",
"conditions": "There are no additional conditions that must be met.",
"action": "In either case, the automation runs the kitchen tv toggle script [script.kitchen_tv_toggle]."
},
"human_like": "Toggles the kitchen TV when the Sky Q player starts playing or turns off, ensuring it responds reliably by ignoring problematic states.",
"complexity": "low"
}
},
{
"id": "Kitchen TV Voice",
"result": {
"structured": "TRIGGER: When a voice command is recognized as 'turn on the TV', 'TV on', or 'turn the TV on' OR when a voice command is recognized as 'TV off', 'turn off the TV', or 'turn the TV off'. CONDITIONS: assist satellite jarvis kitchen assist satellite [assist_satellite.jarvis_kitchen_assist_satellite] is in the 'processing' state. ACTIONS: Execute the kitchen tv toggle script [script.kitchen_tv_toggle].",
"natural_language": {
"trigger": "When a specific voice command is spoken, such as 'turn on the TV', 'TV on', 'turn the TV on', 'TV off', 'turn off the TV', or 'turn the TV off'.",
"conditions": "The assist satellite jarvis kitchen assist satellite [assist_satellite.jarvis_kitchen_assist_satellite] must be in the 'processing' state, indicating it is ready to handle the command.",
"action": "Runs the kitchen tv toggle script [script.kitchen_tv_toggle] to turn the TV on or off."
},
"human_like": "Allows you to turn the kitchen TV on or off using voice commands.",
"complexity": "low"
}
},
{
"id": "Kitchen Worktop Lights",
"result": {
"structured": "TRIGGER: When presence sensor fp2 4b3c presence sensor 6 binary sensor [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_6] changes from off to on OR When presence sensor fp2 4b3c presence sensor 6 binary sensor [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_6] changes from on to off AND remains off for 30 seconds. CONDITIONS: None. ACTIONS: Choose based on trigger: IF trigger is On AND kitchen presence sensor light sensor light level sensor [sensor.kitchen_presence_sensor_light_sensor_light_level] is below 90 THEN IF adaptive lighting sleep mode active input boolean [input_boolean.adaptive_lighting_sleep_mode_active] is on THEN turn on ikea kitchen lights light [light.ikea_kitchen_lights] with brightness 30% ELSE turn on ikea kitchen lights light [light.ikea_kitchen_lights] with brightness 70%. IF trigger is Off THEN turn off ikea kitchen lights light [light.ikea_kitchen_lights].",
"natural_language": {
"trigger": "The automation triggers when the kitchen presence sensor [binary_sensor.presence_sensor_fp2_4b3c_presence_sensor_6] first detects presence (changes from off to on) or when it stops detecting presence (changes from on to off) and remains absent for 30 seconds.",
"conditions": "There are no global conditions for this automation.",
"action": "If the trigger was the sensor detecting presence and the kitchen light level [sensor.kitchen_presence_sensor_light_sensor_light_level] is below 90, the worktop lights [light.ikea_kitchen_lights] are turned on. The brightness is set to 30% if the adaptive lighting sleep mode [input_boolean.adaptive_lighting_sleep_mode_active] is active, otherwise it is set to 70%. If the trigger was the sensor no longer detecting presence for 30 seconds, the worktop lights [light.ikea_kitchen_lights] are turned off."
},
"human_like": "Automatically turns the kitchen worktop lights on when someone enters a dim kitchen, adjusting brightness based on sleep mode, and turns them off after the room has been empty for 30 seconds.",
"complexity": "medium"
}
},
{
"id": "Letterbox",
"result": {
"structured": "TRIGGER: When letterbox contact [binary_sensor.letterbox_contact] changes from open (on) to closed (off). CONDITIONS: front door motion detected [binary_sensor.front_door_motion_detected] is on OR front door person detected [binary_sensor.front_door_person_detected] is on. ACTIONS: Execute script.text_notify_parents with title 'POST!' and message 'You have post!'. Then, if audible notifications input boolean [input_boolean.audible_notifications] is on, then if dave home binary sensor [binary_sensor.dave_home] is on, execute script.jarvis_speech_engine_v3_0 with announcement to 'dave' and message 'Youve got post.', otherwise execute script.jarvis_speech_engine_v3_0 with announcement to 'gem' and message 'Youve got post.'. Then toggle post input boolean [input_boolean.post]. Then wait for family home binary sensor [binary_sensor.family_home] to change from on to off. Then toggle post input boolean [input_boolean.post] again.",
"natural_language": {
"trigger": "When the letterbox contact [binary_sensor.letterbox_contact] closes (changes from open to closed).",
"conditions": "Either motion is detected at the front door [binary_sensor.front_door_motion_detected] or a person is detected at the front door [binary_sensor.front_door_person_detected].",
"action": "First, send a text notification to the parents using the script [script.text_notify_parents] with the message 'You have post!'. Then, if audible notifications are enabled [input_boolean.audible_notifications], check if Dave is home [binary_sensor.dave_home]. If Dave is home, make an announcement to Dave's location using the speech engine script [script.jarvis_speech_engine_v3_0] saying 'Youve got post.'. Otherwise, make the announcement to Gem's location. Next, toggle the post status indicator [input_boolean.post]. Then, wait until the family leaves home [binary_sensor.family_home changes from on to off]. Finally, toggle the post status indicator [input_boolean.post] again."
},
"human_like": "Notifies the household when mail is delivered, sending a text alert and an audible announcement if someone is home, and manages a visual post indicator that resets when everyone leaves.",
"complexity": "medium"
}
},
{
"id": "Lightning Detected",
"result": {
"structured": "TRIGGER: When lightning detected binary sensor [binary_sensor.lightning_detected] changes from off to on. CONDITIONS: lightning warning input boolean [input_boolean.lightning_warning] is off. ACTIONS: Execute text notify dave script [script.text_notify_dave] with title 'Lightning Detected!' and message 'Lightning has been detected within 20 miles of the house.', then turn on lightning warning input boolean [input_boolean.lightning_warning].",
"natural_language": {
"trigger": "When the lightning detected binary sensor [binary_sensor.lightning_detected] changes from off to on, indicating lightning has been detected.",
"conditions": "The lightning warning input boolean [input_boolean.lightning_warning] must be off, meaning a warning is not already active.",
"action": "Sends a text notification to Dave using the text notify dave script [script.text_notify_dave] with a title and message about lightning detection, and then turns on the lightning warning input boolean [input_boolean.lightning_warning] to indicate a warning is now active."
},
"human_like": "Sends a text alert and activates a warning when lightning is first detected nearby.",
"complexity": "low"
}
},
{
"id": "Lights Fade at Bedtime",
"result": {
"structured": "TRIGGER: When main bedroom dot do not disturb switch switch [switch.main_bedroom_dot_do_not_disturb_switch] changes from off to on. CONDITIONS: None. ACTIONS: Execute stair lights fade at bedtime script [script.stair_lights_fade_at_bedtime].",
"natural_language": {
"trigger": "When the main bedroom dot do not disturb switch switch [switch.main_bedroom_dot_do_not_disturb_switch] is turned on from an off state.",
"conditions": "There are no conditions that must be met.",
"action": "Runs the stair lights fade at bedtime script [script.stair_lights_fade_at_bedtime]."
},
"human_like": "When the 'Do Not Disturb' switch in the main bedroom is turned on, it triggers a script to fade the stair lights for bedtime.",
"complexity": "low"
}
},
{
"id": "Limit Battery Output",
"result": {
"structured": "TRIGGER: When the time reaches start battery output limit input datetime [input_datetime.start_battery_output_limit] OR When the time reaches end battery output limit input datetime [input_datetime.end_battery_output_limit] OR When the time reaches start battery output limit slot 2 input datetime [input_datetime.start_battery_output_limit_slot_2] OR When the time reaches end battery output limit slot 2 input datetime [input_datetime.end_battery_output_limit_slot_2] OR When the time reaches start battery output limit slot 3 input datetime [input_datetime.start_battery_output_limit_slot_3] OR When the time reaches end battery output limit slot 3 input datetime [input_datetime.end_battery_output_limit_slot_3] OR When the time reaches start battery output limit slot 4 input datetime [input_datetime.start_battery_output_limit_slot_4] OR When the time reaches end battery output limit slot 4 input datetime [input_datetime.end_battery_output_limit_slot_4] OR When solaredge i1 advanced power control switch [switch.solaredge_i1_advanced_power_control] changes from unavailable to on. CONDITIONS: allow battery output limit input boolean [input_boolean.allow_battery_output_limit] is on. ACTIONS: Choose from the following conditional actions: 1. IF trigger is Start of Slot 1 AND battery output limit slot 1 input boolean [input_boolean.battery_output_limit_slot_1] is on THEN set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to the value of desired battery output limit for overnight ev charging input number [input_number.desired_battery_output_limit_for_overnight_ev_charging]. 2. IF trigger is End of Slot 1 AND battery output limit slot 1 input boolean [input_boolean.battery_output_limit_slot_1] is on THEN set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to the value of default battery output limit input number [input_number.default_battery_output_limit]. 3. IF trigger is Start of Slot 2 AND battery output limit slot 2 input boolean [input_boolean.battery_output_limit_slot_2] is on THEN set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to the value of desired battery output limit for overnight ev charging input number [input_number.desired_battery_output_limit_for_overnight_ev_charging]. 4. IF trigger is End of Slot 2 AND battery output limit slot 2 input boolean [input_boolean.battery_output_limit_slot_2] is on THEN set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to the value of default battery output limit input number [input_number.default_battery_output_limit]. 5. IF trigger is Start of Slot 3 AND battery output limit slot 3 input boolean [input_boolean.battery_output_limit_slot_3] is on THEN set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to the value of desired battery output limit for overnight ev charging input number [input_number.desired_battery_output_limit_for_overnight_ev_charging]. 6. IF trigger is End of Slot 3 AND battery output limit slot 3 input boolean [input_boolean.battery_output_limit_slot_3] is on THEN set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to the value of default battery output limit input number [input_number.default_battery_output_limit]. 7. IF trigger is Start of Slot 4 AND battery output limit slot 4 input boolean [input_boolean.battery_output_limit_slot_4] is on THEN set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to the value of desired battery output limit for overnight ev charging input number [input_number.desired_battery_output_limit_for_overnight_ev_charging]. 8. IF trigger is End of Slot 4 AND battery output limit slot 4 input boolean [input_boolean.battery_output_limit_slot_4] is on THEN set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to the value of default battery output limit input number [input_number.default_battery_output_limit]. 9. IF trigger is Inverter Reset AND the current time is after start battery output limit input datetime [input_datetime.start_battery_output_limit] AND before end battery output limit slot 4 input datetime [input_datetime.end_battery_output_limit_slot_4] AND solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] is above 100 AND allow battery output limit input boolean [input_boolean.allow_battery_output_limit] is on THEN set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to the value of desired battery output limit for overnight ev charging input number [input_number.desired_battery_output_limit_for_overnight_ev_charging].",
"natural_language": {
"trigger": "The automation can be triggered at eight specific times: the start and end times for four different battery output limit slots, which are defined by input_datetime entities. It can also be triggered when the solaredge i1 advanced power control switch [switch.solaredge_i1_advanced_power_control] becomes available (changes from 'unavailable' to 'on').",
"conditions": "A single condition must be met for the automation to proceed: the allow battery output limit input boolean [input_boolean.allow_battery_output_limit] must be turned on.",
"action": "Depending on which trigger occurred and the state of specific slot switches, the automation will adjust the battery discharge limit. For the start of any active slot, it sets the solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to a lower, desired value for overnight EV charging. For the end of any active slot, it restores the limit to a default, higher value. Additionally, if the inverter resets during the overall limit period and the current discharge limit is too high, it will also apply the lower, desired limit to ensure the restriction is maintained."
},
"human_like": "Manages the battery's power output during overnight hours by temporarily lowering its discharge limit for scheduled slots, and ensures the limit is re-applied if the inverter restarts.",
"complexity": "high"
}
},
{
"id": "List Daily Calendar Events",
"result": {
"structured": "TRIGGER: Every hour (time pattern matching hours: /1). CONDITIONS: None. ACTIONS: Retrieve events from forrester events calendar [calendar.forrester_events] for the next 24 hours and store the result in variable 'calendar_response', then fire an event named 'calendar_poll' with the calendar response data.",
"natural_language": {
"trigger": "The automation runs every hour, on the hour.",
"conditions": "There are no conditions; the automation runs whenever the trigger occurs.",
"action": "It fetches all events scheduled for the next 24 hours from the forrester events calendar [calendar.forrester_events] and stores the result. It then sends out an event called 'calendar_poll' containing this calendar data."
},
"human_like": "Polls the calendar every hour to get the day's events and broadcasts them for other automations to use.",
"complexity": "low"
}
},
{
"id": "Living Room Lights",
"result": {
"structured": "TRIGGER: When living room fp2 presence sensor 1 binary sensor [binary_sensor.living_room_fp2_presence_sensor_1] changes from off to on OR When living room fp2 presence sensor 1 binary sensor [binary_sensor.living_room_fp2_presence_sensor_1] changes from on to off AND remains off for 1 minute OR When living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold] OR When living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] is above upper light threshold level input number [input_number.upper_light_threshold_level]. CONDITIONS: holiday mode input boolean [input_boolean.holiday_mode] is off. ACTIONS: (IF (Trigger is Light On With Presence AND living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold]) THEN Turn on corner lamp light [light.corner_lamp] AND standard lamp light [light.standard_lamp] with color temperature 500 and brightness 30%) OR (IF Trigger is Light Off With No Presence THEN Turn off corner lamp light [light.corner_lamp] AND standard lamp light [light.standard_lamp]) OR (IF (Trigger is Light On With Low Light AND living room occupied input boolean [input_boolean.living_room_occupied] is on) THEN Turn on corner lamp light [light.corner_lamp] AND standard lamp light [light.standard_lamp] with color temperature 500 and brightness 30%) OR (IF Trigger is Light Off With Good Light THEN Turn off corner lamp light [light.corner_lamp] AND standard lamp light [light.standard_lamp]).",
"natural_language": {
"trigger": "The automation can be triggered in four ways: when the living room fp2 presence sensor 1 binary sensor [binary_sensor.living_room_fp2_presence_sensor_1] first detects presence (changes from off to on), when it no longer detects presence for a full minute (changes from on to off and stays off for one minute), when the living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] reports a light level below the low light threshold input number [input_number.low_light_threshold], or when the light level rises above the upper light threshold level input number [input_number.upper_light_threshold_level].",
"conditions": "The automation only runs if the holiday mode input boolean [input_boolean.holiday_mode] is turned off.",
"action": "Depending on which trigger fired and other conditions, the automation will either turn the lights on or off. If presence is first detected and the light level is low, it turns on the corner lamp light [light.corner_lamp] and standard lamp light [light.standard_lamp] to a warm white (500K) at 30% brightness. If presence has been absent for a minute, it turns both lights off. If the light level becomes low while the living room occupied input boolean [input_boolean.living_room_occupied] is on, it turns the lights on with the same settings. If the light level becomes good (above the upper threshold), it turns both lights off."
},
"human_like": "Automatically controls the living room lamps based on presence and ambient light levels, turning them on when it's dark and someone is there, and off when the room is empty or well-lit.",
"complexity": "medium"
}
},
{
"id": "Living Room Lights with Presence V2.0",
"result": {
"structured": "TRIGGER: When living room lights [light.living_room_lights] turns on OR When living room lights [light.living_room_lights] turns off OR When living room fp2 presence sensor 1 [binary_sensor.living_room_fp2_presence_sensor_1] detects presence (turns on) OR When living room fp2 presence sensor 1 [binary_sensor.living_room_fp2_presence_sensor_1] reports no presence (turns off) for 1 minute OR When living room fp2 light sensor light level [sensor.living_room_fp2_light_sensor_light_level] is below low light threshold [input_number.low_light_threshold] for 20 seconds OR When living room fp2 light sensor light level [sensor.living_room_fp2_light_sensor_light_level] is above upper light threshold level [input_number.upper_light_threshold_level] for 20 seconds OR When a voice command matching a specific pattern is spoken. CONDITIONS: None (global). ACTIONS: Choose based on trigger ID: (IF trigger is Ceiling Light On AND (corner lamp 2 [light.corner_lamp_2] is on OR dreamview g1 pro 2 [light.dreamview_g1_pro_2] is on) THEN turn off dreamview g1 pro 2 [light.dreamview_g1_pro_2], wait 1 minute, create snapshot scene lights_before, run script update_living_room_scene_tracker, wait 5 seconds, turn off floor lamp pro 1 [light.floor_lamp_pro_1], govee glide left 2 [light.govee_glide_left_2], glide lights right 2 [light.glide_lights_right_2], corner lamp 2 [light.corner_lamp_2]) OR (IF trigger is Ceiling Light Off THEN if living room tv [switch.living_room_tv] is on, turn on scene lights_before [scene.lights_before], wait 20 seconds, turn on dreamview g1 pro 2 [light.dreamview_g1_pro_2]; then turn on scene lights_before [scene.lights_before]) OR (IF trigger is Light On With Presence AND living room fp2 light sensor light level [sensor.living_room_fp2_light_sensor_light_level] is below low light threshold [input_number.low_light_threshold] AND living room lights [light.living_room_lights] is off THEN if living room scene update lock [input_boolean.living_room_scene_update_lock] is off, choose a scene based on conditions: if current living room scene [input_text.current_living_room_scene] is lights_before, turn on lights_before [scene.lights_before]; else if morning [binary_sensor.morning] is on, turn on ready_for_morning [scene.ready_for_morning]; else if lunchtime [binary_sensor.lunchtime] is on, turn on lunchtime_govee [scene.lunchtime_govee]; else if afternoon [binary_sensor.afternoon] is on, turn on afternoon_govee [scene.afternoon_govee]; else if dinner time [binary_sensor.dinner_time] is on, turn on dinnertime_govee [scene.dinnertime_govee]; else turn on evening_govee [scene.evening_govee]; then run script update_living_room_scene_tracker with a template) OR (IF trigger is Light Off With No Presence THEN turn off corner lamp 2 [light.corner_lamp_2], floor lamp pro 1 [light.floor_lamp_pro_1], govee glide left 2 [light.govee_glide_left_2], glide lights right 2 [light.glide_lights_right_2]) OR (IF trigger is Low Light AND living room fp2 presence sensor 1 [binary_sensor.living_room_fp2_presence_sensor_1] is on AND living room lights [light.living_room_lights] is off THEN turn on corner lamp 2 [light.corner_lamp_2]) OR (IF trigger is Good Light THEN turn off corner lamp 2 [light.corner_lamp_2]) OR (IF trigger is JARVIS THEN run script jarvis_get_the_lights with variables).",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when the main living room lights [light.living_room_lights] are turned on or off; when the living room presence sensor [binary_sensor.living_room_fp2_presence_sensor_1] detects someone entering the room or when it reports no presence for one full minute; when the ambient light level [sensor.living_room_fp2_light_sensor_light_level] falls below a set low threshold for 20 seconds, or rises above a high threshold for 20 seconds; or when a specific voice command about the room's lighting is spoken.",
"conditions": "There are no global conditions that apply to all triggers. Each trigger has its own set of specific conditions within its action sequence.",
"action": "Depending on which trigger occurs, different actions are taken. If the main lights are turned on while certain accent lights are already on, those accent lights are turned off, a snapshot of the current light state is saved, and then all other lamps are turned off after a delay. If the main lights are turned off, a previously saved scene is restored, and if the TV is on, TV backlighting is activated. When presence is detected in low light and the main lights are off, a time-appropriate lighting scene is activated. If presence is absent for a minute, all accent lamps are turned off. If the ambient light is low while someone is present, a specific lamp is turned on, and if the light level is good, that lamp is turned off. Voice commands trigger a separate script to handle lighting requests."
},
"human_like": "This automation intelligently manages the living room lighting based on occupancy, ambient light, time of day, and voice commands, ensuring the right lights are on when needed and saving energy when the room is empty.",
"complexity": "high"
}
},
{
"id": "Living room tv voice",
"result": {
"structured": "TRIGGER: When a voice command 'TV on', 'turn on the TV', or 'turn the TV on' is spoken OR when a voice command 'TV off', 'turn off the TV', or 'turn the TV off' is spoken. CONDITIONS: assist satellite jarvis downstairs assist satellite [assist_satellite.jarvis_downstairs_assist_satellite] is in the state 'processing'. ACTIONS: Execute the living room tv toggle 2 script [script.living_room_tv_toggle_2].",
"natural_language": {
"trigger": "When a user speaks a voice command to turn the TV on or off, such as 'TV on', 'turn on the TV', 'turn the TV on', 'TV off', 'turn off the TV', or 'turn the TV off'.",
"conditions": "The assist satellite jarvis downstairs assist satellite [assist_satellite.jarvis_downstairs_assist_satellite] must be in the 'processing' state, indicating it is actively listening or processing a request.",
"action": "Runs the living room tv toggle 2 script [script.living_room_tv_toggle_2] to toggle the TV's power state."
},
"human_like": "Turns the living room TV on or off using voice commands when the voice assistant is active.",
"complexity": "low"
}
},
{
"id": "Loft Lights on with hatch",
"result": {
"structured": "TRIGGER: When loft hatch sensor contact binary sensor [binary_sensor.loft_hatch_sensor_contact] changes from closed (off) to open (on) OR when loft hatch sensor contact binary sensor [binary_sensor.loft_hatch_sensor_contact] changes from open (on) to closed (off). CONDITIONS: None. ACTIONS: If the trigger was the hatch opening (id: Open), then turn on loft light light [light.loft_light]. If the trigger was the hatch closing (id: Closed), then turn off loft light light [light.loft_light].",
"natural_language": {
"trigger": "When the loft hatch sensor contact binary sensor [binary_sensor.loft_hatch_sensor_contact] changes state, either from closed to open or from open to closed.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "Depending on which trigger occurred: if the hatch was opened, the loft light light [light.loft_light] is turned on. If the hatch was closed, the loft light light [light.loft_light] is turned off."
},
"human_like": "Automatically turns the loft light on when the hatch is opened and off when it is closed.",
"complexity": "low"
}
},
{
"id": "Log Nmap devices on Router Reset",
"result": {
"structured": "TRIGGER: When Device Tracker Skyrouter [device_tracker.skyrouter] changes state from not_home to home. CONDITIONS: None. ACTIONS: Execute the shell command 'log_nmap_devices'.",
"natural_language": {
"trigger": "When the Device Tracker Skyrouter [device_tracker.skyrouter] comes back online, changing its state from 'not_home' to 'home'.",
"conditions": "There are no conditions that must be met.",
"action": "Runs a shell command named 'log_nmap_devices' to perform an Nmap scan of the network."
},
"human_like": "Scans the network for devices whenever the router reboots and comes back online.",
"complexity": "low"
}
},
{
"id": "Magic Cube Stuff",
"result": {
"structured": "TRIGGER: When Magic Cube Side [sensor.magic_cube_side] changes to state '1' OR '2' OR '3' OR '4' OR '5' OR '6'. CONDITIONS: None. ACTIONS: Choose based on trigger ID: IF trigger is Side 1 THEN turn on ingrid socket 1 switch [switch.ingrid_socket_1] AND turn on media player device [device_id: 2285e887e55f34f8b3cfd7d7e8e58f6a] AND IF (quiet time binary sensor [binary_sensor.quiet_time] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on) THEN send a random TTS announcement to notify alexa media kitchen echo show [notify.alexa_media_kitchen_echo_show]. IF trigger is Side 2 THEN turn off ingrid socket 1 switch [switch.ingrid_socket_1] AND turn off media player device [device_id: 2285e887e55f34f8b3cfd7d7e8e58f6a] AND IF (audible notifications input boolean [input_boolean.audible_notifications] is on AND quiet time binary sensor [binary_sensor.quiet_time] is off) THEN send a random TTS announcement to notify alexa media kitchen echo show [notify.alexa_media_kitchen_echo_show]. IF trigger is Side 3 THEN send a random TTS announcement to notify alexa media kitchen echo show [notify.alexa_media_kitchen_echo_show] AND wait 4 minutes AND set volume of Media Player Everywhere 2 [media_player.everywhere_2] to value from alexa volume level announcements input number [input_number.alexa_volume_level_announcements] AND wait 2 seconds AND send a random announce message to notify alexa media everywhere 2 [notify.alexa_media_everywhere_2] AND set volume of Media Player Everywhere 2 [media_player.everywhere_2] to value from Alexa Volume Level Default All [input_number.alexa_volume_level_default_all] AND set volume of device [device_id: 49841004268921a9f26338df9c24c561] to value from Alexa Volume Level Default All [input_number.alexa_volume_level_default_all]. IF trigger is Side 6 AND audible notifications input boolean [input_boolean.audible_notifications] is on AND quiet time binary sensor [binary_sensor.quiet_time] is off THEN set volume of Media Player Everywhere 2 [media_player.everywhere_2] to value from alexa volume level announcements input number [input_number.alexa_volume_level_announcements] AND wait 2 seconds AND send a random announce message to notify alexa media everywhere 2 [notify.alexa_media_everywhere_2] AND wait 2 seconds AND set volume of Media Player Everywhere 2 [media_player.everywhere_2] to value from Alexa Volume Level Default All [input_number.alexa_volume_level_default_all]. IF trigger is Side 5 AND audible notifications input boolean [input_boolean.audible_notifications] is on AND quiet time binary sensor [binary_sensor.quiet_time] is off THEN set volume of Media Player Everywhere 2 [media_player.everywhere_2] to value from alexa volume level announcements input number [input_number.alexa_volume_level_announcements] AND wait 2 seconds AND send a random announce message to notify alexa media everywhere 2 [notify.alexa_media_everywhere_2] AND wait 2 seconds AND set volume of Media Player Everywhere 2 [media_player.everywhere_2] to value from Alexa Volume Level Default All [input_number.alexa_volume_level_default_all]. IF trigger is Side 4 AND audible notifications input boolean [input_boolean.audible_notifications] is on AND quiet time binary sensor [binary_sensor.quiet_time] is off THEN send a random TTS announcement to notify alexa media kitchen echo show [notify.alexa_media_kitchen_echo_show].",
"natural_language": {
"trigger": "The automation is triggered when the Magic Cube Side [sensor.magic_cube_side] changes to any of its six sides, represented by the states '1' through '6'.",
"conditions": "There are no global conditions for this automation. Specific conditions are checked within each action branch.",
"action": "Depending on which side of the cube is activated, different actions are performed. Side 1 turns on the kitchen socket and a media player, and if notifications are enabled and it's not quiet time, plays a random announcement. Side 2 turns off the same devices and plays a different announcement under the same conditions. Side 3 starts a 4-minute coffee timer with an initial announcement, waits, plays a 'coffee ready' announcement on all speakers, and resets the volume. Side 6, 5, and 4 each play specific meal-related or placeholder announcements on all speakers, but only if notifications are enabled and it's not quiet time. Side 4 specifically announces that its function is not yet programmed."
},
"human_like": "This automation uses a magic cube as a remote control to turn kitchen media on and off, set timers, and announce meal times with playful, random messages, all while respecting quiet hours.",
"complexity": "high"
}
},
{
"id": "Magic Cube Stuff v2.0",
"result": {
"structured": "TRIGGER: When Magic Cube Side [sensor.magic_cube_side] changes to side 1 OR side 2 OR side 3 OR side 4 OR side 5 OR side 6. CONDITIONS: None. ACTIONS: Choose based on triggered side: (IF triggered side is 1 AND lights out binary sensor [binary_sensor.lights_out] is off AND holiday mode input boolean [input_boolean.holiday_mode] is off THEN turn on kitchen lights 2 light [light.kitchen_lights_2] with color_temp 200 and brightness 255) OR (IF triggered side is 2 AND audible notifications input boolean [input_boolean.audible_notifications] is on THEN play Jetsons-doorbell sound on all jarvis media player media player [media_player.all_jarvis_media_player], wait 4 seconds, and run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a random dinner announcement to all speakers) OR (IF triggered side is 3 OR 4 THEN run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a random 4-minute coffee timer start announcement to kitchen, wait 4 minutes, then run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a random coffee ready announcement to kitchen) OR (IF triggered side is 6 THEN turn on kitchen lights 2 light [light.kitchen_lights_2] with color_temp 367 and brightness 28) OR (IF triggered side is 5 AND audible notifications input boolean [input_boolean.audible_notifications] is on THEN play Jetsons-doorbell sound on all jarvis media player media player [media_player.all_jarvis_media_player], wait 4 seconds, and run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a random Sunday dinner announcement to all speakers).",
"natural_language": {
"trigger": "When the Magic Cube Side [sensor.magic_cube_side] changes to any of its six sides (1 through 6).",
"conditions": "There are no global conditions. Each side's action has its own specific conditions.",
"action": "Depending on which side is triggered: Side 1 turns on the kitchen lights with a warm, bright setting if the lights are not out and holiday mode is off. Side 2 plays a doorbell sound and announces a dinner call to the whole house if audible notifications are enabled. Sides 3 and 4 start a 4-minute coffee timer with a kitchen announcement, then announce when the coffee is ready. Side 5 plays a doorbell sound and announces a Sunday dinner call to the whole house if audible notifications are enabled. Side 6 turns on the kitchen lights with a dim, cool setting."
},
"human_like": "A smart cube controls various home actions: turning kitchen lights on/off, announcing meals, and starting coffee timers based on which side is facing up.",
"complexity": "medium"
}
},
{
"id": "Main Bathroom Lights with Presence",
"result": {
"structured": "TRIGGER: When main bathroom presence occupancy binary sensor [binary_sensor.main_bathroom_presence_occupancy] changes from off to on OR When main bathroom presence occupancy binary sensor [binary_sensor.main_bathroom_presence_occupancy] changes from on to off OR When timer bathroom light timer [timer.bathroom_light] finishes OR When overnight binary sensor [binary_sensor.overnight] changes to on OR When main bathroom switch light switch [switch.main_bathroom_switch_light] changes from off to on OR When main bathroom switch light switch [switch.main_bathroom_switch_light] changes from on to off. CONDITIONS: holiday mode input boolean [input_boolean.holiday_mode] is off. ACTIONS: Choose based on trigger and conditions: 1. IF (trigger is Light On) AND (overnight binary sensor [binary_sensor.overnight] is off) AND (Main Bathroom Presence Illuminance [sensor.main_bathroom_presence_illuminance] is below low light threshold input number [input_number.low_light_threshold]) THEN turn on main bathroom light light [light.main_bathroom_light] with color_temp 200 and brightness 64 AND start timer bathroom light timer [timer.bathroom_light]. 2. IF (trigger is Light On) AND (overnight binary sensor [binary_sensor.overnight] is on) THEN turn on main bathroom light light [light.main_bathroom_light] with rgb_color [255, 248, 52] and brightness 26 AND start timer bathroom light timer [timer.bathroom_light]. 3. IF (trigger is Light Off) AND (main bathroom light light [light.main_bathroom_light] is on) AND (timer bathroom light timer [timer.bathroom_light] is idle) AND (allow main bathroom lights max input boolean [input_boolean.allow_main_bathroom_lights_max] is off) THEN turn off main bathroom light light [light.main_bathroom_light]. 4. IF (trigger is Timer Done) AND (main bathroom presence occupancy binary sensor [binary_sensor.main_bathroom_presence_occupancy] is off) AND (main bathroom light light [light.main_bathroom_light] is on) AND (allow main bathroom lights max input boolean [input_boolean.allow_main_bathroom_lights_max] is off) THEN turn off main bathroom light light [light.main_bathroom_light]. 5. IF (trigger is Dim Lights) AND (allow main bathroom lights max input boolean [input_boolean.allow_main_bathroom_lights_max] is off) THEN turn on main bathroom light light [light.main_bathroom_light] with rgb_color [255, 248, 52] and brightness 26, wait 10 seconds, IF Main Bathroom Occupied [binary_sensor.main_bathroom_occupied] is off THEN turn off main bathroom light light [light.main_bathroom_light]. 6. IF (trigger is Switch On) THEN turn on main bathroom light light [light.main_bathroom_light] with color_temp 200 and brightness 64. 7. IF (trigger is Switch Off) AND (main bathroom light light [light.main_bathroom_light] is on) THEN turn off main bathroom light light [light.main_bathroom_light].",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when the main bathroom presence occupancy binary sensor [binary_sensor.main_bathroom_presence_occupancy] detects presence (turns on) or stops detecting presence (turns off), when the bathroom light timer [timer.bathroom_light] finishes, when the overnight binary sensor [binary_sensor.overnight] indicates it is overnight, or when the main bathroom switch light switch [switch.main_bathroom_switch_light] is manually turned on or off.",
"conditions": "The automation only runs if holiday mode input boolean [input_boolean.holiday_mode] is turned off.",
"action": "Depending on which trigger occurred and the state of other entities, the automation will perform one of several actions. If presence is detected and it's not overnight and the room is dark, it turns the main bathroom light [light.main_bathroom_light] to a cool white at a moderate brightness and starts a timer. If presence is detected and it is overnight, it turns the light to a warm, dim nightlight mode and starts the timer. If presence stops and the light is on, the timer is idle, and a permission flag is off, it turns the light off. If the timer finishes and no presence is detected, the light is on, and the permission flag is off, it turns the light off. If the overnight mode activates and the permission flag is off, it dims the light to a nightlight, waits 10 seconds, and if the bathroom is still unoccupied, turns the light off. If the physical switch is turned on, it sets the light to a cool white at moderate brightness. If the physical switch is turned off and the light is on, it turns the light off."
},
"human_like": "This automation intelligently controls the main bathroom light based on presence, time of day, and manual switch input, turning it on when needed and off when the room is empty, with special nightlight modes for overnight use.",
"complexity": "high"
}
},
{
"id": "Main Bedroom Lights with Presence",
"result": {
"structured": "TRIGGER: When presence sensor fp2 07ff presence sensor 4 [binary_sensor.presence_sensor_fp2_07ff_presence_sensor_4] OR presence sensor fp2 07ff presence sensor 3 [binary_sensor.presence_sensor_fp2_07ff_presence_sensor_3] changes from off to on (Lights On) OR When presence sensor fp2 07ff presence sensor 4 [binary_sensor.presence_sensor_fp2_07ff_presence_sensor_4] OR presence sensor fp2 07ff presence sensor 3 [binary_sensor.presence_sensor_fp2_07ff_presence_sensor_3] changes from on to off and remains off for 15 seconds (Lights Off) OR When main bedroom fp2 light sensor light level [sensor.main_bedroom_fp2_light_sensor_light_level] falls below low light threshold input number [input_number.low_light_threshold] (Low Light) OR When main bedroom fp2 light sensor light level [sensor.main_bedroom_fp2_light_sensor_light_level] rises above upper light threshold level input number [input_number.upper_light_threshold_level] (Good Light) OR When the time pattern matches every 10 minutes (Check). CONDITIONS: holiday mode input boolean [input_boolean.holiday_mode] is off. ACTIONS: Choose from the following sequences based on conditions: 1. IF (trigger is Lights On) AND (triggered entity's friendly name contains 'Daves') AND (main bedroom fp2 light sensor light level [sensor.main_bedroom_fp2_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold]) AND (main bedroom bedside lamps active input boolean [input_boolean.main_bedroom_bedside_lamps_active] is on) AND (we are in bed input boolean [input_boolean.we_are_in_bed] is off) THEN turn on dad's bedside lamp light [light.dad_s_bedside_lamp_light]. 2. IF (trigger is Lights On) AND (triggered entity's friendly name contains 'Gems') AND (main bedroom fp2 light sensor light level [sensor.main_bedroom_fp2_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold]) AND (main bedroom bedside lamps active input boolean [input_boolean.main_bedroom_bedside_lamps_active] is on) AND (we are in bed input boolean [input_boolean.we_are_in_bed] is off) THEN turn on mum's bedside lamp light [light.mum_s_bedside_lamp_light]. 3. IF (trigger is Lights Off) AND (triggered entity's friendly name contains 'Daves') AND (dad's bedside lamp light [light.dad_s_bedside_lamp_light] is on) THEN turn off dad's bedside lamp light [light.dad_s_bedside_lamp_light]. 4. IF (trigger is Lights Off) AND (triggered entity's friendly name contains 'Gems') AND (mum's bedside lamp light [light.mum_s_bedside_lamp_light] is on) THEN turn off mum's bedside lamp light [light.mum_s_bedside_lamp_light]. 5. IF (trigger is Low Light) AND (presence sensor fp2 07ff presence sensor 3 [binary_sensor.presence_sensor_fp2_07ff_presence_sensor_3] is on OR presence sensor fp2 07ff presence sensor 4 [binary_sensor.presence_sensor_fp2_07ff_presence_sensor_4] is on) AND (main bedroom bedside lamps active input boolean [input_boolean.main_bedroom_bedside_lamps_active] is on) AND (we are in bed input boolean [input_boolean.we_are_in_bed] is off) THEN turn on both mum's bedside lamp light [light.mum_s_bedside_lamp_light] and dad's bedside lamp light [light.dad_s_bedside_lamp_light]. 6. IF (trigger is Good Light) AND (dad's bedside lamp light [light.dad_s_bedside_lamp_light] is on OR mum's bedside lamp light [light.mum_s_bedside_lamp_light] is on) THEN turn off both mum's bedside lamp light [light.mum_s_bedside_lamp_light] and dad's bedside lamp light [light.dad_s_bedside_lamp_light]. 7. IF (trigger is Check) AND (master bedroom light switch [switch.master_bedroom_light_switch] is on) AND (Master Bedroom Occupied [binary_sensor.master_bedroom_occupied] is off) THEN turn off master bedroom light switch [switch.master_bedroom_light_switch].",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when either of the two presence sensors (presence sensor fp2 07ff presence sensor 4 [binary_sensor.presence_sensor_fp2_07ff_presence_sensor_4] or presence sensor fp2 07ff presence sensor 3 [binary_sensor.presence_sensor_fp2_07ff_presence_sensor_3]) detects new presence (changes from off to on); when either of those sensors stops detecting presence and remains off for 15 seconds; when the main bedroom light level sensor [sensor.main_bedroom_fp2_light_sensor_light_level] falls below a defined low threshold; when the same light level rises above a defined high threshold; or on a recurring schedule every 10 minutes.",
"conditions": "For the automation to run at all, the holiday mode input boolean [input_boolean.holiday_mode] must be turned off. The specific actions taken depend on which trigger fired and a set of further conditions. These include checking which specific sensor triggered (by looking for 'Daves' or 'Gems' in its name), the current light level, the status of the main bedroom bedside lamps active input boolean [input_boolean.main_bedroom_bedside_lamps_active], the status of the we are in bed input boolean [input_boolean.we_are_in_bed], and the current state of the bedside lamps or the main room occupancy.",
"action": "The automation selects from seven possible action sequences. It can turn on an individual bedside lamp (dad's or mum's) when someone enters their side of the room in low light, provided the lamps are active and the bed is not occupied. It can turn off an individual lamp when someone leaves their side of the room. It can turn on both lamps when the light is low and either presence sensor detects someone, provided the lamps are active and the bed is not occupied. It can turn off both lamps when the ambient light becomes sufficiently bright. Finally, it can turn off the main bedroom light switch [switch.master_bedroom_light_switch] if a periodic check finds it on while the Master Bedroom Occupied [binary_sensor.master_bedroom_occupied] sensor reports the room is empty."
},
"human_like": "This automation intelligently controls the main bedroom lights based on presence, ambient light levels, and occupancy, turning bedside lamps on and off for specific individuals and ensuring lights aren't left on in an empty room.",
"complexity": "high"
}
},
{
"id": "Main Bedroom Presence",
"result": {
"structured": "TRIGGER: When main bedroom fp2 presence sensor 1 binary sensor [binary_sensor.main_bedroom_fp2_presence_sensor_1] changes from off to on OR from on to off OR when presence sensor fp2 07ff presence sensor 4 binary sensor [binary_sensor.presence_sensor_fp2_07ff_presence_sensor_4] changes from off to on OR from on to off OR when presence sensor fp2 07ff presence sensor 3 binary sensor [binary_sensor.presence_sensor_fp2_07ff_presence_sensor_3] changes from off to on OR from on to off OR when main bedroom fp2 presence sensor 2 binary sensor [binary_sensor.main_bedroom_fp2_presence_sensor_2] changes from off to on OR from on to off OR when main bedroom dot media player [media_player.main_bedroom_dot] attribute last_called changes to true. CONDITIONS: None. ACTIONS: Choose based on trigger ID: If trigger ID is Bedroom Presence OR Alexa, then set room presence [input_text.room_presence] to 'main_bedroom' AND turn on room occupied main bedroom input boolean [input_boolean.room_occupied_main_bedroom]. If trigger ID is Bedroom Absence, then turn off room occupied main bedroom input boolean [input_boolean.room_occupied_main_bedroom]. If trigger ID is Dads Side Presence, then set room presence [input_text.room_presence] to 'dads_side_of_bed' AND turn on dad's side of bed occupied input boolean [input_boolean.dad_s_side_of_bed_occupied]. If trigger ID is Dads Side Absence, then turn off dad's side of bed occupied input boolean [input_boolean.dad_s_side_of_bed_occupied]. If trigger ID is Mums Side Presence, then set room presence [input_text.room_presence] to 'mums_side_of_bed' AND turn on mum's side of bed occupied input boolean [input_boolean.mum_s_side_of_bed_occupied]. If trigger ID is Mums Side Absence, then turn off mum's side of bed occupied input boolean [input_boolean.mum_s_side_of_bed_occupied]. If trigger ID is En Suite Presence, then set room presence [input_text.room_presence] to 'en_suite_bathroom' AND turn on room occupied en suite bathroom input boolean [input_boolean.room_occupied_en_suite_bathroom]. If trigger ID is En Suite Absence, then turn off room occupied en suite bathroom input boolean [input_boolean.room_occupied_en_suite_bathroom].",
"natural_language": {
"trigger": "The automation triggers when any of the following state changes occur: the main bedroom fp2 presence sensor 1 binary sensor [binary_sensor.main_bedroom_fp2_presence_sensor_1] detects presence (turns on) or absence (turns off); the presence sensor fp2 07ff presence sensor 4 binary sensor [binary_sensor.presence_sensor_fp2_07ff_presence_sensor_4] detects presence or absence; the presence sensor fp2 07ff presence sensor 3 binary sensor [binary_sensor.presence_sensor_fp2_07ff_presence_sensor_3] detects presence or absence; the main bedroom fp2 presence sensor 2 binary sensor [binary_sensor.main_bedroom_fp2_presence_sensor_2] detects presence or absence; or when the main bedroom dot media player [media_player.main_bedroom_dot] is last called.",
"conditions": "There are no conditions for this automation.",
"action": "Depending on which trigger occurred, the automation performs different actions. If the main bedroom presence sensor detects presence or the Alexa device is last called, it sets the current room presence to 'main_bedroom' and marks the main bedroom as occupied. If that sensor detects absence, it marks the main bedroom as unoccupied. If the sensor for dad's side of the bed detects presence, it sets the current room presence to 'dads_side_of_bed' and marks dad's side as occupied; if it detects absence, it marks dad's side as unoccupied. Similarly, for mum's side of the bed, it sets the room presence to 'mums_side_of_bed' and marks it as occupied or unoccupied. For the en suite bathroom sensor, it sets the room presence to 'en_suite_bathroom' and marks the en suite bathroom as occupied or unoccupied."
},
"human_like": "This automation tracks occupancy in the main bedroom, its two sides, and the en suite bathroom using presence sensors and Alexa activity, updating status flags and a central room presence tracker accordingly.",
"complexity": "medium"
}
},
{
"id": "Main Bedroom Wakeup Lights v2.0",
"result": {
"structured": "TRIGGER: When the template evaluates that the next sunrise time [sensor.sun_next_rising] is later than 06:20 OR when the template evaluates that the next sunrise time [sensor.sun_next_rising] is earlier than 06:20 OR when morning binary sensor [binary_sensor.morning] changes from off to on OR when calendar school holidays calendar [calendar.school_holidays] changes from off to on OR when calendar school holidays calendar [calendar.school_holidays] changes from on to off. CONDITIONS: None (global). ACTIONS: Choose one sequence based on the triggering condition: 1. If triggered by the 'Activate' template, turn on wakeup lights input boolean [input_boolean.wakeup_lights]. 2. If triggered by the 'Deactivate' template, turn off wakeup lights input boolean [input_boolean.wakeup_lights]. 3. If triggered by 'school holiday on', turn off wakeup lights input boolean [input_boolean.wakeup_lights]. 4. If triggered by 'school holiday off' AND the next sunrise time [sensor.sun_next_rising] is later than 06:20, turn on wakeup lights input boolean [input_boolean.wakeup_lights]. 5. If triggered by 'Wake Up' AND (wakeup lights input boolean [input_boolean.wakeup_lights] is on OR calendar schools out calendar [calendar.schools_out] is on) AND workday sensor binary sensor [binary_sensor.workday_sensor] is on, then wait 23 minutes, turn on bed lamps 3 light [light.bed_lamps_3] with 5% brightness and 'Sunrise' effect, wait 10 minutes, then set bed lamps 3 light [light.bed_lamps_3] to 5% brightness and an orange color (RGB 255, 50, 0). 6. If triggered by 'Wake Up' AND (wakeup lights input boolean [input_boolean.wakeup_lights] is on OR calendar schools out calendar [calendar.schools_out] is on) AND (workday sensor binary sensor [binary_sensor.workday_sensor] is off OR gem holidays calendar [calendar.gem_holidays] is on), then wait 1 hour and 3 minutes, turn on bed lamps 3 light [light.bed_lamps_3] with 5% brightness and 'Sunrise' effect, wait 10 minutes, then set bed lamps 3 light [light.bed_lamps_3] to 5% brightness and an orange color (RGB 255, 50, 0).",
"natural_language": {
"trigger": "The automation can be triggered in five ways: when a template determines the next sunrise is after 6:20 AM, when a template determines the next sunrise is before 6:20 AM, when the morning sensor turns on, when the school holidays calendar event starts, or when the school holidays calendar event ends.",
"conditions": "There are no global conditions. Specific conditions are checked within each action sequence, depending on which trigger fired.",
"action": "The automation performs different actions based on which trigger occurred. If the sunrise is after 6:20, it enables the wakeup lights flag. If the sunrise is before 6:20, it disables the flag. If school holidays start, it disables the flag. If school holidays end and sunrise is after 6:20, it enables the flag. When the morning sensor triggers, it checks the status of the wakeup lights flag and other calendars to decide on a wake-up light sequence. On workdays, it starts a sunrise light effect after a 23-minute delay. On non-workdays or holidays, it starts the same effect after a longer 1 hour and 3 minute delay. Both sequences end by setting the lights to a warm orange color."
},
"human_like": "Manages wake-up lighting based on sunrise time, school holidays, and whether it's a workday, starting a gentle sunrise light sequence in the bedroom at the appropriate time.",
"complexity": "high"
}
},
{
"id": "Master Bedroom TV Voice",
"result": {
"structured": "TRIGGER: When a conversation command matches 'TV on', 'turn on the TV', or 'turn the TV on' OR when a conversation command matches 'TV off', 'turn off the TV', or 'turn the TV off'. CONDITIONS: assist satellite jarvis main bedroom assist satellite [assist_satellite.jarvis_main_bedroom_assist_satellite] is in the 'processing' state. ACTIONS: If the trigger was an 'on' command, turn on media player 32 sharp roku tv [media_player.32_sharp_roku_tv]. If the trigger was an 'off' command, turn off media player 32 sharp roku tv [media_player.32_sharp_roku_tv].",
"natural_language": {
"trigger": "The automation is triggered by voice commands. It listens for phrases like 'TV on', 'turn on the TV', or 'turn the TV on' to turn the TV on, and phrases like 'TV off', 'turn off the TV', or 'turn the TV off' to turn the TV off.",
"conditions": "The automation only runs if the voice assistant satellite in the main bedroom, assist satellite jarvis main bedroom assist satellite [assist_satellite.jarvis_main_bedroom_assist_satellite], is actively processing a command.",
"action": "Depending on which voice command was heard, the automation will either turn on or turn off the bedroom TV, media player 32 sharp roku tv [media_player.32_sharp_roku_tv]."
},
"human_like": "Allows you to turn the bedroom TV on or off using voice commands, but only when the bedroom voice assistant is actively listening.",
"complexity": "medium"
}
},
{
"id": "Morning Get up Set up",
"result": {
"structured": "TRIGGER: When hallway camera cell motion detection binary sensor [binary_sensor.hallway_camera_cell_motion_detection] changes from off to on. CONDITIONS: (Time is after 06:30:00 AND before 08:00:00). ACTIONS: If guest bedroom camera privacy switch [switch.guest_bedroom_camera_privacy] is on, then turn it off. If jamie's room cam privacy switch [switch.jamie_s_room_cam_privacy] is on, then turn it off. If seans room camera privacy switch [switch.seans_room_camera_privacy] is on, then turn it off.",
"natural_language": {
"trigger": "When motion is first detected in the hallway, indicated by the hallway camera cell motion detection binary sensor [binary_sensor.hallway_camera_cell_motion_detection] turning on.",
"conditions": "The automation only runs if the time is between 6:30 AM and 8:00 AM.",
"action": "It checks the state of three camera privacy switches. If the guest bedroom camera privacy switch [switch.guest_bedroom_camera_privacy] is on, it is turned off. If jamie's room cam privacy switch [switch.jamie_s_room_cam_privacy] is on, it is turned off. If seans room camera privacy switch [switch.seans_room_camera_privacy] is on, it is turned off."
},
"human_like": "Turns off bedroom camera privacy switches in the morning when someone gets up and is detected in the hallway.",
"complexity": "medium"
}
},
{
"id": "New Security System",
"result": {
"structured": "TRIGGER: When security system status [input_boolean.security_system_status] changes from off to on OR When security system status [input_boolean.security_system_status] changes from on to off OR When family home binary sensor [binary_sensor.family_home] changes from on to off AND remains for 30 seconds OR When family home binary sensor [binary_sensor.family_home] changes from off to on OR When event alarmo_failed_to_arm occurs OR When alarm control panel garage [alarm_control_panel.garage] changes to triggered. CONDITIONS: None. ACTIONS: Choose based on trigger: IF trigger is Arm Night THEN arm alarm control panel downstairs [alarm_control_panel.downstairs] in night mode. IF trigger is Disarm Night THEN disarm alarm control panel downstairs [alarm_control_panel.downstairs] with code 1503. IF trigger is Arm Away THEN arm alarm control panel upstairs [alarm_control_panel.upstairs] in away mode with force, arm alarm control panel downstairs [alarm_control_panel.downstairs] in away mode, and turn on g3 sentry bot switch [switch.g3_sentry_bot]. IF trigger is Disarm Away THEN disarm alarm control panel upstairs [alarm_control_panel.upstairs] and alarm control panel downstairs [alarm_control_panel.downstairs] with code 1503, turn off g3 sentry bot switch [switch.g3_sentry_bot], and IF audible notifications input boolean [input_boolean.audible_notifications] is on THEN run script.jarvis_speech_engine_v3_0 with a random announcement message. IF trigger is Failed to arm THEN send a notification to mobile app dave's samsung galaxy notify [notify.mobile_app_daves_samsung_galaxy] with actions, wait 5 minutes for a response, THEN IF no response OR response is YES THEN force arm alarm control panel upstairs [alarm_control_panel.upstairs] and alarm control panel downstairs [alarm_control_panel.downstairs] in away mode, ELSE IF response is NO THEN run script.text_notify_dave [script.text_notify_dave] with a message, THEN run script.jarvis_speech_engine_v3_0 with a random announcement message. IF trigger is Garage Triggered THEN send a notification to mobile app dave's samsung galaxy notify [notify.mobile_app_daves_samsung_galaxy] with actions, wait 5 minutes for a response, THEN IF no response OR response is YES THEN disarm alarm control panel garage [alarm_control_panel.garage] with code 1503 and rearm it in home mode, and IF audible notifications input boolean [input_boolean.audible_notifications] is on AND announcement playing input boolean [input_boolean.announcement_playing] is off THEN run script.jarvis_speech_engine_v3_0 with a random announcement message, ELSE IF response is NO THEN disarm alarm control panel garage [alarm_control_panel.garage] with code 1503, run script.text_notify_dave [script.text_notify_dave] with a message, and IF audible notifications input boolean [input_boolean.audible_notifications] is on AND announcement playing input boolean [input_boolean.announcement_playing] is off THEN run script.jarvis_speech_engine_v3_0 with a random announcement message.",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when the security system status [input_boolean.security_system_status] is turned on or off; when the family home binary sensor [binary_sensor.family_home] indicates everyone has left by staying off for 30 seconds, or when it indicates someone has returned; when the Alarmo system reports a failure to arm; or when the garage alarm [alarm_control_panel.garage] is triggered.",
"conditions": "There are no global conditions that must be met for the automation to run. The actions taken depend entirely on which trigger occurred.",
"action": "Depending on which trigger fired, the automation performs different actions. If the night alarm is armed, it arms the downstairs alarm in night mode. If the night alarm is disarmed, it disarms the downstairs alarm. If the system detects the house is empty, it arms both the upstairs and downstairs alarms in away mode and activates a sentry bot. When someone returns home, it disarms both alarms, deactivates the sentry bot, and may play an announcement. If the alarm fails to arm, it sends a notification to Dave's phone, waits for a response, and then either forces the alarm to arm or sends a notification based on the reply. Finally, if the garage alarm is triggered, it sends a notification asking if it should be reset, waits for a reply, and then either rearms or disarms the garage alarm, potentially with an accompanying announcement."
},
"human_like": "This automation manages the home security system, automatically arming and disarming alarms based on occupancy, handling failures, and providing interactive notifications for alarm events.",
"complexity": "high"
}
},
{
"id": "Nighttime lights",
"result": {
"structured": "TRIGGER: When lights out [binary_sensor.lights_out] changes from off to on OR at sunset minus 30 minutes. CONDITIONS: holiday mode input boolean [input_boolean.holiday_mode] is off. ACTIONS: If the trigger was Dusk AND holiday mode input boolean [input_boolean.holiday_mode] is off, then: if corner lamp light [light.corner_lamp] is off, turn it on with color_temp 500 and brightness 76; turn on stair lights light [light.stair_lights]; turn on under shelf lights local switch [switch.under_shelf_lights_local]; turn on bed lamps light [light.bed_lamps]; if standard lamp light [light.standard_lamp] is off, turn it on with color_temp 500 and brightness 76; if living room tv switch [switch.living_room_tv] is on, turn on dreamview g1 pro light [light.dreamview_g1_pro]. If the trigger was Lights Out, then: if corner lamp light [light.corner_lamp] is on, turn it off; if standard lamp light [light.standard_lamp] is on, turn it off; if under shelf lights local switch [switch.under_shelf_lights_local] is on, turn it off; if dreamview g1 pro light [light.dreamview_g1_pro] is on AND living room tv switch [switch.living_room_tv] is off, turn off dreamview g1 pro light [light.dreamview_g1_pro]; if back door light light [light.back_door_light] is on AND back door sensor contact binary sensor [binary_sensor.back_door_sensor_contact] is off, turn off back door light light [light.back_door_light]; if landing lights light [light.landing_lights] is on, turn it off; if guest bedroom bedside lamp left light [light.guest_bedroom_bedside_lamp_left] is on AND room occupied guest bedroom input boolean [input_boolean.room_occupied_guest_bedroom] is on, turn off guest bedroom bedside lamp left light [light.guest_bedroom_bedside_lamp_left] and guest bedroom bedside lamp right light [light.guest_bedroom_bedside_lamp_right]; if daddy's bedside lamp socket 1 switch [switch.daddys_bedside_lamp_socket_1] is on, turn it off; if mummy's bedside lamp socket 1 switch [switch.mummys_bedside_lamp_socket_1] is on, turn it off; turn off main bedroom bedside lamps active input boolean [input_boolean.main_bedroom_bedside_lamps_active] and guest bedroom bedside lamps active input boolean [input_boolean.guest_bedroom_bedside_lamps_active].",
"natural_language": {
"trigger": "The automation triggers either when the lights out [binary_sensor.lights_out] sensor changes from off to on, or 30 minutes before sunset.",
"conditions": "The automation only runs if the holiday mode input boolean [input_boolean.holiday_mode] is turned off.",
"action": "If the trigger was the dusk event and holiday mode is off, the automation turns on several evening lights: the corner lamp light [light.corner_lamp] and standard lamp light [light.standard_lamp] are turned on with a warm white color and reduced brightness if they are off, while the stair lights light [light.stair_lights], under shelf lights local switch [switch.under_shelf_lights_local], and bed lamps light [light.bed_lamps] are always turned on. If the living room tv switch [switch.living_room_tv] is on, the dreamview g1 pro light [light.dreamview_g1_pro] is also turned on. If the trigger was the lights out event, the automation turns off a series of lights and switches: the corner lamp, standard lamp, under-shelf lights, and landing lights are turned off if they are on. The TV mood lights are turned off only if the TV is off. The back door light is turned off if the back door is closed. Guest bedroom bedside lamps are turned off if the room is marked as occupied. Daddy's and Mummy's bedside lamps are turned off. Finally, it marks the main and guest bedroom bedside lamps as inactive."
},
"human_like": "This automation manages nighttime lighting by turning on a set of warm lights at dusk and turning off most lights at bedtime, ensuring a comfortable evening and a dark home for sleep.",
"complexity": "medium"
}
},
{
"id": "Night Lights and Reset",
"result": {
"structured": "TRIGGER: When quiet time boys binary sensor [binary_sensor.quiet_time_boys] changes from on to off OR When quiet time boys binary sensor [binary_sensor.quiet_time_boys] changes from off to on OR At sunset OR At sunrise. CONDITIONS: holiday mode input boolean [input_boolean.holiday_mode] is off. ACTIONS: If the trigger is Camera LED Off, toggle the state of landing camera indicator led switch [switch.landing_camera_indicator_led], jamie indicator led switch [switch.jamie_indicator_led], sean indicator led switch [switch.sean_indicator_led], and guest bedroom camera indicator led switch [switch.guest_bedroom_camera_indicator_led]. If the trigger is Camera LED On, check if bst input boolean [input_boolean.bst] is on; if yes, toggle the same four indicator LED switches immediately; if no, wait 1 hour and then toggle them. If the trigger is Sunset, turn on hallway light switch 2 left switch [switch.hallway_light_switch_2_left]. If the trigger is Sunrise, turn off hallway light switch 2 left switch [switch.hallway_light_switch_2_left].",
"natural_language": {
"trigger": "The automation can start in four ways: when the quiet time boys binary sensor [binary_sensor.quiet_time_boys] turns off, when it turns on, at sunset, or at sunrise.",
"conditions": "The automation only runs if the holiday mode input boolean [input_boolean.holiday_mode] is turned off.",
"action": "Depending on what triggered the automation, different actions occur. If the quiet time boys sensor turned off, it toggles four camera indicator LED switches. If the sensor turned on, it checks the bst input boolean [input_boolean.bst]; if it's on, it toggles the LEDs immediately, otherwise it waits an hour before toggling them. At sunset, it turns on a hallway light. At sunrise, it turns off that same hallway light."
},
"human_like": "Manages evening lighting and camera indicator LEDs based on sunset, sunrise, and a 'quiet time' sensor, ensuring they are only active when not in holiday mode.",
"complexity": "medium"
}
},
{
"id": "Notification Volume Dim",
"result": {
"structured": "TRIGGER: When quiet time boys binary sensor [binary_sensor.quiet_time_boys] turns on. CONDITIONS: None. ACTIONS: Set volume for kitchen echo show media player [media_player.kitchen_echo_show], living room pop media player [media_player.living_room_pop], dining room pop media player [media_player.dining_room_pop], guest bedroom echo dot media player [media_player.guest_bedroom_echo_dot], office pop media player [media_player.office_pop], jamie's room dot media player [media_player.jamie_s_room_dot], and sean's room dot media player [media_player.sean_s_room_dot] to the value from alexa volume level low input number [input_number.alexa_volume_level_low]. Wait 15 minutes. Then set volume for jarvis downstairs media player [media_player.jarvis_downstairs_media_player], jarvis main bedroom media player [media_player.jarvis_main_bedroom_media_player], jarvis kitchen media player [media_player.jarvis_kitchen_media_player], jarvis jamie media player [media_player.jarvis_jamie_media_player], jarvis sean media player [media_player.jarvis_sean_media_player], and jarvis office media player [media_player.jarvis_office_media_player] to the value from jarvis volume level low input number [input_number.jarvis_volume_level_low].",
"natural_language": {
"trigger": "When the quiet time boys binary sensor [binary_sensor.quiet_time_boys] is activated (turns on).",
"conditions": "There are no conditions for this automation.",
"action": "The automation first lowers the volume of several Alexa and Pop devices to a pre-set low level. After a 15-minute delay, it then lowers the volume of several Jarvis media players to a different pre-set low level."
},
"human_like": "Reduces the notification volume on all smart speakers and media players when the boys' quiet time begins.",
"complexity": "medium"
}
},
{
"id": "Notification Volume Normal",
"result": {
"structured": "TRIGGER: When quiet time boys [binary_sensor.quiet_time_boys] changes to off. CONDITIONS: None. ACTIONS: Set volume for media_player.kitchen_echo_show, media_player.living_room_pop, media_player.dining_room_pop, media_player.guest_bedroom_echo_dot, media_player.jamie_s_room_dot, media_player.sean_s_room_dot, and media_player.office_pop to the value from alexa volume level announcements input number [input_number.alexa_volume_level_announcements]. Set volume for media_player.jarvis_downstairs_media_player, media_player.jarvis_main_bedroom_media_player, media_player.jarvis_kitchen_media_player, media_player.jarvis_jamie_media_player, media_player.jarvis_sean_media_player, and media_player.jarvis_office_media_player to the value from jarvis volume level announcement input number [input_number.jarvis_volume_level_announcement]. Wait for 28 minutes. Set volume for media_player.main_bedroom_dot to the value from alexa volume level announcements input number [input_number.alexa_volume_level_announcements].",
"natural_language": {
"trigger": "When the quiet time boys [binary_sensor.quiet_time_boys] sensor turns off, indicating the end of a quiet period.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "The automation first sets the volume for a group of Alexa and Pop devices (kitchen echo show, living room pop, dining room pop, guest bedroom echo dot, jamie's room dot, sean's room dot, and office pop) to the level stored in the alexa volume level announcements input number [input_number.alexa_volume_level_announcements]. It then sets the volume for a group of Jarvis media players (jarvis downstairs media player, jarvis main bedroom media player, jarvis kitchen media player, jarvis jamie media player, jarvis sean media player, and jarvis office media player) to the level stored in the jarvis volume level announcement input number [input_number.jarvis_volume_level_announcement]. After a 28-minute delay, it sets the volume for the main bedroom dot [media_player.main_bedroom_dot] to the level from the alexa volume level announcements input number [input_number.alexa_volume_level_announcements]."
},
"human_like": "Restores the normal notification volume for all smart speakers when the boys' quiet time ends, with a delayed adjustment for the main bedroom speaker.",
"complexity": "medium"
}
},
{
"id": "'Notify: Any downstairs windows left open when we leave the house'",
"result": {
"structured": "TRIGGER: When group family [group.family] changes from 'on' to 'not_home'. CONDITIONS: At least one of the following entities is open (on): living room window left contact binary sensor [binary_sensor.living_room_window_left_contact] OR living room window right contact binary sensor [binary_sensor.living_room_window_right_contact] OR dining room window left contact binary sensor [binary_sensor.dining_room_window_left_contact] OR dining room window right contact binary sensor [binary_sensor.dining_room_window_right_contact] OR kitchen window left contact binary sensor [binary_sensor.kitchen_window_left_contact] OR kitchen window right contact binary sensor [binary_sensor.kitchen_window_right_contact] OR hallway window contact binary sensor [binary_sensor.hallway_window_contact] OR cloakroom window contact binary sensor [binary_sensor.cloakroom_window_contact] OR back door sensor contact binary sensor [binary_sensor.back_door_sensor_contact]. ACTIONS: Send a notification to the mobile app associated with my mobile phone id input text [input_text.my_mobile_phone_id] with title 'HOUSE INSECURE!' and a message stating which entity was left open. Send a notification to the mobile app associated with gem's mobile phone id input text [input_text.gem_s_mobile_phone_id] with title 'HOUSE INSECURE!' and a message stating which entity was left open.",
"natural_language": {
"trigger": "When the family group [group.family] changes its state from 'on' to 'not_home', indicating that everyone has left the house.",
"conditions": "If any of the following windows or doors are detected as open: the living room left window [binary_sensor.living_room_window_left_contact], the living room right window [binary_sensor.living_room_window_right_contact], the dining room left window [binary_sensor.dining_room_window_left_contact], the dining room right window [binary_sensor.dining_room_window_right_contact], the kitchen left window [binary_sensor.kitchen_window_left_contact], the kitchen right window [binary_sensor.kitchen_window_right_contact], the hallway window [binary_sensor.hallway_window_contact], the cloakroom window [binary_sensor.cloakroom_window_contact], or the back door [binary_sensor.back_door_sensor_contact].",
"action": "Sends a high-priority notification titled 'HOUSE INSECURE!' to the mobile phones associated with my mobile phone id [input_text.my_mobile_phone_id] and gem's mobile phone id [input_text.gem_s_mobile_phone_id]. The message will specify which specific window or door has been left open."
},
"human_like": "Sends an urgent notification to household members if any downstairs window or door is found open when everyone leaves the house.",
"complexity": "medium"
}
},
{
"id": "Notify on family members zone change",
"result": {
"structured": "TRIGGER: When person david forrester [person.david_forrester] OR person gem forrester [person.gem_forrester] changes state AND remains in the new state for 30 seconds. CONDITIONS: The new state (trigger.to_state.state) is different from the previous state (trigger.from_state.state). ACTIONS: Set variables: state_from = previous state, state_to = new state, person = friendly name of the entity, event = 'arrived' if moving from 'not_home' to 'home', 'arrived at' if moving from 'not_home' to any other zone, 'left' if moving from any zone (including 'home') to another, zone = destination zone if arriving, origin zone if leaving, emoji = 🏠 if zone is 'home', otherwise 📍. Then, execute script.text_notify_parents [script.text_notify_parents] with a message containing the emoji, person, event, and zone.",
"natural_language": {
"trigger": "When either person david forrester [person.david_forrester] or person gem forrester [person.gem_forrester] changes their location state and stays in that new state for at least 30 seconds.",
"conditions": "The location change must be a genuine transition, meaning the new state is different from the previous state.",
"action": "The automation constructs a notification message. It determines if the person is arriving or leaving, selects the appropriate zone name and emoji, and then sends a text notification via the script.text_notify_parents [script.text_notify_parents] script."
},
"human_like": "Sends a text notification to parents when David or Gem arrives at or leaves a location, using friendly messages and emojis.",
"complexity": "medium"
}
},
{
"id": "Octoplus Join Saving Session",
"result": {
"structured": "TRIGGER: When octopus_energy_new_octoplus_saving_session event fires OR When the time reaches two before start of saving session [input_datetime.two_before_start_of_saving_session] OR When the time reaches saving session start [input_datetime.saving_session_start] OR When the time reaches saving session end [input_datetime.saving_session_end] OR When solaredge i1 advanced power control switch [switch.solaredge_i1_advanced_power_control] changes from unavailable to on OR When heater greenhouse s1 switch [switch.heater_greenhouse_s1] changes from off to on (immediately). CONDITIONS: None (global). ACTIONS: Choose based on trigger: 1. IF triggered by Event Fired: Join the saving session via octopus energy a e0d4de23 octoplus saving session events [event.octopus_energy_a_e0d4de23_octoplus_saving_session_events], send notifications, turn on saving session enrolled [input_boolean.saving_session_enrolled] and allow battery grid discharge [input_boolean.allow_battery_grid_discharge], wait 2 minutes, then set two before start of saving session [input_datetime.two_before_start_of_saving_session], saving session start [input_datetime.saving_session_start], and saving session end [input_datetime.saving_session_end] based on next_joined_event attributes. 2. IF triggered by Pre Charge Battery AND saving session enrolled [input_boolean.saving_session_enrolled] is on: Run grid charge battery script [script.grid_charge_battery], wait 1 hour, then cancel timer home battery 3 hour charge period timer [timer.home_battery_3_hour_charge_period]. 3. IF triggered by Start AND allow battery grid discharge [input_boolean.allow_battery_grid_discharge] is on AND saving session enrolled [input_boolean.saving_session_enrolled] is on: Run force discharge battery script [script.force_discharge_battery], then IF humidifier garage dehumidifier 2 [humidifier.garage_dehumidifier_2] is on, turn it off, and IF heater greenhouse s1 switch [switch.heater_greenhouse_s1] is on, turn it off. 4. IF triggered by End: Stop force discharge battery script [script.force_discharge_battery], set device 952193e87f675ba7f7e32eda5500c572 entity 0bdfb19491b49722c2a94351b9a673aa [0bdfb19491b49722c2a94351b9a673aa] to 'Maximize Self Consumption', turn off allow battery grid discharge [input_boolean.allow_battery_grid_discharge] and saving session enrolled [input_boolean.saving_session_enrolled], turn on humidifier garage dehumidifier 2 [humidifier.garage_dehumidifier_2], wait 1 minute, then IF greenhouse thermometer temperature sensor [sensor.greenhouse_thermometer_temperature] is below 1, turn on heater greenhouse s1 switch [switch.heater_greenhouse_s1]. 5. IF triggered by Inverter Reset AND saving session enrolled [input_boolean.saving_session_enrolled] is on AND allow battery grid discharge [input_boolean.allow_battery_grid_discharge] is on AND the current time is after saving session start [input_datetime.saving_session_start] and before saving session end [input_datetime.saving_session_end]: Run force discharge battery script [script.force_discharge_battery]. 6. IF triggered by Greenhouse On AND octopus energy a e0d4de23 octoplus saving sessions binary sensor [binary_sensor.octopus_energy_a_e0d4de23_octoplus_saving_sessions] is on: Turn off heater greenhouse s1 switch [switch.heater_greenhouse_s1].",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when a new Octopus Energy saving session event is announced, at specific times set by input_datetime helpers (two hours before the session, at the session start, and at the session end), when the solar inverter switch becomes available, or when the greenhouse heater is turned on.",
"conditions": "There are no global conditions applied to all triggers. However, each branch of the automation's actions has its own set of conditions that must be met for that specific sequence to run.",
"action": "Depending on which trigger occurs, the automation performs different actions. When a new saving session event is detected, it enrolls the household, sends notifications, updates status flags, and sets up time helpers. Two hours before the session, if enrolled, it charges the battery from the grid. At the session start, if enabled, it forces the battery to discharge and turns off non-essential devices like the greenhouse heater and garage dehumidifier. At the session end, it stops the forced discharge, resets the battery mode, turns off the session flags, and restarts devices, turning the greenhouse heater back on only if it's very cold. If the solar inverter resets during an active session, it re-initiates battery discharge. If the greenhouse heater is turned on during an active saving session, it is immediately turned off."
},
"human_like": "Automatically manages participation in Octopus Energy saving sessions by enrolling, charging the battery beforehand, discharging it during the session to save money, and controlling non-essential appliances.",
"complexity": "high"
}
},
{
"id": "'Octopus Flux Rates Switch for Utility Meter '",
"result": {
"structured": "TRIGGER: When the time is 02:00:00 (Cheap Rate) OR When the time is 05:00:00 (Standard Rate) OR When the time is 16:00:00 (Peak Rate) OR When the time is 19:00:00 (Standard Rate Again). CONDITIONS: None. ACTIONS: If the trigger is Cheap Rate, then set octopus flux import rate select [select.octopus_flux_import_rate] to 'Flux Cheap Import' AND set octopus flux export rates select [select.octopus_flux_export_rates] to 'Flux Cheap Export Rate'. If the trigger is Standard Rate, then set octopus flux import rate select [select.octopus_flux_import_rate] to 'Flux Standard Import' AND set octopus flux export rates select [select.octopus_flux_export_rates] to 'Flux Standard Export Rate'. If the trigger is Peak Rate, then set octopus flux import rate select [select.octopus_flux_import_rate] to 'Flux Peak Import' AND set octopus flux export rates select [select.octopus_flux_export_rates] to 'Flux Peak Export Rate'. If the trigger is Standard Rate Again, then set octopus flux import rate select [select.octopus_flux_import_rate] to 'Flux Standard Import' AND set octopus flux export rates select [select.octopus_flux_export_rates] to 'Flux Standard Export Rate'.",
"natural_language": {
"trigger": "The automation is triggered at four specific times of day: 2:00 AM, 5:00 AM, 4:00 PM, and 7:00 PM.",
"conditions": "There are no conditions that must be met for the actions to run.",
"action": "Depending on which time triggered the automation, it will set the electricity import and export rates. At 2:00 AM, it sets the import rate to 'Flux Cheap Import' and the export rate to 'Flux Cheap Export Rate'. At 5:00 AM, it sets the import rate to 'Flux Standard Import' and the export rate to 'Flux Standard Export Rate'. At 4:00 PM, it sets the import rate to 'Flux Peak Import' and the export rate to 'Flux Peak Export Rate'. At 7:00 PM, it sets the import rate to 'Flux Standard Import' and the export rate to 'Flux Standard Export Rate'."
},
"human_like": "This automation updates the electricity import and export rate selections at specific times of day to match the Octopus Flux tariff schedule.",
"complexity": "medium"
}
},
{
"id": "Peak/Cheap rate select for Go Utility meter",
"result": {
"structured": "TRIGGER: At 00:30:00 (with variable 'tariff' set to 'Off Peak') OR At 05:30:00 (with variable 'tariff' set to 'Peak'). CONDITIONS: None. ACTIONS: Set octopus go select [select.octopus_go] to the value of the variable 'tariff'.",
"natural_language": {
"trigger": "The automation triggers every day at 12:30 AM and again at 5:30 AM.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "It sets the octopus go select [select.octopus_go] to 'Off Peak' at 12:30 AM and to 'Peak' at 5:30 AM."
},
"human_like": "Automatically switches the Octopus Go electricity tariff between 'Off Peak' and 'Peak' rates at scheduled times each day.",
"complexity": "low"
}
},
{
"id": "Office and Garage Presence",
"result": {
"structured": "TRIGGER: When office presence sensor occupancy binary sensor [binary_sensor.office_presence_sensor_occupancy] changes from off to on OR When garage camera cell motion detection binary sensor [binary_sensor.garage_camera_cell_motion_detection] changes from off to on OR When office pop media player [media_player.office_pop] attribute last_called changes to true OR When office presence sensor occupancy binary sensor [binary_sensor.office_presence_sensor_occupancy] changes from on to off OR When garage camera cell motion detection binary sensor [binary_sensor.garage_camera_cell_motion_detection] changes from on to off. CONDITIONS: None. ACTIONS: Choose based on trigger: IF trigger is Office Presence OR Alexa THEN set room presence input text [input_text.room_presence] to 'office' AND turn on room occupied office input boolean [input_boolean.room_occupied_office]. IF trigger is Garage Presence THEN set room presence input text [input_text.room_presence] to 'garage' AND turn on room occupied garage input boolean [input_boolean.room_occupied_garage]. IF trigger is Garage Absence THEN turn off room occupied garage input boolean [input_boolean.room_occupied_garage]. IF trigger is Office Absence THEN turn off room occupied office input boolean [input_boolean.room_occupied_office].",
"natural_language": {
"trigger": "The automation can be triggered in five ways: when the office presence sensor occupancy binary sensor [binary_sensor.office_presence_sensor_occupancy] starts detecting occupancy (changes from off to on), when the garage camera cell motion detection binary sensor [binary_sensor.garage_camera_cell_motion_detection] starts detecting motion (changes from off to on), when the office pop media player [media_player.office_pop] has its last_called attribute set to true, when the office presence sensor occupancy binary sensor [binary_sensor.office_presence_sensor_occupancy] stops detecting occupancy (changes from on to off), or when the garage camera cell motion detection binary sensor [binary_sensor.garage_camera_cell_motion_detection] stops detecting motion (changes from on to off).",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "The automation performs different actions depending on which trigger fired. If the trigger was the office sensor detecting occupancy or the Alexa device being called, it sets the room presence input text [input_text.room_presence] to 'office' and turns on the room occupied office input boolean [input_boolean.room_occupied_office]. If the trigger was the garage sensor detecting motion, it sets the room presence input text [input_text.room_presence] to 'garage' and turns on the room occupied garage input boolean [input_boolean.room_occupied_garage]. If the trigger was the garage sensor stopping motion detection, it turns off the room occupied garage input boolean [input_boolean.room_occupied_garage]. If the trigger was the office sensor stopping occupancy detection, it turns off the room occupied office input boolean [input_boolean.room_occupied_office]."
},
"human_like": "Tracks presence in the office and garage by updating a status text and turning on/off occupancy flags when motion is detected or an Alexa device is used.",
"complexity": "medium"
}
},
{
"id": "Office Assistants",
"result": {
"structured": "TRIGGER: When gem workstation power [sensor.gem_workstation_power] is above 60 OR When gem workstation power [sensor.gem_workstation_power] is below 10 OR When Gem Workstation Power [binary_sensor.gem_workstation_power] changes from off to on and remains for 30 seconds OR When Gem Workstation Power [binary_sensor.gem_workstation_power] changes from on to off and remains for 30 seconds OR When assist satellite jarvis office assist satellite [assist_satellite.jarvis_office_assist_satellite] is responding and remains for 3 minutes. CONDITIONS: holiday mode input boolean [input_boolean.holiday_mode] is off AND gem holidays calendar [calendar.gem_holidays] is off. ACTIONS: Choose based on trigger: 1. IF trigger is Office Open AND workday sensor binary sensor [binary_sensor.workday_sensor] is on AND office hours binary sensor [binary_sensor.office_hours] is on AND office welcome played input boolean [input_boolean.office_welcome_played] is off AND office in use input boolean [input_boolean.office_in_use] is off THEN run script office welcome message [script.office_welcome_message] in office, delay 1 minute 15 seconds, run script jarvis speech engine v3 0 [script.jarvis_speech_engine_v3_0] with message, turn off office echo local switch [switch.office_echo_local], turn on office welcome played input boolean [input_boolean.office_welcome_played], turn on office in use input boolean [input_boolean.office_in_use], delay 30 seconds, turn on jarvis office mute switch [switch.jarvis_office_mute]. 2. IF trigger is Office Closed AND office in use input boolean [input_boolean.office_in_use] is on THEN turn on office echo local switch [switch.office_echo_local], turn off jarvis office mute switch [switch.jarvis_office_mute], run script jarvis speech engine v3 0 [script.jarvis_speech_engine_v3_0] with random goodbye message, delay 1 minute 30 seconds, send whispered notification via notify alexa media [notify.alexa_media] to office pop media player [media_player.office_pop], turn off office in use input boolean [input_boolean.office_in_use]. 3. IF trigger is Office in use AND office echo local switch [switch.office_echo_local] is on AND office in use input boolean [input_boolean.office_in_use] is on THEN run script jarvis speech engine v3 0 [script.jarvis_speech_engine_v3_0] with random privacy announcement, delay 20 seconds, turn off office echo local switch [switch.office_echo_local], turn on jarvis office mute switch [switch.jarvis_office_mute]. 4. IF trigger is Office not in use AND office in use input boolean [input_boolean.office_in_use] is on THEN turn on office echo local switch [switch.office_echo_local], turn off jarvis office mute switch [switch.jarvis_office_mute], run script jarvis speech engine v3 0 [script.jarvis_speech_engine_v3_0] with random welcome back message. 5. IF trigger is Restart THEN press button jarvis office restart [button.jarvis_office_restart], wait for assist satellite jarvis office assist satellite [assist_satellite.jarvis_office_assist_satellite] to become available (timeout 1 minute), run script text notify dave [script.text_notify_dave], set volume on jarvis office media player [media_player.jarvis_office_media_player] to low if quiet time boys binary sensor [binary_sensor.quiet_time_boys] is on, else to announcement level.",
"natural_language": {
"trigger": "The automation can be triggered by several events: when the workstation power consumption rises above 60 watts, when it drops below 10 watts, when the workstation power binary sensor indicates it has been in use for 30 seconds, when it indicates it has not been in use for 30 seconds, or when the office voice assistant satellite has been in a 'responding' state for three minutes.",
"conditions": "Two global conditions must be met for any action to occur: the holiday mode must be turned off, and the holiday calendar must not be indicating a holiday.",
"action": "The automation performs different sequences of actions depending on which trigger fired. If the workstation power is high and it's a workday during office hours, it plays a welcome message, mutes the microphone, and marks the office as in use. If the power drops low while the office is marked in use, it plays a humorous goodbye, unmutes the microphone, and marks the office as not in use. If the workstation is actively used (power sensor on), it announces privacy mode and mutes the local speaker. If the workstation stops being used, it announces its return and unmutes. If the voice assistant satellite is stuck responding, it restarts the satellite, notifies the user, and adjusts the speaker volume based on the time of day."
},
"human_like": "This automation manages the office assistant's behavior, providing welcome and goodbye messages, toggling privacy modes based on computer usage, and restarting the assistant if needed, all while respecting holidays and work hours.",
"complexity": "high"
}
},
{
"id": "Office Lights with Presence",
"result": {
"structured": "TRIGGER: When office presence sensor occupancy binary sensor [binary_sensor.office_presence_sensor_occupancy] changes from off to on OR When office occupied binary sensor [binary_sensor.office_occupied] changes from on to off. CONDITIONS: None. ACTIONS: Choose one sequence based on conditions. IF (Trigger is Light on) AND (It is before sunrise OR after sunset OR (office light level sensor [sensor.office_light_level] is below low light threshold input number [input_number.low_light_threshold] AND (day of week sensor [sensor.day_of_week] is Saturday OR day of week sensor [sensor.day_of_week] is Sunday))) THEN Turn on office light switch [switch.office_light_switch]. IF (Trigger is Light off) AND (office light switch [switch.office_light_switch] is on) AND (gem workstation status binary sensor [binary_sensor.gem_workstation_status] is off) AND (dave and gemma dave and gemma monitorpowerstate sensor [sensor.dave_and_gemma_dave_and_gemma_monitorpowerstate] is PowerOff OR unavailable) THEN Turn off office light switch [switch.office_light_switch].",
"natural_language": {
"trigger": "The automation is triggered when the office presence sensor occupancy binary sensor [binary_sensor.office_presence_sensor_occupancy] detects someone entering the office, or when the office occupied binary sensor [binary_sensor.office_occupied] indicates the office is no longer occupied.",
"conditions": "There are no global conditions; all conditions are evaluated within the action choices.",
"action": "When triggered by someone entering the office, the light will turn on if it's either before sunrise or after sunset, or if it's a weekend and the office light level sensor [sensor.office_light_level] is below the low light threshold input number [input_number.low_light_threshold]. When triggered by the office becoming unoccupied, the light will turn off only if the office light switch [switch.office_light_switch] is currently on, the gem workstation status binary sensor [binary_sensor.gem_workstation_status] is off, and the dave and gemma dave and gemma monitorpowerstate sensor [sensor.dave_and_gemma_dave_and_gemma_monitorpowerstate] is either off or unavailable."
},
"human_like": "Automatically turns the office lights on when someone enters, based on time of day and light levels, and turns them off when the office is empty and computers are not in use.",
"complexity": "high"
}
},
{
"id": "Office Tablet Charger Toggle",
"result": {
"structured": "TRIGGER: When kindle tablet battery level sensor [sensor.kindle_tablet_battery_level] drops below 30 OR When kindle tablet battery level sensor [sensor.kindle_tablet_battery_level] rises above 99. CONDITIONS: None. ACTIONS: If the trigger was Battery Low, turn on office tablet charger switch [switch.office_tablet_charger]. If the trigger was Battery Charged, turn off office tablet charger switch [switch.office_tablet_charger].",
"natural_language": {
"trigger": "When the battery level of the Kindle tablet [sensor.kindle_tablet_battery_level] falls below 30%, or when it rises above 99%.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "Depending on which trigger occurred: if the battery is low, the automation turns on the office tablet charger [switch.office_tablet_charger]. If the battery is charged, it turns the charger off."
},
"human_like": "Automatically turns the tablet charger on when the battery is low and off when it's fully charged to maintain the battery level between 30% and 100%.",
"complexity": "medium"
}
},
{
"id": "Open Marauders' Map",
"result": {
"structured": "TRIGGER: When office presence sensor occupancy binary sensor [binary_sensor.office_presence_sensor_occupancy] becomes occupied (on) OR When office occupied binary sensor [binary_sensor.office_occupied] becomes unoccupied (off). CONDITIONS: None. ACTIONS: Choose based on trigger: If trigger is Open AND part of day input select [input_select.part_of_day] is Evening OR Bedtime OR Overnight AND studio code server running binary sensor [binary_sensor.studio_code_server_running] is off AND marauding in process input boolean [input_boolean.marauding_in_process] is off, then run marauders map opens script [script.marauders_map_opens] and turn on marauding in process input boolean [input_boolean.marauding_in_process]. If trigger is Close AND part of day input select [input_select.part_of_day] is Evening OR Bedtime OR Overnight AND studio code server running binary sensor [binary_sensor.studio_code_server_running] is off, then run marauders map closes script [script.marauders_map_closes] and turn off marauding in process input boolean [input_boolean.marauding_in_process].",
"natural_language": {
"trigger": "The automation triggers in two ways: when the office presence sensor occupancy binary sensor [binary_sensor.office_presence_sensor_occupancy] detects someone entering the office, or when the office occupied binary sensor [binary_sensor.office_occupied] changes from occupied to unoccupied.",
"conditions": "There are no global conditions; the conditions are evaluated separately for each possible action path.",
"action": "Depending on which trigger fired, the automation performs one of two sequences. If the trigger was someone entering the office, and the current part of day is Evening, Bedtime, or Overnight, and the studio code server is not running, and the marauding process is not already active, then it runs the 'Marauders' Map opens' script and marks the process as active. If the trigger was the office becoming unoccupied, and the current part of day is Evening, Bedtime, or Overnight, and the studio code server is not running, then it runs the 'Marauders' Map closes' script and marks the process as inactive."
},
"human_like": "Automatically opens or closes a 'Marauders' Map' display when someone enters or leaves the office during the evening or night, provided the code server isn't running.",
"complexity": "medium"
}
},
{
"id": "Overnight Device Charging",
"result": {
"structured": "TRIGGER: When octopus energy target car battery charge [binary_sensor.octopus_energy_target_car_battery_charge] changes from off to on OR When octopus energy target car battery charge [binary_sensor.octopus_energy_target_car_battery_charge] changes from on to off. CONDITIONS: None. ACTIONS: If the trigger is Start, then turn on ad hoc charging local switch [switch.ad_hoc_charging_local] AND turn on ad hoc charging 2 local switch [switch.ad_hoc_charging_2_local]. If the trigger is Stop, then turn off ad hoc charging local switch [switch.ad_hoc_charging_local] AND turn off ad hoc charging 2 local switch [switch.ad_hoc_charging_2_local].",
"natural_language": {
"trigger": "When the octopus energy target car battery charge [binary_sensor.octopus_energy_target_car_battery_charge] becomes active (turns on) or becomes inactive (turns off).",
"conditions": "There are no conditions for this automation.",
"action": "If the battery charge target starts, the automation turns on both the ad hoc charging local switch [switch.ad_hoc_charging_local] and the ad hoc charging 2 local switch [switch.ad_hoc_charging_2_local]. If the battery charge target stops, the automation turns off both of those switches."
},
"human_like": "Controls two charging switches based on a car battery charge target, turning them on when charging is scheduled and off when it ends.",
"complexity": "low"
}
},
{
"id": "Peak/Cheap rate select for Go Utility meter",
"result": {
"structured": "TRIGGER: At 00:30:00 (with variable tariff set to 'Cheap') OR At 05:30:00 (with variable tariff set to 'Peak'). CONDITIONS: None. ACTIONS: Set octopus go select [select.octopus_go] to the option defined by the variable 'tariff'.",
"natural_language": {
"trigger": "The automation triggers daily at 12:30 AM and at 5:30 AM. At 12:30 AM, an internal variable named 'tariff' is set to 'Cheap'. At 5:30 AM, the same variable is set to 'Peak'.",
"conditions": "There are no conditions that must be met for the action to run.",
"action": "Sets the octopus go select [select.octopus_go] to the value stored in the 'tariff' variable, which will be either 'Cheap' or 'Peak' depending on the time of the trigger."
},
"human_like": "Automatically switches the Octopus Go electricity tariff selection between 'Cheap' and 'Peak' rates at scheduled times each day.",
"complexity": "low"
}
},
{
"id": "Plant Shame - Water Me!",
"result": {
"structured": "TRIGGER: When any of the soil moisture sensors (gw2000a soil moisture 1 sensor [sensor.gw2000a_soil_moisture_1], gw2000a soil moisture 2 sensor [sensor.gw2000a_soil_moisture_2], gw2000a soil moisture 3 sensor [sensor.gw2000a_soil_moisture_3], gw2000a soil moisture 4 sensor [sensor.gw2000a_soil_moisture_4], gw2000a soil moisture 5 sensor [sensor.gw2000a_soil_moisture_5], gw2000a soil moisture 6 sensor [sensor.gw2000a_soil_moisture_6]) reports a numeric state below 25. CONDITIONS: The corresponding input_boolean alert flag for the triggering sensor (input_boolean.[sensor_id]_alert_sent) is off. ACTIONS: If the current time is between 08:00:00 and 12:00:00, then execute the jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a snarky message about the plant's low moisture and turn on the corresponding alert flag. Otherwise, wait until 08:00:00, confirm the time is still before 12:00:00, then execute the speech script and turn on the alert flag.",
"natural_language": {
"trigger": "When any of the six greenhouse soil moisture sensors (e.g., gw2000a soil moisture 1 sensor [sensor.gw2000a_soil_moisture_1]) detects a moisture level falling below 25%.",
"conditions": "The automation only proceeds if a specific alert flag for that particular sensor (named input_boolean.[sensor_id]_alert_sent) is currently off, indicating a reminder for this sensor has not already been sent.",
"action": "If the trigger happens between 8 AM and 12 PM, a snarky audio message about the dry plant is played via the jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] and the corresponding alert flag is turned on to prevent repeat messages. If the trigger happens outside that morning window, the automation waits until 8 AM the next day, confirms it's still before noon, then plays the message and turns on the flag."
},
"human_like": "Plays a snarky voice reminder in the morning when a plant's soil gets too dry, ensuring alerts are only sent once per dry event.",
"complexity": "medium"
}
},
{
"id": "Play Jamies Morning Briefing",
"result": {
"structured": "TRIGGER: At the time set in jamies morning briefing input datetime [input_datetime.jamies_morning_briefing] plus 10 seconds. CONDITIONS: (schoolday binary sensor [binary_sensor.schoolday] is on OR fridayschool binary sensor [binary_sensor.fridayschool] is on) AND audible notifications input boolean [input_boolean.audible_notifications] is on AND jamies morning briefing played input boolean [input_boolean.jamies_morning_briefing_played] is off. ACTIONS: Execute jamie briefing v2 0 script [script.jamie_briefing_v2_0].",
"natural_language": {
"trigger": "The automation triggers 10 seconds after the scheduled time set in the jamies morning briefing input datetime [input_datetime.jamies_morning_briefing].",
"conditions": "It requires that today is a school day, indicated by either the schoolday binary sensor [binary_sensor.schoolday] or the fridayschool binary sensor [binary_sensor.fridayschool] being on. Additionally, the audible notifications input boolean [input_boolean.audible_notifications] must be enabled, and the jamies morning briefing played input boolean [input_boolean.jamies_morning_briefing_played] must be off, meaning the briefing hasn't been played yet today.",
"action": "It runs the jamie briefing v2 0 script [script.jamie_briefing_v2_0]."
},
"human_like": "Plays Jamie's morning briefing at a scheduled time on school days, but only if notifications are enabled and the briefing hasn't already been played.",
"complexity": "medium"
}
},
{
"id": "Play Morning Briefing",
"result": {
"structured": "TRIGGER: When kitchen presence sensor presence sensor 1 binary sensor [binary_sensor.kitchen_presence_sensor_presence_sensor_1] changes from off to on OR at the time specified by morning report input datetime [input_datetime.morning_report]. CONDITIONS: None. ACTIONS: Choose one of two sequences based on trigger and conditions. Sequence 1: IF (trigger is presence) AND (morning briefing played input boolean [input_boolean.morning_briefing_played] is off) AND (audible notifications input boolean [input_boolean.audible_notifications] is on) AND (current time is after morning report earliest time input datetime [input_datetime.morning_report_earliest_time] AND before morning report latest time input datetime [input_datetime.morning_report_latest_time]) THEN execute script kitchen morning message script [script.kitchen_morning_message]. Sequence 2: IF (trigger is time) AND ((calendar school holidays calendar [calendar.school_holidays] is on) OR (workday sensor binary sensor [binary_sensor.workday_sensor] is off)) AND (morning briefing played input boolean [input_boolean.morning_briefing_played] is off) THEN execute script kitchen morning message script [script.kitchen_morning_message].",
"natural_language": {
"trigger": "The automation triggers either when the kitchen presence sensor presence sensor 1 binary sensor [binary_sensor.kitchen_presence_sensor_presence_sensor_1] detects a change from absent to present, or at a specific scheduled time defined by morning report input datetime [input_datetime.morning_report].",
"conditions": "There are no global conditions. The automation uses a choose action with two separate sets of conditions that are evaluated based on which trigger occurred.",
"action": "The automation performs a conditional action. If the trigger was the presence sensor turning on, it will play the morning message only if the morning briefing hasn't been played yet, audible notifications are enabled, and the current time is within the allowed morning window. If the trigger was the scheduled time, it will play the morning message only if the morning briefing hasn't been played yet and it's either a school holiday or a non-workday."
},
"human_like": "Plays a morning briefing message either when someone enters the kitchen during the morning window or at a scheduled time on non-workdays or holidays.",
"complexity": "medium"
}
},
{
"id": "Play Seans Morning Briefing",
"result": {
"structured": "TRIGGER: When the time reaches the value set in seans morning briefing input datetime [input_datetime.seans_morning_briefing]. CONDITIONS: (schoolday binary sensor [binary_sensor.schoolday] is on OR fridayschool binary sensor [binary_sensor.fridayschool] is on) AND audible notifications input boolean [input_boolean.audible_notifications] is on AND seans morning briefing played input boolean [input_boolean.seans_morning_briefing_played] is off. ACTIONS: Execute sean briefing v2 0 script [script.sean_briefing_v2_0].",
"natural_language": {
"trigger": "At the scheduled time set in seans morning briefing input datetime [input_datetime.seans_morning_briefing].",
"conditions": "It must be a school day, indicated by either the schoolday binary sensor [binary_sensor.schoolday] or the fridayschool binary sensor [binary_sensor.fridayschool] being on. Audible notifications must be enabled, meaning the audible notifications input boolean [input_boolean.audible_notifications] is on. Finally, the briefing must not have already been played today, so the seans morning briefing played input boolean [input_boolean.seans_morning_briefing_played] must be off.",
"action": "Plays Sean's morning briefing by running the script sean briefing v2 0 [script.sean_briefing_v2_0]."
},
"human_like": "Plays Sean's morning briefing at a scheduled time on school days, but only if audible notifications are enabled and the briefing hasn't been played yet.",
"complexity": "medium"
}
},
{
"id": "Push HA Config to GitHub",
"result": {
"structured": "TRIGGER: At 02:00:00 daily. CONDITIONS: None. ACTIONS: Execute shell command pushupdates to github [shell_command.pushupdates_to_github].",
"natural_language": {
"trigger": "Every day at 2:00 AM.",
"conditions": "There are no conditions that must be met.",
"action": "Runs the shell command pushupdates to github [shell_command.pushupdates_to_github]."
},
"human_like": "Automatically pushes the Home Assistant configuration to GitHub every night at 2 AM.",
"complexity": "low"
}
},
{
"id": "Repeat Last Message or Announcement",
"result": {
"structured": "TRIGGER: When a conversation command matches one of the following phrases: 'sorry I missed what you just said please repeat say again', 'what did you just say', 'say that again', or 'repeat your last message announcement'. CONDITIONS: None. ACTIONS: Execute the play last message 2 script [script.play_last_message_2].",
"natural_language": {
"trigger": "When a user speaks a phrase asking for a repeat, such as 'sorry I missed what you just said', 'what did you just say', 'say that again', or 'repeat your last message'.",
"conditions": "There are no conditions that must be met.",
"action": "Runs the 'play last message 2' script [script.play_last_message_2]."
},
"human_like": "Repeats the last message or announcement when asked.",
"complexity": "low"
}
},
{
"id": "Rolec EV Chargepoint schedule",
"result": {
"structured": "TRIGGER: When octopus energy target intermittent best rates total 4 hours [binary_sensor.octopus_energy_target_intermittent_best_rates_total_4_hours] turns from off to on OR When octopus energy target intermittent best rates total 4 hours [binary_sensor.octopus_energy_target_intermittent_best_rates_total_4_hours] turns from on to off OR When shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7] becomes available (from unavailable) OR When timer.rolec_4_hour_charge_period [timer.rolec_4_hour_charge_period] finishes OR At 20:59:00 OR When solaredge i1 advanced power control switch [switch.solaredge_i1_advanced_power_control] becomes available and turns on. CONDITIONS: None. ACTIONS: Choose one action sequence based on trigger and state conditions: 1. If triggered by Activate Charge Session (time 20:59:00), turn on rolec battery master input boolean [input_boolean.rolec_battery_master]. 2. If triggered by On (best rates turn on) AND rolec battery master input boolean [input_boolean.rolec_battery_master] is on, set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to the value of desired battery output limit for overnight ev charging input number [input_number.desired_battery_output_limit_for_overnight_ev_charging], turn on shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7], and start timer.rolec_4_hour_charge_period [timer.rolec_4_hour_charge_period]. 3. If triggered by Off (best rates turn off), turn off shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7], set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to the value of default battery output limit input number [input_number.default_battery_output_limit], and pause timer.rolec_4_hour_charge_period [timer.rolec_4_hour_charge_period]. 4. If triggered by Rolec Available (shelly1 becomes available) AND octopus energy target intermittent best rates total 4 hours [binary_sensor.octopus_energy_target_intermittent_best_rates_total_4_hours] is on AND shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7] is off AND rolec battery master input boolean [input_boolean.rolec_battery_master] is on AND timer.rolec_4_hour_charge_period [timer.rolec_4_hour_charge_period] is active, turn on shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7] and send a notification to mobile app [notify.mobile_app_{{states('input_text.my_mobile_phone_id')}}] with title 'ROLEC ON'. 5. If triggered by Rolec Available (shelly1 becomes available) AND octopus energy target intermittent best rates total 4 hours [binary_sensor.octopus_energy_target_intermittent_best_rates_total_4_hours] is off AND shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7] is on, turn off shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7] and send a notification to mobile app [notify.mobile_app_{{states('input_text.my_mobile_phone_id')}}] with title 'ROLEC OFF'. 6. If triggered by Stop Charge (timer finishes), turn off shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7] and turn off rolec battery master input boolean [input_boolean.rolec_battery_master]. 7. If triggered by Inverter Reset (inverter becomes available and on) AND solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] is above 100 AND shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7] is on AND timer.rolec_4_hour_charge_period [timer.rolec_4_hour_charge_period] is active, set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to the value of desired battery output limit for overnight ev charging input number [input_number.desired_battery_output_limit_for_overnight_ev_charging].",
"natural_language": {
"trigger": "The automation can be triggered in several ways: when the 'octopus energy target intermittent best rates total 4 hours' sensor [binary_sensor.octopus_energy_target_intermittent_best_rates_total_4_hours] turns on or off; when the 'shelly1 c45bbe7867c7 switch' [switch.shelly1_c45bbe7867c7] becomes available; when the 'rolec 4 hour charge period' timer [timer.rolec_4_hour_charge_period] finishes; at 20:59:00 each day; or when the 'solaredge i1 advanced power control switch' [switch.solaredge_i1_advanced_power_control] becomes available and turns on.",
"conditions": "There are no global conditions. The automation uses a series of conditional action blocks, where each block has its own set of conditions that must be met for its actions to run, depending on which trigger activated the automation.",
"action": "The automation selects one of seven possible action sequences based on the specific trigger and the current state of various devices. These actions manage an electric vehicle (EV) charge point by turning the charger on or off, adjusting battery discharge limits, controlling a master switch, starting or pausing a timer, and sending mobile notifications. The specific actions are: 1) At 20:59, enable the master control. 2) When cheap energy rates start and the master is on, set the battery to a charging-friendly limit, turn on the charger, and start a 4-hour timer. 3) When cheap energy rates end, turn off the charger, reset the battery limit, and pause the timer. 4) If the charger becomes available during a cheap-rate, active charging session, turn it on and send an 'ON' notification. 5) If the charger becomes available outside of a cheap-rate period but is on, turn it off and send an 'OFF' notification. 6) When the 4-hour timer finishes, turn off the charger and the master control. 7) If the inverter resets during an active charge, re-apply the charging battery limit."
},
"human_like": "This automation manages an EV charger to take advantage of cheap electricity rates, automatically starting and stopping a 4-hour charge session, adjusting home battery usage, and sending notifications.",
"complexity": "high"
}
},
{
"id": "Rolec EV Chargepoint Go Schedule",
"result": {
"structured": "TRIGGER: At 20:59:00 (Activate Charge Session) OR When target timeframes octopus energy charge car [binary_sensor.target_timeframes_octopus_energy_charge_car] changes from off to on (start) OR When target timeframes octopus energy charge car [binary_sensor.target_timeframes_octopus_energy_charge_car] changes from on to off (stop) OR When shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7] changes from unavailable to any state (Shelly Reconnected) OR When solaredge i1 advanced power control switch [switch.solaredge_i1_advanced_power_control] changes from unavailable to on AND remains for 1 minute (Inverter Reset) OR When car plugged in input boolean [input_boolean.car_plugged_in] changes from on to off (Session end) OR When rolec chargepoint flap binary sensor [binary_sensor.rolec_chargepoint_flap] changes from off to on AND remains for 1 minute (Flap open) OR When rolec chargepoint flap binary sensor [binary_sensor.rolec_chargepoint_flap] changes from on to off AND remains for 1 minute (Flap closed). CONDITIONS: None (global). ACTIONS: Choose based on trigger and conditions: 1. IF trigger is Activate Charge Session THEN (car plugged in input boolean [input_boolean.car_plugged_in] is on) AND turn on rolec battery master input boolean [input_boolean.rolec_battery_master] AND publish rolec energy consumption yearly sensor [sensor.rolec_energy_consumption_yearly] value to rolec/energy/start AND publish car battery charge level input number [input_number.car_battery_charge_level] value to car/battery/start. 2. IF trigger is start AND rolec battery master input boolean [input_boolean.rolec_battery_master] is on AND car plugged in input boolean [input_boolean.car_plugged_in] is on THEN turn on shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7], wait 5 seconds, set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to desired battery output limit for overnight ev charging input number [input_number.desired_battery_output_limit_for_overnight_ev_charging] value. 3. IF trigger is stop AND rolec battery master input boolean [input_boolean.rolec_battery_master] is on AND car plugged in input boolean [input_boolean.car_plugged_in] is on THEN turn off shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7], wait 5 seconds, set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to default battery output limit input number [input_number.default_battery_output_limit] value, turn off rolec battery master input boolean [input_boolean.rolec_battery_master], publish rolec energy consumption yearly sensor [sensor.rolec_energy_consumption_yearly] value to rolec/energy/end, wait 5 seconds, publish calculated used energy (rolec energy end session sensor [sensor.rolec_energy_end_session] minus rolec energy start session sensor [sensor.rolec_energy_start_session]) to rolec/energy/used, wait 5 seconds, publish calculated battery end percentage to car/battery/end, wait 5 seconds, publish calculated battery added percentage to car/battery/added, wait 5 seconds, set car battery charge level input number [input_number.car_battery_charge_level] to battery level end session sensor [sensor.battery_level_end_session] value, wait 5 seconds, set ev charge length hrs input number [input_number.ev_charge_length_hrs] to 1. 4. IF trigger is Shelly Reconnected AND shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7] is off AND rolec battery master input boolean [input_boolean.rolec_battery_master] is on AND car plugged in input boolean [input_boolean.car_plugged_in] is on AND time is between 00:30:00 and 05:30:00 THEN turn on shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7], run text notify dave script [script.text_notify_dave] with notification, wait 30 seconds, set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to desired battery output limit for overnight ev charging input number [input_number.desired_battery_output_limit_for_overnight_ev_charging] value. 5. IF trigger is Shelly Reconnected AND shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7] is on AND rolec battery master input boolean [input_boolean.rolec_battery_master] is off THEN turn off shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7], run text notify dave script [script.text_notify_dave] with notification. 6. IF trigger is Inverter Reset AND time is between 00:30:00 and 05:30:00 AND shelly1 c45bbe7867c7 switch [switch.shelly1_c45bbe7867c7] is on AND car plugged in input boolean [input_boolean.car_plugged_in] is on AND solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] is above 100 THEN set solaredge i1 storage discharge limit number [number.solaredge_i1_storage_discharge_limit] to desired battery output limit for overnight ev charging input number [input_number.desired_battery_output_limit_for_overnight_ev_charging] value. 7. IF trigger is Flap open THEN turn on car plugged in input boolean [input_boolean.car_plugged_in]. 8. IF trigger is Flap closed THEN turn off car plugged in input boolean [input_boolean.car_plugged_in].",
"natural_language": {
"trigger": "The automation can be triggered by any of the following events: a scheduled time of 8:59 PM, the start or end of a cheap energy tariff window indicated by the target timeframes octopus energy charge car [binary_sensor.target_timeframes_octopus_energy_charge_car], the reconnection of the Shelly switch to the network, the inverter resetting after being unavailable, the car being unplugged, or the EV chargepoint flap being opened or closed for at least one minute.",
"conditions": "There are no global conditions that apply to all triggers. Instead, each possible action sequence has its own set of specific conditions that must be met for it to run.",
"action": "Depending on which trigger occurs and the state of various devices, the automation performs one of several sequences. These include preparing for a charging session, starting or stopping the physical charge, managing the chargepoint when devices reconnect, adjusting home battery discharge limits, and updating the system's record of whether the car is plugged in. It also handles logging energy usage, calculating battery charge levels, and sending notifications."
},
"human_like": "This automation manages overnight EV charging, coordinating the chargepoint, home battery, and energy tariffs to charge the car efficiently and log the session details.",
"complexity": "high"
}
},
{
"id": "Safe Shutdown on power loss",
"result": {
"structured": "TRIGGER: When myups battery charge sensor [sensor.myups_battery_charge] falls below 20%. CONDITIONS: solaredge m1 ac voltage ln sensor [sensor.solaredge_m1_ac_voltage_ln] is below 100. ACTIONS: Execute host shutdown via hassio.host_shutdown.",
"natural_language": {
"trigger": "When the myups battery charge sensor [sensor.myups_battery_charge] reports a value below 20 percent.",
"conditions": "If the solaredge m1 ac voltage ln sensor [sensor.solaredge_m1_ac_voltage_ln] is also below 100 volts.",
"action": "Safely shuts down the Home Assistant host system."
},
"human_like": "Automatically shuts down the Home Assistant host when the UPS battery is low and the mains voltage is also low, indicating a power loss scenario.",
"complexity": "low"
}
},
{
"id": "Schools Out Get Ready",
"result": {
"structured": "TRIGGER: At the time set in get ready for schools out input datetime [input_datetime.get_ready_for_schools_out]. CONDITIONS: (calendar school holidays calendar [calendar.school_holidays] is on) AND (calendar schools out calendar [calendar.schools_out] is on) AND (audible notifications input boolean [input_boolean.audible_notifications] is on) AND (schools out morning announcements played input boolean [input_boolean.schools_out_morning_announcements_played] is off). ACTIONS: Execute boys get dressed schools out script [script.boys_get_dressed_schools_out], wait for 10 minutes, execute boys brush teeth announcement script [script.boys_brush_teeth_announcement], execute living room tv toggle 2 script [script.living_room_tv_toggle_2], and turn on schools out morning announcements played input boolean [input_boolean.schools_out_morning_announcements_played].",
"natural_language": {
"trigger": "At the specific time set in the get ready for schools out input datetime [input_datetime.get_ready_for_schools_out].",
"conditions": "The calendar school holidays calendar [calendar.school_holidays] must be on, indicating a school holiday period. The calendar schools out calendar [calendar.schools_out] must also be on, indicating it's a 'schools out' day. The audible notifications input boolean [input_boolean.audible_notifications] must be on, allowing audible announcements. Finally, the schools out morning announcements played input boolean [input_boolean.schools_out_morning_announcements_played] must be off, meaning this sequence hasn't already been triggered today.",
"action": "First, it runs the boys get dressed schools out script [script.boys_get_dressed_schools_out]. After a 10-minute delay, it runs the boys brush teeth announcement script [script.boys_brush_teeth_announcement]. Then, it runs the living room tv toggle 2 script [script.living_room_tv_toggle_2]. Finally, it marks the announcements as played by turning on the schools out morning announcements played input boolean [input_boolean.schools_out_morning_announcements_played]."
},
"human_like": "On school holidays and 'schools out' days, this automation runs a morning routine for the boys at a scheduled time, including getting dressed, brushing teeth, and turning on the TV, provided announcements are enabled and haven't already played.",
"complexity": "medium"
}
},
{
"id": "Schools Out Pick Up Jamie",
"result": {
"structured": "TRIGGER: When the time reaches the value set in school pick up time friday input datetime [input_datetime.school_pick_up_time_friday]. CONDITIONS: (fridayschool binary sensor [binary_sensor.fridayschool] is on OR calendar schools out calendar [calendar.schools_out] is on) AND audible notifications input boolean [input_boolean.audible_notifications] is on. ACTIONS: If gem home binary sensor [binary_sensor.gem_home] is on, then run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a random announcement message for Dave about picking up Jamie from schools out. Otherwise, run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a random announcement message for Gem about picking up Jamie from schools out. Then, turn on school pick up announcement played input boolean [input_boolean.school_pick_up_announcement_played].",
"natural_language": {
"trigger": "The automation triggers at the specific time set in the school pick up time friday input datetime [input_datetime.school_pick_up_time_friday].",
"conditions": "For the automation to proceed, it must be either a Friday (indicated by the fridayschool binary sensor [binary_sensor.fridayschool] being on) or the schools out calendar [calendar.schools_out] must show an event as active. Additionally, the audible notifications input boolean [input_boolean.audible_notifications] must be turned on, allowing the system to make announcements.",
"action": "The system first checks if Gem is home using the gem home binary sensor [binary_sensor.gem_home]. If Gem is home, it plays a randomly selected humorous announcement message directed at Dave, reminding him to pick up Jamie from school. If Gem is not home, the announcement is played for Gem instead. After the announcement is made, the system marks that the announcement has been played by turning on the school pick up announcement played input boolean [input_boolean.school_pick_up_announcement_played]."
},
"human_like": "This automation gives a playful reminder to a parent to pick up Jamie from school on Fridays or when the school calendar indicates it's time, using a speech engine to deliver the message.",
"complexity": "medium"
}
},
{
"id": "School Pick Up Monday to Thursday v2.0",
"result": {
"structured": "TRIGGER: At the time specified by school pick up time mon to thurs [input_datetime.school_pick_up_time_mon_to_thurs]. CONDITIONS: schoolday [binary_sensor.schoolday] is on AND calendar school holidays [calendar.school_holidays] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on. ACTIONS: IF gem home binary sensor [binary_sensor.gem_home] is on THEN run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with announcement to dave using a random message about school pickup. OTHERWISE run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with announcement to gem using a random message about school pickup. THEN turn on school pick up announcement played input boolean [input_boolean.school_pick_up_announcement_played].",
"natural_language": {
"trigger": "The automation triggers at the specific time set in school pick up time mon to thurs [input_datetime.school_pick_up_time_mon_to_thurs].",
"conditions": "All of the following must be true: it is a schoolday (schoolday [binary_sensor.schoolday] is on), it is not a school holiday (calendar school holidays [calendar.school_holidays] is off), and audible notifications are enabled (audible notifications input boolean [input_boolean.audible_notifications] is on).",
"action": "First, it checks if Gem is home (gem home binary sensor [binary_sensor.gem_home] is on). If she is, it plays a random school pickup announcement message directed to Dave. If Gem is not home, it plays the same random message directed to Gem. Finally, it marks that the announcement has been played by turning on school pick up announcement played input boolean [input_boolean.school_pick_up_announcement_played]."
},
"human_like": "Announces the school pickup time on weekdays when it's a school day and not a holiday, directing the message to the appropriate parent at home.",
"complexity": "medium"
}
},
{
"id": "Sean JARVIS VPE Restart if stuck responding",
"result": {
"structured": "TRIGGER: When assist satellite jarvis sean assist satellite [assist_satellite.jarvis_sean_assist_satellite] remains in state 'responding' for 1 minute. CONDITIONS: None. ACTIONS: 1. Press home assistant voice 095e21 restart button [button.home_assistant_voice_095e21_restart]. 2. Wait for assist satellite jarvis sean assist satellite [assist_satellite.jarvis_sean_assist_satellite] to change from 'unavailable' (within a 1 minute timeout). 3. Execute in parallel: a. Run script.text_notify_dave [script.text_notify_dave] with title 'SEAN VPE' and message 'I have restarted.'. b. If quiet time boys binary sensor [binary_sensor.quiet_time_boys] is on, set jarvis sean media player media player [media_player.jarvis_sean_media_player] volume to the value of jarvis volume level low input number [input_number.jarvis_volume_level_low]; otherwise, set volume to the value of jarvis volume level announcement input number [input_number.jarvis_volume_level_announcement].",
"natural_language": {
"trigger": "When the assist satellite jarvis sean assist satellite [assist_satellite.jarvis_sean_assist_satellite] stays in the 'responding' state for one full minute.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "First, it presses the home assistant voice 095e21 restart button [button.home_assistant_voice_095e21_restart]. Then, it waits for up to one minute for the assist satellite jarvis sean assist satellite [assist_satellite.jarvis_sean_assist_satellite] to become available again. Finally, it performs two actions simultaneously: it sends a text notification to Dave via the text notify dave script [script.text_notify_dave], and it sets the volume of the jarvis sean media player media player [media_player.jarvis_sean_media_player]. The volume is set to a low level if the quiet time boys binary sensor [binary_sensor.quiet_time_boys] is on, or to an announcement level otherwise."
},
"human_like": "Automatically restarts Sean's voice assistant if it gets stuck responding, then notifies Dave and adjusts the speaker volume based on the time of day.",
"complexity": "medium"
}
},
{
"id": "Security System",
"result": {
"structured": "TRIGGER: When any of the listed door/window contact sensors (back door sensor contact [binary_sensor.back_door_sensor_contact], front door sense contact [binary_sensor.front_door_sense_contact], side door sensor contact [binary_sensor.side_door_sensor_contact], cloakroom window contact [binary_sensor.cloakroom_window_contact], hallway window contact [binary_sensor.hallway_window_contact], kitchen window left contact [binary_sensor.kitchen_window_left_contact], kitchen window right contact [binary_sensor.kitchen_window_right_contact], living room window left contact [binary_sensor.living_room_window_left_contact], living room window right contact [binary_sensor.living_room_window_right_contact], dining room window left contact [binary_sensor.dining_room_window_left_contact], dining room window right contact [binary_sensor.dining_room_window_right_contact], en suite window sensor contact [binary_sensor.en_suite_window_sensor_contact], office window sensor contact [binary_sensor.office_window_sensor_contact], garage door left contact [binary_sensor.garage_door_left_contact], garage door right contact [binary_sensor.garage_door_right_contact], main bedroom window left contact [binary_sensor.main_bedroom_window_left_contact], main bedroom window right contact [binary_sensor.main_bedroom_window_right_contact], bathroom window contact [binary_sensor.bathroom_window_contact], guest bedroom window left contact [binary_sensor.guest_bedroom_window_left_contact], guest bedroom window right contact [binary_sensor.guest_bedroom_window_right_contact], sean's bedroom window left contact [binary_sensor.sean_s_bedroom_window_left_contact], sean's bedroom window right contact [binary_sensor.sean_s_bedroom_window_right_contact], jamie's bedroom window left contact [binary_sensor.jamie_s_bedroom_window_left_contact], jamie's bedroom window right contact [binary_sensor.jamie_s_bedroom_window_right_contact], kids bathroom window left contact [binary_sensor.kids_bathroom_window_left_contact], kids bathroom window right contact [binary_sensor.kids_bathroom_window_right_contact]) changes to 'on' (Activate) OR when any of the same sensors changes to 'off' (Clear) OR when gem home [binary_sensor.gem_home] changes to 'on' (Gem Home) OR when dave home [binary_sensor.dave_home] changes to 'on' (Dave Home) OR when family home [binary_sensor.family_home] changes from 'on' to 'off' (We've all gone out) OR when family home [binary_sensor.family_home] changes from 'off' to 'on' (We're all home again). CONDITIONS: None at the top level. ACTIONS: Choose one sequence based on the trigger and conditions: 1. IF trigger is Activate AND sentry mode [input_boolean.sentry_mode] is on THEN turn on security issue [input_boolean.security_issue]. 2. IF trigger is Clear AND sentry mode [input_boolean.sentry_mode] is on THEN turn off security issue [input_boolean.security_issue]. 3. IF trigger is We've all gone out AND sentry mode [input_boolean.sentry_mode] is off THEN turn on sentry mode [input_boolean.sentry_mode]. 4. IF trigger is We're all home again AND sentry mode [input_boolean.sentry_mode] is on THEN turn off sentry mode [input_boolean.sentry_mode]. 5. IF trigger is Gem Home AND sentry mode [input_boolean.sentry_mode] is on AND dave home [binary_sensor.dave_home] is off THEN turn off sentry mode [input_boolean.sentry_mode]. 6. IF trigger is Dave Home AND sentry mode [input_boolean.sentry_mode] is on AND gem home [binary_sensor.gem_home] is off THEN turn off sentry mode [input_boolean.sentry_mode].",
"natural_language": {
"trigger": "The automation is triggered by several events: when any of the many door or window contact sensors (like the back door, front door, side door, and various windows throughout the house) opens (changes to 'on') or closes (changes to 'off'). It also triggers when the gem home [binary_sensor.gem_home] sensor indicates someone is home, when the dave home [binary_sensor.dave_home] sensor indicates someone is home, when the family home [binary_sensor.family_home] sensor changes from indicating everyone is home to everyone being away, or when it changes from everyone being away to everyone being home.",
"conditions": "There are no global conditions that apply to all triggers. Instead, specific conditions are evaluated within the action's 'choose' block to determine which action sequence to run.",
"action": "Depending on which trigger fired and the state of other entities, the automation performs one of several actions. If a door or window opens while sentry mode [input_boolean.sentry_mode] is active, it flags a security issue [input_boolean.security_issue]. If a door or window closes while sentry mode is active, it clears the security issue. If everyone leaves the house and sentry mode is off, it activates sentry mode. If everyone returns home and sentry mode is on, it deactivates sentry mode. If Gem arrives home while sentry mode is on and Dave is not home, it deactivates sentry mode. Similarly, if Dave arrives home while sentry mode is on and Gem is not home, it deactivates sentry mode."
},
"human_like": "This automation manages a home security 'sentry mode', automatically arming it when everyone leaves, disarming it when someone returns, and flagging potential intrusions if doors or windows are opened while it's active.",
"complexity": "high"
}
},
{
"id": "Set Car Battery Level via Assist",
"result": {
"structured": "TRIGGER: When a voice command matches one of the following patterns via the conversation trigger: 'set the car battery charge to {number} percent', 'change the car battery charge level to {number} percent', or 'the car battery is now at {number} percent'. CONDITIONS: None. ACTIONS: Extract the numeric value from the spoken command, remove any percent sign, convert it to an integer, and set the car battery charge level input number [input_number.car_battery_charge_level] to that value.",
"natural_language": {
"trigger": "When a voice command is spoken that matches phrases like 'set the car battery charge to 80 percent', 'change the car battery charge level to 50 percent', or 'the car battery is now at 90 percent'.",
"conditions": "There are no conditions that must be met for this automation to run.",
"action": "The automation extracts the number from the spoken command, removes any percent sign, and uses that number to update the car battery charge level input number [input_number.car_battery_charge_level]."
},
"human_like": "Updates the car's battery charge level when you tell your voice assistant what the new level is.",
"complexity": "low"
}
},
{
"id": "Show Agile Prices on Aura Lamp",
"result": {
"structured": "TRIGGER: When sunset occurs with an offset of -5 minutes (before sunset) OR When sunset occurs with an offset of 4 hours 15 minutes (after sunset) OR When octopus energy electricity 21e5275054 2400000260098 current rate sensor [sensor.octopus_energy_electricity_21e5275054_2400000260098_current_rate] is below 0 OR When octopus energy electricity 21e5275054 2400000260098 current rate sensor [sensor.octopus_energy_electricity_21e5275054_2400000260098_current_rate] is above 0 AND below 0.1 OR When octopus energy electricity 21e5275054 2400000260098 current rate sensor [sensor.octopus_energy_electricity_21e5275054_2400000260098_current_rate] is above 0.1 AND below 0.2 OR When octopus energy electricity 21e5275054 2400000260098 current rate sensor [sensor.octopus_energy_electricity_21e5275054_2400000260098_current_rate] is above 0.2 AND below 0.35 OR When octopus energy electricity 21e5275054 2400000260098 current rate sensor [sensor.octopus_energy_electricity_21e5275054_2400000260098_current_rate] is above 0.35. CONDITIONS: allow kitchen aura lamp input boolean [input_boolean.allow_kitchen_aura_lamp] is on. ACTIONS: Based on the trigger ID, perform one of the following sequences: If trigger is Not Allowed, turn off allow kitchen aura lamp input boolean [input_boolean.allow_kitchen_aura_lamp]. If trigger is Allowed, turn on allow kitchen aura lamp input boolean [input_boolean.allow_kitchen_aura_lamp]. If trigger is Plunge, turn on kitchen aura lamp light [light.kitchen_aura_lamp] with blue color and low brightness, turn off current energy rate sensor [sensor.current_energy_rate], and turn on plunge pricing input boolean [input_boolean.plunge_pricing]. If trigger is Cheap, turn on kitchen aura lamp light [light.kitchen_aura_lamp] with green color and low brightness, turn off current energy rate sensor [sensor.current_energy_rate], and turn on cheap energy input boolean [input_boolean.cheap_energy]. If trigger is Medium, turn on kitchen aura lamp light [light.kitchen_aura_lamp] with yellow color and low brightness, turn off current energy rate sensor [sensor.current_energy_rate], and turn on medium cost energy input boolean [input_boolean.medium_cost_energy]. If trigger is Expensive, turn on kitchen aura lamp light [light.kitchen_aura_lamp] with orange color and low brightness, turn off current energy rate sensor [sensor.current_energy_rate], and turn on expensive energy input boolean [input_boolean.expensive_energy]. If trigger is Most Expensive, turn on kitchen aura lamp light [light.kitchen_aura_lamp] with red color and low brightness, turn off current energy rate sensor [sensor.current_energy_rate], and turn on most expensive energy input boolean [input_boolean.most_expensive_energy].",
"natural_language": {
"trigger": "The automation can be triggered by sunset events, either 5 minutes before sunset or 4 hours and 15 minutes after sunset. It can also be triggered by changes in the current electricity rate, specifically when the rate falls into one of five defined price bands: plunge (below 0), cheap (between 0 and 0.1), medium (between 0.1 and 0.2), expensive (between 0.2 and 0.35), or most expensive (above 0.35).",
"conditions": "The automation will only run if the allow kitchen aura lamp input boolean [input_boolean.allow_kitchen_aura_lamp] is switched on.",
"action": "Depending on which trigger fired, the automation will perform a specific set of actions. If triggered by the 'Not Allowed' sunset event, it will turn off the permission switch for the lamp. If triggered by the 'Allowed' sunset event, it will turn the permission switch on. For electricity rate triggers, it will change the kitchen aura lamp light [light.kitchen_aura_lamp] to a specific color representing the price band (blue for plunge, green for cheap, yellow for medium, orange for expensive, red for most expensive) at a low brightness. It will also turn off the current energy rate sensor [sensor.current_energy_rate] and turn on the corresponding input boolean flag for that price band (e.g., plunge pricing input boolean [input_boolean.plunge_pricing])."
},
"human_like": "This automation uses a lamp in the kitchen as a visual indicator for current electricity prices, changing its color based on the rate and controlling when the indicator is allowed to be active.",
"complexity": "high"
}
},
{
"id": "Smart Button Downstairs 1 Automations",
"result": {
"structured": "TRIGGER: When smart button downstairs 1 action sensor [sensor.smart_button_downstairs_1_action] action attribute changes to 'release' OR When smart button downstairs 1 action sensor [sensor.smart_button_downstairs_1_action] changes to 'single' OR When smart button downstairs 1 action sensor [sensor.smart_button_downstairs_1_action] changes to 'double' OR When living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] falls below 30 OR When living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] rises above 50. CONDITIONS: None. ACTIONS: Choose one of the following sequences based on trigger and state conditions: 1) IF trigger is 'Good Night' AND overnight binary sensor [binary_sensor.overnight] is on THEN turn off living room tv switch [switch.living_room_tv], turn off media player sky q main [media_player.sky_q_main], turn off dreamview g1 pro light [light.dreamview_g1_pro], turn off under shelf lights local switch [switch.under_shelf_lights_local], turn off corner lamp light [light.corner_lamp] and standard lamp light [light.standard_lamp], turn off input booleans kids bedtime announcement played [input_boolean.kids_bedtime_announcement_played], school pick up announcement played [input_boolean.school_pick_up_announcement_played], school morning announcement played [input_boolean.school_morning_announcement_played], and morning briefing played [input_boolean.morning_briefing_played], turn on guest bedroom camera privacy switch [switch.guest_bedroom_camera_privacy], turn on jamie's room cam privacy switch [switch.jamie_s_room_cam_privacy], turn on seans room camera privacy switch [switch.seans_room_camera_privacy], and run script bed lamps dim at bedtime [script.bed_lamps_dim_at_bedtime]. 2) IF trigger is 'TV & Sky on' THEN turn on living room tv switch [switch.living_room_tv], turn on media player sky q main [media_player.sky_q_main], IF quiet time binary sensor [binary_sensor.quiet_time] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on THEN send a random TTS notification via notify alexa media dave's 2nd echo pop [notify.alexa_media_dave_s_2nd_echo_pop], IF living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] is below 50 THEN turn on dreamview g1 pro light [light.dreamview_g1_pro]. 3) IF trigger is 'TV & Sky off' THEN turn off living room tv switch [switch.living_room_tv], turn off media player sky q main [media_player.sky_q_main], IF quiet time binary sensor [binary_sensor.quiet_time] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on THEN send a random TTS notification via notify alexa media dave's 2nd echo pop [notify.alexa_media_dave_s_2nd_echo_pop], IF dreamview g1 pro light [light.dreamview_g1_pro] is on THEN turn it off. 4) IF trigger is 'TV & Sky on' AND living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] is below 30 THEN turn on dreamview g1 pro light [light.dreamview_g1_pro]. 5) IF trigger is 'TV & Sky off' OR 'High Light' AND dreamview g1 pro light [light.dreamview_g1_pro] is on THEN turn off dreamview g1 pro light [light.dreamview_g1_pro]. 6) IF trigger is 'Low Light' AND living room tv switch [switch.living_room_tv] is on THEN turn on dreamview g1 pro light [light.dreamview_g1_pro].",
"natural_language": {
"trigger": "The automation can be triggered by several events: a 'release' action on the smart button downstairs 1 action sensor [sensor.smart_button_downstairs_1_action], a 'single' press on the same button, a 'double' press on the same button, the living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] dropping below 30, or the same light sensor rising above 50.",
"conditions": "There are no global conditions for this automation; all logic is handled within the action choices.",
"action": "Depending on which trigger occurs and the state of other devices, the automation performs different actions. If the 'Good Night' button is released and the overnight mode is active, it turns off all living room media and lights, resets several announcement flags, enables privacy switches for bedroom cameras, and runs a bedtime dimming script. If the 'TV & Sky on' button is pressed, it turns on the TV and Sky Q, optionally gives a spoken notification if quiet time is not active, and turns on the Dreamview light if the room is dim. If the 'TV & Sky off' button is pressed, it turns off the TV and Sky Q, optionally gives a spoken notification, and turns off the Dreamview light if it's on. Additional rules adjust the Dreamview light based on light levels: turning it on if the TV is activated in low light, turning it off if the TV is turned off or if the light level is high, and turning it on if the light level is low while the TV is already on."
},
"human_like": "This automation controls the living room media and lighting based on button presses and ambient light levels, providing a 'Good Night' routine and convenient TV control with optional voice announcements.",
"complexity": "high"
}
},
{
"id": "Smart Button Upstairs 1 Automations",
"result": {
"structured": "TRIGGER: When smart button upstairs 1 action sensor [sensor.smart_button_upstairs_1_action] changes to 'single' OR When smart button upstairs 1 action sensor [sensor.smart_button_upstairs_1_action] changes to 'double'. CONDITIONS: None. ACTIONS: If the trigger was 'single', then turn on casper switch 0 switch [switch.casper_switch_0], turn on the media player device with ID 0a8861677f7178f1330be03664c30080, AND if quiet time binary sensor [binary_sensor.quiet_time] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on, then send a random TTS notification to notify alexa media guest bedroom echo dot [notify.alexa_media_guest_bedroom_echo_dot]. If the trigger was 'double', then turn off casper switch 0 switch [switch.casper_switch_0], turn off the media player device with ID 0a8861677f7178f1330be03664c30080, AND if quiet time binary sensor [binary_sensor.quiet_time] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on, then send a random TTS notification to notify alexa media guest bedroom echo dot [notify.alexa_media_guest_bedroom_echo_dot].",
"natural_language": {
"trigger": "The automation is triggered when the smart button upstairs 1 action sensor [sensor.smart_button_upstairs_1_action] reports a 'single' press or a 'double' press.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "If the button was pressed once, the automation turns on the casper switch 0 switch [switch.casper_switch_0] and the media player device with ID 0a8861677f7178f1330be03664c30080. If quiet time is not active and audible notifications are enabled, it also sends a random, humorous spoken announcement to the Alexa device in the guest bedroom. If the button was pressed twice, the automation turns off the same switch and media player device. Again, if quiet time is not active and audible notifications are enabled, it sends a different random, humorous announcement to the Alexa device."
},
"human_like": "Controls the bedroom TV and a switch with a smart button, turning them on or off with single or double presses and announcing the action with a fun voice message when notifications are allowed.",
"complexity": "medium"
}
},
{
"id": "Solar Hot Water Toggle",
"result": {
"structured": "TRIGGER: When electricity bill today sensor [sensor.electricity_bill_today] is below 0 OR When power grid export sensor [sensor.power_grid_export] is above 500 OR When power battery load sensor [sensor.power_battery_load] is above 1000 OR At sunset minus 1 hour OR At 17:00:00 OR At 17:45:00. CONDITIONS: None (global). ACTIONS: Choose based on triggered ID and conditions: 1. IF (trigger ID is Activate) AND (sun is after sunrise AND before sunset) THEN turn on allow valkyrie on input boolean [input_boolean.allow_valkyrie_on] AND turn on valkyrie solar hot water switch [switch.valkyrie_solar_hot_water]. 2. IF (trigger ID is Switch On) AND (sun is after sunrise AND before sunset) AND (electricity bill today sensor [sensor.electricity_bill_today] is below 0) AND (allow valkyrie on input boolean [input_boolean.allow_valkyrie_on] is on) THEN turn on valkyrie solar hot water switch [switch.valkyrie_solar_hot_water]. 3. IF (trigger ID is Switch Off) AND (valkyrie solar hot water switch [switch.valkyrie_solar_hot_water] is on) THEN turn off valkyrie solar hot water switch [switch.valkyrie_solar_hot_water]. 4. IF (trigger ID is Deactivate) THEN turn off valkyrie solar hot water switch [switch.valkyrie_solar_hot_water] AND (if valkyrie solar hot water switch [switch.valkyrie_solar_hot_water] is on) THEN turn off allow valkyrie on input boolean [input_boolean.allow_valkyrie_on]. 5. IF (trigger ID is Time On) AND (electricity bill today sensor [sensor.electricity_bill_today] is above -0.5) THEN set water heater hot water [water_heater.hot_water] operation mode to heat. 6. IF (trigger ID is Time Off) THEN set water heater hot water [water_heater.hot_water] operation mode to off.",
"natural_language": {
"trigger": "The automation can be triggered by several events: when the electricity bill today sensor [sensor.electricity_bill_today] shows a negative value (indicating a credit), when the power grid export sensor [sensor.power_grid_export] exceeds 500 watts, when the power battery load sensor [sensor.power_battery_load] exceeds 1000 watts, one hour before sunset, at 5:00 PM, or at 5:45 PM.",
"conditions": "There are no global conditions applied to all triggers. Instead, each action path has its own specific conditions.",
"action": "Depending on which trigger fired and the state of other entities, the automation performs one of several actions. If triggered by a negative electricity bill during daylight, it enables the system and turns on the solar hot water switch. If triggered by high grid export during daylight while the bill is negative and the system is allowed, it turns on the hot water switch. If triggered by high battery load while the switch is on, it turns the switch off. If triggered before sunset, it turns the switch off and, if it was on, disables the system. At 5:00 PM, if the electricity bill is above -50 pence, it sets the water heater to heat mode. At 5:45 PM, it sets the water heater to off mode."
},
"human_like": "Manages the solar hot water heater by turning it on when solar power is being exported or the battery is full, and schedules a backup heating period in the late afternoon, all while ensuring it only runs during the day and when it's financially beneficial.",
"complexity": "high"
}
},
{
"id": "Solcast update",
"result": {
"structured": "TRIGGER: When the template evaluates to true (based on dividing the time between sunrise and sunset into 10 intervals and checking if current time is within ±30 seconds of any interval start) OR at 00:01:00. CONDITIONS: None. ACTIONS: If triggered by the API Call template AND the sun is above the horizon (after sunrise and before sunset), then wait a random delay between 30 and 360 seconds and then call the solcast_solar.update_forecasts service. If triggered at 00:01:00 AND the current date is December 1st, then execute the script solcast december january dampening script [script.solcast_dec_jan_dampening].",
"natural_language": {
"trigger": "The automation triggers either when a complex template condition is met, which essentially checks if the current time falls within a 60-second window around the start of one of ten evenly spaced intervals between sunrise and sunset, or at exactly one minute past midnight.",
"conditions": "There are no global conditions for this automation.",
"action": "Depending on which trigger fired, the automation performs one of two sequences. If the trigger was the API Call template and the sun is currently up (between sunrise and sunset), it waits a random amount of time between 30 seconds and 6 minutes before updating the solar forecasts. If the trigger was the time-based one at 00:01:00 and today's date is December 1st, it runs a special dampening script."
},
"human_like": "Updates solar forecasts at specific times during the day and runs a special script on December 1st to manage forecast data.",
"complexity": "high"
}
},
{
"id": "Spare Bedroom Presence",
"result": {
"structured": "TRIGGER: When guest bedroom motion occupancy [binary_sensor.guest_bedroom_motion_occupancy] changes from off to on OR When guest bedroom motion occupancy [binary_sensor.guest_bedroom_motion_occupancy] changes from on to off and remains off for 30 seconds OR When casper switch 0 [switch.casper_switch_0] changes from off to on OR When guest bedroom echo dot media player [media_player.guest_bedroom_echo_dot] attribute last_called changes to true. CONDITIONS: None. ACTIONS: If the trigger was Room Presence OR Alexa OR TV, then set room presence [input_text.room_presence] to 'guest_bedroom' AND turn on room occupied guest bedroom [input_boolean.room_occupied_guest_bedroom]. If the trigger was Room Absence, then turn off room occupied guest bedroom [input_boolean.room_occupied_guest_bedroom].",
"natural_language": {
"trigger": "The automation triggers when motion is first detected in the guest bedroom, when motion stops being detected for 30 seconds, when a specific switch is turned on, or when the Echo Dot in the guest bedroom is used as the last called device.",
"conditions": "There are no conditions that must be met for the automation to run.",
"action": "If the automation was triggered by motion starting, the switch turning on, or the Echo Dot being used, it will set a text field to indicate the guest bedroom is occupied and turn on a flag marking the room as occupied. If the automation was triggered by motion stopping for 30 seconds, it will turn off the flag marking the room as occupied."
},
"human_like": "This automation tracks occupancy in the guest bedroom using motion, a switch, and an Echo Dot, marking the room as occupied or empty accordingly.",
"complexity": "medium"
}
},
{
"id": "Spare Room TV Toggle On and Off",
"result": {
"structured": "TRIGGER: When Sky Q Guest Bedroom Mini [media_player.sky_q_guest_bedroom_mini] changes state to playing (excluding transitions from unknown, unavailable, or paused) OR When Sky Q Guest Bedroom Mini [media_player.sky_q_guest_bedroom_mini] changes state to off (excluding transitions from unknown, unavailable, or paused). CONDITIONS: None. ACTIONS: If the trigger was 'Casper & Sky toggle on', execute spare room tv toggle 2 script [script.spare_room_tv_toggle_2]. If the trigger was 'Casper & Sky toggle off', execute spare room tv toggle 2 script [script.spare_room_tv_toggle_2].",
"natural_language": {
"trigger": "When the Sky Q Guest Bedroom Mini [media_player.sky_q_guest_bedroom_mini] starts playing (but not if it was previously unknown, unavailable, or paused) or when it turns off (also not from unknown, unavailable, or paused).",
"conditions": "There are no conditions that need to be met.",
"action": "In either case, the spare room tv toggle 2 script [script.spare_room_tv_toggle_2] is run."
},
"human_like": "Runs a TV control script whenever the guest bedroom's Sky Q box starts playing or turns off.",
"complexity": "low"
}
},
{
"id": "Stairway Presence",
"result": {
"structured": "TRIGGER: When lower landing motion occupancy binary sensor [binary_sensor.lower_landing_motion_occupancy] OR upper landing presence occupancy binary sensor [binary_sensor.upper_landing_presence_occupancy] changes from off to on. OR When lower landing motion occupancy binary sensor [binary_sensor.lower_landing_motion_occupancy] OR upper landing presence occupancy binary sensor [binary_sensor.upper_landing_presence_occupancy] changes from on to off. CONDITIONS: None. ACTIONS: Choose based on trigger and template condition: IF trigger is Presence AND trigger entity's friendly name contains 'Lower' THEN set room presence input text [input_text.room_presence] to 'lower_landing' AND turn on lower landing occupancy input boolean [input_boolean.lower_landing_occupancy]. IF trigger is Presence AND trigger entity's friendly name contains 'Upper' THEN set room presence input text [input_text.room_presence] to 'upper_landing' AND turn on upper landing occupied input boolean [input_boolean.upper_landing_occupied]. IF trigger is Absence AND trigger entity's friendly name contains 'Lower' THEN turn off lower landing occupancy input boolean [input_boolean.lower_landing_occupancy]. IF trigger is Absence AND trigger entity's friendly name contains 'Upper' THEN turn off upper landing occupied input boolean [input_boolean.upper_landing_occupied].",
"natural_language": {
"trigger": "When either the lower landing motion occupancy binary sensor [binary_sensor.lower_landing_motion_occupancy] or the upper landing presence occupancy binary sensor [binary_sensor.upper_landing_presence_occupancy] detects motion or presence (changes from off to on), or when either sensor stops detecting motion or presence (changes from on to off).",
"conditions": "There are no additional conditions that must be met.",
"action": "Depending on which sensor triggered and whether it turned on or off, the automation will update the current room presence and occupancy status. If a sensor detects presence and its name contains 'Lower', it sets the current room presence to 'lower_landing' and marks the lower landing as occupied. If a sensor detects presence and its name contains 'Upper', it sets the current room presence to 'upper_landing' and marks the upper landing as occupied. If a sensor stops detecting presence and its name contains 'Lower', it marks the lower landing as not occupied. If a sensor stops detecting presence and its name contains 'Upper', it marks the upper landing as not occupied."
},
"human_like": "Tracks and updates the occupancy status of the lower and upper landings on the stairs based on motion and presence sensor activity.",
"complexity": "medium"
}
},
{
"id": "Sync Battery State to Desired Storage Control Mode",
"result": {
"structured": "TRIGGER: When Battery Storage Control Mode [input_select.desired_battery_storage_control_mode] changes state. CONDITIONS: None. ACTIONS: Choose based on the state of Battery Storage Control Mode [input_select.desired_battery_storage_control_mode]: IF (state is 'Remote Control') AND (solaredge i1 storage control mode select [select.solaredge_i1_storage_control_mode] is NOT 'Remote Control') THEN set solaredge i1 storage control mode select [select.solaredge_i1_storage_control_mode] to 'Remote Control'. OR IF (state is 'Maximize Self Consumption') AND (solaredge i1 storage control mode select [select.solaredge_i1_storage_control_mode] is NOT 'Maximize Self Consumption') THEN set solaredge i1 storage control mode select [select.solaredge_i1_storage_control_mode] to 'Maximize Self Consumption'. OR IF (state is 'Time of Use') AND (solaredge i1 storage control mode select [select.solaredge_i1_storage_control_mode] is NOT 'Time of Use') THEN set solaredge i1 storage control mode select [select.solaredge_i1_storage_control_mode] to 'Time of Use'. OR IF (state is 'Backup Only') AND (solaredge i1 storage control mode select [select.solaredge_i1_storage_control_mode] is NOT 'Backup Only') THEN set solaredge i1 storage control mode select [select.solaredge_i1_storage_control_mode] to 'Backup Only'. OR IF (state is 'Disabled') AND (solaredge i1 storage control mode select [select.solaredge_i1_storage_control_mode] is NOT 'Disabled') THEN set solaredge i1 storage control mode select [select.solaredge_i1_storage_control_mode] to 'Disabled'.",
"natural_language": {
"trigger": "Whenever the Battery Storage Control Mode [input_select.desired_battery_storage_control_mode] changes to a new state.",
"conditions": "There are no conditions that must be met before the action runs.",
"action": "The automation checks the new state of the Battery Storage Control Mode [input_select.desired_battery_storage_control_mode]. If the new state is 'Remote Control' and the actual battery control mode [select.solaredge_i1_storage_control_mode] is not already set to 'Remote Control', it will change the battery control mode to 'Remote Control'. Similarly, it will change the battery control mode to 'Maximize Self Consumption', 'Time of Use', 'Backup Only', or 'Disabled' if the desired state matches one of those and the battery is not already in that mode."
},
"human_like": "Keeps the actual battery storage control mode in sync with the desired mode, only making a change when they differ.",
"complexity": "medium"
}
},
{
"id": "System Monitor",
"result": {
"structured": "TRIGGER: When greenhouse thermometer temperature sensor [sensor.greenhouse_thermometer_temperature] remains unavailable for 2 minutes OR When Processor Use [sensor.processor_use] remains above 50% for 5 minutes OR When Memory Use [sensor.memory_use] remains above 50% for 5 minutes. CONDITIONS: None. ACTIONS: If the trigger was Bluetooth, then run text notify dave script [script.text_notify_dave] with message 'The bluetooth dongle has lost connection.' OR If the trigger was CPU, then run text notify dave script [script.text_notify_dave] with message 'CPU use has risen above 50%' and title 'HIGH CPU USE!' OR If the trigger was RAM, then run text notify dave script [script.text_notify_dave] with message 'RAM use is above 50%' and title 'RAM USE HIGH!'.",
"natural_language": {
"trigger": "The automation can be triggered in three ways: if the greenhouse thermometer temperature sensor [sensor.greenhouse_thermometer_temperature] becomes and stays unavailable for two minutes; if the Processor Use [sensor.processor_use] sensor reports a value above 50% for five minutes; or if the Memory Use [sensor.memory_use] sensor reports a value above 50% for five minutes.",
"conditions": "There are no conditions that must be met for the action to proceed.",
"action": "Depending on which trigger activated the automation, a different notification is sent. If the bluetooth sensor trigger fired, a text notification is sent to Dave saying the bluetooth dongle has lost connection. If the high CPU trigger fired, a text notification is sent with a message about high CPU use and a specific title. If the high RAM trigger fired, a text notification is sent with a message about high RAM use and a specific title."
},
"human_like": "Sends alerts to Dave when system components like the bluetooth sensor, CPU, or RAM show problems for a sustained period.",
"complexity": "medium"
}
},
{
"id": "Tado Controller & Bridge Monitor",
"result": {
"structured": "TRIGGER: When tado controller connection state binary sensor [binary_sensor.bp2744464640_connection_state] changes from on to unavailable AND remains unavailable for 30 seconds OR When tado controller connection state binary sensor [binary_sensor.bp2744464640_connection_state] changes from on to unknown AND remains unknown for 30 seconds OR When tado bridge device [device_id:863461778a01242acbfb0853707e2890] is not connected AND remains not connected for 1 minute. CONDITIONS: None. ACTIONS: Choose based on trigger: IF (audible notifications input boolean [input_boolean.audible_notifications] is on) AND (trigger is Tado Controller Unavailable OR trigger is Tado Controller State Unknown) THEN Send a notification based on an input text helper [notify.mobile_app_{{states('input_text.my_mobile_phone_id')}}] with title 'HEATING' and message 'The heating controller is offline' AND run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with announcement to 'dave' and message 'The heating controller is offline'. IF (trigger is Tado Bridge Disconnected) AND (audible notifications input boolean [input_boolean.audible_notifications] is on) THEN run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with announcement to 'dave' and message 'The tado bridge is offline'.",
"natural_language": {
"trigger": "The automation triggers if the Tado Controller's connection state changes from 'on' to 'unavailable' and stays that way for 30 seconds, or if it changes from 'on' to 'unknown' and stays that way for 30 seconds. It also triggers if the Tado Bridge device is not connected for one minute.",
"conditions": "There are no global conditions for this automation.",
"action": "If the audible notifications input boolean [input_boolean.audible_notifications] is on and the trigger is related to the Tado Controller being unavailable or in an unknown state, the system sends a mobile notification with the title 'HEATING' and the message 'The heating controller is offline', and also makes an audible announcement via the jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] to 'dave' with the same message. If the trigger is the Tado Bridge being disconnected and audible notifications are on, the system makes an audible announcement via the jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] to 'dave' saying 'The tado bridge is offline'."
},
"human_like": "Sends alerts and announcements if the Tado heating controller or bridge goes offline, ensuring you're notified of connectivity issues.",
"complexity": "medium"
}
},
{
"id": "living_room_lights_needed",
"result": {
"structured": "TRIGGER: When living room fp2 presence sensor 1 binary sensor [binary_sensor.living_room_fp2_presence_sensor_1] changes from off to on. CONDITIONS: (living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] is below low light threshold input number [input_number.low_light_threshold]) AND (current time is between 07:00:00 and 22:15:00) AND (living room lights group [group.living_room_lights] is off). ACTIONS: Execute script lights with level script [script.lights_w_level] with level parameter set to 255.",
"natural_language": {
"trigger": "When the living room fp2 presence sensor 1 binary sensor [binary_sensor.living_room_fp2_presence_sensor_1] detects that someone has entered the room (changes from off to on).",
"conditions": "If the light level measured by the living room fp2 light sensor light level sensor [sensor.living_room_fp2_light_sensor_light_level] is below the value set in the low light threshold input number [input_number.low_light_threshold], the current time is between 7:00 AM and 10:15 PM, and all lights in the living room lights group [group.living_room_lights] are currently turned off.",
"action": "Activates the lights with level script [script.lights_w_level] to turn on the lights at full brightness (level 255)."
},
"human_like": "Turns on the living room lights at full brightness when someone enters the room, but only if it's dark enough, during daytime/evening hours, and the lights are currently off.",
"complexity": "medium"
}
},
{
"id": "Time for Bed Parents",
"result": {
"structured": "TRIGGER: At 22:10:00. CONDITIONS: audible notifications input boolean [input_boolean.audible_notifications] is on. ACTIONS: Execute script parents bedtime announcement [script.parents_bedtime_announcement] with data {where: living room}.",
"natural_language": {
"trigger": "Every day at 10:10 PM.",
"conditions": "The audible notifications input boolean [input_boolean.audible_notifications] must be switched on.",
"action": "Runs the parents bedtime announcement script [script.parents_bedtime_announcement] in the living room."
},
"human_like": "Announces bedtime for parents in the living room at 10:10 PM, but only if audible notifications are enabled.",
"complexity": "low"
}
},
{
"id": "Toothbrush Automations",
"result": {
"structured": "TRIGGER: When smart series 7000 toothbrush state sensor [sensor.smart_series_7000_236d_toothbrush_state] OR seans toothbrush sensor [sensor.seans_toothbrush] changes to state 'running'. OR When smart series 7000 toothbrush state sensor [sensor.smart_series_7000_236d_toothbrush_state] OR seans toothbrush sensor [sensor.seans_toothbrush] changes to state 'idle' AND remains for 1 minute (trigger disabled). CONDITIONS: None. ACTIONS: Choose based on trigger: If triggered by 'running' AND time is between 07:30:00 and 09:00:00 AND Toothbrushing Song Playing [input_boolean.toothbrushing_song_playing] is off, then: 1. Play 'Toothbrushing Song by Duggee & The Squirrels in upstairs group' on jamie's room dot media player [media_player.jamie_s_room_dot]. 2. Toggle Toothbrushing Song Playing [input_boolean.toothbrushing_song_playing]. 3. Wait until smart series 7000 toothbrush state sensor [sensor.smart_series_7000_236d_toothbrush_state] OR seans toothbrush sensor [sensor.seans_toothbrush] changes to state 'idle'. 4. Toggle Toothbrushing Song Playing [input_boolean.toothbrushing_song_playing]. OR If triggered by 'idle', then: Publish the integer value of seans toothbrush duration sensor [sensor.seans_toothbrush_duration] to MQTT topic 'sean/toothbrush/time'.",
"natural_language": {
"trigger": "The automation triggers when either the smart series 7000 toothbrush state sensor [sensor.smart_series_7000_236d_toothbrush_state] or seans toothbrush sensor [sensor.seans_toothbrush] starts running. There is also a disabled trigger that would activate if either toothbrush sensor remains idle for one minute.",
"conditions": "There are no global conditions for this automation.",
"action": "Depending on which trigger activated, the automation performs one of two sequences. If the trigger was a toothbrush starting to run, and it is between 7:30 AM and 9:00 AM, and the 'Toothbrushing Song Playing' [input_boolean.toothbrushing_song_playing] is off, it will start playing a specific song on the jamie's room dot media player [media_player.jamie_s_room_dot], toggle the song-playing flag on, wait for the toothbrush to become idle, and then toggle the flag off. If the trigger was a toothbrush becoming idle (though this trigger is disabled), it will publish the brushing duration from seans toothbrush duration sensor [sensor.seans_toothbrush_duration] to an MQTT topic."
},
"human_like": "Plays a morning toothbrushing song when a toothbrush is used between 7:30 and 9:00 AM, and stops the song when brushing is finished.",
"complexity": "medium"
}
},
{
"id": "Travel Automations",
"result": {
"structured": "TRIGGER: When Waze Travel Time [sensor.waze_travel_time] is below 5 OR Zone Gem Work [zone.gem_work] is above 0 OR Zone Gem Work [zone.gem_work] is below 1 OR Waze Travel Time 2 [sensor.waze_travel_time_2] is below 5 OR Zone Dave's Mum and Dad [zone.dave_s_mum_and_dad] is above 0 OR Zone Dave's Mum and Dad [zone.dave_s_mum_and_dad] is below 1 OR person gem forrester [person.gem_forrester] OR person david forrester [person.david_forrester] enters Zone Doctors Surgery [zone.doctors_surgery] OR person gem forrester [person.gem_forrester] OR person david forrester [person.david_forrester] leaves Zone Doctors Surgery [zone.doctors_surgery]. CONDITIONS: None. ACTIONS: Choose based on trigger ID: 1. If 'Gem at work': Run script.text_notify_dave with message 'Gem is got to work' and title 'GEM AT WORK'. If quiet time binary sensor [binary_sensor.quiet_time] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on, run script.speech_engine with a random message to room audio sensor [sensor.room_audio]. 2. If 'Gem almost home' AND quiet time binary sensor [binary_sensor.quiet_time] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on: Run script.speech_engine with a random message to room audio sensor [sensor.room_audio]. 3. If 'Gem left work': Run script.text_notify_dave with message 'Gem has left work' and title 'GEM LEFT WORK'. If audible notifications input boolean [input_boolean.audible_notifications] is on AND quiet time binary sensor [binary_sensor.quiet_time] is off, run script.speech_engine with a message to room audio sensor [sensor.room_audio] including duration from gem at work sensor [sensor.gem_at_work]. 4. If 'Dave is at his mum and dad's': If audible notifications input boolean [input_boolean.audible_notifications] is on AND quiet time binary sensor [binary_sensor.quiet_time] is off, run script.speech_engine with a message to room audio sensor [sensor.room_audio]. Run script.text_notify_gem with message 'Dave is at his mum and dad's ' and title 'DAVE IS IN DUNDEE'. 5. If 'Dave almost home': If quiet time binary sensor [binary_sensor.quiet_time] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on, run script.speech_engine with a random message to room audio sensor [sensor.room_audio]. Run script.text_notify_gem with message 'Dave is almost home' and title 'DAVE 5 MINS AWAY'. 6. If 'Dave left his mum and dad's ': If audible notifications input boolean [input_boolean.audible_notifications] is on AND quiet time binary sensor [binary_sensor.quiet_time] is off, run script.speech_engine with a message to room audio sensor [sensor.room_audio] including duration from dave in dundee sensor [sensor.dave_in_dundee]. Run script.text_notify_gem with message 'Dave has left Dundee' and title 'DAVE LEFT'. 7. If 'At the Doctors': If trigger person's friendly name contains 'gem', run script.text_notify_dave with message 'Gem is at the doctors' and title 'GEM AT DOCTORS'. If quiet time binary sensor [binary_sensor.quiet_time] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on, run script.speech_engine with a message to room audio sensor [sensor.room_audio]. Otherwise, run script.text_notify_gem with message 'Dave is at the doctors' and title 'DAVE AT DOCTORS'. If quiet time binary sensor [binary_sensor.quiet_time] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on, run script.speech_engine with a message to room audio sensor [sensor.room_audio]. 8. If 'Left the Doctors': If trigger person's friendly name contains 'gem', run script.text_notify_dave with message 'Gem has left the doctors' and title 'GEM LEFT DOCTORS'. If quiet time binary sensor [binary_sensor.quiet_time] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on, run script.speech_engine with a message to room audio sensor [sensor.room_audio]. Otherwise, run script.text_notify_gem with message 'Dave has left the doctors' and title 'DAVE LEFT DOCTORS'. If quiet time binary sensor [binary_sensor.quiet_time] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on, run script.speech_engine with a message to room audio sensor [sensor.room_audio].",
"natural_language": {
"trigger": "The automation can be triggered by several events: when the Waze Travel Time [sensor.waze_travel_time] for Gem drops below 5 minutes; when Gem arrives at or leaves her work zone [zone.gem_work]; when the Waze Travel Time 2 [sensor.waze_travel_time_2] for Dave drops below 5 minutes; when Dave arrives at or leaves his mum and dad's zone [zone.dave_s_mum_and_dad]; or when either person gem forrester [person.gem_forrester] or person david forrester [person.david_forrester] enters or leaves the doctors surgery zone [zone.doctors_surgery].",
"conditions": "There are no global conditions for this automation. Specific conditions are checked within each action branch.",
"action": "Depending on which trigger fired, the automation performs different actions. For Gem's work-related triggers, it sends text notifications to Dave and may make audible announcements if quiet time is off and audible notifications are enabled. For Dave's travel triggers, it sends text notifications to Gem and may make audible announcements. For arrivals and departures from the doctors surgery, it sends a text notification to the other person and may make an audible announcement, with the specific message depending on whether it was Gem or Dave who triggered the event."
},
"human_like": "This automation notifies household members about each other's travel status, such as arriving at or leaving work, being close to home, or visiting the doctor, using a mix of text messages and voice announcements.",
"complexity": "high"
}
},
{
"id": "Update Energy Records",
"result": {
"structured": "TRIGGER: At 23:55:00 daily OR When Power Grid Import [sensor.power_grid_import] changes state and remains stable for 10 seconds. CONDITIONS: None. ACTIONS: Choose based on trigger: IF trigger is daily THEN (IF Solar Panel Production Daily [sensor.solar_panel_production_daily] > Max Solar Generated [sensor.max_solar_generated] THEN publish Solar Panel Production Daily [sensor.solar_panel_production_daily] to MQTT topic energy/solar/maxgen AND delay 30 seconds) AND (IF Max Solar Generated [sensor.max_solar_generated] > All Time High Solar Generated [sensor.ath_solar_generated] THEN publish Max Solar Generated [sensor.max_solar_generated] to MQTT topic energy/solar/athmaxgen AND run text notify parents script [script.text_notify_parents] with notification AND delay 30 seconds) AND (IF Solar Panel Production Daily [sensor.solar_panel_production_daily] < Min Solar Generated [sensor.min_solar_generated] THEN publish Solar Panel Production Daily [sensor.solar_panel_production_daily] to MQTT topic energy/solar/mingen AND delay 30 seconds) AND (IF Min Solar Generated [sensor.min_solar_generated] < All Time Low Solar Generated [sensor.atl_solar_generated] THEN publish Min Solar Generated [sensor.min_solar_generated] to MQTT topic energy/solar/atlmingen AND run text notify parents script [script.text_notify_parents] with notification AND delay 30 seconds). IF trigger is Grid Import THEN publish Power Grid Import [sensor.power_grid_import] to MQTT topic energy/solar/maximport AND delay 30 seconds AND (IF Max Power Import [sensor.max_power_import] > All Time High Power Import [sensor.ath_power_import] THEN publish Max Power Import [sensor.max_power_import] to MQTT topic energy/solar/athmaximport AND run text notify parents script [script.text_notify_parents] with notification AND delay 30 seconds).",
"natural_language": {
"trigger": "The automation runs either at 23:55 every day, or whenever the Power Grid Import [sensor.power_grid_import] sensor changes state and remains stable for 10 seconds.",
"conditions": "There are no conditions that must be met for the automation to proceed; it runs whenever a trigger occurs.",
"action": "Depending on which trigger activated the automation, different actions are performed. If it was triggered by the daily timer, it checks and records several solar generation records: if today's solar production is higher than the current daily maximum, it updates the daily maximum record via MQTT. If the daily maximum is higher than the all-time high, it updates the all-time high record and sends a notification. Similarly, it checks and records daily and all-time low solar generation values, updating records and sending notifications as needed. If the automation was triggered by a change in grid import power, it records the current grid import value and checks if the maximum import power is a new all-time high, updating the record and sending a notification if so. Each action step includes a short delay."
},
"human_like": "This automation updates energy records, saving daily and all-time highs and lows for solar generation and grid power import, and sends notifications for new records.",
"complexity": "high"
}
},
{
"id": "Update Octopus Target Rate Length for Home Battery",
"result": {
"structured": "TRIGGER: When home battery charge length input number [input_number.home_battery_charge_length] changes state. CONDITIONS: None. ACTIONS: Update Octopus Energy Target Home Battery Charge [binary_sensor.octopus_energy_target_home_battery_charge] configuration with target_hours set to the value of home battery charge length input number [input_number.home_battery_charge_length] AND update target timeframes octopus energy charge home battery binary sensor [binary_sensor.target_timeframes_octopus_energy_charge_home_battery] configuration with target_hours set to the value of home battery charge length input number [input_number.home_battery_charge_length].",
"natural_language": {
"trigger": "Whenever the value of the home battery charge length input number [input_number.home_battery_charge_length] changes.",
"conditions": "There are no conditions that must be met.",
"action": "Updates the configuration for two binary sensors: it sets the target hours for the Octopus Energy Target Home Battery Charge [binary_sensor.octopus_energy_target_home_battery_charge] and the target timeframes octopus energy charge home battery binary sensor [binary_sensor.target_timeframes_octopus_energy_charge_home_battery] to match the new value from the home battery charge length input number [input_number.home_battery_charge_length]."
},
"human_like": "Updates the target charge duration for the home battery across two Octopus Energy services whenever the charge length setting is changed.",
"complexity": "low"
}
},
{
"id": "Update OpenUV",
"result": {
"structured": "TRIGGER: Every 15 minutes (time pattern). CONDITIONS: (Sun is above the horizon AND before sunset with a 45-minute offset) AND (update openuv automation [automation.update_openuv] has never been triggered OR the time since its last trigger is at least 40 minutes). ACTIONS: Update the entities Protection Window [binary_sensor.protection_window] and Current UV Index [sensor.current_uv_index].",
"natural_language": {
"trigger": "The automation runs every 15 minutes, on the minute marks that are divisible by 15.",
"conditions": "The sun must be above the horizon, and it must be before sunset (with a 45-minute offset) and after sunrise. Additionally, the automation itself, update openuv automation [automation.update_openuv], must either have never been triggered before, or at least 40 minutes must have passed since it was last triggered.",
"action": "Updates the data for the Protection Window [binary_sensor.protection_window] and the Current UV Index [sensor.current_uv_index] sensors."
},
"human_like": "Updates the UV index and sun protection window information regularly during the day, but not too frequently.",
"complexity": "medium"
}
},
{
"id": "Update Part of Day",
"result": {
"structured": "TRIGGER: When any of the following entities change state: lunchtime binary sensor [binary_sensor.lunchtime], dinner time binary sensor [binary_sensor.dinner_time], evening binary sensor [binary_sensor.evening], master bed occupancy bed occupied both binary sensor [binary_sensor.master_bed_occupancy_bed_occupied_both], overnight binary sensor [binary_sensor.overnight], Kitchen Occupied [binary_sensor.kitchen_occupied], kitchen table occupied input boolean [input_boolean.kitchen_table_occupied], morning binary sensor [binary_sensor.morning], afternoon binary sensor [binary_sensor.afternoon]. CONDITIONS: part of day input select [input_select.part_of_day] is NOT set to 'Manual Override'. ACTIONS: Choose an action based on the first matching condition set: 1. IF master bed occupancy bed occupied both binary sensor [binary_sensor.master_bed_occupancy_bed_occupied_both] is on THEN set part of day input select [input_select.part_of_day] to 'Bedtime'. 2. IF lunchtime binary sensor [binary_sensor.lunchtime] is on AND (Kitchen Occupied [binary_sensor.kitchen_occupied] is on OR kitchen table occupied input boolean [input_boolean.kitchen_table_occupied] is on) THEN set part of day input select [input_select.part_of_day] to 'Lunchtime'. 3. IF dinner time binary sensor [binary_sensor.dinner_time] is on AND (Kitchen Occupied [binary_sensor.kitchen_occupied] is on OR kitchen table occupied input boolean [input_boolean.kitchen_table_occupied] is on) THEN set part of day input select [input_select.part_of_day] to 'Dinnertime'. 4. IF evening binary sensor [binary_sensor.evening] is on AND Kitchen Occupied [binary_sensor.kitchen_occupied] is off AND kitchen table occupied input boolean [input_boolean.kitchen_table_occupied] is off THEN set part of day input select [input_select.part_of_day] to 'Evening'. 5. IF morning binary sensor [binary_sensor.morning] is on THEN set part of day input select [input_select.part_of_day] to 'Morning'. 6. IF afternoon binary sensor [binary_sensor.afternoon] is on THEN set part of day input select [input_select.part_of_day] to 'Afternoon'. 7. IF overnight binary sensor [binary_sensor.overnight] is on THEN set part of day input select [input_select.part_of_day] to 'Overnight'.",
"natural_language": {
"trigger": "The automation triggers whenever any of the following sensors or input booleans changes its state: the lunchtime binary sensor, the dinner time binary sensor, the evening binary sensor, the master bed occupancy bed occupied both binary sensor, the overnight binary sensor, the Kitchen Occupied sensor, the kitchen table occupied input boolean, the morning binary sensor, or the afternoon binary sensor.",
"conditions": "The automation only runs if the part of day input select is not currently set to 'Manual Override'.",
"action": "The automation selects a new part of the day based on a priority list of conditions. If the master bed occupancy bed occupied both binary sensor is on, it sets the part of day to 'Bedtime'. Otherwise, if it's lunchtime and the kitchen or kitchen table is occupied, it sets it to 'Lunchtime'. If it's dinner time and the kitchen or kitchen table is occupied, it sets it to 'Dinnertime'. If it's evening and the kitchen and kitchen table are both unoccupied, it sets it to 'Evening'. If it's morning, it sets it to 'Morning'. If it's afternoon, it sets it to 'Afternoon'. If it's overnight, it sets it to 'Overnight'."
},
"human_like": "Automatically updates the current 'part of day' (like Morning or Evening) based on time-of-day sensors and room occupancy, unless a manual override is active.",
"complexity": "medium"
}
},
{
"id": "Update Weather Records",
"result": {
"structured": "TRIGGER: When GW2000A Lightning Strikes [sensor.gw2000a_lightning_strikes] state changes OR When GW2000A Max Daily Gust [sensor.gw2000a_max_daily_gust] state changes OR When GW2000A Wind Speed [sensor.gw2000a_wind_speed] state changes OR At 23:55:00 daily OR At 00:01:00 daily OR At 00:03:00 daily OR At 00:00:00 daily OR When GW2000A WH90 Battery [sensor.gw2000a_wh90_battery] falls below 1.75. CONDITIONS: None. ACTIONS: Choose action based on trigger ID: IF trigger is new_strike THEN IF GW2000A Lightning Strikes [sensor.gw2000a_lightning_strikes] > Max Lightning Strikes [sensor.max_lightning_strikes] THEN Publish strikes count to MQTT topic house/weather/maxstrikes via script.generic_mqtt_publisher AND Publish current timestamp to MQTT topic house/weather/maxstrikes/timestamp via script.generic_mqtt_publisher. IF trigger is new_gust THEN IF GW2000A Max Daily Gust [sensor.gw2000a_max_daily_gust] > All Time High Wind Gust [sensor.ath_wind_gust] THEN Publish gust value to MQTT topic house/weather/athwind via script.generic_mqtt_publisher AND Publish current timestamp to MQTT topic house/weather/athwind/timestamp via script.generic_mqtt_publisher AND Send notification via script.text_notify_parents AND Delay 30 seconds. IF trigger is save_stats THEN IF Chill Time Yesterday [sensor.chill_time_yesterday] > 0 THEN Publish updated total chill hours to MQTT topic house/weather/chillhours via mqtt.publish AND IF Freeze Time Yesterday [sensor.freeze_time_yesterday] > 0 THEN Publish updated total freeze hours to MQTT topic house/weather/freezehours via mqtt.publish. IF trigger is record_reset THEN IF current day is 1 THEN Publish current outdoor temperature as initial monthly max and min to MQTT topics house/weather/monthlymaxtemp and house/weather/monthlylowtemp via mqtt.publish AND IF current weekday is Sunday THEN Publish Rainfall Last Week [sensor.rainfall_last_week] to MQTT topic house/weather/weekly_rainfall via mqtt.publish AND IF current day is 1 THEN Reset chill and freeze hour totals to 0 via MQTT topics house/weather/chillhours and house/weather/freezehours via mqtt.publish. IF trigger is new_wind_speed THEN Publish current wind speed (or 0 if unavailable) to MQTT topic house/weather/new_wind_speed via script.generic_mqtt_publisher. IF trigger is daily THEN Publish yesterday's rainfall from Daily Rainfall UT [sensor.daily_rainfall_ut] attribute to MQTT topic house/weather/yesterday_rainfall_mm via mqtt.publish AND IF Daily Max Temp [sensor.daily_max_temp] > Max Temp [sensor.max_temp] THEN Publish to MQTT topic house/weather/maxtemp via mqtt.publish AND IF Daily Max Temp [sensor.daily_max_temp] > All Time High Max Temp [sensor.ath_max_temp] THEN Publish to MQTT topic house/weather/athmaxtemp via mqtt.publish AND Send notification via script.text_notify_parents AND Delay 30 seconds AND IF Daily Low Temp [sensor.daily_low_temp] < Low Temp [sensor.low_temp] THEN Publish to MQTT topic house/weather/lowtemp via mqtt.publish AND IF Daily Low Temp [sensor.daily_low_temp] < All Time High Low Temp [sensor.ath_low_temp] THEN Publish to MQTT topic house/weather/athlowtemp via mqtt.publish AND Send notification via script.text_notify_parents AND Delay 30 seconds AND IF Daily Rainfall UT [sensor.daily_rainfall_ut] > All Time High 24h Rain [sensor.ath_24h_rain] THEN Publish to MQTT topic house/weather/athdailyrain via mqtt.publish AND Send notification via script.text_notify_parents AND IF Daily Max Wind Speed [sensor.daily_max_wind_speed] > Max Wind Gust [sensor.max_wind_gust] THEN Publish to MQTT topic house/weather/maxwind via mqtt.publish AND IF Daily Rainfall UT [sensor.daily_rainfall_ut] > 0 THEN Increment Days With Rain [sensor.days_with_rain] and publish to MQTT topic house/weather/daysrain via mqtt.publish AND Publish updated total rainfall to MQTT topic house/weather/totalrainfall via mqtt.publish ELSE IF Daily Rainfall UT [sensor.daily_rainfall_ut] is 0 THEN Increment Days Without Rain [sensor.days_without_rain] and publish to MQTT topic house/weather/daysnorain via mqtt.publish AND IF Daily Max Pressure [sensor.daily_max_pressure] > Max Pressure [sensor.max_pressure] THEN Publish to MQTT topic house/weather/maxpress via mqtt.publish AND IF Daily Max Pressure [sensor.daily_max_pressure] > All Time High Max Pressure [sensor.ath_max_pressure] THEN Publish to MQTT topic house/weather/athmaxpress via mqtt.publish AND Send notification via script.text_notify_parents AND Delay 30 seconds AND IF Daily Low Pressure [sensor.daily_low_pressure] < Min Pressure [sensor.min_pressure] THEN Publish to MQTT topic house/weather/minpress via mqtt.publish AND IF Daily Low Pressure [sensor.daily_low_pressure] < All Time High Min Pressure [sensor.ath_min_pressure] THEN Publish to MQTT topic house/weather/athminpress via mqtt.publish AND Send notification via script.text_notify_parents AND Delay 30 seconds AND IF Daily Max Humidity [sensor.daily_max_humidity] > Max Humidity [sensor.max_humidity] THEN Publish to MQTT topic house/weather/maxhum via mqtt.publish AND IF Daily Max Humidity [sensor.daily_max_humidity] > All Time High Max Humidity [sensor.ath_max_humidity] THEN Publish to MQTT topic house/weather/athmaxhum via mqtt.publish AND Send notification via script.text_notify_parents AND Delay 30 seconds AND IF Daily Min Humidity [sensor.daily_min_humidity] < Min Humidity [sensor.min_humidity] THEN Publish to MQTT topic house/weather/minhum via mqtt.publish AND IF Daily Min Humidity [sensor.daily_min_humidity] < All Time High Min Humidity [sensor.ath_min_humidity] THEN Publish to MQTT topic house/weather/athminhum via mqtt.publish AND Send notification via script.text_notify_parents AND Delay 30 seconds AND IF Daily Max Solar Radiation [sensor.daily_max_solar_radiation] > Max Solar Radiation [sensor.max_solar_radiation] THEN Publish to MQTT topic house/weather/maxsolrad via mqtt.publish AND IF Daily Max Solar Radiation [sensor.daily_max_solar_radiation] > All Time High Max Solar Radiation [sensor.ath_max_solar_radiation] THEN Publish to MQTT topic house/weather/athmaxsolrad via mqtt.publish AND Send notification via script.text_notify_parents AND Delay 30 seconds AND IF Daily Max Solar Lux [sensor.daily_max_solar_lux] > Max Solar Lux [sensor.max_solar_lux] THEN Publish to MQTT topic house/weather/maxsollux via mqtt.publish AND IF Daily Max Solar Lux [sensor.daily_max_solar_lux] > All Time High Max Solar Lux [sensor.ath_max_solar_lux] THEN Publish to MQTT topic house/weather/athmaxsollux via mqtt.publish AND Send notification via script.text_notify_parents AND Delay 30 seconds AND IF Daily Max UV Index [sensor.daily_max_uv_index] > Max UV Index [sensor.max_uv_index] THEN Publish to MQTT topic house/weather/maxuv via mqtt.publish AND IF Daily Max UV Index [sensor.daily_max_uv_index] > All Time High Max UV Index [sensor.ath_max_uv_index] THEN Publish to MQTT topic house/weather/athmaxuv via mqtt.publish AND Send notification via script.text_notify_parents AND Delay 30 seconds AND IF Daily Max Soil Temp [sensor.daily_max_soil_temp] > Max Soil Temperature [sensor.max_soil_temperature] THEN Publish to MQTT topic house/weather/maxsoiltemp via mqtt.publish AND IF Daily Max Soil Temp [sensor.daily_max_soil_temp] > All Time High Max Soil Temperature [sensor.ath_max_soil_temperature] THEN Publish to MQTT topic house/weather/athmaxsoiltemp via mqtt.publish AND Send notification via script.text_notify_parents AND Delay 30 seconds AND IF Daily Min Soil Temp [sensor.daily_min_soil_temp] < Min Soil Temperature [sensor.min_soil_temperature] THEN Publish to MQTT topic house/weather/minsoiltemp via mqtt.publish AND IF Daily Min Soil Temp [sensor.daily_min_soil_temp] < All Time High Min Soil Temperature [sensor.ath_min_soil_temperature] THEN Publish to MQTT topic house/weather/athminsoiltemp via mqtt.publish AND Send notification via script.text_notify_parents AND Delay 30 seconds AND IF Daily Max Soil Moisture [sensor.daily_max_soil_moisture] > Max Soil Moisture [sensor.max_soil_moisture] THEN Publish to MQTT topic house/weather/maxsoilmoist via mqtt.publish AND IF Daily Max Soil Moisture [sensor.daily_max_soil_moisture] > All Time High Max Soil Moisture [sensor.ath_max_soil_moisture] THEN Publish to MQTT topic house/weather/athmaxsoilmoist via mqtt.publish AND Send notification via script.text_notify_parents AND Delay 30 seconds AND IF Daily Min Soil Moisture [sensor.daily_min_soil_moisture] < Min Soil Moisture [sensor.min_soil_moisture] THEN Publish to MQTT topic house/weather/minsoilmoist via mqtt.publish AND IF Daily Min Soil Moisture [sensor.daily_min_soil_moisture] < All Time High Min Soil Moisture [sensor.ath_min_soil_moisture] THEN Publish to MQTT topic house/weather/athminsoilmoist via mqtt.publish AND Send notification via script.text_notify_parents AND Delay 30 seconds. IF trigger is WH90 Batt Low THEN Send notification via script.text_notify_dave.",
"natural_language": {
"trigger": "The automation is triggered by several events: when the lightning strike count, maximum daily wind gust, or wind speed sensors change state; at specific times daily (23:55, 00:01, 00:03, and 00:00); or when the battery level of the GW2000A WH90 sensor falls below 1.75 volts.",
"conditions": "There are no global conditions for this automation; the actions are selected based solely on which trigger fired.",
"action": "Depending on which trigger occurred, the automation performs different actions: For a new lightning strike, it checks if it's a new record and publishes the count and timestamp via MQTT. For a new wind gust, it checks for an all-time high, publishes the data, and sends a notification. At the start of the day (00:01), it updates cumulative chill and freeze hour totals if applicable. At record reset times (00:00 and 00:03), it initializes monthly temperature records, publishes weekly rainfall on Sundays, and resets monthly chill/freeze totals on the first of the month. For a change in wind speed, it publishes the current speed. At the end of the day (23:55), it performs a comprehensive update of daily weather statistics, checking for new daily and all-time records for temperature, rainfall, wind, pressure, humidity, solar radiation, UV, and soil conditions, publishing the results via MQTT and sending notifications for new all-time highs or lows. If the WH90 battery is low, it sends a notification to a specific person."
},
"human_like": "This automation collects and records detailed weather statistics, checking for new daily and all-time records, and sends notifications for significant events like record-breaking temperatures or low battery warnings.",
"complexity": "high"
}
},
{
"id": "Washing Machine - All Automations",
"result": {
"structured": "TRIGGER: When Shelly1PM Power [sensor.shelly1pm_e89f6d84a584_power] exceeds 10W OR When Shelly1PM Power [sensor.shelly1pm_e89f6d84a584_power] remains below 2W for 1 minute OR When timer.finished event occurs for timer.washing_machine_door_open OR When Washing Machine Door Contact [binary_sensor.washing_machine_door_contact] changes from off to on. CONDITIONS: None (global conditions are empty). ACTIONS: Choose one sequence based on the trigger: (1) If triggered by Washing Machine On, turn on Washing Machine On/Off [input_boolean.washing_machine_on_off]. (2) If triggered by Washing machine off, delay 1 minute, then turn off Washing Machine On/Off [input_boolean.washing_machine_on_off], then if audible notifications input boolean [input_boolean.audible_notifications] is on AND quiet time binary sensor [binary_sensor.quiet_time] is off, run speech engine for tts script [script.speech_engine_for_tts] with a random washing finished message, then if text notifications input boolean [input_boolean.text_notifications] is on AND text notifications dave input boolean [input_boolean.text_notifications_dave] is on, send a mobile notification to my mobile phone id input text [input_text.my_mobile_phone_id], then if text notifications input boolean [input_boolean.text_notifications] is on AND text notifications gem input boolean [input_boolean.text_notifications_gem] is on, send a mobile notification to gem's mobile phone id input text [input_text.gem_s_mobile_phone_id], then start timer.washing_machine_door_open, then turn on kitchen light 2 light [light.kitchen_light_2] to darkorange at 10% brightness, then turn on washing machine finished input boolean [input_boolean.washing_machine_finished]. (3) If triggered by Washing machine door not open AND Washing Machine Door Contact [binary_sensor.washing_machine_door_contact] is off, then if audible notifications input boolean [input_boolean.audible_notifications] is on AND quiet time binary sensor [binary_sensor.quiet_time] is off, run speech engine for tts script [script.speech_engine_for_tts] with a random reminder message, then if text notifications input boolean [input_boolean.text_notifications] is on AND text notifications dave input boolean [input_boolean.text_notifications_dave] is on, send a mobile notification to my mobile phone id input text [input_text.my_mobile_phone_id], then if text notifications input boolean [input_boolean.text_notifications] is on AND text notifications gem input boolean [input_boolean.text_notifications_gem] is on, send a mobile notification to gem's mobile phone id input text [input_text.gem_s_mobile_phone_id]. (4) If triggered by Washing removed from machine AND (timer.washing_machine_door_open is active OR timer.washing_machine_door_open is idle), then cancel timer.washing_machine_door_open, then if kitchen lights 2 light [light.kitchen_lights_2] is off, turn off kitchen light 2 light [light.kitchen_light_2], else if lunchtime binary sensor [binary_sensor.lunchtime] is on OR dinner time binary sensor [binary_sensor.dinner_time] is on, activate scene Kitchen Lights Mealtimes [scene.kitchen_lights_mealtimes], else activate scene Kitchen Lights Normal [scene.kitchen_lights_normal].",
"natural_language": {
"trigger": "The automation can be triggered in four ways: when the washing machine's power consumption, measured by Shelly1PM Power [sensor.shelly1pm_e89f6d84a584_power], rises above 10 watts; when it stays below 2 watts for a full minute; when a timer named timer.washing_machine_door_open finishes; or when the washing machine door is opened, indicated by the Washing Machine Door Contact [binary_sensor.washing_machine_door_contact] changing from closed to open.",
"conditions": "There are no global conditions that apply to all triggers.",
"action": "The actions depend on which trigger fired. If the machine starts (power above 10W), it simply marks the machine as on by turning on the Washing Machine On/Off [input_boolean.washing_machine_on_off] input boolean. If the machine stops (power stays low for a minute), it waits another minute, marks the machine as off, and then, if audible and text notifications are enabled and it's not quiet time, sends humorous voice and mobile notifications to announce the cycle is complete. It also starts a reminder timer, turns on a kitchen light to orange as a visual cue, and marks the washing as finished. If the reminder timer finishes and the door is still closed, it sends follow-up voice and text reminders to remove the laundry. Finally, if the door is opened while the reminder timer is either running or finished, it cancels the timer, turns off the orange kitchen light (or adjusts the kitchen lighting scene based on whether it's mealtime), effectively resetting the system."
},
"human_like": "This automation monitors the washing machine's power usage to detect when a cycle starts and ends, sends playful notifications when it finishes, and reminds you to empty the machine with further alerts if you forget.",
"complexity": "high"
}
},
{
"id": "Water Leak Detection and Alarm",
"result": {
"structured": "TRIGGER: When any of the following water leak sensors remains in the 'on' (leak detected) state for 1 minute: Leak Detector Dishwasher Water Leak [binary_sensor.leak_detector_dishwasher_water_leak], Leak Detector Washing Machine Water Leak [binary_sensor.leak_detector_washing_machine_water_leak], Kids Bathroom Leak Detector Water Leak [binary_sensor.kids_bathroom_leak_detector_water_leak], or Main Bathroom Leak Detector Water Leak [binary_sensor.main_bathroom_leak_detector_water_leak]. CONDITIONS: None. ACTIONS: 1. Send a mobile notification to Dave's phone (using the ID from my mobile phone id input text [input_text.my_mobile_phone_id]) with the message 'WATER LEAK DETECTED!' and details of the triggered sensor. 2. If quiet time binary sensor [binary_sensor.quiet_time] is off AND audible notifications input boolean [input_boolean.audible_notifications] is on, then: set Media Player Everywhere 2 [media_player.everywhere_2] volume to 0.6, send an Alexa voice announcement via notify.alexa_media_everywhere_2, reset the volume of Media Player Everywhere 2 [media_player.everywhere_2] to the value from Alexa Volume Level Default All [input_number.alexa_volume_level_default_all], and wait 1 minute. 3. If quiet time binary sensor [binary_sensor.quiet_time] is off AND (Leak Detector Dishwasher Water Leak [binary_sensor.leak_detector_dishwasher_water_leak] is on OR Leak Detector Washing Machine Water Leak [binary_sensor.leak_detector_washing_machine_water_leak] is on), then: set the volume of all media players in the 'everywhere' area to 0.6, send an excited/high-intensity Alexa voice announcement via notify.alexa_media_everywhere_2, reset the volume of all media players in the 'everywhere' area to the value from Alexa Volume Level Default All [input_number.alexa_volume_level_default_all], and wait 1 minute. 4. The same conditional action block (for dishwasher/washing machine leaks during non-quiet time) is repeated four more times with minor variations in the announcement's emotional intensity and formatting, but the logical conditions and core actions remain identical.",
"natural_language": {
"trigger": "When a water leak is detected and persists for one minute by any of the four sensors: the dishwasher leak detector, the washing machine leak detector, the kids bathroom leak detector, or the main bathroom leak detector.",
"conditions": "There are no global conditions that must be met for the automation to run; the trigger is sufficient.",
"action": "First, it sends a high-priority mobile notification to Dave's phone, identifying the specific location of the leak. Then, it performs a series of conditional announcements. If the house is not in quiet time and audible notifications are enabled, it makes a standard Alexa announcement on a specific speaker group. If the leak is from either the dishwasher or washing machine and quiet time is off, it makes a more urgent, emotionally intense Alexa announcement across all speakers in the 'everywhere' area. This urgent announcement for appliance leaks is repeated multiple times with slight variations in the announcement's vocal style."
},
"human_like": "Detects a persistent water leak from any monitored appliance or bathroom and sends mobile alerts and urgent Alexa voice announcements, with special emphasis on leaks from major appliances like the dishwasher or washing machine.",
"complexity": "high"
}
},
{
"id": "Welcome Home",
"result": {
"structured": "TRIGGER: When dave home [binary_sensor.dave_home] OR gem home [binary_sensor.gem_home] OR Sean Home [binary_sensor.sean_home] changes state to on. CONDITIONS: None. ACTIONS: Choose based on conditions: IF (welcome home [input_boolean.welcome_home] is on) AND (audible notifications [input_boolean.audible_notifications] is on) THEN: 1. Wait for either front door sense contact binary sensor [binary_sensor.front_door_sense_contact] OR back door sensor contact binary sensor [binary_sensor.back_door_sensor_contact] to change from on to off (with no duration) for up to 10 minutes. 2. Delay for 20 seconds. 3. If announcement playing [input_boolean.announcement_playing] is off, then run script welcome_briefing_2. OTHERWISE (default): 1. Add the triggering entity to group 'arriving'. 2. Wait for either front door sense contact binary sensor [binary_sensor.front_door_sense_contact] OR back door sensor contact binary sensor [binary_sensor.back_door_sensor_contact] to change from on to off for up to 5 minutes. 3. Delay for 20 seconds. 4. If announcement playing [input_boolean.announcement_playing] is off, then run jarvis speech engine v3 0 script [script.jarvis_speech_engine_v3_0] with a template-generated welcome announcement in the kitchen. 5. Delay for 2 minutes. 6. Clear group 'arriving'.",
"natural_language": {
"trigger": "When any of the person sensors (dave home [binary_sensor.dave_home], gem home [binary_sensor.gem_home], or Sean Home [binary_sensor.sean_home]) indicates that the person has arrived home (changes to 'on').",
"conditions": "There are no conditions that must be met before the actions start; the automation runs immediately upon trigger.",
"action": "The automation has two main paths. If both the 'welcome home' [input_boolean.welcome_home] and 'audible notifications' [input_boolean.audible_notifications] are turned on, it first waits for a door (either the front door sense contact binary sensor [binary_sensor.front_door_sense_contact] or the back door sensor contact binary sensor [binary_sensor.back_door_sensor_contact]) to close (change from open to closed) within 10 minutes. After a 20-second delay, if no other announcement is playing (announcement playing [input_boolean.announcement_playing] is off), it plays a specific welcome briefing script. If the 'welcome home' or 'audible notifications' are not both on, it follows a default path: it adds the person who triggered the automation to a temporary 'arriving' group, waits for a door to close within 5 minutes, delays 20 seconds, and then, if no other announcement is playing, uses a speech engine to announce a random, personalized welcome message in the kitchen. After a final 2-minute delay, it clears the 'arriving' group."
},
"human_like": "Welcomes people home with a spoken announcement, either a standard briefing or a personalized greeting, depending on system settings, and ensures it doesn't interrupt other announcements.",
"complexity": "high"
}
},
{
"id": "Zigbee Device Watch and Notify",
"result": {
"structured": "TRIGGER: When Zigbee2MQTT Offline Device [sensor.zigbee2mqtt_offline_device] changes state. CONDITIONS: None. ACTIONS: Execute script text notify dave script [script.text_notify_dave] with a notification title 'ZIGBEE DEVICE OFFLINE' and a message containing the current state of Zigbee2MQTT Offline Device [sensor.zigbee2mqtt_offline_device] AND create a persistent notification with the same title and message.",
"natural_language": {
"trigger": "Whenever the Zigbee2MQTT Offline Device [sensor.zigbee2mqtt_offline_device] sensor updates its state.",
"conditions": "There are no conditions that need to be met.",
"action": "Sends a text notification to Dave via the text notify dave script [script.text_notify_dave] and also creates a persistent notification in the Home Assistant interface. Both notifications have the title 'ZIGBEE DEVICE OFFLINE' and a message that lists the currently offline Zigbee devices as reported by the sensor."
},
"human_like": "Sends a notification whenever a Zigbee device goes offline, alerting the user to the issue.",
"complexity": "low"
}
}
]