Mr.Apple

Home Assistant Corner Le Rubriche di Mr Apple

Alexa in Home Assistant gratis senza l’utilizzo di Nabu

Ago 11, 2021 7 min

Alexa in Home Assistant gratis senza l’utilizzo di Nabu

Reading Time: 7 minutes

Alexa in Home Assistant gratis? Certo che si e senza dover pagare nessun abbonamento. La procedura è forse un pò lunga ma ci permetterà di risparmiare a livello economico.

Abbiamo oramai pubblicato svariati articoli su Home Assistant e le sue integrazioni: ultimo, in ordine di tempo, quello per i prodotti Sensibo.

Oggi, invece, vi proponiamo una guida per poter esporre tutti i vostri dispositivi su Alexa, l’assistente vocale di Amazon. Il tutto in maniera totalmente gratuita. Se non avete voglia o tempo di fare le cose manualmente, potete sempre utilizzare il servizio, a pagamento, offerto da Nubi.

Premessa

Prima di continuare a leggere il presente articolo, ci sono alcune premesse da fare: per poter funzionare dobbiamo rispettare le seguenti condizioni:

  • Home Assistant accessible dall’esterno: abbiamo realizzato una guida sul nostro blog ed anche un video;
  • Possedere un account su Amazon Web Services (AWS): la creazione dell’account è gratuita e per le nostre necessità non avremo bisogno di pagare nulla;
  • Essere in possesso di un account su Amazon, lo stesso che utilizzate per Alexa;
  • Utilizzare un dispositivo della famiglia Echo di Amazon Alexa, ovviamente.

Prima di procedere, quindi, vi consigliamo di creare un account su AWS e di configurare il vostro HA per l’accesso esterno, nel caso non fosse stato già fatto.

Configurazione iniziale di Home Assistant

Per avere Alexa in Home Assistant gratis la prima cosa da fare è quella di andare ad inserire le necessarie istruzioni sul file di configurazione.

Per farlo aprite il configuration.yaml ed inserite le seguenti righe:

api:

alexa:
  smart_home:

Attenzione ad inserire una riga tra “api” ed “alexa”, in quanto sono blocchi differenti. A questo punto riavviate il vostro HUB e fate un test di connessione.

Aprite il vostro browser preferito e sulla barra degli indirizzi digitate:

https://VOSTRO_URL_ESTERNO:PORTA/api/alexa/smart_home

La pagina dovrebbe restituirvi l’errore “405: Method Not Allowed“: se cosi non fosse, controllate di aver configurato correttamente l’accesso dall’esterno e le istruzioni all’interno del configuration.yaml.

Per completare la configurazione iniziale, abbiamo bisogno di un token di lunga vita: per farlo, fate click sul vostro utente, scorrete in basso e generate il token.

Attenzione: segnate il token su un file di testo in quanto non verrà più visualizzato da Home Assistant.

Creazione del profilo di sicurezza

Per creare il profilo dovremo accedere alla pagina Developer Console di Amazon: effettuato il login con il vostro account Amazon e successivamente seguite i seguenti passaggi:

  • Fate click su “Developer Console“;
  • Andate su “Login With Amazon“;
  • Selezionate “Crea Nuovo Profilo di Sicurezza“.
Alexa in Home Assistant gratis

Compilate tutti i campi obbligatori a vostro piacimento e salvate. A questo punto, dobbiamo recuperare i dati di accesso: fate click sotto “Gestisci” e selezionate “Impostazioni Web”: i dati di nostro interesse sono Client ID e Client Secret.

Segnate i due valori e lasciate aperta la finestra: ci torneremo più tardi.

Alexa in Home Assistant gratis: Creiamo la Skill

Ora è il momento di creare la skill che andremo ad installare sull’applicazione Alexa. Aprite un nuovo tab del browser e collegatevi nuovamente alla console developer.

Dalla pagina che si presenta cliccate in successione “Alexa”, “Skill Builder”, “Alexa Skills Kit” e, per ultimo, “Sviluppa la tua skill”.

Finalmente, possiamo creare la skill per Alexa, scegliendo “Crea Skill”. Per quel che concerne i campi che ci verranno mostrati basterà scegliere un nome e come modello “Smart Home“. Salvate il tutto, copiate la Skill ID in un file e, nuovamente, lasciate aperta la pagina per futuri utilizzi.

AWS: Creare il ruolo

