Home Assistant e AI: Come rendere Intelligenti i tuoi Script (Guida Pratica)
di Vincenzo Caputo
31 Dicembre 2025
Home Assistant
Ciao a tutti! Se seguite il canale, sapete che ci siamo divertiti a creare la "Sveglia di Iron Man". Tuttavia, molti di voi mi hanno posto una domanda più ampia e interessante: "Ma come faccio a integrare l'AI in uno script qualsiasi di Home Assistant?"
Oggi non parleremo solo di sveglie. Oggi impareremo il metodo universale per far "ragionare" Home Assistant.
Vedremo come passare da automazioni statiche (basate su regole fisse se... allora) ad automazioni dinamiche, dove è l'Intelligenza Artificiale (ChatGPT o Google Gemini) a decidere cosa dire o fare. Useremo come esempio pratico un consigliere di stile basato sul meteo, ma la tecnica che imparerete potrete applicarla ovunque!
Prima di partire però vi rimando ai contenuti già pubblicati sull'argomento in maniera tale che li possiate consultare nel caso veli siate persi:
La sveglia di Ironman ora si attiva con l'AI in Home Assistant
ChatGPT in Home Assistant per un assistente vocale con AI
La sveglia di Iron Man realizzata con Home Assistant
Il Concetto Chiave: conversation.process
Il segreto non sta in codici complessi, ma in una singola azione nativa di Home Assistant: conversation.process.
Immaginate questa azione come una telefonata a un amico esperto:
Voi parlate (Input): Gli date dei dati (es. "La lavatrice ha finito e sono le 3 di notte").
Lui ragiona (Processing): L'AI elabora l'informazione.
Lui risponde (Output): Vi dà una risposta che voi potete usare ("Non fare rumore, manda solo una notifica silenziosa al cellulare").
Prerequisiti
Per iniziare, assicuratevi di avere:
Home Assistant aggiornato.
L'integrazione OpenAI Conversation o Google Generative AI configurata.
Tip: Se non l'avete, andate in Impostazioni > Dispositivi > Aggiungi Integrazione.
La Guida Passo-Passo
Ecco la struttura "scheletro" che userete per qualsiasi script AI.
Passo 1: Preparare i Dati (Il Prompt)
Dobbiamo costruire la domanda usando i Template Jinja2. Questo permette di inserire i valori reali dei sensori dentro la domanda che facciamo all'AI.
Passo 2: L'Azione nello Script (YAML)
Ecco il blocco magico da copiare. In questo esempio, chiediamo all'AI di consigliarci come vestirci in base al meteo, ma notate come la struttura sia universale:
alias: "Esempio Script AI Generico"
sequence:
# 1. Chiamiamo l'AI
- action: conversation.process
data:
agent_id: conversation.openai # O il tuo ID Gemini
text: >-
# Qui definiamo il RUOLO
Sei un assistente domestico premuroso.
# Qui inseriamo i DATI DINAMICI dai sensori
Il meteo attuale è: {{ states('weather.casa') }}.
La temperatura è: {{ state_attr('weather.casa', 'temperature') }} gradi.
# Qui facciamo la RICHIESTA
In base a questi dati, scrivi una frase breve (max 20 parole)
consigliando l'abbigliamento adatto. Non usare emoji.
response_variable: risposta_ai # FONDAMENTALE: Salviamo la risposta qui!
# 2. Usiamo la risposta
- action: tts.google_say
data:
entity_id: media_player.google_home
message: "{{ risposta_ai.response.speech.plain.speech }}"
Analizziamo le parti fondamentali:
text: È il vostro prompt. Più dati reali inserite con le parentesi graffe {{ }}, più l'AI sarà precisa.
response_variable: È il "contenitore" dove Home Assistant parcheggia la risposta di ChatGPT. Se non mettete questo, l'AI risponderà ma voi non potrete farci nulla!
{{ risposta_ai.response.speech.plain.speech }}: È il codice standard per estrarre il testo pulito dalla risposta dell'AI e farlo leggere al TTS o inviarlo come notifica.
Oltre l'esempio: Cosa potete fare?
Ora che avete questo "blocco base", potete scatenarvi. Cambiando solo il testo del prompt, potete creare:
Il Sommelier: "Ho cucinato {{ states('input_select.cena') }}, che vino apro?"
Il Guardiano: "Hanno suonato al citofono ma non c'è nessuno a casa, genera un messaggio dissuasore per l'ospite indesiderato."
Il Motivatore: "Ho dormito solo {{ states('sensor.ore_sonno') }} ore, dammi una frase motivazionale per svegliarmi."
L'Angolo del Tecnico: Perché ripetiamo il Prompt nello script?
Molti di voi che usano già Gemini o ChatGPT in Home Assistant potrebbero chiedersi: "Ma se ho già impostato nelle opzioni generali che la mia AI deve chiamarsi Jarvis ed essere sarcastica, perché devo riscriverlo dentro lo script?"
La domanda è lecita, ma la risposta è fondamentale per la stabilità della vostra domotica. Esistono due modi di usare l'AI:
Modalità Conversazione (Impostazioni Globali): È quando voi parlate alla casa. Qui il prompt serve all'AI per capire le vostre intenzioni (es. "Accendi la luce", "Imposta ferie"). Qui l'AI deve essere "elastica" per capirvi.
Modalità Elaborazione (Script): È quando la casa parla a voi. Qui usiamo l'azione conversation.process come una funzione matematica. L'AI non deve "interpretare", deve eseguire.
Perché mettiamo il prompt nello script?
Affidabilità: Se domani cambiate la personalità globale della casa (da "Jarvis" a "Super Mario"), il vostro script della sveglia continuerà a funzionare perfettamente perché ha le sue istruzioni "blindate" al suo interno.
Focus: Nello script forniamo all'AI solo i dati che servono in quel momento (il meteo). Non vogliamo che si distragga con le istruzioni su come gestire le luci o le tapparelle.
Condivisione: Se passate questo script a un amico, funzionerà subito anche se lui non ha configurato nulla nelle impostazioni generali!
Nel video correlato vi mostro esattamente come ho inserito questo blocco nella mia Sveglia Iron Man. Buona domotica a tutti!
Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.