Speaker Google Home con Home Assistant e Raspberry Pi 3

Speaker Google Home con Home Assistant e Raspberry Pi 3

In questa guida vediamo come è possibile inviare comandi vocali all’assistente personale di Google (Google Assistant) per controllare i dispositivi SMART per la Casa Domotica configurati all’interno di Home Assistant (hass.io) installato su Raspberry Pi 3.
Dopo aver visto una breve panoramica su quello che si può fare con gli speaker Google Home e Google Home mini e prodotti Broadlink, Philips Hue, Yeelight e Sonoff, vediamo come controllare attraverso comandi vocali switch, gruppi e luci configurati all’interno di Home Assistant installato su Raspberry Pi 3.

Speaker Google Home: come inviare comandi vocali a Home Assistant installato su Raspberry Pi 3

Se non hai ancora installato Hass.io su Raspberry Pi 3 ti consiglio di leggere questo articolo: Come installare Home Assistant su Raspberry Pi 3 – Hass.io.

I prodotti per la casa domotica che si possono controllare attraverso comandi vocali con Google Home e Google Home Mini appartengono principalmente alla categoria luci smart e prese intelligenti (SMART Switch), i quali possono essere riuniti all’interno di un gruppo.

I prodotti configurati all’interno di Home Assistant che puoi controllare con i comandi vocali impartiti a Google Home devono appartenere a queste categorie (domini):

  • group (on/off);
  • input boolean (on/off);
  • scene (on);
  • script (on);
  • switch (on/off);
  • fan (on/off);
  • light (on/off/brightness/rgb color/color temp);
  • cover (on/off/set position (via set brightness));
  • media_player (on/off/set volume (via set brightness));
  • climate (temperature setting).

All’esterno della mia casa ho tutte lampadine Xiaomi Yeelight RGB che ho configurato all’interno di Home Assistant e le ho raggruppate all’interno del gruppo “Luci Esterne”. Ovviamente ho creato una automazione per accendere e spegnerle in base all’orario e in base a determinati eventi, tuttavia se volessi accendere in anticipo inviando un comando vocale mi basterebbe pronunciare la frase: “Ehi Google, accendi luci esterne”.

Ovviamente è anche possibile accedere e spegnere le luci singolarmente.

Come configurare Google Assistant all’interno di Home Assistant

La procedura che descrivo di seguito è quella ufficiale che trovate sul sito home-assistant.io.

N.B. Tutta questa configurazione, da un po’ di tempo, può essere evitata semplicemente creando un account su Home Assistant Cloud e configurando Home Assistant come descritto nella pagina ufficiale Google Assistant via Home Assistant Cloud.

Prima di procedere sarà necessario avere l’accesso a Home Assistant da remoto e creare un client_id e una access_token.

Per l’accesso da remoto ti consiglio di leggere l’articolo: Come accedere a Home Assistant da remoto – Hass.io.

Per creare un client_id e un access_token sicuri puoi usare il servizio offerto da browserling.com, selezionare formato e lunghezza quindi cliccare su Generate! Copiare le due stringhe da qualche parte perché serviranno in seguito.

come generare stringe sicure da usare come ID client e access token su Home Assistant

Creare un nuovo progetto in developer console di Google, ovviamente occorre avere un Account Google.

Fare click su Add/import project, nella finestra che si apre inserire un nome per il progetto e selezionare Italia come nazione, quindi cliccare su Create Project.

Si aprirà una nuova schermata, in SMART HOME cliccare su BUILD.

creare un nuovo progetto su console.actions.google

Nella nuova finestra inserire l’URL per l’accesso da remoto, l’URL sarà del tipo: https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant quindi cliccare su DONE.

Chi utilizza DukDNS per l’accesso da remoto a Home Assistant dovrà inserire un URL tipo: https://TUO_dominio.duckdns.org:8123/api/google_assistant

Cliccare su Overview nel menù di sinistra, quindi cliccare su App information e inserire le informazioni richieste, questo non hanno molta importanza dato che non invieremo realmente l’applicazione a Google per la revisione. Dovrete inserire un nome per l’applicazione, un’immagine ecc.

Cliccare su Account linking quindi su ADD, e impostare come segue.

Grant Type, selezionare Implicit, click su Next, click su Next.

Client ID, inserire la stringa sicura creata in precedenza da usare come client_id.

Autorization URL, inserire l’URL del tipo: https://TUO_dominio.duckdns.org:8123/api/google_assistant/auth?api_password=tua_api_password la API Password è quella che hai impostato su Home Assistant per accedere al front end, click su NEXT

Configure you Client (optional), inserire email quindi cliccare su ADD SCOPE, poi inserire name e cliccare su ADD SCOPE, click su NEXT

Testing Instructions, inserire un testo qualsiasi tanto non invieremo l’app a Google, cliccare su SAVE

Aprire il file configuration.yaml del vostro Home Assistant e inserire questo codice e quindi riavviare Home Assistant:

# Google Assistant       
google_assistant:
  project_id: top-home-assistant
  client_id: [stringa sicura creata in precedenza]
  access_token: [una stringa sicura differente sempre creta in precedenza]
  agent_user_id: [stringa per identificare l'utente]
  api_key: [Homegraph API Key generata da Google Actions project]
  exposed_domains:
    - switch
    - light
    - group
    - scene
    - media_player
    - input boolean

Vediamo dove trovare questi valori da inserire nel file di configurazione di Home Assistant.

project_id, per trovare il valore ID Progetto sarà necessario andare su Google Cloud Platform Console, in Informazioni sul progetto c’è anche ID progetto, copiare il valore e inserirlo nel file configuration.yaml.

client_id, inserire la stringa creata in precedenza da utilizzare come client_id.

access_token, inserire la stringa creata in precedenza da utilizzare come access_token.

agent_user_id: facoltativo, si può anche lasciare vuoto, si tratta di una stringa per identificare l’utente.

api_key, questa va inserita solo se si vuole utilizzare il servizio google_assistant.request_sync, questo servizio permette di sincronizzare i nuovi prodotti aggiunti a Home Assistant all’interno di Google Home senza dover scollegare e ricollegare l’account per la nostra app. Per fare questo è necessario attivare Homegraph API sul nostro progetto, quindi andare su cloud console e abilitare Homegraph API. Nel menù di sinistra cliccare su Credenziali, quindi su Crea Credenziali, selezionare API Key (chiave API), copiare la tua chiave API nel file configuration.yaml.

exposed_domains, inserire i domini dove abbiamo configurato i prodotti per la Casa DOMOTICA che vogliamo gestire attraverso i comandi vocali, luci, scene, switch ecc.

Come aggiungere i dispositivi configurati su Home Assistant all’interno dell’applicazione Google Home

Siamo quasi giunti alla fine, non ci resta che far “vedere” tutti i device configurati all’interno di Home Assistant all’assistente personale di Google in modo da trovarli nell’applicazione Home di Google e poterli gestire attraverso un comando vocale inviato agli speaker Google Home o Google Home Mini.

Leggi anche l’articolo: Google Home per controllare la Casa Domotica con comandi vocali.

Sul proprio smartphone Android aprire l’applicazione Home di Google, dal menù selezionare Controllo domestico, fare tap sul simbolo +, quindi selezionare la voce [test]Nome_Tua_Applicazione.

Google Home Aggiungi dispositivi per la Casa Domotica da controllare con comandi vocali

Dopo pochi secondi verrà mostrata la lista dei dispositivi configurati all’interno di Home Assistant, questi si possono rinominare per assegnare dei nomi che l’Assistente di Google sia in grado di riconoscere più facilmente e si possono inserire all’interno delle varie stanze.

Infine non ti resta che dire: “Ok Google, accendi luce soggiorno”, “Ehi Google, accendi la TV” ecc.

Inviare comandi vocali a Google Home Mini per gestire la Casa Domotica – Conclusioni

Anche se Google Home e Google Home Mini con l’assistente personale in italiano hanno funzioni un po’ limitate per la gestione della casa domotica, grazie a Home Assistant installato su Raspberry Pi 3, è possibile ampliare notevolmente il campo d’azione dei due speaker e quindi gestire attraverso comandi vocali i prodotti configurati all’interno di Home Assistant oppure attivare disattivare diversi scenari.

Condividi la tua esperienza personale con Home Assistant e Google Home lasciando un commento a questo articolo.