community italiana di domotica personale
 
Informazioni personalizzate via Alexa tramite flash briefing e Home Assistant

Informazioni personalizzate via Alexa tramite flash briefing e Home Assistant

Scopi della guida
  • Definire presso Home Assistant dei set di informazioni predefinite da girare ad Amazon Echo/Alexa in modo da poter effettuare interrogazioni di stato della propria domotica tramite Smart Speaker
  • Livello di difficoltà: medio/alta
  • Categoria d’integrazione: Cloud Push
Concetti affrontati:
  • Configurazione cloud
  • Configurazione software
Componenti software utilizzate:
Prerequisiti
  • Home Assistant configurato e funzionante (minimo versione 0.112)
  • Home Assistant remotizzato su HTTPS (vedi “Abstract“)
  • Amazon Echo/Alexa configurato e funzionante e relativo account Amazon ad esso collegato
  • Amazon Echo/Alexa integrato su Home Assistant (vedi “Abstract“)
  • Un account personale Amazon (col quale sia configurata Alexa)
Dispositivi fisici utilizzati:
  • Il computer sul quale è in esecuzione Home Assistant
  • Smartphone sul quale eseguire l’app Amazon Alexa (Android e/o iOS)
  • Amazon Echo (qualsiasi modello o qualsiasi modello di smart speaker che monti Amazon Alexa come software integrato)
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: 2.1

Home Assistant Amazon-Echo-Plus

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.

Come spiegato in schede come quella legata alla piramide domotica o sul come usare al meglio dai propri Smart Speaker, l’idea di integrare Amazon Alexa al proprio HUB personale Home Assistant è sicuramente tra le migliori. Per farlo esistono due modalità, una facile (a pagamento) e una difficile (gratuita).


La presente guida è un affinamento dell’integrazione di Alexa con Home Assistant: mentre tale integrazione è utile a controllare le entità definite i configurazione tramite comandi vocali, questa guida consentirà l’utente di sfruttare il cosiddetto sommario notizie di Alexa (in inglese flash briefing) per ottenere delle informazioni personalizzate provenienti dalla propria domotica personale basata su Home Assistant.

Spieghiamoci meglio.

Mettiamo di possedere un bel giardino e di aver provveduto a domotizzare e integrare su Home Assistant l’impianto di irrigazione. Poniamo inoltre che Home Assistant disponga di un sensore che misuri il livello di umidità del terriccio del giardino nonché dei sensori relativi alle previsioni del tempo, diciamo Met.no (l’integrazione meteo installata di default sull’HUB).

Tramite la presente guida sarebbe possibile definire una flash briefing tale da fornire in base ad un’analisi automatica, predefinita, basata sull’umidità del terreno, sul fatto che abbia o non abbia piovuto (e se lo farà), sull’ultima irrigazione artificiale effettuata se sia il caso o meno di irrigare, del tipo:

Il prato è abbastanza umido, ha piovuto oggi. Fossi in te non irrigherei.
oppure
Il prato è secco e non è prevista pioggia nelle prossime 12 ore, provvedi ad irrigare.

o frasi del genere.

Un altro esempio potrebbe essere semplicemente quello di farsi riferire da Alexa lo stato ambientale della casa:

La temperatura media in casa è di 22 gradi, l’umidità relativa media è del 45%, la qualità dell’aria è eccellente.

E via così.


In questa guida simuleremo la necessità di ottenere da Alexa l’analisi della presenza (o meno) degli inquilini e la temperatura del frigo. Sono solo due esempi: come sempre, il limite è la fantasia.

ATTENZIONE: il “sommario di notizie” (qui descritto) non va confuso con le notifiche automatiche di Alexa su Home Assistant, cosa  (quest’ultima) che consente di “far parlare” Alexa come sistema di notifica automatica vocale.

Si parte

Prerequisiti

Per eseguire la seguente guida è strettamente necessario che:

  • Alexa sia già integrata con Home Assistant:
  • Home Assistant sia raggiungibile da remoto con protocollo HTTPS (se si è integrata Alexa tramite la procedura difficile, questo passo è certamente già smarcato – in caso diverso è necessario applicare questa guida);
  • Home Assistant sia raggiungibile da remoto anche da porta 443 (qualunque sia la porta configurata sull’istanza dell’HUB è necessario che il port-forwarding presso il proprio router/modem “giri” la porta esterna 443 verso di essa).
    Su tale argomento consigliamo la lettura di questa guida.

Assunzioni

