L'AI Task de Home Assistant permet d'interroger un modèle de langage directement depuis une automatisation YAML — sans assistant vocal, sans configuration complexe. Introduite en HA 2025.8, l'action ai_task.generate_data fonctionne avec Ollama en local (vie privée totale, zéro abonnement) ou Gemini Flash en cloud (gratuit dans les quotas). Ce guide couvre les 3 cas d'usage les plus utiles — analyse de caméra, résumé matinal, sortie JSON structurée — avec le YAML complet prêt à coller. Le paramètre structure:, absent de tout guide FR existant, est développé en détail.
Qu'est-ce que l'AI Task dans Home Assistant ?
L'AI Task est une intégration native Home Assistant qui expose l'action ai_task.generate_data dans les automatisations. Elle permet d'envoyer un texte — et optionnellement une image de caméra — à un LLM configuré, puis de récupérer la réponse dans une variable réutilisable dans la suite de l'automatisation. Introduite en HA 2025.8, elle est stable depuis HA 2026.x et prise en charge par les providers Ollama, Google Generative AI et OpenAI.
Quelle est la différence entre AI Task et Conversation Agent dans Home Assistant ?
Le Conversation Agent gère les échanges interactifs via l'assistant vocal ou l'interface "Parler à l'assistant". L'AI Task est conçu pour un usage programmé et silencieux dans les automatisations : déclencher un appel LLM à un instant précis, capturer la réponse dans une variable, et l'utiliser pour une notification, une condition de routage ou une extraction de données. Les deux peuvent utiliser le même provider IA, configurés séparément dans les paramètres HA.
Configurer un provider IA pour AI Task : Ollama local ou Gemini gratuit
Avant d'utiliser ai_task.generate_data, désignez un provider dans Paramètres → Intelligence artificielle → Tâches IA. Trois providers sont pris en charge nativement : Ollama (local), Google Generative AI (Gemini Flash), et OpenAI. Le choix dépend de vos priorités entre vie privée, latence et coût — le tableau ci-dessous résume les différences clés.
| Provider | Hébergement | Modèle recommandé | Analyse d'image | Coût | Latence typique |
|---|---|---|---|---|---|
| Ollama | Local | llama3.2 (texte), llama3.2-vision / moondream / llava (vision) | Oui (modèle vision requis) | Gratuit | 2-8 s sur N100, <1 s sur i5+ |
| Gemini Flash 2.5 | Cloud Google | gemini-2.5-flash | Oui | Gratuit (quota journalier variable — voir AI Studio) | 0,5-2 s |
| OpenAI | Cloud | gpt-4o-mini | Oui | Payant à l'usage | 1-3 s |
AI Task fonctionne-t-il avec Ollama en local ?
Oui. Ollama est compatible avec AI Task depuis HA 2025.8. Il suffit d'avoir Ollama installé et accessible sur votre réseau local — via l'add-on Ollama sur Home Assistant OS ou sur un mini PC dédié — puis d'ajouter l'intégration Ollama dans HA et de la désigner comme provider AI Task. Pour l'analyse d'images, un modèle multimodal est requis : moondream (léger, 1,7B) ou llava (plus précis, 7B). Pour les automatisations texte uniquement, llama3.2 3B suffit largement.
AI Task Home Assistant est-il gratuit ?
Avec Ollama en local, le coût est nul : le modèle tourne sur votre matériel, sans requête externe. Avec Gemini Flash 2.5, le tier gratuit de Google couvre la plupart des automatisations domestiques — les quotas exacts sont consultables dans le dashboard AI Studio de Google et évoluent régulièrement. OpenAI est payant selon le volume de tokens consommés. Pour un usage intensif sans dépendance cloud, Ollama sur un mini PC N100 représente l'investissement le plus rentable sur le long terme.
Si vous souhaitez faire tourner Ollama en local pour alimenter vos automatisations AI Task, un mini PC Intel N100 offre le meilleur rapport performance/consommation pour les modèles 3B à 7B paramètres. Notre comparatif détaille les options disponibles.
Beelink Mini S12 Pro (N100)
Intel N100 · 1x 2.5G LAN · 16 Go DDR4 · NVMe 512 Go · 6 W TDP
Cas d'usage 1 — Analyser une image de caméra et envoyer une notification contextuelle
L'analyse de caméra est le cas d'usage le plus répandu d'AI Task. L'automatisation capture une image depuis une entité caméra HA, l'envoie au modèle multimodal configuré, et transmet la description sous forme de notification mobile. Le forum HACF recense plusieurs implémentations réelles, dont le suivi automatisé d'un poulailler — les principes s'appliquent à toute caméra de surveillance.
Comment analyser une image de caméra avec l'IA dans Home Assistant ?
Utilisez l'action ai_task.generate_data avec un attachement media_content_id pointant vers la source média de la caméra (media-source://camera/camera.ENTITE) et un media_content_type: image/jpeg. Le provider AI Task doit être configuré avec un modèle vision (Gemini Flash ou Ollama llama3.2-vision/moondream). La réponse textuelle est accessible via {{ variable.data }} dans les actions suivantes. L'automatisation ci-dessous se déclenche sur détection de mouvement.
automation:
alias: "Analyse caméra entrée — IA"
trigger:
- platform: state
entity_id: binary_sensor.mouvement_entree
to: "on"
action:
- action: ai_task.generate_data
data:
task_name: analyse_camera_entree
instructions: >
Décris brièvement ce que tu vois sur cette image de la caméra d'entrée.
Mentionne toute personne, véhicule ou activité inhabituelle.
Sois concis : 1 à 2 phrases maximum.
attachments:
media_content_id: media-source://camera/camera.entree
media_content_type: image/jpeg
response_variable: analyse_camera
- action: notify.mobile_app_votre_telephone
data:
title: "Entrée"
message: "{{ analyse_camera.data }}"
Le champ instructions est le prompt envoyé au modèle. Les tests communautaires (peyanski.com, HACF) montrent qu'un prompt en anglais améliore la précision avec la plupart des modèles Ollama, mais Gemini Flash répond correctement en français. Adapter le task_name pour chaque caméra facilite le débogage dans les logs HA.
Cas d'usage 2 — Résumé matinal de l'état de la maison
Ce cas d'usage exploite la capacité du LLM à synthétiser des données hétérogènes en texte naturel. Chaque matin, l'automatisation injecte les valeurs de vos capteurs dans le prompt via les templates HA, et le modèle produit un résumé contextualisé — avec un conseil pratique si les données le justifient. Aucun modèle vision n'est nécessaire : llama3.2 3B en local suffit.
automation:
alias: "Résumé matinal IA"
trigger:
- platform: time
at: "07:30:00"
action:
- action: ai_task.generate_data
data:
task_name: resume_matinal_maison
instructions: >
Voici l'état de la maison ce matin :
- Température salon : {{ states('sensor.temperature_salon') }}°C
- Température extérieure : {{ states('sensor.temperature_ext') }}°C
- Porte de garage : {{ states('binary_sensor.porte_garage') }}
- Prochain début heures creuses : {{ states('sensor.heures_creuses_debut') }}
- Alerte météo active : {{ states('binary_sensor.alerte_meteo') }}
Rédige un résumé utile en 2-3 phrases, avec un conseil pratique si pertinent.
response_variable: resume
- action: notify.mobile_app_votre_telephone
data:
title: "Bonjour — état de la maison"
message: "{{ resume.data }}"
Les templates HA ({{ states(...) }}) sont évalués avant l'envoi au modèle : le LLM reçoit les valeurs réelles, pas les identifiants d'entités. C'est le mécanisme qui rend les notifications véritablement contextuelles, contrairement aux messages statiques. Pour des workflows IA plus complexes déclenchés par des événements externes, notre guide n8n + Home Assistant couvre l'orchestration no-code.
Cas d'usage 3 — Sortie structurée avec structure: : données typées depuis l'IA
Le paramètre structure: est la fonctionnalité la plus avancée d'AI Task et la moins documentée en français. Il impose au modèle un format de sortie JSON typé — chaîne, entier, flottant ou booléen — directement exploitable dans les conditions et actions suivantes de l'automatisation, sans parsing manuel de texte brut.
Comment récupérer la réponse d'AI Task dans une automatisation Home Assistant ?
Sans structure:, la réponse texte complète est accessible via {{ variable.data }}. Avec structure:, chaque champ défini est accessible sous le préfixe .data. : {{ variable.data.niveau }}, {{ variable.data.ventilation_utile }}, etc. Le modèle est contraint de répondre dans le format JSON spécifié — documenté dans les sources officielles HA et validé par des exemples communautaires.
automation:
alias: "Classifier alerte température"
trigger:
- platform: numeric_state
entity_id: sensor.temperature_salon
above: 28
action:
- action: ai_task.generate_data
data:
task_name: classifier_alerte_temperature
instructions: >
La température du salon est {{ states('sensor.temperature_salon') }}°C.
Il est {{ now().strftime('%H:%M') }}.
Évalue la situation et propose une action concrète.
structure:
niveau:
description: "Niveau d'alerte : faible, normale ou urgente"
selector:
select:
options:
- faible
- normale
- urgente
action_recommandee:
description: "Action recommandée en une phrase courte"
selector:
text:
ventilation_utile:
description: "Vrai si ouvrir les fenêtres est pertinent maintenant"
selector:
boolean:
response_variable: evaluation
- choose:
- conditions:
- condition: template
value_template: "{{ evaluation.data.niveau == 'urgente' }}"
sequence:
- action: notify.mobile_app_votre_telephone
data:
title: "Alerte chaleur"
message: >
{{ evaluation.data.action_recommandee }}
{% if evaluation.data.ventilation_utile %} Pensez à ouvrir les fenêtres.{% endif %}
- action: climate.set_temperature
target:
entity_id: climate.salon
data:
temperature: 22
Cet exemple illustre l'avantage concret de structure: : le booléen ventilation_utile est directement utilisable dans un {% if %}, et niveau devient une condition de routage. Un parsing de texte brut aurait requis un template fragile et sujet aux variations de formulation du modèle. Avec structure:, le LLM retourne directement le bon type, prêt à l'emploi.
Si vous avez installé Ollama pour ce type d'usage, notre guide Ollama + Home Assistant : LLM local détaille la sélection des modèles selon votre matériel et la configuration du provider dans HA.
Points d'attention avant de déployer AI Task en production
L'AI Task simplifie considérablement l'intégration IA dans Home Assistant, mais quelques paramètres méritent attention avant de déployer en production sur des automatisations critiques.
Latence Ollama local. Sur un Intel N100 avec un modèle 7B, la génération prend 2 à 8 secondes selon la longueur du prompt et la réponse attendue. Pour des automatisations déclenchées par mouvement (caméra), cette latence est généralement acceptable. Pour des notifications critiques en temps réel, Gemini Flash (0,5-2 s) offre un meilleur temps de réponse. Le paramètre structure: réduit la longueur de réponse attendue et diminue mécaniquement la latence de génération.
Limite de contexte. Les prompts très longs (plus de 500 mots) peuvent dépasser la fenêtre de contexte des petits modèles Ollama (3B à 7B). Limiter les données capteurs passées dans les instructions aux seules valeurs pertinentes pour la décision. Gemini Flash 2.5 dispose d'une fenêtre d'un million de tokens — aucune contrainte pratique pour les automatisations domestiques.
Vie privée avec les providers cloud. Gemini et OpenAI reçoivent l'intégralité des données incluses dans le prompt — valeurs capteurs et images de caméras. Pour les caméras pointant vers des espaces privés ou des données sensibles (intérieur du domicile, enfants), Ollama en local est la seule option conforme à une exigence stricte de vie privée. La communauté HACF recommande systématiquement Ollama pour les caméras intérieures, Gemini étant réservé aux caméras extérieures ou aux résumés de capteurs non sensibles.
Provider AI Task indépendant du Conversation Agent. Vous pouvez utiliser Gemini pour l'assistant vocal et Ollama pour les automatisations AI Task — les deux sont configurables séparément dans les paramètres HA. Cette flexibilité permet d'optimiser chaque usage sans compromis global.