Integrare Amazon Alexa come “Media Player” su Home Assistant

7 minuti di lettura
Scopi della guida:
  • Integrare Amazon Echo/Alexa quale riproduttore multimediale presso Home Assistant
  • Livello di difficoltà: medio/bassa
  • Categoria d’integrazione: Cloud Polling
Concetti affrontati:
  • Configurazione software
Componenti software utilizzate:
Prerequisiti:
Dispositivi fisici utilizzati:
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: 3.4

Amazon Echo Dot (4ª generazione)

Abstract

Amazon Echo è uno degli smart speaker di più ampio e riconosciuto successo. Come abbiamo spiegato in altre schede tale componente per funzionare utilizza il software Alexa, il quale è disponibile, anche per smart speaker prodotti da terze parti, oltre che come applicazione stand-alone per smartphone/tablet Android e iOS.

La presente guida, lo diciamo subito, non è dedicata all’integrazione di dispositivi Alexa con Home Assistant come strumento di controllo della domotica. Questo tema è già stato affrontato in altre due guide specifiche:

questa guida, invece, illustra le modalità che permettono di integrare Alexa con Home Assistant come se fosse (qual è, in effetti) un riproduttore musicale. Questo consente di:

  • visualizzarne da frontend lo stato di riproduzione musicale;
  • impostare la riproduzione musicale, da frontend come via automazione;
  • impostarne il volume;
  • intercettarne lo stato operativo;
  • utilizzare lo smart speaker come sistema di notifica vocale (a questo abbiamo dedicato una guida ad hoc).

L’integrazione è piuttosto semplice e prevede l’utilizzo di un componente non ufficiale (custom component) di Home Assistant, chiamato “Alexa Media Player“.

Si parte

Installazione

Come qualunque custom component Home Assistant, a partire dalla versione 0.88 di quest’ultimo è necessario creare una cartella contenente i file del componente, la quale sarà collocata, a sua volta, dentro la cartella “custom_components” all’interno della cartella principale di Home Assistant (ovvero quella nella quale giacciono i file di configurazione).

Scaricare dunque il pacchetto di installazione e provvedere a decomprimerlo: esso conterrà una cartella chiamata “alexa_media” la quale rappresenta la cartella dedicata al componente; provvedere dunque a copiarla dentro la cartella “custom_components” (laddove quest’ultima non esista, provvedere a crearla).

IN ALTERNATIVA – preferibile – VIA HACS

Dalla versione 1.3.0 il componente prevede un’alternativa molto più facile per installarlo: quella di utilizzare HACS.
Per farlo è necessario avere installato una tantum il componete HACS e poi:

  • entrare in HACS;
  • cliccare “Integrazioni“;
  • cliccare sui tre puntini in alto a destra;
  • selezionar “Custom repositories“;
  • *alla voce “ADD CUSTOM REPOSITORY URL” aggiungere – selezionando la categoria “integration” – il path:
https://github.com/custom-components/alexa_media_player
  • infine, tornando alla voce “STORE“, cercare e trovare “Alexa Media Player”, cliccarvi sopra e poi, nella pagina apertasi, cliccare su “INSTALL“. Al termine, riavviare Home Assistant.

*questo specifico punto potrebbe non esser più necessario.

Codice applicativo 2FA

Prima di provvedere all’integrazione è necessario definire un codice applicativo 2FA.

Il “two-factor-authentication – 2FA” (in italiano “Verifica in due passaggi – 2SV“) è una tecnica sempre più in voga che prevede di autenticarsi a un proprio account Internet non solo tramite username/password, ma anche con un secondo passaggio che, il più delle volte, prevede l’invio di un OTP (one-time-password) via SMS (o altro).

Per utilizzare l’integrazione oggetto della presente guida è necessario che tale doppia autenticazione presso l’account Amazon sia attiva sul proprio account.

Collegarsi quindi a questo indirizzo e provvedere a tale abilitazione; completare la procedura sino al raggiungimento di questa schermata di riepilogo:

Amazon - Impostazioni della verifica in due passaggi 2SV (2FA)

Ciò fatto, teoricamente saremmo già a posto, perché in fase di integrazione sarebbe sufficiente indicare all’interfaccia di farsi inviare l’SMS con l’OTP per l’attivazione delle funzionalità richiesta. Errore: così facendo, di tanto in tanto l’integrazione si disconnetterà dall’account, vincolando l’utente a ripeterla.

Per evitare ciò, utilizzeremo un codice 2FA “applicativo”, ovvero da dare in pasto all’integrazione così da evitare questo problema.

Clicchiamo dunque sulla voce “Aggiungi nuovo telefono o un’app di autenticazione“, poi sul link “Non riesci ad acquisire il codice a barre?”

Amazon - Impostazioni della verifica in due passaggi 2SV (2FA) - Aggiungi metodo

