Home Assistant Voice e Assist guida alla configurazione dell'assistente vocale locale e comandi personalizzati

Home Assistant Voice e Assist: guida alla configurazione dell’assistente vocale locale e comandi personalizzati

Perché un assistente vocale locale?

Alexa e Google Assistant sono comodi, ma ogni comando che pronunci viene inviato ai server cloud, processato, analizzato e… conservato. Per chi tiene alla privacy o semplicemente vuole un sistema che funzioni anche senza Internet, Home Assistant offre una soluzione rivoluzionaria: Assist, un assistente vocale che può funzionare 100% in locale.

Home Assistant Voice è l’ecosistema completo che include:

  • Assist: il software assistente vocale integrato in Home Assistant

  • Voice PE (Preview Edition): l’hardware ufficiale dedicato

  • Pipeline vocali: configurazioni per speech-to-text e text-to-speech

  • Custom sentences: comandi vocali personalizzati

Vantaggi del controllo vocale locale:

  • Privacy totale: nessun dato inviato a server esterni

  • Funziona offline: controllo vocale anche senza Internet

  • Velocità: nessuna latenza cloud (con hardware adeguato)

  • Personalizzazione: comandi custom nella tua lingua

  • Nessun abbonamento: una volta configurato, è gratis per sempre


Parte 1: Componenti del sistema vocale

Architettura Home Assistant Voice

Il sistema vocale di Home Assistant è composto da tre motori che lavorano in sequenza:

🎤 Voce utente
     ↓
┌─────────────────────────────┐
│  1. SPEECH-TO-TEXT (STT)    │  Whisper / Cloud
│     Converte audio → testo  │
└─────────────────────────────┘
     ↓
┌─────────────────────────────┐
│  2. CONVERSATION AGENT      │  Assist / LLM / OpenAI
│     Comprende e risponde    │
└─────────────────────────────┘
     ↓
┌─────────────────────────────┐
│  3. TEXT-TO-SPEECH (TTS)    │  Piper / Cloud
│     Converte testo → audio  │
└─────────────────────────────┘
     ↓
🔊 Risposta vocale

Ogni componente è configurabile separatamente: puoi usare cloud per STT e locale per TTS, o viceversa, secondo le tue preferenze di privacy e performance.

Opzioni per ogni componente

Speech-to-Text (riconoscimento vocale):

Conversation Agent (comprensione):

Text-to-Speech (sintesi vocale):

Parte 2: Hardware per il controllo vocale

Home Assistant Voice PE (Preview Edition)

Voice PE è il dispositivo hardware ufficiale progettato specificamente per Home Assistant.​

Specifiche tecniche:

  • Chip: ESP32-S3 (dual-core, WiFi integrato)

  • Microfoni: 2 microfoni MEMS con cancellazione eco

  • Speaker: integrato (qualità sufficiente, espandibile)

  • LED: anello RGB per feedback visivo

  • Connettività: WiFi 2.4 GHz, Bluetooth (solo setup)

  • Espansione: porta Grove per sensori aggiuntivi

  • Alimentazione: USB-C (cavo e alimentatore NON inclusi)

  • Piattaforma: ESPHome (open source, modificabile)

Prezzo: ~$59 USD (disponibile su store Home Assistant)

Cosa è incluso nella confezione:

  • Dispositivo Voice PE

  • Adesivo Home Assistant

  • Guida rapida

  • ⚠️ NON inclusi: cavo USB-C, alimentatore

Alternative hardware compatibili

Se non vuoi acquistare Voice PE, esistono alternative:

ESP32-S3-BOX-3 (~$50)

  • Display touch integrato

  • Microfoni e speaker di qualità

  • Configurabile con ESPHome

  • Ottimo rapporto qualità/prezzo

M5Stack ATOM Echo (~$15)

  • Molto economico

  • Compatto (pollice)

  • Qualità audio limitata

  • Ideale per sperimentare

Raspberry Pi + ReSpeaker (~$80 totale)

  • Microfoni array di qualità

  • Più potente per elaborazione locale

  • Richiede più configurazione

Tablet/telefono Android riciclato (gratis)

  • App Home Assistant Companion con Assist

  • Usa microfono e speaker del dispositivo

  • Zero costi hardware aggiuntivi


Parte 3: Setup Home Assistant Voice PE

Requisiti preliminari

