Guida Integrazione IFTTT

Guida Integrazione IFTTT

Cos’è IFTTT è l’acronimo di “If This Then That” letteralmente “Se Questo Allora Quello”, significa ad ogni evento far corrispondere un’azione. Nell’ambiente di Home Assistant questo ci è utile per interagire con i dispositivi che non si integrano direttamente con esso, purtroppo potremmo si comandarli ma non avremmo un feedback di ritorno. Se ad esempio accendiamo una lampada non sapremmo se era già accesa o meno. Un’altra funzione interessante, tra le molteplici applicazioni che offre il servizio di IFTTT, è personalizzare i comandi vocali di Google Assistant per creare delle azioni. Essendo però il servizio di IFTTT  su di un server esterno ci sarà una latenza tra il comando e l’esecuzione di 3 o 4 secondi.

I requisiti minimi per usare questo servizio è di avere un dominio https raggiungibile dall’esterno della vostra rete domestica. Se non lo avete ancora seguite la guida: Configurazione DuckDns

 

IFTTT

Iniziamo andando nel sito https://ifttt.com/ dove potremmo registrarci in diversi modi tramite l’account di Google, di Facebook o la registrazione tramite e-mail.

WEBHOOKS

Andiamo ora ad abilitare il servizio webhooks e recuperiamo la Key dall’applet che ci servirà poi per configurare Home Assistant. Andiamo a questo indirizzo https://ifttt.com/services/maker_webhooks/settings ed eseguiamo questi piccoli passaggi:

 

 

 

 

Clicchiamo su Connect La Key sarà l’ultima parte dell’url https://maker.ifttt.com/use/1hLCJm14h6o-Rsz5zJrkQ

 

Ora ci spostiamo sul file configuration.yaml di Home Assistant e aggiungiamo queste due righe con la key appena vista sopra:

Possiamo a questo punto riavviare Home Assistant.

 

ESEMPIO 1: Comandi vocali personalizzati

Con questo esempio faremmo eseguire uno script in Home Assistant tramite comando vocale sul Google Home Mini che farà partire il robot Vacuum nella pulizia di una determinata zona.

 

Configuriamo ora IFTTT

Creiamo una New Applet in IFTTT

 

Poi selezioniamo +this

Digitiamo Google Assistant e premiamo sull’icona.
Dovremmo, per la prima volta, abilitare il servizio ed inserire le credenziali del vostro account Google

Selezioniamo la prima a Say a simple phase

 

Compiliamo le varie parti, le prime 3 saranno le frasi che Google Home interpreterà per azionare questo comando, invece la 4 voce sarà la risposta che lui darà nella lingua impostata.
Poi premiamo su Create trigger.

 

Premiamo su +that

 

 

Digitiamo Webhooks e selezioniamo l’icona

 

 

Selezioniamo Make a web request

 

 

  1. Su URL dovrete scrivere l’indirizzo del vs. dominio nel seguente modo: http://ilmiodominio.duckdns.org:8123/api/service/script/turn_on?api_password=ApiPassword
    la potra :8123 dovrete o meno metterla in base a come accedete ad HA, ApiPassword è la api_password che avrete configurato sotto la dichiarazione http: nel file configuration.yaml.
    script/turn_on sono i servizi disponibili in HA li trovate elencati nell’icona , sono divisi da un punto in questo modo script.turn_on, turn_on invece dovrà essere scritto come nell’esempio.
  2. Selezioniamo su MethodPOST
  3. Selezioniamo su Conect Type: application/json
  4. Nell’ultima riga Body andrà specificato quale entità verrà azionata {“entity_id”: ” script.robot_pulizia_sala”} in questo caso lo script.

Infine diamo un nome all’applet che abbiamo appena creato

Per testare il funzionamento ci basterà dire, rivolgendoci al Google Home: “Ok google aspira la sala” lui risponderà: “Ok procedo con la pulizia” e lo script verrà lanciato.

ESEMPIO 2: Comandare un dispositivo non integrabile tramite HA

Nel secondo esempio vi mostrerò come comandare un Sonoff con Firmware originale in due modi diversi usando la medesima configurazione in IFTTT, tramite uno switch o un boolean in Home Assistant.

Iniziamo creando due azioni in IFTTT applique_onapplique_off le quali andranno ad accendere o spegnere il sonoff tramite l’app eWeLink. I nomi dell’azione Webhook applique_on e applique_off, che configureremo più avanti, dovranno essere gli stessi che useremmo poi per configurare Home Assistant.

 

Creiamo una New Applet in IFTTT

 

Poi selezioniamo +this

 

Digitiamo Webhooks e selezioniamo l’icona

 

Selezionare Make a web request

 

Scriviamo applique_on che dovrà essere lo stesso nome che è stato usato nella dichiarazione dello script.applique_on e premiamo Create trigger

 

Premiamo su +that

 

Digitiamo ewelink e selezioniamo l’icona.
Abilitiamo il servizio ed inseriamo le credenziali di eWeLink dove sarà già associato il sonoff

 

