Integrare Amazon Alexa come “Media Player” su Home Assistant

6 minuti di lettura
Scopi della guida
  • Integrare Amazon Echo/Alexa quale riproduttore multimediale presso Home Assistant
  • Livello di difficoltà: medio/bassa
Concetti affrontati:
  • Configurazione software
Componenti software utilizzate:
Prerequisiti
Dispositivi fisici utilizzati:
  • Il dispositivo sul quale risiede Home Assistant
  • Amazon Echo (qualsiasi modello o qualsiasi modello di smart speaker che monti Amazon Alexa come software integrato)
GUIDA maggiormente indicatA per:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi modifica all'impianto elettrico dev'essere effettuata da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (la presente guida ha puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere la garanzia.
Revisione guida: 1.2

 

Amazon Echo Dot - colori

Abstract

Amazon Echo è uno dei device di più ampio e riconosciuto successo. Come abbiamo spiegato tale smart speaker 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. 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, 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 “SETTINGS”;
  • alla voce “ADD CUSTOM REPOSITORY” aggiungere – selezionando la tipologia “integration” – il path:
https://github.com/keatontaylor/alexa_media_player

e infine, tornando alla voce “STORE“, cercare e trovare “Alexa Media Player”, cliccarvi sopra e poi, nella pagina apertasi, cliccare su “INSTALL“.

Configurazione

A questo punto è necessario aggiungere alla configurazione di Home Assistant una nuova voce:

alexa_media:
  accounts:
    - email: MIA_EMAIL
      password: MIA_PASSWORD
      url: amazon.it

Dove “MIA_EMAIL” e “MIA_PASSWORD” rappresentano le proprie credenziali Amazon, le stesse usate presso l’app Alexa e quindi collegate al dispositivo/i che si vogliono integrare.

L’URL da indicare è relativo alla propria nazione di appartenenza, nel caso dell’Italia “amazon.it“, degli Stati Uniti “amazon.com“, della Francia “amazon.fr” e così via.

È anche possibile utilizzare più account. La configurazione tipo è la seguente:

alexa_media:
  accounts:
    - email: MIA_EMAIL_primo_account
      password: MIA_PASSWORD_primo_account
      url: amazon.it
    - email: MIA_EMAIL_secondo_account
      password: MIA_PASSWORD_secondo_account
      url: amazon.it

Se si hanno più dispositivi Alexa (l’app mobile stessa viene considerata “un dispositivo Alexa”) e se ne vogliono integrare solo alcuni, è possibile sfruttare questo URL per elencarne i nomi (voce “accountName“) per poi includerli/escluderli in configurazione con una sintassi di questo tipo:

alexa_media:
  accounts:
    - email: MIA_EMAIL
      password: MIA_PASSWORD
      url: amazon.it
      exclude_devices:
        - "Questo dispositivo"
        - Salotto
      include_devices:
        - Cucina
        - Sala

A questo punto riavviare Home Assistant.

Configurazione accessoria

Completato il riavvio, nella lista delle entità (icona <> del menu principale):Home Assistant States - Lista entità

identificare la nuova entità di tipo “Configurator” che sarà apparsa nella lista:

Alexa Media Player - configurator

la quale si chiamerà all’incirca “configurator.alexa_media_player_captcha_MIA_EMAIL“, dove “MIA_EMAIL” sarà appunto l’indirizzo email indicato in configurazione.

Cliccare sull’icona in alto a destra, nel riquadro, rappresentante la freccia inclinata per aprire l’entità.

La dialog box che apparirà chiederà di introdurre il codice captcha:

Alexa Media Player - configurator - captcha

N.b. A volte capita che il codice captcha non appaia:

Home Assistant - Alexa Media Player catpcha

In tal caso, cliccare su “Confirm” in modo da rigenerare l’immagine del catpcha.

A questo punto l’entità “Configurator” chiederà una verifica di identità, domandando all’utente se inviare un SMS di verifica al numero di cellulare collegato all’account Amazon oppure una mail:

Alexa Media Player - configurator - verification method

scrivere “sms” o “email” in base alla propria scelta e cliccare su “CONFIRM“.
Questo scatenerà l’invio di un codice di verifica via sms o email in base alla propria scelta.

Cliccare nuovamente sull’entità “Configurator” per inserire il codice appena ricevuto:

Alexa Media Player - configurator - verification method - code

Infine, inserire il codice e cliccare su “CONFIRM“.
Terminata la procedura, riavviare Home Assistant.

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 LogoATTENZIONE: 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.


Please comment below

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