418 lines
67 KiB
JSON
418 lines
67 KiB
JSON
[
|
|
{
|
|
"id": "driveway_video_ai_analysis",
|
|
"result": {
|
|
"structured": "TRIGGER: When driveway video ready [input_boolean.driveway_video_ready] turns on. CONDITIONS: ai detection enabled [input_boolean.ai_detection_enabled] is on AND dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on. ACTIONS: Use google ai task [ai_task.google_ai_task] to analyze the video file 'media-source://media_source/local/ai_image_notifications/driveway_dogwalk_capture.mp4' for dog walking activity and store the text response in variable 'driveway_video_response'. Then, set driveway analysis result [input_text.driveway_analysis_result] to the first line of the lowercase response. Finally, turn off driveway video ready [input_boolean.driveway_video_ready].",
|
|
"natural_language": {
|
|
"trigger": "When the driveway video ready [input_boolean.driveway_video_ready] switch is turned on.",
|
|
"conditions": "Both the ai detection enabled [input_boolean.ai_detection_enabled] and the dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] switches must be on.",
|
|
"action": "The automation sends a specific video file to an AI service, google ai task [ai_task.google_ai_task], for analysis. The AI is instructed to detect dog walking activity and classify it based on direction and presence of people and dogs. The text result from the AI is then stored in the driveway analysis result [input_text.driveway_analysis_result] field, and finally, the driveway video ready [input_boolean.driveway_video_ready] switch is turned off to reset the trigger."
|
|
},
|
|
"human_like": "Analyzes a driveway video for dog walks using AI when a new video is ready and monitoring is enabled, then saves the result.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "driveway_image_capture",
|
|
"result": {
|
|
"structured": "TRIGGER: When driveway person motion [binary_sensor.driveway_person] detects a person (on) OR when driveway pet motion [binary_sensor.driveway_pet] detects a pet (on). CONDITIONS: Time is between 06:00:00 and 22:00:00 AND driveway camera entity [input_text.driveway_camera_entity] is not 'unknown' or empty. ACTIONS: (If the trigger was person_motion AND driveway pet motion [binary_sensor.driveway_pet] is off, wait up to 15 seconds for driveway pet motion [binary_sensor.driveway_pet] to detect a pet (on)) OR (If the trigger was pet_motion AND driveway person motion [binary_sensor.driveway_person] is off, wait up to 15 seconds for driveway person motion [binary_sensor.driveway_person] to detect a person (on)). Then, set last walk detection [input_datetime.last_walk_detection] to the current datetime, turn off driveway video ready [input_boolean.driveway_video_ready], run ensure backup directories [shell_command.ensure_backup_directories] (continue on error), run backup driveway walk video [shell_command.backup_driveway_walk_video] (continue on error), delay 2 seconds, record a 30-second video from the camera specified by driveway camera entity [input_text.driveway_camera_entity] with a 15-second lookback, delay 32 seconds, and turn on driveway video ready [input_boolean.driveway_video_ready].",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers when motion from a person is detected by driveway person motion [binary_sensor.driveway_person] or when motion from a pet is detected by driveway pet motion [binary_sensor.driveway_pet].",
|
|
"conditions": "The automation only runs if the current time is between 6:00 AM and 10:00 PM, and if the driveway camera entity [input_text.driveway_camera_entity] has a valid, non-empty value.",
|
|
"action": "If a person is detected but a pet is not, the automation waits up to 15 seconds for pet motion to also be detected. Conversely, if a pet is detected but a person is not, it waits up to 15 seconds for person motion. After this potential wait, it updates the timestamp for last walk detection [input_datetime.last_walk_detection], marks driveway video ready [input_boolean.driveway_video_ready] as off, runs backup directory and video backup commands (continuing even if they fail), waits 2 seconds, records a 30-second video from the specified camera starting 15 seconds before the trigger, waits another 32 seconds, and finally marks driveway video ready [input_boolean.driveway_video_ready] as on."
|
|
},
|
|
"human_like": "Records a video of the driveway when both a person and a pet are detected within a short time, typically to capture dog walks, but only during daytime hours.",
|
|
"complexity": "high"
|
|
}
|
|
},
|
|
{
|
|
"id": "evening_dog_walk_reminder",
|
|
"result": {
|
|
"structured": "TRIGGER: When the time is 20:30:00 OR 21:00:00 OR 21:30:00. CONDITIONS: dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on AND notifications enabled [input_boolean.notifications_enabled] is on AND walk in progress [input_boolean.walk_in_progress] is off AND (evening walk done [input_datetime.evening_walk_done] state is 'unknown' OR the date part of evening walk done [input_datetime.evening_walk_done] is not equal to today's date). ACTIONS: Fire a custom event 'UNotify' with a templated message.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers at three specific times in the evening: 8:30 PM, 9:00 PM, and 9:30 PM.",
|
|
"conditions": "All of the following must be true: the dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is turned on, the notifications enabled [input_boolean.notifications_enabled] is turned on, a walk is not currently in progress (walk in progress [input_boolean.walk_in_progress] is off), and either the evening walk done [input_datetime.evening_walk_done] status is unknown or its recorded date is not today.",
|
|
"action": "Sends a custom notification event named 'UNotify' with a spoken and displayed message reminding Liam to take the dog for an evening walk."
|
|
},
|
|
"human_like": "Sends evening reminders to walk the dog at 8:30, 9:00, and 9:30 PM, but only if walk monitoring and notifications are on, a walk isn't already happening, and today's walk hasn't been logged yet.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "evening_walk_auto_complete",
|
|
"result": {
|
|
"structured": "TRIGGER: When driveway analysis [sensor.driveway_analysis] changes to state 'ending_dog_walk'. CONDITIONS: Time is between 15:00:00 and 22:00:00 AND dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on AND (evening walk done [input_datetime.evening_walk_done] is 'unknown' OR the date part of its value is not today). ACTIONS: Turn off walk in progress [input_boolean.walk_in_progress]. Set evening walk done [input_datetime.evening_walk_done] to the current date and time. Fire a UNotify event to clear notifications for 'evening_dog_walk' and 'walk_started' for target 'liam'. Fire a UNotify event with a congratulatory message for target 'liam'. Fire a UNotify event with a status message for target 'parents'.",
|
|
"natural_language": {
|
|
"trigger": "When the driveway analysis [sensor.driveway_analysis] sensor detects the state 'ending_dog_walk'.",
|
|
"conditions": "The current time must be between 3:00 PM and 10:00 PM. The dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] switch must be turned on. The evening walk done [input_datetime.evening_walk_done] input must either have an 'unknown' value or its stored date must not be today's date.",
|
|
"action": "The automation will mark the walk as finished by turning off the walk in progress [input_boolean.walk_in_progress] switch and recording the current time in the evening walk done [input_datetime.evening_walk_done] input. It will then send several notifications: it clears any existing 'evening_dog_walk' and 'walk_started' notifications for Liam, sends Liam a celebratory message (which may include the walk duration if a start time is recorded), and sends a low-priority status update about the walk completion to the parents."
|
|
},
|
|
"human_like": "Automatically marks the evening dog walk as complete when the driveway camera detects the walk is ending, provided it's between 3 PM and 10 PM and monitoring is enabled. It then updates the status and sends celebratory and informational notifications.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "trigger_family_room_analysis",
|
|
"result": {
|
|
"structured": "TRIGGER: When family room person motion [binary_sensor.family_room_person_motion] detects motion (on) OR When family room person motion [binary_sensor.family_room_person_motion] stops detecting motion (off) for 2 minutes OR When force family room check [input_boolean.force_family_room_check] is turned on (on). CONDITIONS: ai detection enabled [input_boolean.ai_detection_enabled] is on AND family room monitoring enabled [input_boolean.family_room_monitoring_enabled] is on AND family room camera entity [input_text.family_room_camera_entity] is not 'unknown' or empty AND ai task entity [input_text.ai_task_entity] is not 'unknown', 'unavailable', or empty AND (force family room check [input_boolean.force_family_room_check] is on OR the time since family room last check [input_datetime.family_room_last_check] is greater than 300 seconds (or if last check is 'unknown', condition is true)). ACTIONS: Update family room last check [input_datetime.family_room_last_check] to the current datetime. Take a snapshot from the camera specified by family room camera entity [input_text.family_room_camera_entity] and save it to /config/www/local/ai_image_notifications/family_room_snapshot.jpg. Take a snapshot from the camera specified by kitchen camera entity [input_text.kitchen_camera_entity] and save it to /config/www/local/ai_image_notifications/family_room_kitchen_view_snapshot.jpg. Trigger an AI analysis task via google ai task [ai_task.google_ai_task] named 'family_room_tidiness_analysis' with the saved images and specific instructions to analyze tidiness and safety, using the threshold from family room cleanliness threshold [input_number.family_room_cleanliness_threshold]. Update the sensor family room tidy status [sensor.family_room_tidy_status] with the parsed AI response ('needs_tidying', 'tidy', or 'unknown') and additional attributes. Turn off force family room check [input_boolean.force_family_room_check].",
|
|
"natural_language": {
|
|
"trigger": "The automation can start when motion is first detected in the family room, when motion has been absent for two minutes, or when a manual check is requested by turning on the force family room check switch.",
|
|
"conditions": "Several conditions must be met: the overall AI detection system and the specific family room monitoring must both be enabled. The system must have valid camera entities configured for both the family room and the AI task service. Finally, either a manual check is being forced, or at least five minutes have passed since the last automated check was performed.",
|
|
"action": "The automation records the current time as the last check, captures snapshot images from both the family room and a kitchen camera that has a view of the family room, and sends these images to an AI service for analysis. The AI is instructed to assess the room's tidiness and safety based on a specific threshold, ignoring general clutter. The result of this analysis is then saved to a sensor, and if it was triggered manually, the manual request switch is turned off."
|
|
},
|
|
"human_like": "This automation uses AI to analyze the tidiness and safety of the family room, triggered by motion or a manual request, and saves the result for review.",
|
|
"complexity": "high"
|
|
}
|
|
},
|
|
{
|
|
"id": "family_room_tidying_notification",
|
|
"result": {
|
|
"structured": "TRIGGER: When family room analysis [sensor.family_room_analysis] changes to state 'needs_tidying'. CONDITIONS: (family room monitoring enabled [input_boolean.family_room_monitoring_enabled] is on) AND (notifications enabled [input_boolean.notifications_enabled] is on) AND (the time elapsed since the last notification stored in last family room notification [input_datetime.last_family_room_notification] is greater than the cooldown period defined by notification cooldown [input_number.notification_cooldown] minutes, OR if the last notification time is unknown). ACTIONS: Update the timestamp in last family room notification [input_datetime.last_family_room_notification] to the current time AND send a UNotify event with a custom message for Liam.",
|
|
"natural_language": {
|
|
"trigger": "When the family room analysis [sensor.family_room_analysis] sensor indicates the room needs tidying.",
|
|
"conditions": "If monitoring for the family room is enabled via family room monitoring enabled [input_boolean.family_room_monitoring_enabled], if global notifications are enabled via notifications enabled [input_boolean.notifications_enabled], and if a sufficient amount of time has passed since the last notification was sent, based on the cooldown period set in notification cooldown [input_number.notification_cooldown].",
|
|
"action": "Records the current time as the last notification sent and sends a custom notification event to Liam, suggesting he tidy the family room when he has a chance."
|
|
},
|
|
"human_like": "Sends a polite reminder to Liam to tidy the family room when the system detects it's needed, but only if notifications are enabled and a cooldown period has passed.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "family_room_tidied_acknowledgment",
|
|
"result": {
|
|
"structured": "TRIGGER: When family room analysis [sensor.family_room_analysis] changes from 'needs_tidying' to 'tidy'. CONDITIONS: notifications enabled [input_boolean.notifications_enabled] is on. ACTIONS: 1. Send a UNotify event to clear any existing notification for 'liam' with tag 'family_room_tidy'. 2. Send a UNotify event to 'liam' with a spoken, displayed, and text message praising the tidying of the family room. 3. Send a UNotify event to 'parents' with a timestamped text message confirming the family room was tidied.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers when the sensor family room analysis [sensor.family_room_analysis] reports that the room's status changes from 'needs_tidying' to 'tidy'.",
|
|
"conditions": "The automation only runs if the global switch notifications enabled [input_boolean.notifications_enabled] is turned on.",
|
|
"action": "First, it clears any previous 'family room tidy' notification sent to Liam. Then, it sends Liam a multi-part notification with a spoken compliment, a display message, and a text message praising him for tidying the family room. Finally, it sends a low-priority, timestamped status update to the 'parents' channel, noting the excellent work."
|
|
},
|
|
"human_like": "Sends praise and status updates when the family room is reported as tidy, provided notifications are enabled.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "family_room_tidy_notification",
|
|
"result": {
|
|
"structured": "TRIGGER: When family room analysis [sensor.family_room_analysis] changes to tidy. CONDITIONS: family room monitoring enabled [input_boolean.family_room_monitoring_enabled] is on AND notifications enabled [input_boolean.notifications_enabled] is on AND (the previous state of family room analysis [sensor.family_room_analysis] was unknown OR unavailable OR none). ACTIONS: Send a notification via parents notification [notify.parents] with title 'Family Room Looking Good! ✨' and message 'The family room is nice and tidy. Great job keeping it organized!' and tag 'family_room_good'.",
|
|
"natural_language": {
|
|
"trigger": "When the family room analysis [sensor.family_room_analysis] sensor reports that the room is tidy.",
|
|
"conditions": "The family room monitoring enabled [input_boolean.family_room_monitoring_enabled] switch must be on, the notifications enabled [input_boolean.notifications_enabled] switch must be on, and the previous state of the family room analysis sensor must have been unknown, unavailable, or not set.",
|
|
"action": "Sends a notification to the parents [notify.parents] with a congratulatory message that the family room is tidy."
|
|
},
|
|
"human_like": "Sends a positive notification when the family room is analyzed as tidy, provided notifications and monitoring are enabled.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "trigger_kitchen_analysis",
|
|
"result": {
|
|
"structured": "TRIGGER: When kitchen person motion [binary_sensor.kitchen_person_motion] detects motion (turns on) OR When kitchen person motion [binary_sensor.kitchen_person_motion] stops detecting motion (turns off) AND remains off for 2 minutes OR When force kitchen check [input_boolean.force_kitchen_check] is turned on. CONDITIONS: (ai detection enabled [input_boolean.ai_detection_enabled] is on) AND (kitchen monitoring enabled [input_boolean.kitchen_monitoring_enabled] is on) AND (kitchen camera entity [input_text.kitchen_camera_entity] is not 'unknown' or empty) AND (ai task entity [input_text.ai_task_entity] is not 'unknown', 'unavailable', or empty) AND (force kitchen check [input_boolean.force_kitchen_check] is on OR (kitchen last check [input_datetime.kitchen_last_check] is 'unknown' OR more than 5 minutes have passed since the last check)). ACTIONS: 1. Update kitchen last check [input_datetime.kitchen_last_check] to the current date and time. 2. Take a snapshot from the camera specified by kitchen camera entity [input_text.kitchen_camera_entity] and save it to a file. 3. Send the snapshot to google ai task [ai_task.google_ai_task] with instructions to analyze kitchen cleanliness. 4. Update kitchen clean status [sensor.kitchen_clean_status] with the analysis result and suggestions. 5. Turn off force kitchen check [input_boolean.force_kitchen_check].",
|
|
"natural_language": {
|
|
"trigger": "The automation can be triggered in three ways: when motion is first detected by the kitchen person motion sensor, when motion has not been detected for two minutes, or when a manual force kitchen check is activated.",
|
|
"conditions": "Several conditions must be met for the analysis to run. First, both the global AI detection and the specific kitchen monitoring features must be enabled. Second, the system must have valid camera and AI task entities configured. Finally, either the manual force check must be active, or at least five minutes must have passed since the last automated check was performed.",
|
|
"action": "When triggered, the automation records the current time as the last check, takes a snapshot from the designated kitchen camera, and sends it to an AI service for analysis. The AI assesses the kitchen's cleanliness for food safety. The result is then saved to a sensor, and the manual force check flag is turned off."
|
|
},
|
|
"human_like": "This automation uses AI to analyze the kitchen's cleanliness for food safety, triggered by motion or a manual request, and saves the result.",
|
|
"complexity": "high"
|
|
}
|
|
},
|
|
{
|
|
"id": "kitchen_cleaned_acknowledgment",
|
|
"result": {
|
|
"structured": "TRIGGER: When kitchen analysis [sensor.kitchen_analysis] changes state from 'needs_cleaning' to 'clean'. CONDITIONS: notifications enabled [input_boolean.notifications_enabled] is on. ACTIONS: Fire event 'UNotify' with data: clear notification for target 'liam' with tag 'kitchen_cleanup'. Fire event 'UNotify' with data: speak message 'Awesome job cleaning the kitchen! You're doing great!', display message 'Kitchen Clean! ✨', text message 'Great job cleaning up the kitchen! It looks fantastic - you're awesome! 🌟', priority 'normal', channel 'General', aiprompt 'no', target 'liam', tag 'kitchen_cleaned'. Fire event 'UNotify' with data: speak message 'no', display message 'no', text message 'Kitchen cleaned at <current_time> - great work!', priority 'low', channel 'General', aiprompt 'no', target 'parents', tag 'kitchen_status'.",
|
|
"natural_language": {
|
|
"trigger": "When the kitchen analysis [sensor.kitchen_analysis] sensor changes from reporting that the kitchen 'needs_cleaning' to reporting that it is 'clean'.",
|
|
"conditions": "The automation only runs if the notifications enabled [input_boolean.notifications_enabled] switch is turned on.",
|
|
"action": "It sends three notifications via the 'UNotify' event system. First, it clears any existing notification for Liam tagged as 'kitchen_cleanup'. Second, it sends a positive, encouraging notification to Liam with a spoken message, a display message, and a detailed text message, all praising the cleaning effort. Third, it sends a low-priority status update to the parents, informing them the kitchen was cleaned and including the time."
|
|
},
|
|
"human_like": "Sends encouraging notifications to acknowledge when the kitchen has been cleaned, and informs the parents.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "kitchen_cleanup_notification",
|
|
"result": {
|
|
"structured": "TRIGGER: When kitchen analysis [sensor.kitchen_analysis] changes to state 'needs_cleaning'. CONDITIONS: (kitchen monitoring enabled [input_boolean.kitchen_monitoring_enabled] is on) AND (notifications enabled [input_boolean.notifications_enabled] is on) AND (the time elapsed since the last notification stored in last kitchen notification [input_datetime.last_kitchen_notification] is greater than the cooldown period defined by notification cooldown [input_number.notification_cooldown] minutes, or if the last notification time is unknown, the condition is true). ACTIONS: Update the timestamp in last kitchen notification [input_datetime.last_kitchen_notification] to the current time. Then, trigger a custom event 'UNotify' with data: a spoken message that addresses the notification target [input_text.notification_target] by name if the target is 'liam', a display message if the target is 'liam', a general text message suggesting specific cleaning tasks from the sensor or a default phrase, and metadata including priority, channel, and a tag.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers when the kitchen analysis [sensor.kitchen_analysis] sensor indicates that the kitchen needs cleaning by changing its state to 'needs_cleaning'.",
|
|
"conditions": "For the automation to proceed, kitchen monitoring must be active, meaning kitchen monitoring enabled [input_boolean.kitchen_monitoring_enabled] is turned on. Notifications must also be globally enabled, so notifications enabled [input_boolean.notifications_enabled] must be on. Finally, a cooldown period must have passed since the last notification; this checks if the time difference between now and the last recorded time in last kitchen notification [input_datetime.last_kitchen_notification] is greater than the number of minutes set in notification cooldown [input_number.notification_cooldown]. If the last notification time is unknown, this condition is automatically satisfied.",
|
|
"action": "First, the automation records the current time as the new last notification time by updating the last kitchen notification [input_datetime.last_kitchen_notification] entity. Then, it sends a custom notification event. The content of this notification is tailored: if the current notification target [input_text.notification_target] is set to 'liam', it includes a personalized spoken and display message. The main text message suggests specific cleaning tasks obtained from the kitchen analysis sensor or a default reminder. The event includes standard notification settings like priority and channel, and is tagged for identification."
|
|
},
|
|
"human_like": "Sends a personalized notification to remind someone to clean the kitchen when the system detects it's needed, but only if notifications are enabled and a cooldown period has passed.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "morning_dog_walk_reminder",
|
|
"result": {
|
|
"structured": "TRIGGER: When the time is 12:00:00 OR 12:30:00 OR 13:00:00. CONDITIONS: (dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on) AND (notifications enabled [input_boolean.notifications_enabled] is on) AND (walk in progress [input_boolean.walk_in_progress] is off) AND (morning walk done [input_datetime.morning_walk_done] is unknown OR the date part of morning walk done [input_datetime.morning_walk_done] is not today). ACTIONS: Fire a custom event 'UNotify' with a message to remind about the morning dog walk.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers at three specific times during the day: 12:00 PM, 12:30 PM, and 1:00 PM.",
|
|
"conditions": "All of the following must be true: the dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is turned on, the notifications enabled [input_boolean.notifications_enabled] is turned on, the walk in progress [input_boolean.walk_in_progress] is off, and the morning walk done [input_datetime.morning_walk_done] is either in an unknown state or its recorded date is not today.",
|
|
"action": "Sends a custom notification event named 'UNotify' containing a spoken and displayed reminder message about taking the dog for a morning walk, including the current time and a prompt to grab the leash."
|
|
},
|
|
"human_like": "Sends a reminder to walk the dog in the early afternoon, but only if walk monitoring is on, notifications are enabled, a walk isn't already happening, and a walk hasn't been recorded yet today.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "morning_walk_auto_complete",
|
|
"result": {
|
|
"structured": "TRIGGER: When driveway analysis [sensor.driveway_analysis] changes to state 'ending_dog_walk'. CONDITIONS: (Time is between 06:00:00 and 15:00:00) AND (dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on) AND (morning walk done [input_datetime.morning_walk_done] state is 'unknown' OR the date part of its value is not today). ACTIONS: Turn off walk in progress [input_boolean.walk_in_progress]; Set morning walk done [input_datetime.morning_walk_done] to the current date and time; Fire a UNotify event to clear notifications for 'morning_dog_walk' and 'walk_started' for target 'liam'; Fire a UNotify event with a congratulatory message and walk duration (if available) for target 'liam'; Fire a UNotify event with a status message and walk duration (if available) for target 'parents'.",
|
|
"natural_language": {
|
|
"trigger": "When the driveway analysis [sensor.driveway_analysis] sensor detects the state 'ending_dog_walk'.",
|
|
"conditions": "The automation only runs if the current time is between 6 AM and 3 PM, the dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] switch is turned on, and the morning walk done [input_datetime.morning_walk_done] tracker either has an 'unknown' value or its recorded date is not today.",
|
|
"action": "It marks the walk as finished by turning off the walk in progress [input_boolean.walk_in_progress] indicator and updating the morning walk done [input_datetime.morning_walk_done] timestamp to the current time. It then sends several notifications: it clears previous 'morning_dog_walk' and 'walk_started' notifications for Liam, sends a congratulatory message to Liam (including the walk duration if the start time is known), and sends a low-priority status update with the completion time and duration to the parents."
|
|
},
|
|
"human_like": "Automatically marks the morning dog walk as complete when a driveway camera detects the walk ending, provided it's between 6 AM and 3 PM and the walk hasn't been logged yet today.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "unclear_walk_return_notification",
|
|
"result": {
|
|
"structured": "TRIGGER: When driveway analysis [sensor.driveway_analysis] changes to state 'unclear'. CONDITIONS: walk in progress [input_boolean.walk_in_progress] is on AND dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on. ACTIONS: Fire the 'UNotify' event with a custom message asking if the walk is complete and providing action buttons for 'Yes, Walk Complete ✅' and 'No, Still Walking 🚶♂️'.",
|
|
"natural_language": {
|
|
"trigger": "When the driveway analysis [sensor.driveway_analysis] sensor reports an 'unclear' state.",
|
|
"conditions": "If the walk in progress [input_boolean.walk_in_progress] is currently active and the dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] feature is turned on.",
|
|
"action": "Sends a notification to the parents via the 'UNotify' event. The message explains that someone returned to the driveway during the walk, but it's unclear if the dog was with them, and asks if the walk has finished. The notification includes two action buttons: one to confirm the walk is complete and another to indicate the walk is still ongoing."
|
|
},
|
|
"human_like": "Sends an alert when the driveway camera analysis is unclear during a dog walk, asking if the walk has finished.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "handle_unclear_walk_response",
|
|
"result": {
|
|
"structured": "TRIGGER: When a mobile app notification action event with action 'confirm_walk_complete' occurs OR When a mobile app notification action event with action 'walk_still_ongoing' occurs. CONDITIONS: dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on. ACTIONS: Send a UNotify event to clear the 'unclear_walk_return' notification for parents. Then, IF the trigger was 'confirm_walk_complete': Turn off walk in progress [input_boolean.walk_in_progress]. IF the current time is between 06:00:00 and 15:00:00 AND (morning walk done [input_datetime.morning_walk_done] is 'unknown' OR its date part is not today): Set morning walk done [input_datetime.morning_walk_done] to the current datetime, send a UNotify event to clear the 'morning_dog_walk' notification for liam, and send a UNotify acknowledgment event with a positive message for liam. IF the current time is between 15:00:00 and 22:00:00 AND (evening walk done [input_datetime.evening_walk_done] is 'unknown' OR its date part is not today): Set evening walk done [input_datetime.evening_walk_done] to the current datetime, send a UNotify event to clear the 'evening_dog_walk' notification for liam, and send a UNotify acknowledgment event with a positive message for liam. IF the trigger was 'walk_still_ongoing': Send a UNotify acknowledgment event with a low-priority message to parents indicating the walk is still in progress.",
|
|
"natural_language": {
|
|
"trigger": "When a user interacts with a mobile app notification, specifically by tapping an action button labeled either 'confirm_walk_complete' or 'walk_still_ongoing'.",
|
|
"conditions": "The automation only runs if the dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] switch is turned on.",
|
|
"action": "First, it clears the original 'unclear walk return' notification sent to the parents. Then, depending on which button was pressed: If 'Walk Complete' was pressed, it marks the walk as finished by turning off the walk in progress [input_boolean.walk_in_progress] indicator. Based on the time of day, it will then log the completion of either the morning or evening walk if it hasn't been logged today, clear any pending walk reminder notifications for Liam, and send Liam a cheerful acknowledgment message. If 'Still Walking' was pressed, it sends a low-priority acknowledgment message back to the parents to let them know the system will continue monitoring for the dog's return."
|
|
},
|
|
"human_like": "Processes responses to a notification about an unclear dog walk status, either logging the walk as complete with a time-based acknowledgment or confirming the walk is still ongoing.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "walk_started_detection",
|
|
"result": {
|
|
"structured": "TRIGGER: When driveway analysis [sensor.driveway_analysis] changes to 'starting_dog_walk'. CONDITIONS: dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on AND walk in progress [input_boolean.walk_in_progress] is off. ACTIONS: Turn on walk in progress [input_boolean.walk_in_progress]. Set current walk started [input_datetime.current_walk_started] to the current date and time. Send a UNotify event to clear notifications for 'morning_dog_walk' and 'evening_dog_walk' tags targeted at 'liam'. Send a UNotify event with a spoken, displayed, and text message announcing the walk start targeted at 'liam'. Send a UNotify event with a low-priority text message reporting the walk start time targeted at 'parents'.",
|
|
"natural_language": {
|
|
"trigger": "When the driveway analysis [sensor.driveway_analysis] sensor indicates that a dog walk is starting.",
|
|
"conditions": "The dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] switch must be on, and the walk in progress [input_boolean.walk_in_progress] switch must be off.",
|
|
"action": "The automation marks the walk as started by turning on the walk in progress [input_boolean.walk_in_progress] switch and recording the start time in current walk started [input_datetime.current_walk_started]. It then clears any pending morning and evening dog walk reminder notifications for Liam, sends Liam a friendly notification announcing the walk has started, and sends a low-priority status update with the start time to the parents."
|
|
},
|
|
"human_like": "Detects when a dog walk begins, records the start time, clears old reminders, and notifies the household.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "driveway_video_ai_analysis",
|
|
"result": {
|
|
"structured": "TRIGGER: When driveway video ready [input_boolean.driveway_video_ready] turns on. CONDITIONS: ai detection enabled [input_boolean.ai_detection_enabled] is on AND dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on. ACTIONS: First, send a video analysis task to google ai task [ai_task.google_ai_task] with instructions to detect dog walking activity and store the response in variable 'driveway_video_response'. Second, set the value of driveway analysis result [input_text.driveway_analysis_result] to the first line of the lowercase response. Third, turn off driveway video ready [input_boolean.driveway_video_ready].",
|
|
"natural_language": {
|
|
"trigger": "When the driveway video ready [input_boolean.driveway_video_ready] switch is turned on.",
|
|
"conditions": "Both the ai detection enabled [input_boolean.ai_detection_enabled] and the dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] switches must be in the 'on' position.",
|
|
"action": "The automation sends a video file to an AI service, google ai task [ai_task.google_ai_task], with detailed instructions to analyze the footage for dog walking activity and direction of travel. The AI's textual response is then processed, and its first line (converted to lowercase) is saved into the driveway analysis result [input_text.driveway_analysis_result] field. Finally, the automation resets the driveway video ready [input_boolean.driveway_video_ready] switch to 'off'."
|
|
},
|
|
"human_like": "Analyzes a driveway video for dog walking activity using AI when a new video is ready and monitoring is enabled, then stores the result.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "driveway_image_capture",
|
|
"result": {
|
|
"structured": "TRIGGER: When driveway person motion [binary_sensor.driveway_person] detects a person (on) OR when driveway pet motion [binary_sensor.driveway_pet] detects a pet (on). CONDITIONS: The time is between 06:00:00 and 22:00:00 AND driveway camera entity [input_text.driveway_camera_entity] is not 'unknown' or empty. ACTIONS: If the trigger was person_motion AND driveway pet motion [binary_sensor.driveway_pet] is off, wait up to 15 seconds for driveway pet motion [binary_sensor.driveway_pet] to detect a pet (on). If the trigger was pet_motion AND driveway person motion [binary_sensor.driveway_person] is off, wait up to 15 seconds for driveway person motion [binary_sensor.driveway_person] to detect a person (on). Then, set the datetime of last walk detection [input_datetime.last_walk_detection] to the current time. Turn off driveway video ready [input_boolean.driveway_video_ready]. Execute shell_command ensure backup directories [shell_command.ensure_backup_directories] (continue on error). Execute shell_command backup driveway walk video [shell_command.backup_driveway_walk_video] (continue on error). Delay for 2 seconds. Record a 30-second video from the camera specified by driveway camera entity [input_text.driveway_camera_entity] with a 15-second lookback, saving to /config/www/local/ai_image_notifications/driveway_dogwalk_capture.mp4. Delay for 32 seconds. Turn on driveway video ready [input_boolean.driveway_video_ready].",
|
|
"natural_language": {
|
|
"trigger": "The automation is triggered when either the driveway person motion sensor [binary_sensor.driveway_person] detects a person, or the driveway pet motion sensor [binary_sensor.driveway_pet] detects a pet.",
|
|
"conditions": "The automation only runs if the current time is between 6:00 AM and 10:00 PM, and if the driveway camera entity [input_text.driveway_camera_entity] has a valid, non-empty value.",
|
|
"action": "If a person is detected but no pet is currently detected, the automation waits up to 15 seconds for a pet to be detected. Conversely, if a pet is detected but no person is detected, it waits up to 15 seconds for a person to be detected. After this potential waiting period, it updates the timestamp for the last walk detection [input_datetime.last_walk_detection], marks the driveway video as not ready by turning off driveway video ready [input_boolean.driveway_video_ready], runs commands to ensure backup directories exist and to back up any existing video, waits briefly, then records a 30-second video clip from the configured camera, including 15 seconds of footage from before the recording started. After another short delay, it marks the video as ready by turning on driveway video ready [input_boolean.driveway_video_ready]."
|
|
},
|
|
"human_like": "Records a video of the driveway when both a person and a pet are detected within a short time of each other, typically to capture dog walks, but only during daytime hours.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "evening_dog_walk_reminder",
|
|
"result": {
|
|
"structured": "TRIGGER: When the time is 20:30:00 OR When the time is 21:00:00 OR When the time is 21:30:00. CONDITIONS: (dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on) AND (notifications enabled [input_boolean.notifications_enabled] is on) AND (walk in progress [input_boolean.walk_in_progress] is off) AND (evening walk done [input_datetime.evening_walk_done] state is 'unknown' OR the date part of its value is not today). ACTIONS: Send a UNotify event with a custom message for Liam.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers at 8:30 PM, 9:00 PM, and 9:30 PM.",
|
|
"conditions": "All of the following must be true: the dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is turned on, the notifications enabled [input_boolean.notifications_enabled] is turned on, the walk in progress [input_boolean.walk_in_progress] is off, and the evening walk done [input_datetime.evening_walk_done] either has an 'unknown' state or its recorded date is not today.",
|
|
"action": "Sends a notification event named 'UNotify' to Liam, containing a spoken and displayed reminder message about taking the dog for an evening walk."
|
|
},
|
|
"human_like": "Sends a reminder to take the dog for an evening walk at scheduled times, but only if walk monitoring is on, notifications are enabled, a walk isn't already happening, and the walk hasn't been logged for today.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "evening_walk_auto_complete",
|
|
"result": {
|
|
"structured": "TRIGGER: When driveway analysis [sensor.driveway_analysis] changes to state 'ending_dog_walk'. CONDITIONS: (Current time is between 15:00:00 and 22:00:00) AND (dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on) AND (evening walk done [input_datetime.evening_walk_done] is 'unknown' OR its date part is not today). ACTIONS: Turn off walk in progress [input_boolean.walk_in_progress]. Set evening walk done [input_datetime.evening_walk_done] to the current date and time. Fire a UNotify event to clear notifications for 'evening_dog_walk' and 'walk_started' for target 'liam'. Fire a UNotify event with a congratulatory message for target 'liam'. Fire a UNotify event with a status update for target 'parents'.",
|
|
"natural_language": {
|
|
"trigger": "When the driveway analysis [sensor.driveway_analysis] sensor indicates the dog walk is ending by changing to the state 'ending_dog_walk'.",
|
|
"conditions": "The automation only runs if the current time is between 3:00 PM and 10:00 PM, if the dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is turned on, and if the evening walk done [input_datetime.evening_walk_done] has not been marked as completed today (either its value is 'unknown' or its date is not today's date).",
|
|
"action": "The automation marks the walk as finished by turning off the walk in progress [input_boolean.walk_in_progress] indicator and recording the current date and time in the evening walk done [input_datetime.evening_walk_done] input. It then sends several notifications: it clears any existing 'evening_dog_walk' and 'walk_started' notifications for Liam, sends a congratulatory message to Liam (which includes the walk duration if the start time is known), and sends a low-priority status update about the walk completion time and duration to the parents."
|
|
},
|
|
"human_like": "Automatically marks the evening dog walk as complete when the driveway sensor detects the walk is ending, provided it's within the scheduled time and monitoring is enabled.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "trigger_family_room_analysis",
|
|
"result": {
|
|
"structured": "TRIGGER: When family room person motion [binary_sensor.family_room_person_motion] starts detecting motion (on) OR When family room person motion [binary_sensor.family_room_person_motion] stops detecting motion (off) AND remains off for 2 minutes OR When force family room check [input_boolean.force_family_room_check] is turned on (on). CONDITIONS: (ai detection enabled [input_boolean.ai_detection_enabled] is on) AND (family room monitoring enabled [input_boolean.family_room_monitoring_enabled] is on) AND (family room camera entity [input_text.family_room_camera_entity] is not 'unknown' or empty) AND (ai task entity [input_text.ai_task_entity] is not 'unknown', 'unavailable', or empty) AND (force family room check [input_boolean.force_family_room_check] is on OR (the time since the last check recorded in family room last check [input_datetime.family_room_last_check] is greater than 300 seconds, or if the last check is 'unknown')). ACTIONS: Update the timestamp in family room last check [input_datetime.family_room_last_check] to the current time. Take a snapshot from the camera specified by family room camera entity [input_text.family_room_camera_entity] and save it. Take a snapshot from the camera specified by kitchen camera entity [input_text.kitchen_camera_entity] and save it. Trigger an AI analysis task via google ai task [ai_task.google_ai_task] to analyze the room tidiness using the saved images and a specific set of instructions referencing the threshold from family room cleanliness threshold [input_number.family_room_cleanliness_threshold]. Update the sensor family room tidy status [sensor.family_room_tidy_status] with the result of the AI analysis. Turn off force family room check [input_boolean.force_family_room_check].",
|
|
"natural_language": {
|
|
"trigger": "The automation can be triggered in three ways: when motion is first detected by the family room person motion [binary_sensor.family_room_person_motion], when motion has been absent for two minutes, or when the force family room check [input_boolean.force_family_room_check] is manually turned on.",
|
|
"conditions": "For the automation to run, several conditions must be met. First, the overall AI detection feature must be enabled via ai detection enabled [input_boolean.ai_detection_enabled]. Second, monitoring for the family room specifically must be enabled via family room monitoring enabled [input_boolean.family_room_monitoring_enabled]. Third, the entity IDs for the family room camera and the AI task must be properly configured and not in an unknown or empty state. Finally, the automation only proceeds if either the check is being forced manually, or if more than five minutes have passed since the last recorded check in family room last check [input_datetime.family_room_last_check].",
|
|
"action": "The automation performs a series of actions to analyze the tidiness of the family room. It first records the current time as the last check. Then, it takes snapshot images from both the family room camera and a kitchen camera that provides a view of the family room. These images are sent to an AI service for analysis, with specific instructions to rate tidiness and flag only safety and cleanliness issues like food left out or items on the floor, while ignoring normal clutter. The result of this analysis is then processed and saved into the sensor family room tidy status [sensor.family_room_tidy_status]. Finally, if the check was triggered manually, the force family room check [input_boolean.force_family_room_check] is turned back off."
|
|
},
|
|
"human_like": "This automation uses AI to check if the family room is tidy, triggered by motion or a manual request, and saves the result for review.",
|
|
"complexity": "high"
|
|
}
|
|
},
|
|
{
|
|
"id": "family_room_tidying_notification",
|
|
"result": {
|
|
"structured": "TRIGGER: When family room analysis [sensor.family_room_analysis] changes to state 'needs_tidying'. CONDITIONS: (family room monitoring enabled [input_boolean.family_room_monitoring_enabled] is on) AND (notifications enabled [input_boolean.notifications_enabled] is on) AND (the time elapsed since the last notification stored in last family room notification [input_datetime.last_family_room_notification] is greater than the cooldown period defined by notification cooldown [input_number.notification_cooldown] minutes, or if the last notification time is unknown). ACTIONS: Update last family room notification [input_datetime.last_family_room_notification] to the current datetime AND send a UNotify event with a spoken message, a display message, and a detailed text message targeting 'liam'.",
|
|
"natural_language": {
|
|
"trigger": "When the family room analysis [sensor.family_room_analysis] indicates the room needs tidying.",
|
|
"conditions": "If monitoring for the family room is enabled via family room monitoring enabled [input_boolean.family_room_monitoring_enabled], if global notifications are enabled via notifications enabled [input_boolean.notifications_enabled], and if enough time has passed since the last notification was sent, based on the cooldown period set in notification cooldown [input_number.notification_cooldown].",
|
|
"action": "First, it records the current time as the last notification time in last family room notification [input_datetime.last_family_room_notification]. Then, it sends a notification event (UNotify) with a spoken and displayed message asking Liam to tidy the family room, including specific tasks if available."
|
|
},
|
|
"human_like": "Sends a polite notification to Liam when the family room needs tidying, but only if notifications are enabled and a cooldown period has passed.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "family_room_tidied_acknowledgment",
|
|
"result": {
|
|
"structured": "TRIGGER: When family room analysis [sensor.family_room_analysis] changes state from 'needs_tidying' to 'tidy'. CONDITIONS: notifications enabled [input_boolean.notifications_enabled] is on. ACTIONS: Fire event 'UNotify' with data to clear a notification for target 'liam' tagged 'family_room_tidy'. Fire event 'UNotify' with data to send a high-priority spoken and displayed praise message to target 'liam' tagged 'family_room_tidied'. Fire event 'UNotify' with data to send a low-priority log message to target 'parents' tagged 'family_room_status' containing the time.",
|
|
"natural_language": {
|
|
"trigger": "When the family room analysis [sensor.family_room_analysis] sensor indicates the room's status has changed from 'needs_tidying' to 'tidy'.",
|
|
"conditions": "The automation only runs if the notifications enabled [input_boolean.notifications_enabled] switch is turned on.",
|
|
"action": "It sends three notifications. First, it clears any existing 'family room tidy' notification for Liam. Then, it sends Liam a positive spoken and displayed message praising the tidying. Finally, it sends a low-priority log message to the parents, noting the time the room was tidied."
|
|
},
|
|
"human_like": "Sends praise and a log message when the family room is reported as tidied, provided notifications are enabled.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "family_room_tidy_notification",
|
|
"result": {
|
|
"structured": "TRIGGER: When family room analysis [sensor.family_room_analysis] changes to tidy. CONDITIONS: family room monitoring enabled [input_boolean.family_room_monitoring_enabled] is on AND notifications enabled [input_boolean.notifications_enabled] is on AND (The previous state of family room analysis [sensor.family_room_analysis] is unknown OR unavailable OR none). ACTIONS: Send a notification to parents [notify.parents] with title 'Family Room Looking Good! ✨' and message 'The family room is nice and tidy. Great job keeping it organized!'.",
|
|
"natural_language": {
|
|
"trigger": "When the sensor family room analysis [sensor.family_room_analysis] reports that the room is tidy.",
|
|
"conditions": "The automation only runs if the family room monitoring enabled [input_boolean.family_room_monitoring_enabled] is switched on, the global notifications enabled [input_boolean.notifications_enabled] is also switched on, and the previous state of the family room analysis sensor was either unknown, unavailable, or not set.",
|
|
"action": "Sends a notification titled 'Family Room Looking Good! ✨' to the parents notification service [notify.parents], praising the tidy state of the room."
|
|
},
|
|
"human_like": "Sends a positive notification to parents when the family room is detected as tidy, provided monitoring and notifications are enabled.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "trigger_kitchen_analysis",
|
|
"result": {
|
|
"structured": "TRIGGER: When kitchen person motion [binary_sensor.kitchen_person_motion] detects motion (on) OR When kitchen person motion [binary_sensor.kitchen_person_motion] stops detecting motion (off) AND remains off for 2 minutes OR When force kitchen check [input_boolean.force_kitchen_check] is turned on (on). CONDITIONS: (ai detection enabled [input_boolean.ai_detection_enabled] is on) AND (kitchen monitoring enabled [input_boolean.kitchen_monitoring_enabled] is on) AND (kitchen camera entity [input_text.kitchen_camera_entity] is not 'unknown' or empty) AND (ai task entity [input_text.ai_task_entity] is not 'unknown', 'unavailable', or empty) AND (force kitchen check [input_boolean.force_kitchen_check] is on OR (kitchen last check [input_datetime.kitchen_last_check] is 'unknown' OR more than 5 minutes have passed since the last check)). ACTIONS: Set kitchen last check [input_datetime.kitchen_last_check] to the current datetime. Take a snapshot from the camera specified by kitchen camera entity [input_text.kitchen_camera_entity] and save it as /config/www/local/ai_image_notifications/kitchen_snapshot.jpg. Send the snapshot to google ai task [ai_task.google_ai_task] with instructions to analyze kitchen cleanliness and store the response. Update kitchen clean status [sensor.kitchen_clean_status] with a value ('clean', 'needs_attention', 'needs_cleaning', or 'unknown') and attributes based on the AI response. Turn off force kitchen check [input_boolean.force_kitchen_check].",
|
|
"natural_language": {
|
|
"trigger": "The automation can start in three ways: when motion is first detected in the kitchen, when motion has been absent for two minutes, or when a manual check is forced by turning on the corresponding switch.",
|
|
"conditions": "Several conditions must be met for the analysis to proceed. First, both the global AI detection and the specific kitchen monitoring features must be enabled. Second, the system must have valid entities configured for the kitchen camera and the AI task service; they cannot be empty or in an unknown state. Finally, the analysis will run either because a manual check was forced, or because at least five minutes have passed since the last automated check.",
|
|
"action": "The automation performs a series of steps to analyze the kitchen. It first records the current time as the last check. Then, it takes a snapshot from the configured kitchen camera and saves it locally. This image is sent to an AI service with detailed instructions to assess the kitchen's cleanliness for food safety, categorizing it as 'clean', 'needs_attention', or 'needs_cleaning'. The AI's response is processed to update a sensor with the cleanliness status and any specific suggestions provided. Finally, if it was used, the manual force check switch is turned back off."
|
|
},
|
|
"human_like": "Uses AI to analyze the kitchen's cleanliness for food safety, triggered by motion or a manual request, and updates a status sensor with the result.",
|
|
"complexity": "high"
|
|
}
|
|
},
|
|
{
|
|
"id": "kitchen_cleaned_acknowledgment",
|
|
"result": {
|
|
"structured": "TRIGGER: When kitchen analysis [sensor.kitchen_analysis] changes state from 'needs_cleaning' to 'clean'. CONDITIONS: notifications enabled [input_boolean.notifications_enabled] is on. ACTIONS: Fire event 'UNotify' to clear a notification for 'liam' tagged 'kitchen_cleanup'. Fire event 'UNotify' to send a priority 'normal' notification to 'liam' on channel 'General' with a spoken, displayed, and text message acknowledging the kitchen cleaning. Fire event 'UNotify' to send a priority 'low' notification to 'parents' on channel 'General' with a text message stating the kitchen was cleaned at the current time.",
|
|
"natural_language": {
|
|
"trigger": "When the kitchen analysis [sensor.kitchen_analysis] sensor reports that the kitchen's status has changed from 'needs_cleaning' to 'clean'.",
|
|
"conditions": "The automation only runs if the notifications enabled [input_boolean.notifications_enabled] switch is turned on.",
|
|
"action": "It sends three notifications. First, it clears any existing notification for 'liam' tagged as 'kitchen_cleanup'. Then, it sends a positive spoken and displayed notification to 'liam' praising the cleaning effort. Finally, it sends a low-priority text-only notification to 'parents' to inform them the kitchen was cleaned, including the time."
|
|
},
|
|
"human_like": "Sends celebratory and informative notifications when the kitchen is reported as clean, provided notifications are enabled.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "kitchen_cleanup_notification",
|
|
"result": {
|
|
"structured": "TRIGGER: When kitchen analysis [sensor.kitchen_analysis] changes to state 'needs_cleaning'. CONDITIONS: kitchen monitoring enabled [input_boolean.kitchen_monitoring_enabled] is on AND notifications enabled [input_boolean.notifications_enabled] is on AND (if last kitchen notification [input_datetime.last_kitchen_notification] is 'unknown' then true, otherwise the time difference in minutes between now and the last notification is greater than the integer value of notification cooldown [input_number.notification_cooldown]). ACTIONS: Set last kitchen notification [input_datetime.last_kitchen_notification] to the current datetime AND fire a UNotify event with a message constructed from notification target [input_text.notification_target] and specific_tasks attribute from kitchen analysis [sensor.kitchen_analysis].",
|
|
"natural_language": {
|
|
"trigger": "When the kitchen analysis [sensor.kitchen_analysis] sensor indicates the kitchen needs cleaning.",
|
|
"conditions": "The kitchen monitoring must be enabled via kitchen monitoring enabled [input_boolean.kitchen_monitoring_enabled], general notifications must be enabled via notifications enabled [input_boolean.notifications_enabled], and a cooldown period must have passed since the last notification. This cooldown is determined by checking if the last kitchen notification [input_datetime.last_kitchen_notification] is unknown, or if the time elapsed since that last notification is greater than the number of minutes set in notification cooldown [input_number.notification_cooldown].",
|
|
"action": "First, it records the current time as the last kitchen notification [input_datetime.last_kitchen_notification]. Then, it sends a custom notification event named UNotify. The notification's spoken and displayed messages are personalized for the target person specified in notification target [input_text.notification_target] (currently set up for 'liam'), and the main text message includes specific cleaning tasks if they are provided by the kitchen analysis sensor."
|
|
},
|
|
"human_like": "Sends a polite notification to the designated person when the kitchen is detected as needing cleaning, but only if notifications are enabled and a cooldown period has passed.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "morning_dog_walk_reminder",
|
|
"result": {
|
|
"structured": "TRIGGER: When the time is 12:00:00 OR When the time is 12:30:00 OR When the time is 13:00:00. CONDITIONS: (dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on) AND (notifications enabled [input_boolean.notifications_enabled] is on) AND (walk in progress [input_boolean.walk_in_progress] is off) AND (morning walk done [input_datetime.morning_walk_done] is 'unknown' OR the date part of its value is not today). ACTIONS: Fire the UNotify event with a custom message.",
|
|
"natural_language": {
|
|
"trigger": "The automation triggers at three specific times: noon, 12:30 PM, and 1:00 PM.",
|
|
"conditions": "All of the following must be true: the dog walk monitoring feature is enabled [input_boolean.dog_walk_monitoring_enabled], general notifications are enabled [input_boolean.notifications_enabled], a walk is not currently in progress [input_boolean.walk_in_progress], and the morning walk has not been recorded as done today [input_datetime.morning_walk_done].",
|
|
"action": "Sends a custom notification event named 'UNotify' with a reminder message to walk the dog, including text for display and speech."
|
|
},
|
|
"human_like": "Sends a reminder to walk the dog at specific times in the early afternoon, but only if the walk hasn't been done yet today and other monitoring settings are on.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "morning_walk_auto_complete",
|
|
"result": {
|
|
"structured": "TRIGGER: When driveway analysis [sensor.driveway_analysis] changes to the state 'ending_dog_walk'. CONDITIONS: (The current time is between 06:00:00 and 15:00:00) AND (dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on) AND (morning walk done [input_datetime.morning_walk_done] is 'unknown' OR the date part of its value is not today). ACTIONS: Turn off walk in progress [input_boolean.walk_in_progress]. Set the date and time of morning walk done [input_datetime.morning_walk_done] to the current date and time. Fire a UNotify event to clear notifications for 'liam' with tags 'morning_dog_walk' and 'walk_started'. Fire a UNotify event to send a congratulatory notification to 'liam' with tag 'morning_walk_complete', optionally including walk duration if current walk started [input_datetime.current_walk_started] is known. Fire a UNotify event to send a status notification to 'parents' with tag 'morning_walk_status', optionally including walk duration if current walk started [input_datetime.current_walk_started] is known.",
|
|
"natural_language": {
|
|
"trigger": "When the driveway analysis [sensor.driveway_analysis] sensor changes its state to 'ending_dog_walk'.",
|
|
"conditions": "The automation only runs if it is between 6:00 AM and 3:00 PM, the dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is turned on, and the morning walk done [input_datetime.morning_walk_done] status is either unknown or was not already marked as completed today.",
|
|
"action": "It turns off the walk in progress [input_boolean.walk_in_progress] indicator, records the current time in the morning walk done [input_datetime.morning_walk_done] tracker, clears any pending 'morning_dog_walk' and 'walk_started' notifications for Liam, sends a celebratory notification to Liam confirming the walk is complete (including the walk duration if available), and sends a low-priority status update to the parents with the completion time and duration."
|
|
},
|
|
"human_like": "Automatically marks the morning dog walk as complete when the driveway camera detects the walk ending, provided it's during the day and monitoring is active, then sends celebratory and status notifications.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "unclear_walk_return_notification",
|
|
"result": {
|
|
"structured": "TRIGGER: When driveway analysis [sensor.driveway_analysis] changes to state 'unclear'. CONDITIONS: (walk in progress [input_boolean.walk_in_progress] is on) AND (dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on). ACTIONS: Send a custom event 'UNotify' with event data specifying a notification message, priority, channel, target, tag, and action buttons.",
|
|
"natural_language": {
|
|
"trigger": "When the driveway analysis [sensor.driveway_analysis] sensor reports a state of 'unclear'.",
|
|
"conditions": "The automation only runs if the walk in progress [input_boolean.walk_in_progress] is turned on, and the dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is also turned on.",
|
|
"action": "Sends a notification via a custom event, asking if the walk has completed because someone returned to the driveway but the system could not clearly see if the dog was with them. The notification includes two action buttons for the user to confirm or deny the walk's completion."
|
|
},
|
|
"human_like": "Sends a notification when the driveway camera analysis is unclear during an active dog walk, asking if the walk has finished.",
|
|
"complexity": "low"
|
|
}
|
|
},
|
|
{
|
|
"id": "handle_unclear_walk_response",
|
|
"result": {
|
|
"structured": "TRIGGER: When a mobile app notification action event occurs with action 'confirm_walk_complete' OR When a mobile app notification action event occurs with action 'walk_still_ongoing'. CONDITIONS: dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on. ACTIONS: Send a UNotify event to clear the 'unclear_walk_return' notification for parents. THEN, IF the trigger was 'confirm_walk_complete': Turn off walk in progress [input_boolean.walk_in_progress]. IF the current time is between 06:00:00 and 15:00:00 AND (morning walk done [input_datetime.morning_walk_done] state is 'unknown' OR its date part is not today): Set morning walk done [input_datetime.morning_walk_done] to the current datetime, send a UNotify event to clear the 'morning_dog_walk' notification for liam, and send a UNotify acknowledgment event with a thank you message for the morning walk to liam. ELSE IF the current time is between 15:00:00 and 22:00:00 AND (evening walk done [input_datetime.evening_walk_done] state is 'unknown' OR its date part is not today): Set evening walk done [input_datetime.evening_walk_done] to the current datetime, send a UNotify event to clear the 'evening_dog_walk' notification for liam, and send a UNotify acknowledgment event with a thank you message for the evening walk to liam. ELSE IF the trigger was 'walk_still_ongoing': Send a UNotify acknowledgment event to parents indicating the walk is still being monitored.",
|
|
"natural_language": {
|
|
"trigger": "The automation is triggered when a user interacts with a mobile app notification, specifically by tapping either the 'confirm_walk_complete' or the 'walk_still_ongoing' action button.",
|
|
"conditions": "The automation only runs if the dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] feature is turned on.",
|
|
"action": "First, it clears the original 'unclear walk return' notification sent to the parents. Then, depending on which button was pressed: If 'Walk Complete' was pressed, it marks the walk as finished by turning off walk in progress [input_boolean.walk_in_progress]. Based on the time of day, it will then log the walk as either a morning or evening walk if it hasn't been logged today, clear the corresponding reminder notification for Liam, and send Liam a personalized thank you message. If 'Still Walking' was pressed, it sends a low-priority acknowledgment message back to the parents to confirm the walk is still ongoing and monitoring will continue."
|
|
},
|
|
"human_like": "Processes a user's response to a notification about an unclear dog walk status, either marking the walk as complete with a thank you or confirming it's still in progress.",
|
|
"complexity": "medium"
|
|
}
|
|
},
|
|
{
|
|
"id": "walk_started_detection",
|
|
"result": {
|
|
"structured": "TRIGGER: When driveway analysis [sensor.driveway_analysis] changes to the state 'starting_dog_walk'. CONDITIONS: dog walk monitoring enabled [input_boolean.dog_walk_monitoring_enabled] is on AND walk in progress [input_boolean.walk_in_progress] is off. ACTIONS: Turn on walk in progress [input_boolean.walk_in_progress]. Set the date and time of current walk started [input_datetime.current_walk_started] to the current time. Send a UNotify event to clear notifications for the 'morning_dog_walk' tag for the target 'liam'. Send a UNotify event to clear notifications for the 'evening_dog_walk' tag for the target 'liam'. Send a UNotify event with a spoken, displayed, and text message to the target 'liam' with the tag 'walk_started'. Send a UNotify event with a text status message to the target 'parents' with the tag 'walk_started_status'.",
|
|
"natural_language": {
|
|
"trigger": "When the driveway analysis [sensor.driveway_analysis] indicates someone is starting a dog walk.",
|
|
"conditions": "The dog walk monitoring must be enabled [input_boolean.dog_walk_monitoring_enabled] and a walk must not already be in progress [input_boolean.walk_in_progress].",
|
|
"action": "The automation marks a walk as started by turning on the walk in progress [input_boolean.walk_in_progress] flag and recording the start time in current walk started [input_datetime.current_walk_started]. It then clears any pending morning and evening dog walk reminder notifications for Liam and sends a cheerful notification to Liam confirming the walk has started. Finally, it sends a low-priority status update to the parents with the walk start time."
|
|
},
|
|
"human_like": "Detects when a dog walk begins, records the start time, clears old reminders, and notifies the household.",
|
|
"complexity": "medium"
|
|
}
|
|
}
|
|
] |