Scopi della guida
Concetti affrontati:
Componenti software utilizzate:
|
Prerequisiti
Dispositivi fisici utilizzati:
|
GUIDA INDICATA A UTENTI CON ISTALLAZIONE: |
|
NOTE E DISCLAIMER
|
|
Revisione guida: 2.1 |
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
- Assunzioni
- Home Assistant
- API
- FLASH BRIEFING
- Creazione Alexa Flash Briefing Skill
- App Alexa
- Uso
- Altro esempio
Prerequisiti
Per eseguire la seguente guida è strettamente necessario che:
- Alexa sia già integrata con Home Assistant:
- o tramite la modalità facile (a pagamento);
- o tramite la modalità difficile (gratuita).
- 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"
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
- il nome della flash briefing definita in configurazione, in questo caso:
- ?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“:
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:
Una 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“:
Questo 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.
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ì:
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:
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. |