Prima di iniziare, assicurati di avere:

  • Home Assistant 2024.1 o superiore (consigliato 2025.x)

  • Home Assistant Companion app (iOS/Android)

  • Bluetooth abilitato sullo smartphone

  • Cavo USB-C e alimentatore (5V 1A minimo)

  • Rete WiFi 2.4 GHz (Voice PE non supporta 5 GHz)

Passo 1: Collegamento e accensione

  1. Collega il cavo USB-C al Voice PE

  2. Collega l’alimentatore alla presa

  3. Il LED si illumina e inizia a pulsare (modalità setup)

Passo 2: Configurazione via Companion App

Su iPhone:

  1. Vai in Impostazioni iOS > Home Assistant > Bluetooth → Abilita

  2. Vai in Impostazioni iOS > Home Assistant > Posizione → “Sempre” o “Durante l’uso”

Su Android:

  1. Abilita Bluetooth e Posizione

  2. Concedi permessi all’app Home Assistant

Procedura setup:

  1. Apri app Home Assistant

  2. Apparirà notifica “Dispositivo trovato: Home Assistant Voice”

  3. Tocca “Aggiungi”

  4. Seleziona la tua rete WiFi 2.4 GHz

  5. Inserisci password WiFi

  6. Tocca “Connetti”

  7. Premi il pulsante centrale su Voice PE quando richiesto (autorizzazione)

  8. Seleziona area dove posizioni il dispositivo (es: Soggiorno)

  9. Tocca “Avanti”

Passo 3: Configurazione Voice Pipeline

Ora scegli come processare i comandi vocali:

Opzione A: Cloud (Home Assistant Cloud/Nabu Casa)

  • Richiede abbonamento Nabu Casa ($6.50/mese)

  • Setup immediato, nessuna configurazione

  • Riconoscimento vocale eccellente

  • Voci TTS naturali e multilingua

Opzione B: Locale (Do-it-yourself)

  • Gratuito, nessun abbonamento

  • Privacy totale, funziona offline

  • Richiede installazione add-on

  • Performance dipende da hardware HA

Per setup locale, tocca “Do-it-yourself”:

Il wizard installerà automaticamente:

  • Whisper add-on (speech-to-text)

  • Piper add-on (text-to-speech)

  • Wyoming integration (protocollo comunicazione)

  • Creerà un nuovo Voice Assistant configurato

⏱️ Tempo installazione: 5-15 minuti (download modelli vocali)

Passo 4: Test funzionamento

  1. Attendi che LED Voice PE diventi fisso (pronto)

  2. “OK Nabu” (wake word default)

  3. Attendi feedback LED (ascolto)

  4. Dì un comando: “Accendi le luci del soggiorno”

  5. Ascolta la risposta e verifica l’azione

Se non risponde:

  • Verifica che Voice PE sia online in Impostazioni > Dispositivi > ESPHome

  • Controlla che pipeline vocale sia configurata correttamente

  • Prova ad avvicinarti e parlare più chiaramente


Parte 4: Configurazione Voice Pipeline avanzata

Accedere alle impostazioni pipeline

  1. Impostazioni > Assistenti vocali

  2. Clicca sull’assistente da configurare

  3. Modifica ogni componente separatamente

Configurare Whisper (Speech-to-Text locale)

Impostazioni > Add-on > Whisper > Configurazione

language: it  # Lingua riconoscimento
model: small-int8  # Modello (vedi sotto)
beam_size: 5  # Precisione vs velocità

Modelli Whisper disponibili:

Consiglio:

  • Raspberry Pi 4 (4GB): usa tiny-int8 o base-int8

  • Mini PC / NUC: usa small-int8

  • Server potente: usa medium-int8 per massima precisione

Configurare Piper (Text-to-Speech locale)

Impostazioni > Add-on > Piper > Configurazione

voice: it_IT-riccardo-x_low  # Voce italiana

Voci italiane disponibili:

  • it_IT-riccardo-x_low – Voce maschile, qualità base

  • it_IT-riccardo_fastspeech2-x_low – Voce maschile alternativa

  • it_IT-paola-medium – Voce femminile (se disponibile)

Scaricare voci aggiuntive:
Le voci si scaricano automaticamente al primo utilizzo. Per preview, visita: rhasspy.github.io/piper-samples

Configurare Wake Word (parola di attivazione)

Di default, Voice PE risponde a “OK Nabu”. Puoi cambiarlo:

