Home Assistant è un software open source gratuito che consente di controllare e automatizzare la propria domotica attraverso un’unica interfaccia. In poche parole, è un hub personale per domotica in grado di integrare dispositivi diversi tra loro e – soprattutto – realizzati da produttori differenti. Tra le tante integrazioni disponibili, c’è anche quella con l’assistente vocale di Amazon.
In questo articolo spiegheremo come usare Home Assistant con Alexa, illustrando la guida passo-passo per effettuare un’integrazione gratuita (ringraziamo i colleghi di inDomus per la procedura e i codici riportati di seguito). Ti diciamo subito che si tratta della via più complessa per integrare il tuo HUB personale con Amazon Alexa, ma in questo modo eviterai di pagare 5 euro al mese per l’abbonamento a Nabu Casa, il servizio cloud di Home Assistant che rende l’integrazione con l’assistente vocale Alexa molto più semplice ma a pagamento.
Prerequisiti per usare Home Assistant con Alexa
Prima di iniziare, verifica di essere in possesso dei prerequisiti per completare con successo l’integrazione di Home Assistant con Alexa:
- versione aggiornata del software Home Assistant
- configurazione dell’HUB personale per il controllo remoto tramite il protocollo HTTPS
- account Amazon
- smart speaker con Alexa integrato (ad esempio Amazon Echo)
- app Amazon Alexa
Attivazione delle componenti Api e Alexa
Il primo passo per integrare Home Assistant con Alexa prevede l’attivazione delle componenti Api e Alexa tramite una semplice modifica al file configuration.yaml dell’HUB:
api:
alexa:
smart_home
Una volta salvate le modifiche al file configuration.yaml, occorre riavviare Home Assistant.
Creazione di un token a lunga vita
Prosegui con la creazione di un token di accesso di lunga durata, noto anche come token a lunga vita, essendo una chiave di accesso valida fino a 10 anni. Se ti stai chiedendo a cosa serve, ti basta sapere che grazie a questa chiave gli script possono interagire con l’istanza di Home Assistant.
Per creare un token di accesso di lunga durata innanzitutto accedi all’interfaccia di Home Assistant, quindi seleziona il tondo colorato contenente la prima lettera del tuo username e attendi l’apertura di una nuova pagina; ora individua l’intestazione “Token di accesso a lunga vita”, poi clicca su “Crea Token” e assegna il nome che desideri alla chiave. Fatto questo, conserva da una parte la stringa generata dall’hub personale.
Iscrizione ad Amazon Developer Console
Lo step successivo consiste nella creazione di un account ad Amazon Developer Console, il portale destinato ai servizi e alle tecnologie Amazon per gli sviluppatori. Per farlo vai alla pagina developer.amazon.com, esegui l’accesso con le credenziali del tuo account Amazon, quindi compila il form di registrazione e clicca sul pulsante “Submit” per completare la procedura.
Nella nuova schermata visualizzata clicca su “Setting”, seleziona “Security Profiles” e poi clicca sul tasto “Crea un nuovo profilo di sicurezza”. A questo punto riempi a tuo piacimento i campi “Nome del profilo di sicurezza” e “Descrizione del profilo di sicurezza”, quindi pigia sul bottone “Salva” per memorizzare le informazioni appena trascritte.
Ora clicca sulla sezione “Impostazioni web” per avere accesso alla pagina di “Gestione del profilo di sicurezza” che riporta tutte le coordinate che ti serviranno in un secondo momento. Lascia quindi la pagina aperta e passa allo step seguente.
Creazione di una skill tramite Alexa Developer Console
È arrivato il momento di creare una skill ad hoc per il nostro ambiente attraverso Alexa Developer Console, lo strumento dedicato agli sviluppatori dell’assistente vocale di Amazon. Per prima cosa collegati all’indirizzo developer.amazon.com/alexa/console/ask, quindi clicca sul pulsante “Crea skill”.
Digita ora un nome a piacere per la skill nel riquadro sotto “Skill name”, dopodiché seleziona il riquadro “Smart Home” e clicca sul pulsante “Create skill” in alto a destra per proseguire. Nella nuova pagina che si apre lascia il segno di spunta accanto a “v3 (preferred)” e memorizza la stringa posizionata sotto “Your Skill ID” aiutandoti con il link “Copy to clipboard”.
Definizione risorsa Lambda tramite Amazon Web Services
Il passaggio successivo prevede la definizione di una risorsa Lambda su Amazon Web Services, la piattaforma on demand di proprietà di Amazon che eroga servizi di cloud computing. Vai all’indirizzo console.aws.amazon.com/console/home e accedi in qualità di “Root User” come da impostazione predefinita.
Se prima d’ora non hai mai utilizzato AWS, clicca sul pulsante “Create a new AWS account” per registrare un nuovo account: tra le altre cose, avrai bisogno di una carta di credito o di debito per le informazioni di pagamento, più un numero di telefono a cui ricevere un messaggio di testo per confermare l’identità.
Nota: l’utilizzo di AWS per l’integrazione di Home Assistant con Alexa rientra nei limiti del piano gratuito.
Una volta effettuato l’accesso, dalla sezione “Servizi AWS” seleziona “Tutti i servizi”, quindi individua “Sicurezza, identità, conformità” e clicca su “IAM”. Nella nuova pagina che si apre pigia su “Ruoli” dal menu laterale, dopodiché fai clic sul pulsante “Crea ruolo” per poi selezionare il riquadro “Servizio AWS” e il link “Lambda”.
Restando nella stessa pagina vai fino in fondo e clicca sul tasto “Successivo: Autorizzazioni” per andare avanti. Adesso individua sotto “Nome Policy” la scritta “AWSLambdaBasicExecutionRole” (aiutati con il filtro della ricerca), e una volta trovato aggiungi accanto un segno di spunta, quindi clicca sul pulsante “Successivo: Tag” per proseguire (trattandosi di un passaggio opzionale, puoi andare direttamente al quarto e ultimo step “Verifica”).
Accanto a “Nome ruolo” digita “lambda_basic_execution”, in ultimo clicca sul bottone “Crea ruolo” per confermare il tutto.
Ora vai su “Servizi” in alto a sinistra, seleziona “Calcolo” e successivamente “Lambda” per aprire la pagina “Funzioni – Lambda”. Una volta qui pigia su “Ohio” in alto a destra (accanto al tuo username) e seleziona “Europa – Irlanda”, dopodiché clicca sul tasto “Crea funzione” e prosegui in questo modo:
- Seleziona il riquadro “Crea da zero”.
- In “Nome funzione” digita lo stesso nome inserito nei precedenti passaggi.
- In “Runtime” seleziona “Python 3.8”.
- Come “Architettura” lascia il segno di spunta accanto a x86_64.
- Alla voce “Ruolo di esecuzione” metti un segno di spunta accanto a “Utilizza un ruolo esistente”
- Nel campo vuoto “Ruolo esistente” digita “lambda_basic_execution”.
- Completa la procedura cliccando sul pulsante arancione “Crea funzione”.
Al termine, fai clic sul riquadro “Copia ARN” così da salvare la stringa per dopo. Proseguiamo.
Sotto l’intestazione “Panoramica della funzione” clicca sul bottone “Aggiungi trigger”, quindi clicca sul menu a tendina “Seleziona un trigger” e scegli “Alexa Smart Home”.
Adesso accanto a “ID Applicazione” inserisci la Skill ID ottenuta in precedenza in Alexa Developer Console e clicca sul pulsante “Aggiungi”.
Nella nuova schermata spostati sul tab “Codice”, quindi clicca sul pulsante “Carica da” e scegli la voce “File.zip”. A questo punto seleziona il tasto “Carica”, allega il file haaska.zip scaricabile da questo link e clicca di nuovo sul bottone “Salva”.
Dopodiché sotto “Origine del codice” seleziona il file “config.json” e modificalo in base alle istruzioni qui di seguito:
- Accanto a “url” sostituisci il link con l’indirizzo dove Home Assistant espone le proprie API (vedi capitolo “Attivazione delle componenti Api e Alexa”), assicurandoti che sia riportato https:// e non http://
- Nel campo “bearen_token” inserisci la stringa ottenuta dopo la creazione del token a lunga vita.
- Clicca sulla funzione “Deploy” per salvare le ultime modifiche apportate.
Completamento skill
Ci stiamo avvicinando al termine della guida. Uno degli ultimi passaggi prevede il completamento della skill. Per farlo, torna alla schermata di riepilogo della skill e nel campo “Default endpoint” incolla la stringa copiata in precedenza nel campo “ARN”. Aggiungi ora un segno di spunta accanto a “Europe, India”, incolla di nuovo il valore “ARN” utilizzato nel passaggio precedente e clicca sul pulsante “Save” per salvare le modifiche.
Portato a termine anche questo passaggio, dalla colonna di sinistra seleziona la voce “Account Linking” e nella nuova pagina che si apre inserisci i seguenti valori:
- Your Authorization URI: “https://www.amazon.com/ap/oa”.
- Access Token URI: “https://api.amazon.com/auth/o2/token”.
- Your Client ID: la stringa del Client ID generata in precedenza nel proprio profilo di sicurezza.
- Your Client Secret: la stringa del Client Secret ottenuta in precedenza nel proprio profilo di sicurezza.
- Your Client Authentication Scheme: HTTP Basic (Recommended).
- Fai clic sul pulsante “+ Add Scope” e inserisci “profile”.
Clicca sul bottone “Save” per apportare le ultime modifiche. In seguito, non appena compariranno i “Redirect URLs”, pigia su “Modifica” e sotto “URL di ritorno consentiti” inserisci i tre “Redirect URLs”.
Fai clic sul tasto “Save” per salvare le modifiche appena apportate.
Configurazione ed esecuzione del test
Torna ora alla pagina principale della funzione Lambda e seleziona il tab “Esegui il test”. Nel campo “Nome” inserisci un nome a piacimento (ad esempio “Test”), dopodiché sostituisci le righe di codice selezionate con quelle che vedi qui sotto:
{
"directive": {
"header": {
"namespace": "Alexa.Discovery",
"name": "Discover",
"payloadVersion": "3",
"messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
},
"payload": {
"scope": {
"type": "BearerToken",
"token": "access-token-from-skill"
}
}
}
}
Clicca poi su “Salva le modifiche” seleziona “Esegui il test”. Se hai seguito fin qui tutti i passaggi descritti in precedenza dovresti aver ottenuto un responso positivo.
Definizione dei domini disponibili per Amazon Echo/Alexa
Adesso che la procedura di integrazione è quasi giunta al termine, non ti resta che definire i domini da rendere disponibili per Amazon Echo/Alexa. Per farlo, aggiungi alla configurazione del software Home Assistant il seguente codice:
alexa:
smart_home:
filter:
include_entities:
- light.cucina
- light.camera
include_domains:
- switch
exclude_entities:
- switch.terrazzo
exclude_domains:
- lock
entity_config:
light.cucina:
name: "Nome personalizzato per Alexa"
description: "La luce della cucina"
switch.scale:
display_categories: LIGHT
Aggiunta della skill al profilo Alexa
Non ti resta che aggiungere la skill al profilo Alexa. Apri l’app dell’assistente vocale di Amazon, sotto “Skill” seleziona “Le tue skill”, quindi seleziona la skill appena creata e fai tap su “Abilita”. Lo step successivo prevede l’associazione al tuo account Amazon.
Fatto anche questo, per portare a compimento l’integrazione e iniziare a usare Home Assistant con Alexa esegui la ricerca dei dispositivi. È tutto: se qualcosa dovesse andare storto, ti suggeriamo di ripetere i passaggi della guida senza saltare nemmeno un punto.