From acb1f3f9844ac80bd51b3f2dac8d8af44664eacb Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 16 Jul 2025 14:36:53 +0200 Subject: [PATCH] Update AI Task example to be IoT related (#39900) Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/_integrations/ai_task.markdown | 88 ++++++++++++++++++--------- 1 file changed, 60 insertions(+), 28 deletions(-) diff --git a/source/_integrations/ai_task.markdown b/source/_integrations/ai_task.markdown index 4e5f3b252f4..1617f5d6a13 100644 --- a/source/_integrations/ai_task.markdown +++ b/source/_integrations/ai_task.markdown @@ -40,51 +40,83 @@ The response variable is a dictionary with the following keys: ## Examples +### Template entity counting items on a camera + +{% raw %} + +```yaml +template: + - triggers: + - trigger: homeassistant + event: start + - trigger: time_pattern + minutes: "/5" # update every 5 minutes + actions: + - action: ai_task.generate_data + data: + task_name: "{{ this.entity_id }}" + instructions: >- + This is the inside of my goose coop. How many birds (chickens, geese, and + ducks) are inside the coop? + structure: + birds: + selector: + number: + attachments: + media_content_id: media-source://camera/camera.chicken_coop + media_content_type: image/jpeg + response_variable: result + sensor: + - name: "Chickens" + state: "{{ result.data.birds }}" + state_class: total +``` + +{% endraw %} + +Alternative ideas: detect number of parking spots available, count people in a room, or detect if a door is open. + ### Structured output example {% raw %} ```yaml -# Example: Generate structured user profile data +# Example: Generate weather and indoor comfort report script: -- alias: "Create fake user profile" +- alias: "Weather and comfort report" sequence: - action: ai_task.generate_data data: - task_name: "user profile generation" - instructions: "Generate a profile for a new user" + task_name: "weather comfort report" + instructions: | + Based on the current conditions: + - Outdoor temperature: {{ states('sensor.outdoor_temperature') }}°C + - Weather condition: {{ states('weather.home') }} + - Indoor temperature: {{ states('sensor.living_room_temperature') }}°C + - Indoor humidity: {{ states('sensor.living_room_humidity') }}% + + Generate a funny weather description and assess indoor comfort level. structure: - name: - description: "First and last name of the user" + weather_description: + description: "A humorous description of the current weather outside" required: true selector: text: - age: - description: "Age of the user" + indoor_comfort: + description: "Assessment of how comfortable it is inside compared to outside" required: true selector: - number: - min: 0 - max: 120 - interests: - description: "List of user interests" - required: true - selector: - select: - options: - - "Technology" - - "Sports" - - "Music" - - "Travel" - multiple: true - attachments: - - media_content_id: "media-source://user_profile_image.jpg" - media_content_type: "image/jpeg" - response_variable: user_profile + text: + response_variable: comfort_report - action: notify.persistent_notification data: - title: "New User Profile" - message: "Name: {{ user_profile.data.name }}, Age: {{ user_profile.data.age }}, Interests: {{ user_profile.data.interests | join(', ') }}" + title: "🏠 Home climate report" + message: | + 🌤️ **Weather outside:** + {{ comfort_report.data.weather_description }} + + 🛋️ **Indoor comfort:** + {{ comfort_report.data.indoor_comfort }} ``` {% endraw %}