Impostazioni > Dispositivi > ESPHome > Voice PE > Wake word

Wake word disponibili:

  • “OK Nabu” (default)

  • “Hey Jarvis”

  • “Alexa” (sì, puoi usarlo!)

  • “Hey Mycroft”

  • Custom (richiede training modello)

Sensibilità wake word:
Regola per evitare falsi positivi o mancati riconoscimenti:

  • Alta sensibilità: risponde facilmente, più falsi positivi

  • Bassa sensibilità: richiede pronuncia chiara, meno errori


Parte 5: Comandi vocali integrati

Comandi base supportati da Assist

Home Assistant Assist comprende centinaia di comandi in italiano e altre lingue:

Controllo luci:

  • “Accendi le luci del soggiorno”

  • “Spegni tutte le luci”

  • “Imposta le luci della camera al 50%”

  • “Cambia colore delle luci in rosso”

Controllo clima:

  • “Imposta il termostato a 21 gradi”

  • “Alza la temperatura di 2 gradi”

  • “Spegni il riscaldamento”

  • “Qual è la temperatura in camera?”

Controllo tapparelle/coperture:

  • “Apri le tapparelle del soggiorno”

  • “Chiudi tutte le tapparelle”

  • “Imposta le tapparelle al 50%”

Controllo media:

  • “Metti in pausa”

  • “Riproduci” / “Play”

  • “Prossima traccia”

  • “Alza il volume”

Controllo prese/switch:

  • “Accendi la presa della TV”

  • “Spegni il ventilatore”

  • “Attiva la macchina del caffè”

Scene e script:

  • “Attiva la scena cinema”

  • “Esegui script buonanotte”

Informazioni:

  • “Che ore sono?”

  • “Che giorno è oggi?”

  • “Qual è la temperatura esterna?”

  • “Quanta energia ho consumato oggi?”

Usare gli alias per nomi dispositivi

Se Assist non riconosce il nome di un dispositivo, aggiungi alias (nomi alternativi):

  1. Impostazioni > Dispositivi e servizi > Entità

  2. Cerca l’entità (es: light.luce_soggiorno_principale)

  3. Clicca sull’entità > Impostazioni (ingranaggio)

  4. Aggiungi Alias: “luce grande”, “lampada principale”, “luce centrale”

  5. Salva

Ora puoi dire: “Accendi la luce grande” e Assist capirà quale intendi.

Consiglio: Aggiungi alias in italiano colloquiale come li chiameresti naturalmente.


Parte 6: Comandi personalizzati (Custom Sentences)

Metodo 1: Trigger Sentence nelle automazioni (più semplice)

Il modo più facile per creare comandi custom è usare il trigger Sentence nelle automazioni:

Esempio: “Alexa, vado a dormire”

  1. Impostazioni > Automazioni > Crea automazione

  2. Trigger: seleziona “Frase” (Sentence)

  3. Inserisci le frasi che attiveranno l’automazione:

    • vado a dormire

    • buonanotte

    • vado a letto

    • è ora di dormire

  4. Azioni: aggiungi le azioni desiderate

    • Spegni tutte le luci

    • Imposta termostato notte

    • Attiva allarme

  5. Aggiungi risposta vocale:

    • Clicca “Aggiungi azione”

    • Seleziona “Altre azioni” > “Imposta risposta conversazione”

    • Scrivi: “Buonanotte! Ho spento le luci e attivato l’allarme.”

  6. Salva

Test: Dì “OK Nabu, vado a dormire” → esegue azioni + risponde vocalmente.

Metodo 2: Custom Sentences via YAML (avanzato)

Per comandi più complessi con variabili (slot), usa file YAML:

Passo 1: Crea struttura cartelle

config/
└── custom_sentences/
    └── it/
        └── comandi_personalizzati.yaml

Passo 2: Crea file comandi_personalizzati.yaml

language: "it"
intents:
  # Comando: "Imposta timer cucina 10 minuti"
  ImpostaTimerCucina:
    data:
      - sentences:
          - "imposta timer cucina {minuti} minuti"
          - "timer cucina {minuti} minuti"
          - "avvia timer {minuti} minuti"
        slots:
          minuti:
            type: number
            range:
              from: 1
              to: 120

  # Comando: "Quanti gradi ci sono in [stanza]?"
  TemperaturaStanza:
    data:
      - sentences:
          - "quanti gradi ci sono in {stanza}"
          - "che temperatura c'è in {stanza}"
          - "temperatura {stanza}"
        slots:
          stanza:
            type: area

