Integrare gratuitamente Google Home (Assistant) con Home Assistant (via GCP)

8 minuti di lettura
● Resta sempre aggiornato grazie al nostro canale Telegram e alla nostra newsletter settimanale!
Scopi della guida:
Concetti affrontati:
  • Configurazione software
Componenti software utilizzate:
Prerequisiti:
  • Home Assistant configurato e funzionante (versione minima 0.105.x)
  • Home Assistant remotizzato via HTTPS (spiegato dopo)
  • Google Home/Assistant configurato e funzionante e relativo account Google ad esso collegato
  • Un account personale Google (collegato al proprio/propri Amazon Echo)
Dispositivi fisici utilizzati:
  • Il computer sul quale è in esecuzione Home Assistant
  • Smartphone e/o tablet sul quale eseguire l’app “Google Home” (Android e/o iOS)
  • Google Home/Assistant (qualsiasi modello di smart speaker o applicazione software che utilizzi Google Assistant come software integrato)
GUIDA maggiormente indicatA per:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione guida: 2.1

Google Home - Home Assistant

Abstract

L’avvento sul mercato degli Smart Speaker sta lentamente cambiando le abitudini di molti che, quotidianamente, prendono dimestichezza e familiarità con la possibilità di interagire con un vero e proprio assistente personale usando semplicemente voce e linguaggio naturale.

Google Home è uno dei device di più ampio e riconosciuto successo. Come abbiamo spiegato tale smart speaker per funzionare utilizza il software Google Assistant, il quale è disponibile, anche per smart speaker prodotti da terze parti, oltre che come applicazione stand-alone per smartphone/tablet Android e iOS.

Qualunque smart speaker che utilizzi Google Assistant può esser facilmente integrato con Home Assistant. Ma perché, dato che molte componenti domotiche dichiarano compatibilità con Google Home – e che quindi possono essere controllate “di fabbrica” da tale Smart Speaker – è utile integrarle con quest’ultimo tramite Home Assistant[Prima di rispondere alla domanda, chi legge abbia chiaro il concetto di integrazione in domotica.]

Semplice: perché tramite un HUB personale come Home Assistant siamo in grado di definire scenari, accessori virtuali, automazioni non definibili altrimenti con l’uso separato delle singoli componenti. Come spiegato anche in un episodio del nostro podcast, alcuni scenari evoluti semplicemente non possono essere realizzati senza l’ausilio di una piattaforma comune, ovvero un HUB personale.

Nel momento in cui si integra tale HUB personale (quindi Home Assistant nel caso specifico di questa guida) con Google Home, si potranno controllare tutti i componenti e le entità – quali scenari (ed altro) – in esso definiti tramite il mio assistente personale. Uno dei tanti motivi per adottare un HUB personale per la propria domotica.

Un focus su questo importante tema è disponibile qui.

Gli elementi (definiti domini) definiti in configurazione Home Assistant e controllabili tramite integrazione con Google Assistant (Google Home e speaker compatibili, nonché app) sono:

  • binary sensors (sensori binari)
  • camera (telecamere IP)
  • climate (climatizzatori e termostati)
  • cover (scuri)
  • fan (ventilatori) – accensione/spegnimento
  • group (gruppi)
  • input boolean (input booleani)
  • light (luci)
  • media_player (riproduttori multimediali)
  • scene
  • script – solo accensione/attivazione
  • sensor (sensori, solo temperatura)
  • switch (interruttori)
  • vacuum (aspirapolvere)
N.b. Per integrare Google Assistant con Home Assistant esistono due strade:

La presente guida illustra come realizzare la seconda possibilità, quella gratuita.

Infine, è bene sapere che Google Home può essere integrato ad Home Assistant anche come riproduttore multimediale e come sistema di notifica vocale, ovvero “facendolo parlare” automaticamente al presentarsi di determinate condizioni in domotica.

Si parte

Prerequisiti

Come illustrato in testa, i pre-requisiti principali sono due:

  • versione di Home Assistant maggiore o uguale alla 0.62;
  • Home Assistant configurato per il controllo remoto tramite HTTPS.