Si aprirà un box contenente il nostro codice applicativo 2FA:

Amazon - Impostazioni della verifica in due passaggi 2SV (2FA) - Aggiungi metodo - codice 2FA

A questo punto segnarsi da parte tale codice (eg. 35T5 LQSY I5IO 3EFQ LGAJ I6YB JWBY JJPR PYT7 XPPW IDAK SQBJ CVXA), servirà a breve. Chiudere la finestra.

Integrazione

Una volta installato il componente “Alexa Media Player” e provveduto al riavvio di Home Assistant, siamo dunque pronti a integrare i dispositivi Alexa (associati al nostro account Amazon) alla nostra domotica.

I dati necessari per provvedere a tale integrazione sono l’username e la password del nostro account presso il webstore nazionale Amazon (.it per l’Italia, .fr per la Francia e così via).

Recarsi alla voce di menu Home Assistant “Impostazioni” > “Integrazioni” e selezionare la voce “Alexa Media Player”

Home Assistant - Integrazione Alexa Media Player

Nella schermata successiva inserire nei campi richiesti l’username, la password e lo store nazionale di riferimento.

ATTENZIONE: questo è un punto cruciale. Va indicato, per l’Italia, “amazon.it“. Sbagliando questo passaggio ci saranno dei malfunzionamenti a seguire.

Home Assistant - Integrazione Alexa Media Player - Step 1

Spiegazione dei campi:

Indirizzo email Il proprio indirizzo email col quale ci si autentica presso Amazon
Password La relativa password d’accesso
Regione del dominio Amazon Impostare amazon.it
URL to access Home Assistant Indirizzo del proprio Home Assistant
2FA Code Il campo precedentemente utilizzato per l’autorizzazione in due fasi. Lasciare vuoto.
Built-in 2FA App Key Inserire il codice precedentemente ottenuto dall’attivazione della verifica in due fasi.
Dispositivi da includere/eslcudere Eventuali dispositivi presenti sul proprio account Amazon, da includere o escludere esplicitamente, divisi da virgola (eg. “Questo dispositivo”,”App Alexa di Marco” eccetera) 

Cliccare su “INVIA” per accedere alla conferma dell’auto-generazione dei codici 2FA da parte dell’app:

Home Assistant - Integrazione Alexa Media Player - Step 1.1

Cliccare su “INVIA” per accedere al captcha finale:

Home Assistant - Integrazione Alexa Media Player - Step 2

Cliccare infine su “INVIA” per proseguire l’integrazione.
A questo punto l’integrazione chiederà di verificare l’autorizzazione lato Amazon che verrà inviata, tipicamente via SMS al cellulare associato all’account (o altri canali):

Home Assistant - Integrazione Alexa Media Player - Step 3a

Non cliccare subito “INVIA“. Prima sarà necessario recarsi presso il sito di Amazon (link inviato via SMS o altri canali) e autorizzare l’accesso di Home Assistant:

Home Assistant - Integrazione Alexa Media Player - Step 3b

Autorizzato l’accesso, sarà possibile cliccare su “INVIA” sulla finestra rimata aperta su Home Assistant.

A questo punto, se tutto sarà andato bene Home Assistant elencherà i device Alexa collegati al proprio account e quindi, da questo momento, integrati all’HUB:

Home Assistant - Integrazione Alexa Media Player - Step 4

Dettagli integrazione

In qualunque momento è possibile consultare il proprio elenco di dispositivi integrati presso la voce di menu “Impostazioni” > “Integrazioni” > “Alexa Media Player” (voce “Configurato“):

Home Assistant - Alexa Media Player Integration

Uso

Al termine del riavvio, in luogo dell’entità “Configurator” ne sarà apparsa una (o più, in base a quanti dispositivi sono stati inclusi in configurazione) di tipo “Media Player“:

Home Assistant - Alexa Media Player

ll nome di questa/e entità sarà quello impostato sul proprio account Amazon. In questo caso d’esemoio, “media_player.alexa“.

N.b. Affinché l’integrazione funzioni è necessario che lo stato dell’entità sia diverso da “Unknown“. In questo caso “Standby” indica che lo Smart Speaker è stato integrato correttamente ed è in condizione di attesa. In caso di stato “Unknown” rivedere la configurazione e lo stato della rete, perché evidentemente qualcosa sta funzionando in modo non corretto.

Riproduzione musicale

A questo punto l’entità può essere controllata come un comune dispositivo Media Player presso l’interfaccia utente Lovelace oppure tramite servizio media_player.play_media (via automazioni, script ecc.).

Uno script tipo è il seguente:

script:
  remco_awake:
    alias: Ascolto musica
    sequence:
    - data:
        entity_id: media_player.alexa
        media_content_id: "Radiofreccia"
        media_content_type: "TUNEIN"
      service: media_player.play_media