Passo 3: Crea intent_script per rispondere

intent_script:
  ImpostaTimerCucina:
    speech:
      text: "Timer cucina impostato per {{ minuti }} minuti"
    action:
      - service: timer.start
        target:
          entity_id: timer.cucina
        data:
          duration: "{{ minuti * 60 }}"

  TemperaturaStanza:
    speech:
      text: >
        La temperatura in {{ stanza }} è di 
        {{ states('sensor.temperatura_' ~ stanza) }} gradi

Passo 4: Riavvia Home Assistant

Dopo il riavvio, i nuovi comandi saranno disponibili.

Esempio pratico: “Dove ho lasciato le chiavi?”

Crea un sistema per tracciare oggetti:

# custom_sentences/it/trova_oggetti.yaml
language: "it"
intents:
  TrovaOggetto:
    data:
      - sentences:
          - "dove sono le {oggetto}"
          - "dove ho messo le {oggetto}"
          - "dove ho lasciato le {oggetto}"
          - "trova le {oggetto}"
        slots:
          oggetto:
            type: custom
            values:
              - chiavi
              - occhiali
              - portafoglio
              - telecomando
# configuration.yaml
intent_script:
  TrovaOggetto:
    speech:
      text: >
        {% set posizioni = {
          'chiavi': 'sul mobile ingresso',
          'occhiali': 'sul comodino in camera',
          'portafoglio': 'nella tasca della giacca',
          'telecomando': 'tra i cuscini del divano'
        } %}
        {% if oggetto in posizioni %}
          Le {{ oggetto }} dovrebbero essere {{ posizioni[oggetto] }}
        {% else %}
          Non so dove siano le {{ oggetto }}
        {% endif %}

Parte 7: Integrazione con AI/LLM

Perché integrare un LLM?

Assist base capisce solo comandi strutturati. Con un Large Language Model (LLM), puoi avere conversazioni naturali:

Senza LLM:

  • “Accendi le luci” → funziona

  • “Fa un po’ buio qui” → non capito

Con LLM:

  • “Accendi le luci” → funziona

  • “Fa un po’ buio qui” → capisce e accende luci

  • “Prepara la casa per una cena romantica” → abbassa luci, musica soft, temperatura comfort

Opzione 1: Extended OpenAI Conversation (cloud)

  1. HACS > Integrazioni > Cerca “Extended OpenAI Conversation”

  2. Installa e riavvia

  3. Impostazioni > Dispositivi e servizi > Aggiungi > Extended OpenAI

  4. Inserisci API Key OpenAI (da platform.openai.com)

  5. Configura modello (gpt-4o-mini consigliato per costi)

Impostazioni > Assistenti vocali > Modifica assistente:

  • Agente conversazione: Extended OpenAI Conversation

Costo: ~$0.01-0.05 per conversazione (dipende da lunghezza)

Opzione 2: Ollama (LLM 100% locale)

Per privacy totale con AI avanzata:

Requisiti hardware:

  • 16+ GB RAM

  • GPU consigliata (NVIDIA con CUDA)

  • 20+ GB storage per modelli

Installazione:

  1. Installa Ollama sul server HA o PC dedicato:

    curl -fsSL https://ollama.ai/install.sh | sh
  2. Scarica modello (es: llama3.2):
    ollama pull llama3.2
  3. In Home Assistant, installa integrazione Ollama da HACS

  4. Configura come Conversation Agent nell’assistente vocale

Pro: Privacy totale, nessun costo ricorrente
Contro: Richiede hardware potente, risposte più lente

Opzione 3: Home Assistant Cloud con AI

Se hai abbonamento Nabu Casa, l’AI è inclusa:

  1. Impostazioni > Home Assistant Cloud

  2. Abilita “Assist with AI”

  3. Seleziona come Conversation Agent

Pro: Setup immediato, nessuna configurazione
Contro: Richiede abbonamento $6.50/mese


Parte 8: Configurazioni avanzate

Multi-room audio: Voice PE in ogni stanza

Puoi avere più Voice PE (o altri dispositivi) in stanze diverse:

  1. Configura ogni Voice PE con area corretta

  2. I comandi contestuali funzioneranno automaticamente:

    • Dici “Accendi la luce” in soggiorno → accende luce soggiorno

    • Stesso comando in camera → accende luce camera

