Google Home - impostiamo un saluto di benvenuto al nostro ingresso in casa
di Luigi Duchi
02 Luglio 2018
Domotica
Fra le tante cose utili potevo mostrarvi su Home Assistant oggi ho deciso di realizzare una breve guida su una cosa totalmente inutile, una perdita di tempo, una cosa che non e' strettamente necessaria alla nostra sopravvivenza.....in sintesi una figata pazzesca di cui noi non riusciremo più a fare a meno....:-)
In pratica faremo in modo che il nostro Google Home ci saluti al nostro rientro a casa. Potremo creare una serie di saluti che utilizzerà in maniera random e addirittura potremo differenziare i saluti a seconda di chi entra nel nostro appartamento.
Per realizzare questa guida ho usato i seguenti dispositivi:
- Un sensore porta finestra (Xiaomi)
- Gateway Xiaomi
Ci sono una serie di soluzioni tecniche per eseguire quello che ho appena descritto; io ho utilizzato il ping dell'indirizzo IP e un sensore porta-finestra Xiaomi.
Come prima cosa andiamo a prenotare l'indirizzo IP del nostro telefono sul nostro router in modo che, ogni volta che il nostro (o quello di qualcun altro) si connettrà alla nostra rete wifi, gli verrà assegnato il medesimo indirizzo IP. Questa procedura varia da router a router, ma di solito è un opzione che si configura all'interno del servizio DHCP (il servizio di rilascio dinamico degli indirizzi IP). In alternativa potete impostare l'indirizzo IP del vostro smartphone manualmente al di fuori del range DHCP.
Una volta fatta questa operazione dovrete creare il tracking su Home Assistant vediamo come fare:
Aprite il vostro file configuration.yaml e copiate la seguente stringa:
device_tracker:
- platform: ping
hosts:
Nomeavostrascelta: 192.168.x.xx (indirizzo ip telefono)
consider_home: 30
salvate e riavviate il vostro Raspberry. Al riavvio vedrete comparire un sensore che indicherà se il vostro telefono sarà presente o meno all'interno della rete (quindi del vostro appartamento), ovviamente cio' sarà possibile solo se il wifi del vostro cellulare sarà attivo.
Adesso andiamo a configurare il nostro Google Home in modo che risponda ai nostri comandi in italiano. Per farlo recatevi nuovamente nel file configuration.yaml, scorrendo dovreste trovare una voce con su scritto # Text to speech. Esattamente sotto andrete a copiare questa stringa:
tts:
- platform: google
language: 'it'
Una volta inserita quella stringa andremo a creare un input bolean. Questo sarà necessario per completare l'automazione che andremo a compilare successivamente. Nel nostro file configuration.yaml andremo ad inserire la seguente stringa:
input_boolean:
gigi_appena_entrato:
name: Gigi appena entrato
ovviamente inserirete il vostro nome al posto del mio :-)
una volta completato l'input bolean salviamo il nostro file configuration.yaml e apriamo il file automation.yaml.
Qui andiamo ad inserire le due automazioni necessarie per l'attuazione del servizio:
- alias: Gigi appena entrato
initial_state: true
trigger:
- platform: state
entity_id: device_tracker.gigi
to: 'home'
action:
- service: input_boolean.turn_on
entity_id: input_boolean.gigi_appena_entrato
- delay: "00:03:00"
- service: input_boolean.turn_off
entity_id: input_boolean.gigi_appena_entrato
in entity id andate ad inserire il nome del vostro input bolean creato poco prima.
Questa automazione servirà per far intervenire l'input bolean una volta che il vostro device avrà agganciato la vostra rete wifi e di conseguenza il ping del vostro indirizzo ip darà esito positivo, avrà un ritardo di 3 minuti (tempo che ovviamente può essere settato a piacimento) dopodichè disattiverà l'input bolean in modo che passati i 3 minuti non ripeterà più il saluto nel caso riapriate la porta di casa.
Una volta scritta questa automazione andiamo a scrivere l'automazione vera e propriia del saluto da parte del nostro google home, andrete ad inserire questa stringa,ovviamente sempre nel vostro file automation.yaml:
- alias: benvenuto gigi
initial_state: true
trigger:
- platform: state
entity_id: binary_sensor.door_window_sensor_158d00012d77c4
to: 'on'
condition:
- condition: state
entity_id: input_boolean.gigi_appena_entrato
state: 'on'
action:
- service: input_boolean.turn_off
entity_id: input_boolean.gigi_appena_entrato
- service: tts.google_say
entity_id: media_player.piloty
data_template:
message: >-
{{ [
"bentornato Gigi, ai tuoi ordini " ,
"bentornato a casa mio maestro " ,
"che la forza sia con te " ,
"Ciao Gigi è stata una giornata faticosa? " ,
"non vedevo l'ora tu tornassi a casa " ,
"quando non ci sei la mia vita è vuota " ,
"al tuo servizio mio lord " ,
"memento audere semper mio signore " ,
"ben tornato sono impazziente di eseguire i tuoi comandi "
] |random }}
Questa automazione servirà nel caso appunto che il vostro sensore porta sia attivato (ovviamente andrete a inserire il nome del vostro sensore porta). Nel caso che l'input bolean sia attivo allorà il vostro Google Home eseguirà uno dei saluti in maniera casuale, ovviamente potrete modificare i saluti presenti nell'automazione e aggiungerne o toglierne quanti ne volete.
E' molto probabile che il servizio tts(text to speech) del vostro Google Home non funzioni se avrete attivato la firma ssl sul vostro ddns. Niente panico, tornate sul vostro file configuration.yaml sotto la voce http: e inserite la seguente stringa:
http:
base_url: vostroindominioduckdns.duckdns.org
dove ovviamente alla voce vostrodominioduckdns andate ad inserire il vostro ddns.
Arrivati alla fine!
A questo punto salvate e riavviate il Raspberry. Il risultato lo potrete vedere nel video.
Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.