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

4 minuti di lettura
Scopi della guida:
  • Utilizzare Google Home come sistema di notifica verbale domotica su Home Assistant
  • Livello di difficoltà: bassa
Concetti affrontati:
  • Configurazione software
Componenti software utilizzate:
Prerequisiti:

Dispositivi fisici utilizzati:
  • Il dispositivo sul quale risiede Home Assistant
  • Google Home (qualsiasi modello o qualsiasi modello di smart speaker che monti Google Assistant come assistente integrato)
GUIDA maggiormente indicatA per:

Tutti gli ambienti

Note e disclaimer
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata ed realizzata SOLO da personale qualificato;
  • qualsiasi modifica attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno puro scopo didattico);
  • qualsiasi modifica attuata in proprio a un dispositivo ne fa decadere garanzia, omologazioni e certificazioni di qualità.
Revisione guida: 1.1

Google Home parla

Abstract

Google Home è uno degli smart speaker di più ampio e riconosciuto successo. Come abbiamo spiegato tale componente per funzionare utilizza il software Assistant, 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, Google Home è 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, Google Home può anche essere integrato a Home Assistant come riproduttore musicale (Media Player), grazie all’integrazione nativamente fornita (componente “Google Cast“), in modo da poter innescare delle automazioni legate all’ascolto di contenuti. Tale integrazione consente:

  • di visualizzare stato di riproduzione musicale;
  • di impostare la riproduzione musicale;
  • di impostarne il volume;
  • di intercettare lo stato operativo;
  • di utilizzarlo come sistema di notifica.

La terza possibilità – legata quindi all’integrazione come “Media Player” – è quella di utilizzare Google Home quale target di notifica per il servizio “Notification“, il quale ci consentirà di fargli “dire la sua” a fronte di specifiche situazioni.
Farlo 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.

Prerequisiti

Integrare Google Home 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 è necessario aggiungere alla configurazione Home Assistant un blocco analogo al seguente:

tts:
  - platform: google_translate
    service_name: google_say
    language: 'it'

per poi riavviare Home Assistant.

Tale configurazione attiva la piattaforma “Google Translate” la quale è figlia del componente “Text-To-Speech (TTS)”. Tale implementazione definisce il servizio tts.google_say, il quale verrà utilizzato per le notifiche.

Funzionamento

L’ambiente Home Assistant è ora pronto per inviare notifiche verbali pronunciate. tramite Google Home.
Per farlo è sufficiente evocare il servizio tts.google_say, appena definito, passandogli l’entità media player rappresentate lo smart speaker che si vuol far parlare e il messaggio da fargli pronunciare.

Per verificare che la cosa funzioni è sufficiente recarsi, presso il frontend, alla voce “Strumenti per gli sviluppatori” > “Servizi” e poi, selezionando il servizio tts.google_say, indicare il seguente payload (ovviamente personalizzandolo):

entity_id: media_player.googlehomeXXX
message: "Che la forza sia con te."

Cliccare poi su “Chiama il servizio“.

Ovviamente entity_id e message sono i due campi da personalizzare. Il primo può contenere una lista di entità o la voce ““all”” per indicare tutti i Google Home integrati come media player a Home Assistant.

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);
  • tts.google_say (il servizio generato con il componente usato in questa guida);
  • media_player.googlehomeXXX (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:
    - service: 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
    - service: tts.google_say
      entity_id: media_player.googlehomeXXX
      data:
        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 Google Home pronunci un messaggio di bentornato.
MESSAGGI CASUALI

Per rendere Google Home minimamente meno robotico è possibile utilizzare una casualità nei messaggi da esso pronunciati.
Modificando l’esempio di cui sopra come segue:

- service: tts.google_say
  entity_id: media_player.googlehomeXXX
  data:
    message: {{ ["Bentornati 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 evocato il servizio in modalità announce venga scelto uno dei quattro messaggi dell’esempio.

SU LOVELACE

Il servizio di notifica può essere evocato non solo tramite automazioni, ma anche via interfaccia grafica. Aggiungendo l’entità media player sul frontend e accedendo ai suoi dettagli, infatti, si trova un campo di testo libero che è possibile compilare con del testo da far pronunciare:

Home Assistant - TTS Lovelace

ALTRE IMPLEMENTAZIONI

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

Far parlare Google Home 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).

Usare al meglio gli Smart Speaker in domotica personale


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.