Lo step successivo dovrà essere effettuato su Amazon Web Services: create un account o accedete se ne siete già in possesso.

Alexa in Home Assistant gratis

Dal menù Servizi cercate “Sicurezza, Identità e Conformità” e fate click su IAM: da questa sezione andate poi in Ruoli, ove ne sono già presenti due di default.

A questo punto dobbiamo creare un nuovo ruolo, questi i passaggi in successione:

  • Fate click su “Crea Ruolo”;
  • Selezionate “Lambda” e fate click su “Successivo: Autorizzazioni”;
  • Nella pagina che viene mostrate cercate il ruolo AWSLambdaBasicExecutionRole e selezionatelo. A questo punto fate click su “Successivo: Tag”;
  • I campi afferenti ai tag la possiamo lasciare vuota. Click su “Successivo: Verifica”;
  • Nell’ultima pagina mette come nome ruolo lambda_basic_execution e fate click su “Crea Ruolo”.

A questo punto il ruolo è stato creato e possiamo passare alla creazione della funzione e del trigger.

AWS: Creazione della funzione e del trigger

Rimanendo su AWS, dal menù Servizi, sezione Calcolo, scegliete “Lambda”: nella pagina che si aprirà selezionate “Funzione” e quindi “Crea Funzione Da Zero”, assegnando un nome a vostro piacimento.

Per quel che concerne la sua configurazione dovremo utilizzare come Runtime Python 3.6 (ATTENZIONE A NON SBAGLIARE LA VERSIONE DEL PYTHON) e nella sezione Autorizzazioni, cliccate su Modifica del Ruolo e selezionate il ruolo creato al punto precedente.

Completati i passaggi create la funzione. Ora non ci resta che andare a creare anche il trigger, che si trova nella pagina principale dove è presente anche la funzione.

Per crearlo, fate click su “Aggiungi Trigger” e dal menù a tendina scegliete “Alexa Smart Home”: a questo punto, recuperate lo Skill ID creato in precedenza, inseritelo nel campo ID Applicazione e fate “Aggiungi”.

Il passaggio che segue risulta essere di estrema importanza: andate nella sezione “Codice” della funzione, scorrete in basso fino a trovare la sezione Runtime e controllate le seguenti voci:

  • Runtime: deve essere Python 3.6;
  • Gestore: deve essere haaska.event_handler, dove haaska è il nome assegnato da voi.

Molto probabilmente il campo “Gestore” non sarà corretto: modificatelo con quello giusto e salvate.

Alexa in Home Assistant gratis

Alexa in Home Assistant gratis: Creare l’applicazione

Siamo finalmente giunti alla creazione della nostra applicazione per poter poi gestire Alexa con HA. Per prima cosa, scaricate il file zip da questo link e salvate in locale.

Per poterlo caricare su AWS, dalla sezione Funzione, Codice fate click su “Carica da” e quindi scegliete zip. Verranno visualizzati dei messaggi, non vi preoccupate. Ora non ci resta che modificare un paio di parametri: fate doppio click su “config,json” e modificate i seguenti valori:

  • URL: inserite il vostro URL creato tramite duckdns, in https. Se necessario indicate la porta;
  • bearer_token: incollate il token di lunga vita creato ad inizio guida.

Le modifiche potranno essere salvate cliccando sulla voce Deploy. Copiate anche il codice ARN della funzione, che ci servirà tra poco.

Alexa in Home Assistant gratis: Completiamo la Skill

Finalmente abbiamo quasi completato la configurazione di Alexa per l’utilizzo tramite Home Assistant: prima di fare un test, dobbiamo completare alcuni step.

Per prima cosa, tornate alla pagina di creazione della skill ed incollate il codice ARN della funzione create sia nel “Default Endpoint” che “Europe, India” e salvate.

Una volta salvato, fate click nella sezione Linking e completate i campi nel modo seguente:

  • AUTH URI: https://www.amazon.com/ap/oa;
  • TOKEN URI: https://api.amazon.com/auth/o2/token;
  • CLIENT_ID: il client ID del profilo di sicurezza creato all’inizio;
  • CLIENT_SECRET: il client secret del profilo di sicurezza;
  • YOUR AUTHENTICATION SCHEME: lasciate http basic;
  • SCOPE: digitate profile.

Salvate il tutto, ma lasciatelo aperto perché ci serviranno i 3 link in basso appena generati da AWS. Questi tre link dovranno essere copiato nel profilo di sicurezza.

