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

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

`

Scopi della guida:
  • Utilizzare Amazon Alexa come sistema di notifica verbale domotica su Home Assistant
  • Livello di difficoltà: bassa
  • Categoria d’integrazione: Cloud Polling
Concetti affrontati:
  • Configurazione software
Componenti software utilizzate:
Prerequisiti:
Dispositivi fisici utilizzati:
GUIDA INDICATA A UTENTI CON ISTALLAZIONE:
Ambienti Home Assistant HassOS-Supervised-Core
NOTE E DISCLAIMER
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata e realizzata SOLO da personale qualificato;
  • qualsiasi modifica non prevista attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno infatti puro scopo didattico) e fa decadere garanzia, omologazioni e certificazioni di qualità; dei dispositivi interessati;
  • tutte le tecniche descritte si intendono applicate a software e firmware aggiornati alle ultime versioni disponibili;
  • gli articoli di inDomus sono totalmente indipendenti e non sponsorizzati. Se mai questo cambiasse, verrà segnalato chiaramente sulle pagine oggetto di sponsorizzazione;
  • questa pagina è materialmente scritta e manutenuta da più individui: non ci si aspetti né si pretenda un supporto personale. In caso di difficoltà, chiedere supporto alla community sul nostro forum o sulla nostra chat;
  • se hai bisogno di orientarti, c'è la mappa.
 
Revisione guida: 1.7

Amazon Alexa parla

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.

In primis, Alexa è in grado di eseguire ordini presso la domotica personale centralizzata e basata su Home Assistant grazie alla sua possibilità di essere integrato come assistente:

In secondo luogo, Alexa può anche essere integrata a Home Assistant come riproduttore musicale (Media Player), grazie all’integrazione fornita da un componente concepito ad hoc, in modo da poter innescare delle automazioni legate all’ascolto di contenuti.

Infine, la terza possibilità – la quale deriva dell’integrazione come Media Player di cui sopra – è quella di utilizzare Amazon Alexa quale target di notifica per l’azione “Notification,” il quale ci consentirà di fargli “dire la sua” a fronte di specifiche situazioni.
Farla parlare, insomma:

Ehi, ho rilevato un allagamento in bagno!
La lavatrice ha completato il ciclo di lavaggio.
Sistema d’allarme attivato in modalità notturna/presenza.”
“Hey! State superando i 3kw di assorbimento!
Bentornati a casa!
Silvia è uscita da scuola!

E via così. Il limite, come sempre, è la fantasia.

N.b. In fondo alla presente guida spieghiamo anche come realizzare delle automazioni volte al “botta e risposta”, ovvero alla possibilità di Alexa di “far domande” e di Home Assistant di attuare le diverse risposte.

Prerequisiti

Integrare Alexa quale elemento di notifica presso Home Assistant è piuttosto semplice, ma prima è necessario provvedere all’integrazione della stessa quale riproduttore multimediale (Media Player). Non è obbligatorio, invece, aver già provveduto alla sua integrazione su Home Assistant quale assistente personale.

Per provvedere all’integrazione necessaria come Media Player, la guida è questa.

Configurazione

A valle dell’avvenuta integrazione come Media Player, di fatto ci si è dotati anche di un elemento di notifica.
Dopo l’avvenuto riavvio, nella lista delle azioni (“Strumenti per gli sviluppatori” > “AZIONI“) apparirà infatti una nuova entità azione di tipo “Notification” chiamata “notify.alexa_media“. In realtà il componente ne genera anche altre, ma per gli scopi della presente guida ci concentreremo su questa.

Funzionamento e test

Le modalità di notifica supportate sono tre:

  1. TTS – Si tratta della vecchia funzionalità text-to-speech. UPDATE: Tale modalità è deprecata e non più funzionante.
  2. Announce – Si tratte della nuova funzionalità text-to-speech per consentirci di “far parlare” Alexa. Inoltre consente di visualizzare (solo su modelli Echo Shows/Spots) un messaggio sul display. È possibile riprodurre messaggi su un singolo smart speaker oppure su tutti quelli presenti in casa, all’unisono, indicando in configurazione più target.
  3. Mobile Push – Permette di inviare notifiche push sull’app Alexa collegata allo smart speaker.

Per testare il funzionamento della modalità “Announce” (quindi per far parlare Alexa) selezionare presso “Strumenti per gli sviluppatori” > “AZIONI” l’azione “notify.alexa_media“.

ATTENZIONE: L’azione da usare è “notify.alexa_media” e nessun altro.

Nel campo dati inserire un payload di test come quello che segue (ulteriori precisazioni a seguire):

message: Questo è un messaggio di test
title: Titolo
data:
  type: tts
target: media_player.alexa

spiegazione dei campi:

message Il messaggio da far pronunciare ad Alexa.
title Titolo da visualizzare in presenza di display (solo modelli che ne siano dotati) e/o come titolo dell’eventuale notifica push
data Contiene tipologia di notifica (“type“) e metodo (“method“).

type Tipo di notifica. Può essere tts, announce (emette un suono prima dei messaggi e accetta formattazioni di linguaggio SSML markup) o push (verso app mobile).

IMPORTANTE: affinché la modalità “announce” funzioni, nelle impostazioni del dispositivo target presso l’app Alexa la voce “Comunicazioni” dev’essere attiva.

method Valido solo per type:announce. Può essere spoken (fa parlare Alexa), show (visualizza su display, se presente) oppure all (entrambe).
target Il dispositivo Alexa verso il quale indirizzare la notifica. Può essere una lista. Per indicare il dispositivo/i può essere utilizzato il friendly name, il serial number, l’entity_id, o un gruppo Home Assistant. Si consigli di utilizzare il nome dell’entità Media Player generata tramite l’opportuna integrazione (eg. “media_player.alexa“). In caso si utilizzi un type:push (o anche type:all), la notifica arriverà anche all’app mobile Alexa collegata al target indicato.

Ora, premendo su “ESEGUI AZIONE“, Alexa dovrebbe pronunciare il messaggio impostato nel campo “message“.

N.b. per la presente guida utilizzeremo sempre la solita entità target, ovvero “media_player.alexa“. Ovviamente l’utente avrà la libertà di personalizzare il target come spiegato poco sopra Inoltre, affinché il meccanismo funzioni, l’entità “media_player.alexa” (o quale sia il nome) dev’essere almeno in stato “standby“.
Vetrina Promo

Notifica push

Un esempio di payload per far sì che la notifica venga inviata all’app mobile anziché riprodotto verbalmente dallo smart speaker, è il seguente:

message: Questo è una notifica di test
title: Notifica push
data:
  type: push
target : media_player.alexa

Uso

In automazione

Vediamo ora implementare una notifica vocale a fronte del ritorno in casa di qualcuno tramite un’automazione apposita.
Assumiamo di avere in configurazione le seguenti entità:

  • group.famiglia (un insieme di “Device Tracker” che rappresentano la posizione degli inquilini);
  • scene.ritorno_a_casa (una scena che, se innescata, accenda le luci dell’ingresso);
  • binary_sensor.contatto_ingresso (un sensore varchi posto sulla porta d’ingresso);
  • notify.alexa_media (l’azione generata tramite il componente usato in questa guida);
  • media_player.alexa (lo smart speaker target).

Implementiamo dunque un’automazione così strutturata:

automation:
- alias: "Ritorno a casa"
  trigger:
    platform: state
    entity_id: group.famiglia
    to: 'home'
  condition: []
  action:
    - action: scene.turn_on
      entity_id: scene.ritorno_a_casa
    - wait_template: "{{ is_state('binary_sensor.contatto_ingresso', 'on') }}"
      timeout: '00:30:00'
      continue_on_timeout: 'false'
    - delay:
        seconds: 5
    - action: notify.alexa_media
      data:
        target:
          - media_player.alexa
        data:
          type: tts
        message: "Bentornati a casa."

Spieghiamo dunque l’automazione.

Il trigger è il cambio di stato dell’entità group.famiglia da uno stato qualunque a “home” – il quale si innesca quando anche solo uno degli inquilini sia rientrato nel perimetro di casa (vedi componente “Device Tracker“).

Nessuna condition verificata; le action, invece, sono svariate e come sempre sequenziali:

  • attiva la scena scene.ritorno_a_casa (qualsiasi cosa essa faccia: accendere le luci, disattivare un allarme ecc.);
  • si mette in attesa per 30 minuti aspettando che il sensore binary_sensor.contatto_ingresso rilevi l’apertura della porta (dopo 30 minuti l’automazione si interrompe);
  • al rilevamento dell’apertura della porta, attende cinque secondi;
  • infine, fa sì che Alexa pronunci un messaggio di bentornato.
MESSAGGI CASUALI

Per rendere minimamente meno robotica Alexa è possibile utilizzare una casualità nei messaggi da essa pronunciati.
Modificando l’esempio di cui sopra come segue:

    - action: notify.alexa_media
      data:
        target:
          - media_player.alexa
        data:
          type: tts
        message: '{{ ["Bentornato a casa!", "Guarda chi si vede!", "Ciao", "Casa dolce casa."] | random }}'

l’utilizzo della lista unitamente alla particella “random” fa sì che ad ogni volta venga evocata l’azione in modalità announce venga scelto uno dei quattro messaggi dell’esempio.

ALTRE IMPLEMENTAZIONI

Ovviamente, come sempre, il limite è la fantasia. Trattandosi di un’azione, tale entità di notifica può essere usato non solo in automazione ma anche negli script e in altri ambiti di Home Assistant.

Far parlare Alexa può essere comodo in molti frangenti: non solo per notificare specifiche condizioni presenti in domotica, ma anche per notificare informazioni non strettamente legate alla domotica ma da essa censite (per esempio far presente quando diminuisce il prezzo della benzina del distributore sotto casa, piuttosto quando è previsto che cambino le condizioni meteo, e molto altro ancora).

 Botta e risposta

Vediamo ome realizzare delle automazioni volte al “botta e risposta”, ovvero alla possibilità di Alexa di “far domande” e di Home Assistant di attuare le diverse risposte:


Botta e risposta con Alexa su Home Assistant: notifiche azionabili in domotica, come usarle

⚠️ Se di Home Assistant ne sai poco ma sei interessato a capirne di più, ti suggeriamo di partire da qui.

Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa.