Molti prodotti per la Casa DOMOTICA e molti servizi SMART sono compatibili con IFTTT.com, questo offre la possibilità di far interagire device molto differenti tra loro, cosa che altrimenti non sarebbe possibile.
Abbiamo già visto che utilizzando Home Assistant installato su Raspberry Pi 3 è possibile mettere in comunicazione tanti prodotti diversi tra loro, tuttavia grazie a IFTTT.com e Webhooks possiamo ampliare questa gamma di prodotti e servizi e far eseguire degli script attraverso gli SMART speaker Google Home e Google Home Mini oppure attraverso qualsiasi smartphone Android con l’assistente Google.
Eseguire degli script configurati all’interno di Home Assistant con gli SMART speaker Google Home e Google Home Mini è possibile solo se impostiamo lo speaker nella lingua inglese, in italiano non vengono eseguiti, ma con IFTTT.com possiamo aggirare il problema.
Vediamo come configurare IFTTT.com all’interno di Home Assistant e utilizzare il servizio WebHook per inviare delle richieste HTTP ed eseguire uno script.
Come usare IFTTT.com con Home Assistant e Google Home Mini
Prima di vedere come collegare IFTTT.com a Home Assistant e utilizzare Webhooks per controllare attraverso gli SMART speaker Google Home e Google Home Mini i nostri prodotti per la Casa Domotica vediamo quali sono i prerequisiti per poter continuare con questa guida.
Prerequisiti per usare IFTTT.com con Home Assistant
Home Assistant installato su Raspberry Pi 3, Come installare Home Assistant su Raspberry Pi 3 – Hass.io.
Accesso sicuro da remoto a Home Assistant, Come accedere a Home Assistant da remoto – Hass.io.
Dispositivo Android, smartphone, tablet con installato Google Assistant, oppure gli SMART speaker Google Home e Google Home Mini.
Avere un account IFTTT.com.
Come configurare IFTTT.com all’interno di Home Assistant
Raggiungere la pagina IFTTT.com ed effettuare il login, è possibile usare sia il PC sia l’applicazione per smartphone.
Su IFTTT.com cliccare su search e digitare “webhooks” cliccare su “connect”, quindi andare in impostazioni (Settings), in questa pagina, sotto Account Info, copiare la API key, che si trova all’interno dell’URL: https://maker.ifttt.com/use/API_Key
Aprire il file configuration.yaml e inserire questo codice:
[code language=”python”]
ifttt:
key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[/code]
Salvare il file configuration.yaml e riavviare Home Assistant, tutto qui.
Vediamo ora un esempio pratico su come sfruttare questo servizio con Home Assistant.
All’interno del nostro sistema di sicurezza per la casa domotica potrebbe essere utile chiedere aiuto a Google in caso di pericolo, semplicemente pronunciando “Ehi Google, aiuto!” oppure “Ehi Google, aiutami”.
In seguito a questa richiesta d’aiuto si potrebbe attivare una sirena interna alla casa, oppure una esterna, accendere tutte le luci in casa, far lampeggiare le luci esterne di casa anche se è meglio tenerle accese se avete telecamere esterne di sicurezza, effettuare una chiamata verso qualcuno con un messaggio preimpostato.
Come usare IFTTT.com e Home Assistant con gli SMART speaker Google Home e Mini per la sicurezza in Casa
Ho già scritto un articolo su come usare i prodotti Xiaomi Mi Smart Home all’interno di Home Assistant come allarme per la casa, Xiaomi Mi Smart Home come Allarme per la Casa Domotica e Xiaomi Mi Smart Home e Home Assistant (Hass.io) su Raspberry Pi 3 come Allarme per la Casa Domotica.
A questo sistema d’allarme possiamo aggiungere questa “feature”: se sono in casa e per qualsiasi motivo mi sento in pericolo dicendo allo smart speaker “Ehi Google, aiuto!” facciamo eseguire uno script all’interno di Home Assistant che attiva una presa intelligente della Xiaomi collegata ad una sirena, fa partire una chiamata verso uno più numeri a nostra scelta con un messaggio preimpostato, accende tutte le luci interne di casa, mentre fa lampeggiare di rosso quelle esterne alla propria abitazione.
Prima creiamo la script google_aiuto che andrà inserito nel file configuration.yaml
[code language=”python”]
script:
google_aiuto:
alias: "Google Aiuto"
sequence:
– service: notify.twilio_home
data:
message: "Hi, I’m Enore. Help Me Please, I’m in danger"
target:
– +39339xxxxxx
– +39327xxxxxx
– service: tts.google_say
entity_id: media_player.ufficio
data_template:
message: "Ok, ho chiamato i vicini e la polizia"
language: ‘it’
cache: false
– service: homeassistant.turn_on
data:
entity_id: group.luci_google_aiuto
– service: homeassistant.turn_on
data:
entity_id: group.luci_esterne
brightness: 255
rgb_color: [255, 51, 51]
– service: homeassistant.turn_on
data:
entity_id: switch.plug_158dxxxxxxxxxx
– delay:
seconds: 1
– service: script.turn_on
data:
entity_id: script.flash_luci_esterne
flash_luci_esterne:
alias: Light flash on
sequence:
– service: homeassistant.turn_on
data:
entity_id: group.luci_esterne
– delay:
seconds: 1
– service: homeassistant.turn_off
data:
entity_id: group.luci_esterne
– service: script.turn_on
data:
entity_id: script.loop_luci_esterne
loop_luci_esterne:
alias: Light flash loop
sequence:
– delay:
# time for flash light off
seconds: 1
– service: script.turn_on
data:
entity_id: script.flash_luci_esterne
stop_google_aiuto:
alias: "Stop Google Aiuto"
sequence:
– service: script.turn_off
data:
entity_id: script.google_aiuto
– service: script.turn_off
data:
entity_id: script.flash_luci_esterne
– service: script.turn_off
data:
entity_id: script.loop_luci_esterne
[/code]
In questo esempio per chiamare qualcuno in caso di pericolo utilizzo twilio.com, la versione free genera una chiamata preceduta da un annuncio, per eliminare questo annuncio è necessario acquistare del credito twilio che verrà scalato di volta in volta quando si generano delle chiamate, ogni chiamata ha il costo di 0,04 dollari la ricarica minima è di 20 dollari.
Questo servizio può essere molto utile anche per l’allarme di casa creato con Home Assistant e per essere avvisati attraverso una chiamata vocale con messaggio preimpostato quando scatta l’allarme.
L’unico difetto che ho riscontrato nell’utilizzo di twilio.com con Home Assistant è che il messaggio da trasmettere dev’essere in inglese, o meglio può essere scritto anche in italiano ma viene letto in inglese. Purtroppo questo è un limite di Home Assistant e non di twilio.com che supporta anche l’italiano.
Creare un nuovo account twilio.com, seguire le indicazioni quindi accedere a twilio.com e nella Dashboard troverete indicati ACCOUNT SID e AUTH TOKEN.
Dopo essersi registrati assicurarsi che ci sia il segno di spunta per “Italy” nella pagina dove vanno impostati i Voice Geographic Permissions.
Aprire il file configuration.yaml e inserire questo codice.
[code language=”python”]
twilio:
account_sid: ACCOUNT_SID_FROM_TWILIO
auth_token: AUTH_TOKEN_FROM_TWILIO
[/code]
Sempre nel file configuration.yaml inserire questo codice.
[code language=”python”]
notify:
– name: twilio_home
platform: twilio_call
from_number: +39349xxxxxx
[/code]
Nel sito twilio.com andare in All product & Services, quindi selezionare Phone Numbers, Verified Caller IDs, cliccare sul simbolo + e inserire i numeri di cellulare verso i quali volete inviare SMS di notifica o chiamate vocali. Per la verifica riceverete una chiamata al numero di smartphone inserito, digitare il codice mostrato sul sito con il tastierino numerico del telefono.
Il codice che all’interno dello script permette di effettuare la chiamata è il seguente.
[code language=”python”]
– service: notify.twilio_home
data:
message: "Hi, I’m Enore. Help Me Please, I’m in danger"
target:
– +39339xxxxxx
– +39327xxxxxx
[/code]
In questo caso effettuo una chiamata contemporaneamente verso due numeri di telefono, ma potrei inserirne anche altri, l’importante è che sia tra quelli verificati su twilio.com (Verified Caller IDs)
Proseguendo nell’esecuzione dello script viene inviata una frase da riprodurre allo Smart speaker Google Home, questo utilizzando il servizio Text-To-Speech (tts) configurato all’interno di Home Assistant, questa parte la mostrerò meglio in un articolo dedicato, sta a voi scegliere se è meglio riprodurre qualche frase oppure no.
Lo script google_aiuto prosegue con l’accensione di alcune luci di casa raggruppate nel gruppo “group.luci_google_aiuto”, mentre le luci esterne vengono accese e impostate sul colore rosso.
La parte che fa accendere una delle migliori prese intelligenti come qualità/prezzo, Xiaomi Smart Plug, dove è inserito un alimentatore 12V che alimenta una sirena d’allarme è questa.
[code language=”python”]
– service: homeassistant.turn_on
data:
entity_id: switch.plug_158dxxxxxxxxxx
[/code]
Gli script flash_luci_esterne e loop_luci_esterne servono per far lampeggiare le luci esterne creando un loop.
Lo script stop_google_aiuto server per interrompere tutti gli script attivati in precedenza e faremo in modo di attivarlo quando diremo all’assistente personale Google una frase del tipo “Ok Google, sono salvo”
Impostati gli script dobbiamo attivarli attraverso Google Home o Google Home Mini, purtroppo non è possibile farlo attraverso l’integrazione di Google Assistant all’interno di Home Assistant come abbiamo visto nell’articolo Speaker Google Home con Home Assistant e Raspberry Pi 3, funziona solo se gli SMART speaker di Google sono configurati in lingua inglese e poi dovremmo dire una frase del tipo “Ok Google, turn on nome_script” un po’ troppo lunga.
Raggiungere il sito IFTTT.com quindi selezionare My Appplets e poi cliccare su New Applet, cliccare sulla scritta in azzurro + this e nel campo di ricerca cercare “google assistant”, cliccare su Google Assistant.
Nella pagina successiva, Choose trigger, cliccare su “Say a simple phrase”. Se non l’avete già fatto sarà richiesto di collegare il vostro account Google.
In What do you want to say? inserire la frase da dire a Google Home, nel nostro caso “aiuto”, in What’s another way to say it? e And another way? inserire due varianti della stessa frase.
In What do you want the Assistant to say in response? è possibile inserire la frase di risposta che vi darà Google Assistant, inserirla solo se nello script non si utilizza una frase di risposta personalizzata creata all’interno di Home Assistant con il servizio Text-To-Speech (tts). Se non si vuole ricevere alcuna risposta dal parte dell’assistente personale Google in questo campo va inserito un carattere speciale (non-printable character) come questo character: ̢ infatti anche se lasci vuoto questo campo Google risponderà con una frase del tipo: “Ok, eseguo l’azione richiesta”.
In Language impostare Italian.
Cliccare su Create trigger e cliccare su + that.
Nel campo di ricerca inserire Webhooks, quindi in Choose action cliccare su Make a web request.
Nel campo URL va inserito l’URL di accesso da remoto ad Home Assistant installato su Raspberry Pi 3, l’URL sarà del tipo https://tuo_dominio.duckdns.org:8123/api/services/script/turn_on?api_password=TUA_API_PASSWORD
la API_PASSWORD è quella inserita nel file configuration.yaml
[code language=”python”]
http:
api_password: YOUR_PASSWORD
[/code]
In Method selezionare POST.
In Content Type selezionare application/json.
In Body inserire il codice:
[code language=”python”]
{"entity_id":"script.google_aiuto"}
[/code]
Cliccare su Create action e quindi su Finish
Ora seguiamo la stessa procedura per far eseguire lo script stop_google_aiuto, più che altro serve per interrompere il lampeggiare delle luci esterne.
Il risultato di tutto questo è possibile vederlo in questo breve video, dove però ho scollegato la sirena perché l’ho girato di notte ( i miei bimbi erano già a letto) per fare vedere l’accensione delle luci e il lampeggiare delle luci esterne.
Come usare IFTTT.com con Home Assistant e Google Home Mini nella Casa DOMOTICA – Conclusioni
In quest’articolo abbiamo visto come è semplice integrare IFTTT.com all’interno di Home Assistant, le possibilità di di utilizzo sono veramente molte e grazie a IFTTT.com è possibile far dialogare dispositivi per la cada domotica che altrimenti non potrebbe essere utilizzati all’interno di Home Assistant.
In questo esempio abbiamo visto come inviare una richiesta HTTP a Home Assistant, ma possiamo fare anche il contrario, quindi potremmo sfruttare Webhooks per gestire l’impianto di irrigazione SMART per la Casa Domotica, che ha come centralina programmabile il Sonoff 4CH Pro, all’interno di Home Assistant. Chi segue TopDiGamma.it sa che per usare i prodotti Itead Sonoff con di Home Assistant è necessario flashare il firmware Tasmota, magari lo vedremo meglio in un articolo dedicato.
Se hai in mente altre idee per sfruttare al meglio Home Assistant e IFTTT oppure hai domande da fare lascia un commento a quest’articolo.
Molto interessante! È possibile attivare un automotismo invece che uno script?
È necessario attivare l’API di Home Assistant? Nelle nuove versioni sembra che possano dialogare attraverso l’integrazione (anche se io non sono riuscito), ti risulta?
Grazie mille
Quanto ho verificato la configurazione di HA dopo aver messo l’api_password ho avuto questo messaggio di errore:
Invalid config for [http]: [api_password] is an invalid option for [http]. Check: http->http->api_password.
Molto interessante! È possibile attivare un automotismo invece che uno script?
È necessario attivare l’API di Home Assistant? Nelle nuove versioni sembra che possano dialogare attraverso l’integrazione (anche se io non sono riuscito), ti risulta?
Grazie mille
Quanto ho verificato la configurazione di HA dopo aver messo l’api_password ho avuto questo messaggio di errore:
Invalid config for [http]: [api_password] is an invalid option for [http]. Check: http->http->api_password.