Exposed entities: limitare cosa Assist può controllare

Per sicurezza o semplicità, limita le entità controllabili vocalmente:

Impostazioni > Assistenti vocali > Expose

  • Esponi: luci, termostati, scene comuni

  • Nascondi: serrature, allarme, dispositivi critici

Consiglio sicurezza: Non esporre serrature o allarmi al controllo vocale senza autenticazione aggiuntiva.

Satellite mode: usare Echo/Google come input

Puoi usare dispositivi Alexa o Google esistenti come microfoni per Assist:

Con Alexa:

  1. Crea routine Alexa con trigger vocale

  2. Azione: chiama webhook Home Assistant

  3. Home Assistant esegue comando

Più avanzato: Integrazione Voice Satellite per trasformare qualsiasi speaker in satellite Assist.

Debug e log vocali

Per troubleshooting, abilita log dettagliati:

Impostazioni > Sistema > Log > Aggiungi:

logger:
  default: info
  logs:
    homeassistant.components.assist_pipeline: debug
    homeassistant.components.conversation: debug
    homeassistant.components.stt: debug
    homeassistant.components.tts: debug

Visualizza cosa Assist ha “sentito” e come ha interpretato il comando.


Parte 9: Troubleshooting problemi comuni

“Assist non capisce i miei comandi”

Cause possibili:

  1. Pronuncia: parla chiaramente, non troppo veloce

  2. Nome dispositivo: usa alias più semplici

  3. Lingua: verifica che pipeline sia configurata in italiano

  4. Modello Whisper: modello troppo piccolo per riconoscimento accurato

Soluzioni:

  • Aggiungi alias ai dispositivi

  • Prova modello Whisper più grande (se hardware lo permette)

  • Usa comandi più semplici e diretti

“Whisper è troppo lento”

Cause:

  • Hardware non sufficiente

  • Modello troppo grande

Soluzioni:

  • Usa modello più piccolo (tiny-int8 o base-int8)

  • Considera Home Assistant Cloud per STT

  • Upgrade hardware (SSD, più RAM, CPU migliore)

“Voice PE non si connette”

Checklist:

  1. WiFi è 2.4 GHz? (5 GHz non supportato)

  2. Bluetooth smartphone abilitato?

  3. Companion app ha permessi location + Bluetooth?

  4. LED Voice PE lampeggia? (modalità setup)

  5. Sei vicino al dispositivo? (<3 metri per BLE)

Reset Voice PE:
Tieni premuto pulsante centrale 10 secondi → LED lampeggia rosso → reset completato → riprova setup.

“La risposta vocale è robotica/incomprensibile”

Causa: Voce Piper non ottimale

Soluzione:

  • Prova voci diverse nelle impostazioni Piper

  • Considera Home Assistant Cloud per TTS più naturale

  • Verifica che speaker Voice PE non sia ostruito

“Wake word attiva con falsi positivi”

Causa: Sensibilità troppo alta o wake word comune

Soluzioni:

  • Riduci sensibilità wake word

  • Cambia wake word (es: da “Alexa” a “OK Nabu”)

  • Posiziona Voice PE lontano da TV/radio


Home Assistant Voice rappresenta una rivoluzione nel controllo vocale smart home: per la prima volta è possibile avere un assistente vocale completamente locale, rispettoso della privacy, personalizzabile e indipendente da servizi cloud.

Cosa hai imparato:

  • Configurare Voice PE e pipeline vocale

  • Scegliere tra elaborazione locale e cloud

  • Usare i comandi integrati di Assist

  • Creare comandi personalizzati con custom sentences

  • Integrare AI/LLM per conversazioni naturali

  • Risolvere i problemi più comuni

Il futuro è vocale e locale: Con l’evoluzione continua di Whisper, Piper e i modelli AI locali, il gap con assistenti cloud si riduce ogni mese. Oggi puoi già controllare la tua casa con la voce senza che nessuna azienda ascolti le tue conversazioni.

Prossimi passi consigliati:

  1. Inizia con pipeline cloud (più semplice) per testare

  2. Migra gradualmente a locale quando ti senti pronto

  3. Crea custom sentences per i tuoi casi d’uso specifici

  4. Sperimenta con LLM per conversazioni più naturali

La tua smart home ora ti ascolta… e solo tu sai cosa le dici!