evocando tale script, il Media Player indicato (“media_player.alexa“) comincerà a riprodurre la radiostazione “Radiofreccia” tramite il servizio Tune IN.

Altri esempi di servizi sono:

APPLE MUSIC
{
  "entity_id": "media_player.alexa",
  "media_content_id": "7 rings",
  "media_content_type": "APPLE_MUSIC"
}
>AMAZON MUSIC
{
  "entity_id": "media_player.alexa",
  "media_content_id": "Concrete and gold",
  "media_content_type": "AMAZON_MUSIC"
}
{
  "entity_id": "media_player.alexa",
  "media_content_id": "La mia playlist",
  "media_content_type": "AMAZON_MUSIC"
}
DEEZER
{
  "entity_id": "media_player.alexa",
  "media_content_id": "Falco",
  "media_content_type": "DEEZER"
}
TUNEIN
{
  "entity_id": "media_player.alexa",
  "media_content_id": "BBC one",
  "media_content_type": "TUNEIN"
}

Gruppi

Tramite l’integrazione di più Smart Speaker è possibile automatizzare la riproduzione in coro (sincronizzata) dei contenuti musicali:

{
  "entity_id": "media_player.alexa",
  "media_content_id": "boyz ii men in tutti i dispositivi",
  "media_content_type": "AMAZON_MUSIC"
}

Il trucco è indicare nel media_content_id il suffisso “in tutti i dispositivi“.

Sequenze

L’integrazione supporta anche il controllo delle sequenze tipiche di Alexa, nello specifico:

  • Alexa.Weather.Play (informazioni meteo)
  • Alexa.Traffic.Play (informazioni traffico)
  • Alexa.FlashBriefing.Play (sommari brevi)
  • Alexa.GoodMorning.Play (buongiorno)
  • Alexa.GoodNight.Play (buonanotte)
  • Alexa.SingASong.Play (suona una cazone)
  • Alexa.TellStory.Play (racconta una storiella)
  • Alexa.FunFact.Play (racconta un fatto buffo)
  • Alexa.Joke.Play (racconta un indovinello)
  • Alexa.Music.PlaySearchPhrase
  • Alexa.Calendar.PlayTomorrow
  • Alexa.Calendar.PlayToday
  • Alexa.Calendar.PlayNext
  • Alexa.CleanUp.Play
  • Alexa.ImHome.Play (“sono tornato”)

Il servizio utilizzato è sempre media_player.play_media; a cambiare è il “media_content_type“, per esempio:

{
  "entity_id": "media_player.alexa",
  "media_content_id": Alexa.FlashBriefing.Play
  "media_content_type": sequence
}

In questo esempio si chiede a Alexa di riprodurre i sommari rapidi (flash briefing).

Volume

È infine anche possibile regolare il volume dei vari Smart Speaker integrati.

Vediamo l’esempio di uno script che regoli un volume di default al 50%:

alexa_imposta_volume:
  sequence:
    - service: media_player.volume_set
      data: 
        entity_id: media_player.alexa
        volume_level: 0.5

Automazioni

A questo punto non resta che cablare queste possibili chiamate presso le nostre automazioni.
Un esempio banale può essere quello di configurare un’automazione la quale, all’apertura delle porta d’ingresso – interpretata come rientro a casa – riproduca un sommario rapido (magari predefinito in domotica):

automation:
- alias: "Bentornato"
  trigger:
  - platform: state
    entity_id: sensor.sensore_apertura_porta
    to: 'on'
  condition: []
  action:
    service: media_player.play_media
    - data:
        entity_id: media_player.alexa
        media_content_id: Alexa.FlashBriefing.Play
        media_content_type: sequence
      service: media_player.play_media

A questo punto è possibile sfruttare le automazioni sia per controllare Alexa come sopra spiegato, sia per scatenare degli eventi a fronte della riproduzione di qualche contenuto innescata magari tramite comando vocale.

Ad esempio potrebbe essere carino impostare uno scema colore sensibile alla musica di un pannello luminoso Nanoleaf a fronte dell’avvio della riproduzione di un brano:

automation:
  - alias: "Riproduzione musicale"
    trigger:
      platform: state
      entity_id: media_player.alexa
      to: 'playing'
    condition:
      condition: state
      entity_id: light.nanoleaf
      state: 'off'
    action:
      service: light.turn_on
      entity_id: light.nanoleaf
      data_template:
        effect: 'Music schema'

Il limite, come sempre, è la fantasia.


Home Assistant Official Logo ATTENZIONE: ricorda che sul nostro community FORUM c'è una sezione ad hoc dedica a Home Assistant, per qualsiasi dubbio, domanda, informazione nel merito specifico di queste componenti.

   
Telegram News Channel

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