Torniamo, quindi, alla pagina del profilo di sicurezza e andiamo ad inserire i 3 link nel campo “Alexa Redirects URLs, aggiungendo man mano i link. Terminato il tutto, salvate e possiamo testare il tutto.

Testiamo il tutto!

Ora che abbiamo finalmente completato la configurazione, possiamo procedere con il test della nostra applicazione. Per farlo tornate nella funzione creata su AWS, selezionate Test e poi “Crea Nuovo Test”: lasciate Hello-World come modello e inserite un nome a piacere.

Il codice presente può essere cancellate e sostituitelo con il seguente:

{
  "directive": {
    "header": {
      "namespace": "Alexa.Discovery",
      "name": "Discover",
      "payloadVersion": "3",
      "messageId": "1bd5d003-31b9-476f-ad03-71d471922820"
    },
    "payload": {
      "scope": {
        "type": "BearerToken",
        "token": "access-token-from-skill"
      }
    }
  }
}

Salvate tramite il pulsante Crea e fate “Esegui il Test”. Se tutto sarà andato bene il test avrà avuto esito positivo e nel dettaglio saranno visibili tutti i vostri dispositivi presenti su Home Assistant.

Configurare Alexa su HA

Ora non ci resta che andare ad indicare ad Home Assistant quali dispositivi esporre verso il mondo Alexa. Per farlo vi basterà inserire le relative istruzioni sul configuration.yaml, nella sezione smart_home di Alexa.

Un esempio di configurazione è il seguente:

# ALEXA & API #
api:

alexa:
  smart_home:
    filter:
      include_entities:
        - light.ufficio
        - light.sottoscala
        - light.bagno
    entity_config:
      light.ufficio:
        name: "Ufficio"
        description: "Luce Ufficio"
        display_categories: LIGHT
      light.sottoscala:
        name: "SottoScala"
        description: "Luce SottoScala"
        display_categories: LIGHT
      light.bagno:
        name: "Bagno"
        description: "Luce Bagno"
        display_categories: LIGHT

A questa pagina potete trovare le varie categorie previste per Alexa. Ricordate di riavviare HA per far leggere le modifiche.

Ora non vi resta che aggiungere la skill che avete appena creato, direttamente dall’applicazione ufficiale. Vi basterà andare nella sezione Skill e verrà vista automaticamente.

Alexa in Home Assistant gratis: le nostre conclusioni

I passaggi sono tanti, è vero. Ma se si vuole evitare di pagare un abbonamento mensile questo è l’unico modo per poter avere Alexa gratis su Home Assistant.

Stiamo utilizzando questo sistema oramai da molti mesi e non abbiamo mai avuto nessun problema: una volta configurato funziona alla perfezione.

Ricordate solo che ad ogni nuovo dispositivi inserito su HA e che si vuole esportare su Alexa va modificato il configuration.yaml, riavviato HA ed effettuata una nuova scansione su Alexa.

Come sempre, abbiamo realizzato un video dei vari passaggi: vi consigliamo di vederlo nel mentre che seguite la presente guida.

Vi ricordo anche di seguirci sul nostro blog e sui nostri canali social per non perdere nessuna recensione e nessuna news.

0 0 votes
Article Rating

Sistemista Unix. Appassionato di tecnologia. Amante della domotica. Datemi Siri e vi controllerò la casa!
Subscribe
Notificami
guest

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

3 Commenti
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
giuseppe
giuseppe
Ottobre 7, 2021 18:50

Ciao, grazie per l ottima guida.
Ma sono io che sono un pò asino, ho provato tre volte ma mi da sempre lo stesso errore:
{
 “errorMessage”: “Unable to import module ‘Home'”
}

Potresti farmi una mano a capire? grazie mille

giuseppe
giuseppe
Ottobre 8, 2021 15:28

Ciao, ho eseguito alla lettera la tua guida che ritengo ottima.
Ma per 3 volte ricevo sempre lo stesso errore dal test:
{
 “errorMessage”: “Unable to import module ‘Home'”
}

Potresti aiutarmi a capite? grazie mille

mtmattia
mtmattia
Agosto 25, 2022 20:16

bella guida. nelle skill di alexa però mi riporta “si è verificato un errore” nel momento in cui cerca di loggare con un accout. come posso risolvere?

Last edited 1 anno fa by mtmattia
3
0
Would love your thoughts, please comment.x