Il secondo punto prevede che la propria istanza Home Assistant sia raggiungibile da remoto e tramite protocollo HTTPS. In caso si stia utilizzando Home Assistant installato su Raspberry (installato come applicativo) è disponibile una guida dettagliata al procedimento. Inoltre è disponibile una guida allo stesso scopo per gli utenti che utilizzino la distribuzione HASSIO.

Infine, è (ovviamente) necessario che su Home Assistant non sia operativa l’integrazione a pagamento tramite Nabu Casa.
Eventualmente, disattivarla prima di cominciare con l’esecuzione della presente guida.

Procedimento

L’integrazione non è particolarmente complessa, ma prevede il rispetto puntuale di alcune azioni sequenziali, sostanzialmente quattro:

  1. definizione di un progetto personale presso Google Actions;
  2. definizione di una chiave Service Account Key presso Google Cloud Platform;
  3. configurazione Home Assistant;
  4. discovery delle entità Home Assistant controllabili via Google Echo/Assistant.

Progetto Google Actions

Google Actions” è un ambiente operativo web (costola di Google Cloud Platform, l’ambiente cloud di Google per sviluppatori – e non) il quale consente a chiunque di creare dei progetti volti ad ampliare le funzionalità di Google Assistant.

Per realizzare l’integrazione descritta in questa guida utilizzeremo una tipologia specifica di progetto: “Smart Home“. Rechiamoci dunque presso Google Actions e, dopo essersi autenticati e aver accettato i termini d’uso (sempre che non sia stato fatto in precedenza), selezionare nuovo progetto:

Google Actions - New project

Una volta cliccato, indicare come nome progetto “Home Assistant” (o un altro nome di vostra preferenza) e selezionare la lingua e la nazionalità:

Google Actions - New project - Name

A questo punto cliccare su “Creare progetto” e avanzare oltre.
Verrà richiesto dal sito di scegliere la tipologia del nuovo progetto, nel nostro caso “Smart Home“:

Google Actions - New project - Tipology

verrà poi chiesto quale sotto-tipologia di progetto creare, scegliere nuovamente “Smart Home“:

Google Actions - New project - Tipology 2

Terminata questa prima parte di procedura ci si ritroverà sulla dashboard del progetto appena creato. Per portare a completamento la creazione della Action è necessario completare tutta una serie di schede.

In primis, è necessario impostare un “nome” alla nostra Action: per farlo, cliccheremo su “Name your Smart Home action” (può variare in base alla traduzione linguistica):

Google Actions - Project Dashboard - Name your project

Il nome che andremo ad indicare rappresenterà l’action presso l’app Google Assistant, pertanto è bene dargli un nome sufficientemente chiaro. Non è possibile usare nomi composti che contengano la parola “Assistant“.

N.b. In questa fase è possibile indicare più lingue diverse, qualora se ne abbia bisogno.

Google Actions - Project Dashboard - Name your project 2

Dopo aver cliccato “Salva” è possibile tornare alla tab “Overview” per provvedere al secondo step, ovvero, quello del “Setup account linking“:

Google Actions - Project Dashboard - Setup account linkingIn questa fase si va a indicare all’Action quali siano le coordinate verso la nostra istanza Home Assistant. In primis, si andrà a specificare la volontà di collegare “semplicemente” un proprio sito web all’Action:

Google Actions - Project Dashboard - Setup account linking 2

Cliccando “Next” si passerà oltre, ovvero alla definizione della tipologia di link, dove si sceglierà “OAuth” per la prima voce e “Authorization Code” per al seconda:

Google Actions - Project Dashboard - Setup account linking 3

Alla nuova pressione di “Next” si arriverà all’inserimento delle informazioni relative al client “OAuth“:

Google Actions - Project Dashboard - Setup account linking 4

Nei campi, compilare come segue:

  • Client ID: https://oauth-redirect.googleusercontent.com/
  • Client secret: una stringa casuale di vostra scelta
  • Authorization URL: https://VOSTRO_INDIRIZZO_HOME_ASSISTANT:PORTA/auth/authorize

esempio: https://casamia.duckdns.org:8123/auth/authorize

  • Token URL: https://VOSTRO_INDIRIZZO_HOME_ASSISTANT:PORTA/auth/token

esempio: https://casamia.duckdns.org:8123/auth/token

