Come integrare Google Assistant in Home Assistant

Home Assistant

Scritto da Luigi Duchi

 

Attenzione la guida sottostante e il video relativo sono validi fino alla versione 0.79.3 di Home Assistant per la versione dalla 0.80 in poi la guida da seguire sarà a fondo articolo

 

Ben tornati, oggi andremo a configurare Google Assistant sul nostro Home Assistant in modo da poter utilizzare tutti i nostri dispositivi registrati su Home Assistant con i comandi vocali di casa GOOGLE.

Questa procedura ci permetterà di comandare i dispositivi che nativamente non sono fruibili con Google Assistant (qualcuno ha detto Xiaomi?) in maniera del tutto uguale a quelli progettati per lavorare nativamente con il nostro assistente Google.

Come prerequisito per far funzionare Google Assistant sul nostro HA (Home Assistant) avremo bisogno di un ddns e di una firma ssl ad esso associata. In riferimento a quest'ultimo punto potete trovare una guida sempre su questo blog al seguente indirizzo:

Accedere ad Home Assistant in modalità sicura con DuckDNS e SSL Let's Encrypt

La prima cosa da fare sara' scaricare le CLI di G actions relative al vostro sistema operativo (se state usando un raspberry con raspbian dovrete scaricare linux arm) potrete trovarle QUI.

per comodità le salverete nel percorso /home/pi, naturalmente sul Raspberry.

Andate nel terminale del vostro raspberry e lanciate il comando:

ls gactions vi consentirà di andare nel percorso dove avete salvato le Gactions 

sempre da terminale lanciate il comando:

chmod +x gactions in modo che diventi eseguibile

sempre dal terminale (nello stesso percorso di prima) andrete a creare un progetto json con il seguente comando:

sudo nano project.json

Nel documento che vi si aprirà copiate il seguente contenuto:

{ "actions": [{ "name": "actions.devices", "deviceControl": { }, "fulfillment": { "conversationName": "automation" } }], "conversations": { "automation" : { "name": "automation", "url": "https://tuodominio.duckdns.org/api/google_assistant" } } }

dove al posto di tuodominio inserirete il vostro ddns di collegamento ad Home Assistant 

salvate il documento (CTRL+X>y>invio) e lasciate aperto il terminale al medesimo percorso.

Benissimo, adesso siamo pronti ad aggiungere il nostro progetto all'sdk di google, andate a questo indirizzo QUI.

Cliccate per aggiungere un nuovo progetto come nell'immagine di esempio:

