Home Assistant: Buongiorno Personalizzato con gli Speaker Google Home Mini

Home Assistant Buongiorno Personalizzato con gli Speaker Google Home Mini

Quando acquisti gli speaker Google Home e Google Home Mini e li configuri all’interno della stessa rete WiFi dove hai configurato Home Assistant installato su Raspberry Pi 3 ti troverai gli SMART speaker di Google tra i media player.

Avrai quindi la possibilità di utilizzare Google Home anche come cassa per farti dire tutto quello che succede all’interno della tua Casa Domotica. In questo esempio vedremo un Buongiorno personalizzato, quando ci svegliamo Home Assistant ci farà sapere attraverso lo speaker Google Home Mini, la temperatura interna, esterna, condizioni meteo e avvierà la riproduzione in streaming della nostra radio preferita, di mattina per me è Radio 105 con Tutto Esaurito, poi passo a Virgin Radio o Spotify.

Ovviamente se devi semplicemente sapere che ore sono avere qualche notizia e previsioni meteo, appena sveglio, puoi semplicemente dire “Ok Google, buongiorno”, tuttavia se quando ti svegli vuoi informazioni precise sullo stato di alcuni sensori che hai configurato all’interno di Home Assistant questa guida può esserti d’aiuto, inoltre imparerai come utilizzare il servizio Text-to-Speech (TTS) all’interno di Home Assistant.

Home Assistant un Buongiorno personalizzato con gli Speaker Google Home

Quando ci svegliamo possiamo fare in modo che Home Assistant ci fornisca alcune informazioni sui sensori che abbiamo configurato al suo interno, per esempio ci può far sapere la temperatura interna della casa, esterna, che tempo fa, ricordarci i promemoria dei nostri appuntamenti ecc, dipende da quali sensori abbiamo installato nella nostra Casa DOMOTICA e quali servizi configurati all’interno di Home Assistant.

Che cosa ci server per il Buongiorno Personalizzato con Google Home

Ovviamente avere Home Assistant installato su Raspberry Pi 3:
Come installare Home Assistant su Raspberry Pi 3 – Hass.io

Avere configurato Home Assistant per l’accesso sicuro da remoto:
Come accedere a Home Assistant da remoto – Hass.io

Avere un account Google attivo, c’è qualcuno chi non ce l’ha?

Questa automazione potrebbe funzionare meglio con un sensore di movimento che si attivi quando siamo in vicinanza degli speaker Google Home o Google Home Mini, oppure una telecamera con riconoscimento facciale, come la Netatmo Welcome, in grado di riconoscerci.

Se non si hanno sensori non è un problema dato che il messaggio di buongiorno può essere richiamato anche chiedendolo direttamente all’assistente Google.

Home Assistant: come utilizzare SMART speaker per pronunciare frasi scritte

Per poter inviare a Google Home il nostro “Buongiorno personalizzato” configureremo il servizio Text-to-Speech (TTS) all’interno di Home Assistant, ovviamente possiamo utilizzare anche altre casse SMART WiFi, l’importante è che siano tra i device configurati all’interno di Home Assistant, l’elenco dei media_player si trova in strumenti per gli sviluppatori -> stati (<>).

Purtroppo non ci sono molti speaker WiFi in commercio, tuttavia chi ha già della casse attive in casa può valutare l’acquisto di Google Chromecast Audio, questo dispositivo dal costo di circa 40 euro rende SMART qualsiasi cassa, altoparlante, speaker o amplificatore di vecchia generazione dotato di ingresso AUX.

Come configurare il servizio Text-to-speech (TTS) in Home Assistant

Questa è la parte più semplice, infatti è sufficiente aggiungere questo codice al file configuration.yaml e quindi riavviare Home Assistant

[code language=”python”]
tts:
– platform: google
cache: true
cache_dir: /tmp/tts
time_memory: 300
[/code]

Una volta configurato il servizio Text-to-speech (TTS) andremo a creare uno script o più script in modo da farci leggere dal nostro assistente Google il testo da noi realizzato.

Come creare una automazione per avere un Buongiorno Personalizzato attraverso Google Home Mini

Una volta configurato TTS dobbiamo creare una automazione (automation) con una frase personalizzata da trasmettere al nostro SMART speaker Google Home o Google Home Mimi.

Questa frase andrà “letta” solo quando un sensore individua la nostra presenza (trigger) e come condizione (condition) metteremo un determinato intervallo orario, vediamo il codice dell’automazione:

[code language=”python”]
# Buongiorno
automation:
– alias: ‘buongiorno’
trigger:
platform: state
entity_id: binary_sensor.motion_sensor_158d0000edxxxx
from: ‘off’
to: ‘on’
condition:
– condition: time
after: ’07:30:00′
before: ’08:00:00′
– condition: state
entity_id: input_boolean.buongiorno_one_time
state: ‘off’
action:
– service: script.turn_on
entity_id: script.buongiorno
data:
variables:
nome: ‘Enore’
– service: homeassistant.turn_on
entity_id: input_boolean.buongiorno_one_time

– alias: buongiorno_one_time
trigger:
platform: time
at: ’00:30:00′
action:
service: homeassistant.turn_off
entity_id: input_boolean.buongiorno_one_time
[/code]

Analizziamo brevemente in codice, quando il sensore rileva un movimento esegue lo script buongiorno e imposta input_boolean.buongiorno_one_time su “ON”, ma questo solo tra le 7:30 e le 8:00 del mattino e solo se input_boolean.buongiorno_one_time è impostato su “OFF”.

Una seconda automazione alle 00:30 imposterà su “OFFf” input_boolean.buongiorno_one_time, una entità che creiamo noi inserendo all’interno del file configuration.yaml il seguente codice:

[code language=”python”]
input_boolean:
buongiorno_one_time:
[/code]

input_boolean.buongiorno_one_time serve a far eseguire l’automazione una sola volta.

Lo script buongiorno sarà questo:

[code language=”python”]
script:
buongiorno:
alias: "Buongiorno"
sequence:
– service: media_player.volume_set
data_template:
entity_id: media_player.ufficio
volume_level: 0.5
– service: tts.google_say
entity_id: media_player.ufficio
data_template:
message: "Buongiorno {{ nome }}"
language: ‘it’
cache: false
– delay:
seconds: 4
– service: script.turn_on
data:
entity_id: script.buongiorno_frase_1

buongiorno_frase_1:
alias: "Buongiorno Frase 1"
sequence:
– service: tts.google_say
entity_id: media_player.ufficio
data_template:
message: >
{{ [
"ti vedo molto bene" ,
"sei in gran forma oggi" ,
"ti auguro una splendida giornata"
] |random }}
language: ‘it’
cache: false
– delay:
seconds: 5
– service: script.turn_on
data:
entity_id: script.buongiorno_frase_2

buongiorno_frase_2:
alias: "Buongiorno Frase 2"
sequence:
– service: tts.google_say
entity_id: media_player.ufficio
data_template:
message: "Sono le ore {{states(‘sensor.time’)}} ed è {{states(‘sensor.pws_weather’)}}. La temperatura esterna è di {{states(‘sensor.netatmo_outdoor_temperature’)}} gradi, mentre la temperatura interna è di {{states(‘sensor.netatmo_indoor_temperature’)}} gradi."
language: ‘it’
cache: false
– delay:
seconds: 15
– service: script.turn_on
data:
entity_id: script.play_105
[/code]

Analizziamo brevemente il codice, ho creato 3 script perché ho suddiviso la frase di “buongiorno” in 3 parti.

Il primo script buongiorno imposta il volume dello SMART speaker Google Home Mini in ufficio al valore 0.5 (il volume va 0 a 1), poi utilizzo il servizio Text-to-Speech (TTS) per dire “Buongiorno Enore”. Da notare come sia possibile passare una o più “variabili” dall’automazione allo script, in questo modo possiamo utilizzare lo stesso script anche per dare il buongiorno ad altre persone se per esempio abbiamo una telecamera con il riconoscimento del volto. Lo script prosegue dopo 4 secondi d’attesa con l’attivazione del secondo script buongiorno_frase_1.

In buongiorno_frase_1 ho inserito 3 frasi da pronunciare dopo il buongiorno, che vengono scelte a caso (random), poi dopo 5 secondi viene eseguito lo script buongiorno_frase_2

All’interno buongiorno_frase_2 troviamo il testo vero e proprio dove vengono letti i valori di alcuni sensori configurati n Home Assistant, io sfrutto i sensori della stazione meteo Netatmo, ma chi non ha una stazione meteo può utilizzare i servizi meteo compatibili con Home Assistant, tipo Weather Underground, Dark Sky, Yahoo Weather Sensor ecc. L’ultima parte eseguo lo script play_105.

Lo script play_105 fa riprodurre il streaming Radio 105 con tutto esaurito, lo script è questo:

[code language=”python”]
script:
play_105:
alias: "Play Radio 105"
sequence:
– delay:
seconds: 5
– service: media_player.volume_set
data_template:
entity_id: media_player.ufficio
volume_level: 0.2
– service: media_player.play_media
data_template:
entity_id: media_player.ufficio
media_content_id: http://icecast.unitedradio.it/Radio105.mp3
media_content_type: ‘audio/mp3’
[/code]

Se invece volessimo riprodurre la classifica Top 50 Italia su Spotify il codice per lo script sarebbe questo:

[code language=”python”]
script:
play_top_italia_spotify:
alias: "Topo 50 Italia Spotify"
sequence:
– delay:
seconds: 5
– service: media_player.volume_set
data_template:
entity_id: media_player.ufficio
volume_level: 0.2
– service: media_player.select_source
data_template:
entity_id: media_player.spotify
source: Ufficio
– service: media_player.play_media
data_template:
entity_id: media_player.spotify
media_content_type: playlist
media_content_id: spotify:user:spotifycharts:playlist:37i9dQZEVXbIQnj7RRhdSX
[/code]

Per poter riprodurre playlist e singoli brani musicali su Spotify attraverso Home Assistant è necessario avere un account Premium, va bene anche Premium per studenti, ovviamente è necessario aver configurato Spotify all’interno di Home Assistant.

Il media_content_id si trova facilmente raggiungendo la playlist con il proprio browser, per esempio la playlist Morning Motivation realizzata da Spotify si può ascoltare raggiungendo questo URL: open.spotify.com/user/spotify/playlist/37i9dQZF1DXc5e2bJhV6pu quindi dovremo impostare media_content_id: spotify:user:spotify:playlist:37i9dQZF1DXc5e2bJhV6pu

Buongiorno Personalizzato con gli Speaker Google Home – Conclusioni

Abbiamo visto come utilizzare il servizio Text-to-Speech (TTS) configurato all’interno di Home Assistant installato su Raspberry Pi 3, la migliore piattaforma open-source per la Casa DOMOTICA, per creare un buongiorno personalizzato.

Se in casa abbiamo una telecamera di videosorveglianza come la Netatmo Welcome è possibile utilizzare il servizio IFTTT.com per far eseguire uno script personalizzato all’interno di Home Assistant quando viene individuata una determinata persona.

Il servizio Text-to-Speech (TTS) possiamo usarlo anche per leggere gli appuntamenti inseriti in Google Calendar, o ancora meglio, possiamo creare un calendario dedicato solo alla nostra Casa Domotica, per esempio io ho creato un calendario per la raccolta della spazzatura, così Home Assistant mi avvisa, attraverso lo SMART speaker Google Home, quando passano a prendere la plastica, il vetro, l’indifferenziato ecc. Magari vedremo meglio come sfruttare Google Calendar all’interno di Home Assistant con un articolo dedicato.

Se hai domande e suggerimenti non esitare a lasciare un commento a quest’articolo.

8 COMMENTI

  1. Ciao ho provato a copiare i tuoi comandi in un automazione di prova ma il mio google home fa un suono iniziale come per accendersi poi non dice nulla. Da cosa può dipendere?

    • Ciao sembra che non arrivi il messaggio, puoi scrivermi il codice che usi inserendolo all’interno dei tag “code” per il codice, vendono inseriti se premi sul pulsante codice nella barra sotto al form d’inserimento commento

      • - id: '1572034829924'
        alias: Buongiorno
        description: Buongiorno
        trigger:
        - at: "21:28"
        platform: time
        condition:
        action:
        - service: script.buongiorno
        - service: media_player.volume_set
        data_template:
        entity_id: media_player.seminterrato
        volume_level: 0.2
        - service: tts.google_say
        entity_id: media_player.seminterrato
        data_template:
        message: "Prova automazione"
        language: 'it'
        cache: false
        # - service: media_player.play_media
        # data_template:
        # entity_id: media_player.seminterrato
        # media_content_id: http://icecast.unitedradio.it/Radio105.mp3
        # media_content_type: 'audio/mp3'

        Questo il codice. quello commentato funziona. Googolando ho trovato una traccia di quello che potrebbe essere il problema ma non so come risolverlo. Praticamente io uso duckdns per accedere dall’esterno con questa conf
        http:
        base_url: MIODOMINIO.duckdns.org
        ssl_certificate: /ssl/fullchain.pem
        ssl_key: /ssl/privkey.pem

        Sembra che il servizio tts non accetti i certificati.

        Sapete come poter ovviare a questo problema?

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.