Nella presente guida descriveremo il processo di definizione di una skill Alexa (appunto, di tipo flash briefing) la quale riporti due diverse analisi:

  • una che fornisca informazioni rispetto a dove si trovino gli inquilini;
  • un’altra che ci comunichi la temperatura del frigo.

N.b. Ovviamente si tratta solo di esempi per far comprendere il processo; la definizione della flash briefing è legata alla propria fantasia.

A mo’ d’esempio assumeremo l’esistenza in configurazione Home Assistant delle seguenti entità:

  • device_tracker.edoardo (entità di tipo “Device Tracker” rappresentate la posizione geografica dell’utente Edoardo);
  • device_tracker.chiara (entità di tipo “Device Tracker” rappresentate la posizione geografica dell’utente Chiara);
  • sensor.temperatura_frigo (entità di tipo “Sensor” rappresentante la temperatura istantanea all’interno del frigorifero rilevata con un qualunque sensore wireless, tipo lo Xiaomi).

Si assume inoltre che sia stato integrato in configurazione il componente “Zone” per definire delle zone specifiche dove solitamente Edoardo e Chiara si trovano (eg. Lavoro, Scuola ecc.).

Home Assistant

API

Se si è provveduto a integrare Alexa a Home Assistant tramite la modalità gratuita, si può passare oltre.

Diversamente, accertarsi di avere in configurazione (ed eventualmente provvedere ad inserirla) la seguente entry:

api:

homeassistant:
  auth_providers:
    - type: homeassistant

Terminata la configurazione, riavviare Home Assistant.

FLASH BRIEFING

È in questa fase che si definisce cosa e come Alexa comunicherà determinate informazioni; è qui che interviene la fantasia dell’utente, combinata ovviamente alle esigenze proprie e agli elementi a propria disposizione.

Definiamo quindi le flash briefing, nel caso dell’esempio di questa guida, due specifiche: “Stato presenza” e “Temperatura Frigo“.

alexa:
  flash_briefings:
    password: mia_password
    statopresenza:
      - title: Stato presenza
        text: >
          {%- if is_state('device_tracker.edoardo', 'home') and
                 is_state('device_tracker.chiara', 'home') -%}
            Siete entrambi in casa!
          {%- else -%}
            Edoardo si trova a {{ states("device_tracker.edoardo") }}
            e Chiara si trova a {{ states("device_tracker.daniela") }}
          {% endif %}
        display_url: "https://developer.amazon.com/it/docs/flashbriefing/flash-briefing-skill-api-feed-reference.html"
    temperaturafrigo:
      - title: Temperatura Frigo
        text: La temperatura del frigorifero è di {{ states.sensor.temperatura_frigo.state|float }} gradi
        display_url: "https://developer.amazon.com/it/docs/flashbriefing/flash-briefing-skill-api-feed-reference.html"

Riavviare Home Assistant.

N.b. Nel campo password indicare una password qualsiasi relativa a questo servizio, a propria scelta di fantasia; il campo display_url è un campo strettamente necessario. Può essere valorizzato con un URL qualunque, basta che ci sia.

A questo punto se tutto è stato configurato correttamente l’istanza Home Assistant esporrà due payload in notazione JSON richiamabili tramite URL.

Sempre nel solco dell’esempio di questa guida, i due URL saranno:

https://mio_dominio.duckdns.org/api/alexa/flash_briefings/statopresenza?password=mia_password

https://mio_dominio.duckdns.org/api/alexa/flash_briefings/temperaturafrigo?password=mia_password

Gli URL sono così composti:

  • https://
    • FQDN del proprio indirizzo esterno Home Assistant (non indicare alcuna porta oppure indicare :433, porte diverse non sono consentite dalla skill presso AWS – vedi prerequisiti)
  • /api/alexa/flash_briefings/
    • il nome della flash briefing definita in configurazione, in questo caso:
      • statopresenza
      • temperaturafrigo
  • ?password=
    • password definita con la chiave “password” presente in configurazione.

Aprendo il browser e puntando ad un URL così definito, la risposta DEVE sempre essere del seguente tipo:

[
  {
    mainText: "La temperatura del frigorifero è di 5.7 gradi",
    redirectionURL: "https://developer.amazon.com/it/docs/flashbriefing/flash-briefing-skill-api-feed-reference.html",
    titleText: "Temperatura Frigo",
    uid: "bb9a5e6a-4ed3-4797-803f-4bc095ae0dab",
    updateDate: "2019-04-21T20:46:45.0Z"
  }
]