comparirà un popup dove potrete selezionare il nome del progetto chiamatelo hasstest (in realtà potreste chiamarlo come volete ma per comodità io utilizzero' questo nome e nel caso decidiate di cambiarlo dovrete farlo per tutta la procedura, lo sconsiglio ai meno esperti) selezionate Italia sotto country/region e cliccate su create project.

nel riquadro dove è scritto Actions SDK cliccate su BUILD.

Copiate il link con l'apposito pulsante nel popup che vi comparirà e tornate sul terminale, incollate cio che avete copiato, sostituite la parola PAKAGE_NAME con il nome project.json ed inserite ./ all'inizio della stringa vi troverete ad un comando del genere:

./gactions update --action_package project.json -- project hasstest-1a234 (i numeri dopo hasstest sono di esempio voi avrete quelli trovati nel link copiato su sdk di google).

Una volta premuto invio vi visualizzerà un url lunghissimo, copiatelo ed incollatelo nella barra destinata agli indirizzi di un browser.

vi verrà chiesto di accedere al vostro account Google, fatelo!

Una volta loggati vi reindirizzerà ad una pagina web dove troverete un codice di autorizzazione che dovrete copiare sul vostro terminale esattamente dove ve lo richiederà (sotto l'url lunghissimo copiato poco prima)

Dopo aver premuto invio vi darà un altro url, copiatelo e incollatelo nella barra di un browser.

l'indirizzo che vi troverete avrà un aspetto del genere:

https://console.actions.google.com/project/hasstest-1a234/overview 

Una volta digitato l'url vi ritroverete in una pagina del genere:

Cliccando su Name Your Smart Home Action potrete assegnare un nome al progetto (questo nome lo ritroverete nell'app Google Home in seguito). Assegnate quindi un nome e salvate

Successivamente cliccate su Setup account linking e compilate come nell'immagine di seguito:

Sotto la voce client information andrete a creare un client_id potrete inserire un nome che preferite mentre sotto la voce authorization url inserirete un url del genere:

https://VOSTRODDNS.duckdns.org/api/google_assistant/auth?api_password=VOSTRAPASSWORDHOMEASSISTANT (ovviamente sostituitelo con il vostro ddns e la vostra password di accesso ad Home Assistant)

sotto la voce configure your client inserite la vostra mail e il vostro nome e cognome (questi dati non sono rigorosi e non influiranno con il buon funzionamento del sistema).

Successivamente salvate e recatevi nel menu alla sinistra della pagina alla voce Directory Information e compilate come vedete nella seguente immagine.

Cliccate sulla freccia accanto ad Images, selezionate e caricate due immagini con la risoluzione richiesta (potrete scaricarle tranquillamente da internet).

sotto la voce contact details inserite il vostro indirizzo mail e un nickname (quest'ultimo non obbligatorio)

sotto la voce privacy and consent, esattamente sotto la voce Privacy Policy inserite il seguente indirizzo:

https://home-assistant.io 

ed infine adate a premere il tasto save 

Una volta effettuate queste operazioni recatevi nel vostro file configuration.yaml

e' il momento di inserire il component google.

dove dopo project_id inserirete il project_id ricavato prima nell'esempio era hasstest-1a234

dopo client_id dovrete inserire il client id creato nella pagina action on google

dopo access_token dovrete inserire autorization_url che avete configurato nella pagina Actions on Google

le api_key  vi serviranno per sincronizzare i dispositivi aggiunti tra Home Assistant e Google Assistant, per ottenerla vai QUI . Seleziona il tuo progetto e fai clic su Abilita API. Vai a Credenziali, che puoi trovare nella barra di navigazione a sinistra sotto l'icona della chiave, e seleziona Chiave API da Crea credenziali, copiate la chiave API generata e copiatela nella configurazione appunto dopo api_key

Infine sotto la voce exposed_domains: inserirete le categorie che il component Google Assistant andrà a prelevare dal nostro Home Assistant, oppure potrete inserire inserire i singoli dispositivi ma al posto di exposed_domains:

inserirete entity_config: come nell esempio nel riquadro verde:

 

dove li aliases saranno i nomi alternativi con cui richiamare il dispositivo selezionato, è una funzione opzionale si può inserire i soli dispositivi come nell'esempio dentro il riquadro giallo:

benissimo quando avrete finito di compilare il vostro component google sul file configuration.yaml, salvate, andate sul terminale e riavviate il vostro raspberry con il consueto comando sudo reboot 

Arrivati a questo punto andate sul vostro telefono e aprite l'applicazione Home (se non l'avete scaricatela dal playstore o dall'applestore in caso di dispositivi Apple) e nel menù a tendina selezionate controllo domestico

cliccate sul pulsante + e noterete un servizio nuovo [test] non e' altro che il nostro Home Assistant a questo punto cliccandoci sopra si attiverà il servizio e vi mostrerà tutti i dispositivi che precedentemente avete configurato come visibili nel file configuration.yaml.

ovviamente come tutti i dispositivi sarà possibile cambiare il nome che servirà a richiamare il servizio.

a questo punto potrete accendere o spegnere i vari dispositivi presenti in Home Assistant richiamando Google Assistant e dicendo "accendi xxxxx" "spegni xxxxxx" Dove xxxxxx sarà il nome del dispositivo presente su HA scelto.

nel caso in cui andrete ad aggiungere o ad eliminare dispositivi, sarà possibile sincronizzare Google Assistant con Home Assistant semplicemente lanciando da Home Assistant il servizio google_assistant.request_sync che potrete trovare nei servizi sotto il pannello per gli sviluppatori sull'interfaccia grafica di Home Assistant. 

Come al solito a questo punto vi lascio al video di fine articolo. Buona visione!

integrazione del component google assistant dalla versione 0.80 in poi:

rispetto alla versione per versioni precedenti Google ha semplificato l'integrazione del suo component Google assistant con Home assistant,la procedura differisce solo per alcuni dettagli che comunque saranno necessari per il corretto funzionamento.Ovviamente la parte del DDNS e della firma SSL rimarrà invariata

- per prima cosa tornate alla pagina del progetto cliccando QUI

- aggiungete un nuovo progetto e selezionate sia lingua che paese Italia.

- selezionate la finestra home control e successivamente sull'unico riquadro che si apre chiamato Smart home

 

cliccate su quick setup e selezionate la voce Name your Smart Home action e assegnate un nome alla vostra app

- salvate e cliccate su overview per tornare alla pagina precedente.

- cliccate su Setup account linking e configurate come da foto successive:

alla voce client secret scrivete un codice a caso tanto ad home assistant non servirà

ovviamente dovrete sostituire i due indirizzi https con il vostro ddns 

alla voce scopes inserite la vostra mail e il vostro nome

infine salvate il progetto e cliccate su action sotto la voce Build nel menù a tendina sulla sinistra.

avviate il primo progetto e nello spazio dedicato inserite il seguente url(ovviamente sostituendolo con il vostro ddns)

https://vostroddns.duckdns.org:8123/api/google_assistant 

successivamente salvate.

adesso dovrete recuperare le api_key del progetto per farlo andate QUI

selezionate il vostro progetto(lo stesso dell’app), abilitate le API di Homegraph e andate in credenziali createle

e copiatele vi serviranno da inserire nel file configuration.yaml

aggiungete questa stringa al file configuration.yaml:

google_assistant:
  project_id: idprogettochetrovatenelleimpostazionidelprogetto(es.pass-12345)
  api_key: apikeycreatacomedadescrizione
  exposed_domains:
    - switch
    - light
    - group

salvate e riavviate il raspberry.

tornate sulla console google sotto la voce simulator impostate le informazioni relative alla lingua in italiano e cliccate su test.

ora andate sul telefono aprite l'appilcazione google home sotto controllo domestico premendo il + loggatevi al progetto che avrete creato. dovrebbe essere operativo il servizio google assistant su HA.

NOTA BENE se avrete impostato il port forwarding della 443 esterna sulla 8123 interna come ho suggerito nelle guide precedenti nei vari url della console google evitate di inserire :8123 ovviamente anche nella action della build

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.

Luigi Duchi

Nato a Grosseto il 24 Dicembre 1982 perito elettrotecnico che lavora nel mondo della domotica e installazione di impianti elettrici, impianti di allarmi, videosorveglianza e automazioni in genere. Appassionato da sempre di tecnologia e aperto alla conoscenza di nuove soluzioni.


Vai ai commenti