Scopi della guida:
Concetti affrontati:
Componenti software utilizzate:
|
Prerequisiti:
Dispositivi fisici utilizzati:
|
Guida indicata per utenti con installazione:![]() |
|
NOTE E DISCLAIMER
|
|
Revisione guida: 3.1 |
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 Nest è uno degli smart speaker 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 Nest – 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 Nest, 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.
Le tipologie di entità (definiti domini) presenti in configurazione Home Assistant e controllabili tramite integrazione con Google Assistant (Google Nest 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 Nest con Home Assistant esistono due strade:
La presente guida illustra come realizzare la seconda possibilità, quella gratuita. |
Infine, è bene sapere che Google Nest 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
- Procedimento
- Progetto Google Actions
- Service Account Key
- Configurazione Home Assistant
- Aggiungere l’Action a Google Home
- Local Fulfillment
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 Home Assistant OS.
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:
- definizione di un progetto personale presso Google Actions;
- definizione di una chiave Service Account Key presso Google Cloud Platform;
- configurazione Home Assistant;
- 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:
Una volta cliccato, indicare come nome progetto “Home Assistant” (o un altro nome di vostra preferenza) e selezionare la lingua e la nazionalità:
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“:
Terminata questa prima fase 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):
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. |
Dopo aver cliccato “Salva” è possibile tornare alla tab “Overview” per provvedere al secondo step, ovvero, quello del “Setup account linking“:
In questa fase si va a indicare all’Action quali siano le coordinate verso la nostra istanza Home Assistant, relative al client “OAuth“:
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 su “Next” per passare ai punti successivi, i quali andranno saltati a pie’ pari fino arrivare a questa schermata:
Cliccare dunque su “Save” e 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)“:
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“:
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:
Nella voce “Description“, indicare una descrizione breve e una descrizione lunga (testo qualsiasi in entrambi i campi):
Alla voce “Images” indicare un’icona (per esempio il logo di Home Assistant):
Alla voce “Contact details” indicare i propri dati (per lo meno l’email):
Infine, alla voce “Privacy and consent” indicare l’indirizzo https://home-assistant.io in entrambi i campi:
Ignorare l’ultima voce, “Additional Informations“, e cliccare su “Save” in alto a destra.
Concludendo le attività presso Google Actions, recuperare il “Project ID” cliccando in alto a destra i tre puntini e poi “Project settings“:
Una volta apertasi la finestra, appuntarsi il valore dell’ID di progetto indicato nel campo Project ID:
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.
Assicurarsi di aver selezionato il progetto creato poco fa. Cliccare in spalla sinistra su “IAM & Admin” > “Service accounts” e poi su “+ CREATE SERVICE ACCOUNT“:
Sotto Service account details” inserire come service account name la stringa “homeassistant” il secondo campo relativo all’ID si auto-completerà creando una stringa univoca) e cliccare su “CREATE AND CONTINUE“:
Selezionare il ruolo “Owner” e cliccare su “CONTINUE“:
Arrivati al terzo step, cliccare nuovamente su “CONTINUE“.
Avremo ora il riepilogo dei service account. Cliccare sul nome di quello appena creato.
Nella pagina successiva portarsi sul tab “KEYS“, cliccare su “ADD KEY” e poi su “Create new key“:
Ci verrà chiesto il formato della chiave da creare. Selezioniamo “JSON” e poi clicchiamo 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 Nest, 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.json
exposed_domains:
- light
- switch
- climate
entity_config:
switch.ingresso:
name: NOME_COL_QUALE_ESPORRE_LO_SWITCH_A_GOOGLE_HHOME
aliases:
- LUCI_FORTI
- LUCI_INGRESSO
light.bagno:
expose: false
room: BAGNO
come facile intuire, le chiavi “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 la chiave project_id, è necessario indicare, al posto de “XXXXXXX” dell’esempio, l’ID del progetto per intero (eg. “home-assistant-4c112“).
Per quanto riguarda la chiave service_account, è necessario indicare, al posto de “YYYYYYY.json” 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.
Tramite la chiave “exposed_domains“, nell’esempio abbiamo indicato tre domini di entità da esporre a Google Nest, ovvero “Light“, “Switch” e “Climate” – ognuno, ovviamente, indicherà quelli che ritiene opportuni. Attenzione: vanno indicati i domini – quindi le famiglie di componenti – non le singole entità.
Infine, tramite la chiave “entity_config” abbiamo anche personalizzato uno switch e una luce (switch.ingresso e light.bagno) in modo che Google Nest li “conosca” con nomi alternativi e altre particolarità.
Una volta completata la propria configurazione, riavviare Home Assistant.
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 “+“:
Successivamente, selezionare la voce “+“:
Poi, la seconda voce:
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“:
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:
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”):
Una 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 Nest/Assistant.
Local Fulfillment?
Arrivati a questo punto l’integrazione è pienamente funzionante ma, ovviamente, ogni comando transita necessariamente via Internet. Al netto del riconoscimento del linguaggio – il quale necessariamente prevede la comunicazione dello smart speaker verso il cloud Google – è possibile far sì che i comandi verso Home Assistant vengano eseguiti localmente.
Per attivare questa funzione è necessario attivare la “Local Fulfillment”, una funzione disponibile dalla versione 2022.2 di Home Assistant. Per farlo seguire questa nostra breve guida.
“Far parlare” Amazon Alexa come sistema di notifica domotica su Home Assistant