Qualunque altro tipo di riposta non consentirà il funzionamento della skill che andremo a definire presso AWS, e quindi di tutto il meccanismo che stiamo realizzando, quindi prima di avanzare oltre assicurarsi di aver ottenuto tale risultato.

Creazione Alexa Flash Briefing Skill

Terminata la configurazione lato Home Assistant è necessario creare una Alexa Flash Briefing Skill, “ponte” che utilizzeremo dalla nostra domotica verso Alexa.

Collegarsi all’indirizzo https://developer.amazon.com/alexa/console/ask utilizzando poi la propria utenza Amazon.com/.it per autenticarsi. Lo scopo è quello di andare a definire una skill di tipo flash briefing ad hoc per il nostro ambiente.

A questo punto, apertasi la pagina principale della “Console degli sviluppatori“, cliccare su “Create Skill“:

Amazon Console degli sviluppatori - Create Skill

N.b. in caso si sia integrata precedentemente Alexa tramite AWS (metodo gratuito), nella lista sarà già presente un’altra skill (la quale non va modificata). Negli screenshot proposti in questa guida questa seconda skill è presente ed è chiamata “haaska”.

Nella pagina che seguirà indicare il nome della skill (quel che si preferisce, in questo esempio “inDomus“) e “Flash Briefing” come tipologia:

Alexa Flash Briefing - step 1Una volta cliccato su “Create Skill” ci si troverà nella pagina di dettaglio della skill flash briefing. Nel campo “Custom Error Message” indicare “Problemi con la skill“, poi cliccare su “Add new feed“:

Alexa Flash Briefing - step 2Questo darà accesso a un editor in grado di indicare gli estremi delle nostre flash briefing precedentemente definite presso su Home Assistant. Questa procedura è ripetersi ogni qual volta si abbia necessità di aggiungere una nuova flash briefing alla nostra configurazione.

Alexa Flash Briefing - step 3

In questa schermata andremo ad indicare le seguenti informazioni:

Preamble “Da Home Assistant” (è la frase che Alexa pronuncerà andando a leggere le informazioni della flash briefing – può ovviamente esser personalizzata)
Name Il nome della flash briefing defiita in configurazione Home Assistant (eg. “Temperatura frigo”)
Content update frequency Hourly
Content type Text
Content genre Other (o altro, a scelta)
Feed L’URL presso il quale la skill recupererà le informazioni testuali, ovvero quello definito precedentemente
Feed Icon Un’icona, a scelta, se disponibile

Cliccare su “Add” e, se non è necessario inserire nuove flash briefing, cliccare su “Save” in alto a destra.
La schermata dovrebbe apparire più o meno così:

Alexa Flash Briefing - step 4

In questo esempio, le flash briefing sono, come previsto, due.

App Alexa

A questo punto è necessario aprire la propria app Alexa su smartphone/tablet, la quale solitamente utilizziamo per amministrare la configurazione dello/degli Smart Speaker presenti in casa.

Cliccare in alto a sinistra (le tre righette) e cliccare su “skill“.

A questo punto provvedere ad attivare la propria skill flash briefing (nell’esempio chiamata “inDomus”) come da sequenza che segue:

Questo slideshow richiede JavaScript.

Uso

A questo punto la/le flash briefing sono pronte all’uso.
Basterà, infatti, pronunciare “Alexa, fammi sentire il sommario” per ottenere le informazioni provenienti dalla propria domotica Home Assistant.

Altro esempio

Un altro esempio più venire dalla volontà di voler ottenere da Alexa un ricapitolo rapido dello stato ambientale della propria casa. Poniamo di avere più sensori termici e di umidità distribuiti in giro per casa, più un sensore di qualità dell’aria (eg. Broadlink A1 e-Air): sarebbe carino ottenere da Alexa una risposta del tipo:

La temperatura media in casa è di X gradi, l’umidità relativa media del Y%, la qualità dell’aria è..

La flash briefing da realizzare presso Home Assistant sarebbe all’incirca così:

alexa:
  flash_briefings:
    password: mia_password
    ambientale:
      - title: "Stato ambientale casa"
        text: >
          La temperatura media in casa è di {{ ((states("sensor.temperatura_1")|float + states("sensor.temperatura_2")|float )/2)|float|round(1) }} gradi,
          l'umidità relativa media è del {{ ((states("sensor.umidita_1")|float + states("sensor.umidita_2")|float )/2) | int(default=1) }}%. La qualità dell'aria è {{ states.sensor.air_quality.state }}

Ovviamente sarebbe poi sufficiente aggiungere la flash briefing alla skill AWS nelle metodologie espresse nel presente progetto.

⚠️ 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.