Cliccare dunque “Next” per passare al quarto punto, dove si configura il proprio client:

Google Actions - Project Dashboard - Setup account linking 5

Aggiungere due “Scope“, indicando nel primo campo “email” e nel secondo “name“. Cliccare infine su “Next” per passare al quinto ed ultimo step, ovvero quello di test:

Google Actions - Project Dashboard - Setup account linking 6

Inserire nel campo testo “test” e infine cliccare su “Save” per tornare alla dashboard, cliccando alla voce “Overview“. Arrivati questo punto è necessario passare alla sezione “Build your Action” la quale segue “Quick setup“. Selezionare “Add Action(s)“:

Google Actions - Project Dashboard - Build Your Action - Add action

Nella finestra che si aprirà, indicare nel campo:

  • Fullfillment URL: https://VOSTRO_INDIRIZZO_HOME_ASSISTANT:PORTA/api/google_assistant

esempio: https://casamia.duckdns.org:8123/api/google_assistant

Cliccare su “Save” per tornare alla dashboard, cliccando alla voce “Overview“.
A questo punto sarà possibile cliccare su “Enter information required for listing your Action in the Actions directory“:

Google Actions - Project Dashboard - Build Your Action - Get ready for deployment

N.b. In realtà non andremo a rendere pubblica tale “Action“, ma la lasceremo in bozza, o in test, per così dire.

Nella schermata seguente (voce “Deploy“) andremo ad indicare le informazioni di contatto legate all’Action, sebbene essa rimarrà privata:

Google Actions - New project - Deploy

Nella voce “Description“, indicare una descrizione breve e una descrizione lunga (dei testi qualsiasi):

Google Actions - New project - Deploy 2

Alla voce “Images” indicare un’icona (per esempio il logo di Home Assistant):

Google Actions - New project - Deploy 3

Alla voce “Contact details” indicare i propri dati (per lo meno l’email):

Google Actions - New project - Deploy 4

Infine, alla voce “Privacy and consent” indicare l’indirizzo https://home-assistant.io in entrambi i campi:

Google Actions - New project - Deploy 5

Ignorare l’ultima voce, “Additional Informations“, e cliccare su “Save” in alto a destra.
A questo punto cliccate alla voce “Test” per aprire la finestra del simulatore:

Google Actions - New project - Test

Cliccare in basso a sinistra, alla voce “Talk to…“.
La finestra riporterà un errore, ma è normale: non dargli peso.

Concludendo le attività presso Google Actions, recuperare il “Project ID” cliccando in alto a destra i tre puntini e poi “Project settings“:

Google Actions - New project - Project Settings

Una volta apertasi la finestra, appuntarsi il valore dell’ID di progetto indicato nel campo Project ID:

Google Actions - New project - Project Settings 2

Chiudere infine la finestra del browser.

Service Account Key

Giunti a questa fase è il momento di generare una “Service Account Key“, una chiave autorizzativa necessaria successivamente nella configurazione di Home Assistant.

Per farlo è necessario collegarsi, autenticandosi sempre col proprio account Google, a questo indirizzo.

Nella form che apparirà, alla vice “Service account” è necessario selezionare “New service account“:

Google Actions - New service account - passo 1

Alla voce “Service account name” inserire “homeassistant“, mentre alla voce “Role” selezionare “Project” > “Owner“:

Google Actions - New service account - passo 2

Infine selezionare “JSON” e cliccare su “Create“.
Il browser, dopo una breve attesa, vi proporrà di scaricare un file con estensione .json. Salvatelo da parte, servirà a breve.

Configurazione Home Assistant

È il momento di agire presso Home Assistant. Per attivare l’integrazione di Google Home, infatti, è necessario aggiungere in configurazione un piccolo blocco che fornisca all’HUB le coordinate rispetto a:

  • il l’ID di progetto definito col proprio progetto presso  Google Action;
  • la Service Account Key definita presso Google Cloud Platform;
  • i domini da esporre verso Google Assistant.