selezioniamo Turn 1 Channel Plug on or off

 

ora selezioniamo Luce Applique che sarà la nostra lampada controllata dal sonoff e su Turn on or Off mettiamo on
Poi premiamo su Create action

 

Infine diamo un nome univoco all’applet che abbiamo appena creato.

Ora non ci resta che create un altro Applet scrivendo come trigger applique_off su webhook e come azione su eWeLink Turn off

Così ora potremmo comandare il sonoff con firmware originale tramite Home Hassistant. Vediamo ora i due diversi modi.

 

Tramite SWITCH:

Creiamo prima una variabile input_boolean che ci servirà per ricordare lo stato del dispositivo:

Poi creiamo due script che andrà ad accendere o spegnere il nostro dispositivo. Su event: il nome che gli diamo dovrà essere lo stesso che useremo più avanti nella configurazione di IFTTT.

Ora per finire creiamo uno switch template che utilizzerà gli script per fare l’azione tramite IFTTT di accensione e di spegnimento mentre imput_boolean (la nostra memoria) ci ricorderà lo stato del dispositivo e di conseguenza dello switch, è stato aggiunto anche icon_template in questo modo invece dell’icona a forma di lampo che ha lo switch è stata sostituita con l’icona della lampadina accesa o spenta. Le icone le potete trovare sul link: https://materialdesignicons.com/

Questo sarà il risultato ottenuto

 

 

 

Tramite INPUT_BOOLEAN:

È possibile comandare un dispositivo con IFTTT tramite un input_boolean. Prenderemo come esempio la stessa configurazione di IFTTT con le due Applet applique_onapplique_off.

Dovremmo creare un input_boolean che ci servirà per azionare il sonoff come semplice interruttore e due automazioni che richiameranno il servizio di IFTTT per acendere o spegnere il sonoff.

Per rendere graficamente più gradevole l’icona del boolean sul file customize.yaml aggiungiamo queste righe

in alternativa il colori per l’icona si possono scrivere nel modo RGB

Questo sarà il risultato ottenuto

 

In fondo vi lascio il link pkg_ifttt.zip con il package che racchiude tutte le dichiarazioni in HA che sono state trattate in questo articolo.

 

10 risposte

  1. Carlo ha detto:

    Ho seguito la guida ma mi da questo errore:

    Error loading /home/homeassistant/.homeassistant/configuration.yaml: while scanning a simple key in “/home/homeassistant/.homeassistant/configuration.yaml”, line 169, column 1 could not find expected ‘:’ in “/home/homeassistant/.homeassistant/configuration.yaml”, line 171, column 1

    Come posso risolvere?
    Grazie

    • Enrico ha detto:

      È difficile capire quale sia il tuo errore in base al log ma sicuramente un errore di spazi, HA è molto pignolo per uno spazio in più o in meno si blocca tutto

      • Carlo ha detto:

        Grazie ho risolto era un problema di virgolette. Ho provato e funziona tutto. Solo una cosa…lo switch cliccandoci sopra in accensione funziona mentre se provali spegnere non spegne la lampadina ma ritorna in posizione accesa. È normale oppure ho sbagliato io qualcosa?
        Grazie

  2. Michele ha detto:

    Riscontro l’errore Unable to make web request. Your server returned a 404
    Ho controllato e ricontrollato il dominio risponde nn è che è sbagliato qualcosa nella guida?

  3. Raffaele ha detto:

    Buonasera, come posso creare un trigger in Webhooks per uno Shelly. Grazie in anticipo

  4. Davide ha detto:

    Salve, se volessi creare piu’ switch per comandare diversi rele’? dovrei fare copia e incolla cambiando solo i nomi? (attuatore 1, attuatore 2 ecc ecc).
    Facendo cosi’, mi da errore.

  5. emidio ha detto:

    Salve, ottima guida, io non sono riuscito ad integrare IFTTT Webhook, in HASSIO ultima versione.

  6. Renato ha detto:

    Ciao,
    ho seguito la guida dell’esempio 1.
    Ho creato uno script per fare andare il ventilatore alla massima velocità,
    utilizzo ifan2 tasmotato…..
    lo script forzandolo manualmente funziona, ma non tramite ifttt.
    Nel log di Hassio trovo questo errore:
    Received invalid data from IFTTT. Data needs to be formatted as JSON: {“entity_id”: ” script.ventilatore_camera_hig”}

    Lo script è il seguente:
    ventilatore_camera_hig:
    alias: Ventilatore camera – High
    sequence:
    – data:
    speed: high
    entity_id: fan.ventilatore_camera
    service: fan.set_speed

    La chiamata è fatta:
    URL: https://xxxxxxxxxxxxxxxx.duckdns.org:xxxx/api/webhook/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    Method: POST
    Content Type: application/json
    Body: {“entity_id”: ” script.ventilatore_camera_hig”}

    Dove sbaglio?
    grazie
    renato

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Advertisment ad adsense adlogger