SCOPI DEL PROGETTO:
CONCETTI AFFRONTATI:
|
COMPONENTI SOFTWARE UTILIZZATE:
DISPOSITIVI FISICI UTILIZZATI:
|
PROGETTO INDICATO a UTENTI CON ISTALLAZIONE:![]() |
|
NOTE E DISCLAIMER
|
|
Revisione progetto: 1.0 |
Abstract
Gli smart speaker sono tra gli strumenti di gestione finale tra i più apprezzati in domotica personale. Il perché è molto semplice da intuire: comandare con la voce il comportamento della propria casa fornisce un’interfaccia uomo-macchina imparagonabile con qualsiasi altra modalità.
Come sappiamo, tra i più diffusi smart speaker sono quelli della linea Google Nest dotati di assistente Assistant, i quali possono venire integrati con la domotica basata sull’HUB personale Home Assistant in diverse modalità, sia come attuatori che come riproduttori multimediali.
La prima modalità (come attuatori) consente, per l’appunto, di gestire le entità domotiche presenti sull’HUB (quali che siano) tramite comandi vocali: da “accendi la luce” a “imposta il riscaldamento a 20 gradi“, ogni comando previsto dalla natura specifica dell’entità controllata è tipicamente consentito.
Quello che, di base, non è previsto da Google Nest è eseguire sequenze di comandi. O meglio: esistono certamente le routine, le quali sì permettono di eseguire sequenze di azioni sulla base di un comando, ma non prevedono di applicare alcuna logica in quello che fanno.
Ipotizziamo di avere un sensore previsionale meteo su Home Assistant che indichi la quantità di pioggia prevista a +6 ore. Ipotizziamo altresì di avere uno o più sensori di apertura varchi collocati sulle finestre di averli integrati a Home Assistant.
Ipotizziamo infine di aver definito una routine su Google Nest che, quando andiamo a letto, semplicemente dicendo “Hey Google, buonanotte” spenga le luci di casa. Bene: col presente progetto vedremo come far sì che tale routine d’esempio (usata per spiegare il concetto) provveda non solo a spegnere le luci, ma anche – per esempio – a verificare automaticamente se sia prevista pioggia e se, in caso qualche finestra sia aperta, avvisare tramite un annuncio dello smart speaker in merito alla situazione di potenziale pericolo, per esempio “Attenzione, è prevista pioggia nella notte e ci sono finestre aperte“.
Si parte
Logica di funzionamento
Uno script di Home Assistant altro non è che una sequenza – volendo, arricchita da logica – di azioni. Tali script, se inclusi nei domini esposti verso Google Nest, vengono visti da quest’ultimo come “Scene”.
Per questa guida ipotizzeremo la realizzazione dello scenario descritto nell’abstract (la verifica dell’apertura delle finestre a fronte di una previsione di pioggia e, in caso, comunicazione di alert) tramite uno script che esporremo verso Google Nest.
Assunti
Premesso che lo script realizzato con questo progetto sarà puramente illustrativo (il proprio potrà contenere qualsivoglia altra azione), assumeremo per la sua realizzazione l’esistenza sul nostro HUB delle seguenti entità:
- sensor.6h_precipitation
- binary_sensor.window_opening_1 e binary_sensor.window_opening_2
- media_player.googlehomeXXX
Il primo, sensor.6h_precipitation è un sensore meteo che indica la previsione di pioggia, mentre binary_sensor.window_opening_1 e binary_sensor.window_opening_2 sono due sensori binari che indicano lo stato di apertura rispettivamente di due finestre. Ovviamente assumiamo che tali entità siano il prodotto di diverse integrazioni a partire dai servizi e sensori fisici a propria disposizione.
In ultimo, media_player.googlehomeXXX è l’entità che rappresenta il nostro smart speaker Google Nest integrato come riproduttore multimediale. Inoltre, si assume che il nostro smart speaker sia anche integrato a Home Assistant come attuatore a comandi vocali (in modalità a pagamento o gratuita).
Script
La prima cosa da fare, come detto, è creare lo script che ci serve. Nel nostro caso lo chiameremo script.check_finestra (con friendly name “Check finestre in caso pioggia”) e lo definiremo in configurazione come segue:
script: check_finestra: alias: "Check finestre in caso pioggia" sequence: - condition: and conditions: - condition: numeric_state entity_id: sensor.6h_precipitation above: 0 - condition: or conditions: - condition: state entity_id: binary_sensor.window_opening_1 state: 'on' - condition: state entity_id: binary_sensor.window_opening_2 state: 'on' - action: tts.google_say entity_id: media_player.googlehomeXXX data: message: "Attenzione, è prevista pioggia e ci sono finestre aperte."
Si tratta di uno script molto semplice, il quale, in caso sia prevista pioggia
- condition: numeric_state
entity_id: sensor.6h_precipitation
above: 0
e una delle due finestre risulti aperta:
- condition: or
conditions:
- condition: state
entity_id: binary_sensor.window_opening_1
state: 'on'
- condition: state
entity_id: binary_sensor.window_opening_2
state: 'on'
innesca la notifica verbale di Google Nest:
- action: tts.google_say
entity_id: media_player.googlehomeXXX
data:
message: "Attenzione, è prevista pioggia e ci sono finestre aperte."
siccome gli script vengono eseguiti in sequenza, in questo caso se prima non viene superato il blocco condition, la chiamata per l’esecuzione della notifica verbale non viene eseguita. Niente pioggia – o finestre chiuse – nessuna notifica.
Al termine dell’aggiunta dello script, ricordarsi di riavviare Home Assistant o, per praticità, recarsi alla voce “Strumenti per sviluppatori” > “YANK” e cliccare su “RICARICA SCRIPT“.
App Google Home
Dopo il riavvio dell’HUB, se sia sarà provveduto a configurare l’auto-discovery su Home Assistant (verso Google Nest), allora su Google Home sarà apparsa anche la scena appena creata (in questo caso chiamato “Check finestre in caso pioggia”). Diversamente, chiedere allo speaker chiedendo “Hey Google, sincronizza i miei dispositivi” per far sì che venga aggiunta.
N.b. Ancora una volta: ovviamente la procedura non potrà mai andare a buon fine se prima non si è provveduto all’integrazione di Home Assistant come attuatore a comandi vocali. |
Routine
Dato che abbiamo realizzato uno script, Google Nest può facilmente gestirlo e quindi innescarlo a fronte di un nostro comando. Dando per assunta come detto l’avvenuta integrazione del proprio Google Nest alla domotica Home Assistant (in modo gratuito o tramite cloud a pagamento) – la quale deve includere, nei domini integrati, anche gli script – andremo a vedere come gestire, tramite routine dell’app Google Home, l’innesco della scena corrispondente chiamato “Check finestre in caso di pioggia” precedentemente definito.
In primis, apriamo l’applicazione Google Home su smartphone/tablet e selezioniamo “Routine” / “Nuova routine“. Come trigger, selezioniamo “Quando” > “Aggiungi comandi“:
Configureremo “Check Finestre” e andremo avanti cliccando su “Aggiungi azione“:
Selezioniamo poi la voce “Sfoglia le azioni più usate“, selezionano poi “Regola le scene“:
Selezionare poi l’ingranaggio e selezionare, successivamente, la scena da controllare:
Terminare cliccando su “OK“.
Così facendo, da qui in poi ogni volta che si pronuncerà “Hey Google, check finestre“, Home Assistant verificherà le condizioni e le logiche dello script. In questo caso specifico, avviserà l’utente in caso sia prevista pioggia e almeno una delle due finestre risulti aperta tramite Google Home.
⚠️ 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. |