Come accennato nell’abstract, i domini (ovvero le tipologie) di entità che possono essere controllate da Google Assistant sono:

  • binary sensors (sensori binari)
  • camera (telecamere IP)
  • climate (climatizzatori e termostati)
  • cover (scuri)
  • fan (ventilatori) – accensione/spegnimento
  • group (gruppi)
  • input boolean (input booleani)
  • light (luci)
  • media_player (riproduttori multimediali)
  • scene
  • script – solo accensione/attivazione
  • sensor (sensori, solo temperatura)
  • switch (interruttori)
  • vacuum (aspirapolvere)

È pertanto necessario indicare, uno ad uno, i domini da esporre da Home Assistant verso Google Assistant; il nostro caldo consiglio (sopratutto in presenza di una domotica personale particolarmente articolata) è quello di cominciare per gradi, indicando un dominio alla volta, così da avere modo di amministrare le varie entità presso Google Assistant in modo ordinato.

Per attivare l’integrazione, il blocco “tipo” da inserire in configurazione è:

google_assistant:
  project_id: XXXXXXX
  service_account: !include YYYYYYY
  exposed_domains:
    - light

Nell’esempio abbiamo indicato un solo dominio, “Light“; come facile intuire, i campi “project_id” e “service_account” sono andranno compilati con le informazioni precedentemente raccolte relative all’ID del progetto Google Action e alla Service Account Key di Google Cloud Platform.

Per quanto riguarda il campo service_account, è necessario indicare, al posto de “YYYYYYY” dell’esempio, il nome del file scaricato nel passo in cui si è definita la Service Account Key. Tale file, infine, andrà copiato nella directory contenente i file di configurazione di Home Assistant (eg. /config/ nel caso di HASSIO, /home/homeassistant/.homeassistant/ nel caso di installazione su Raspbian e così via).

Una volta completata tale configurazione, riavviare Home Assistant.

AUTO DISCOVERY

Consigliata ma non obbligatoria, un’automazione che, all’avvio di Home Assistant, indichi all’HUB di passare automaticamente a Google Assistant qualunque nuova entità (delle tipologie incluse nei domini indicati in configurazione), senza il bisogno di domandare a Google Assistant di farlo forzatamente.

In primi è necessario recuperare il proprio User ID presso Home Assistant, il quale è disponibile presso “Impostazioni” > “Utenti” e selezionando il proprio utente:

Home Assistant - User ID

Ottenuto l’ID, aggiungere la seguente automazione:

automation:
 alias: Google Assistant Sync
  trigger:
  - event: start
    platform: homeassistant
  condition: []
  action:
  - service: google_assistant.request_sync
    data:
      agent_user_id: MIO_USER_ID
Avendo cura di indicare, presso il campo agent_user_id il proprio ID precedentemente recuperato.

Aggiungere l’Action a Google Home

Si tratta del passo finale volto ad aggiungere la nostra “Action” al nostro ecosistema Google Assistant.

Dopo aver atteso il riavvio di Home Assistant, aprire l’app Google Home (per Android e/o iOS) avendo cura di essere autenticati col proprio account Google.

Una volta entrati, cliccare su “+“:

Google Home - Add device

Successivamente, selezionare la voce “+“:

Google Home - Add device 2

Poi, la seconda voce:

Google Home - Add device - 3

 

A questo punto sarà necessario scegliere la propria “Action“, il quale nome varierà in base alle scelte fatte all’inizio della definizione della stessa presso Google Actions (nel nostro caso, “abra cadabra“:

Google Home - Add device 4

Ovviamente il prefisso “[test]” è più che normale, dato che la nostra “Action” è privata e non pubblica.
Una volta selezionata l'”Action” verrà richiesta l’autenticazione verso il proprio Home Assistant:

Google Home - Add device 5

Una volta autenticati, se tutto funzionerà correttamente, Google Home visualizzerà tutte le entità della tipologia dei domini indicati in configurazione.

Sarà dunque sufficiente completare la configurazione delle singole entità (in questo esempio le sole luci, dato che come domini inclusi nell’integrazione abbiamo indicato solo “Light”):

Google Home - Add device 6Una volta completata tale attività, l’integrazione sarà completata e sarà quindi possibile cominciare a controllare la propria domotica basata su Home Assistant tramite comandi vocali presso Google Home/Assistant.

“Far parlare” Amazon Alexa come sistema di notifica domotica su Home Assistant


● Resta sempre aggiornato grazie al nostro canale Telegram e alla nostra newsletter settimanale!