Vai al contenuto
Home » Domotica Fai da te » Shelly » Shelly Cloud Control API: usare IFTTT con Webhooks

Shelly Cloud Control API: usare IFTTT con Webhooks

    Shelly e IFTTT: guida integrazione con Shelly Cloud API e WebHook

    Vuoi utilizzare i tuoi dispositivi Shelly con la popolare applicazione IFTTT? Scopri come nella mia guida completa in italiano all’integrazione Shelly IFTTT mediante l’uso dei comandi URL Shelly Cloud Control API e Webhooks.

    Leggi anche le mie guide a Shelly Cloud App ed IFTTT in italiano.

    Shelly e IFTTT

    Una delle poche limitazioni della famiglia di dispositivi intelligenti molto popolari come quelli di prima generazione Shelly 1 e Shelly 2.5 o quelli di seconda generazione quali Shelly Plus 1, Shelly Plus 2PM o Shelly Pro 4PM è l’assenza di supporto diretto alla popolare app IFTTT.

    Esiste comunque la possibilità, non esattamente elementare, di integrare Shelly ed IFTTT utilizzando i seguenti servizi:

    Il diagramma di massima di interazione tra i vari servizi è il seguente:

    Shelly e IFTTT con Cloud Control API e Webhooks
    Shelly e IFTTT con Cloud Control API e Webhooks

    IFTTT

    IFTTT è una piattaforma disponibile anche in versione gratuita che permette, in modo molto semplice, di far interagire tra di loro centinaia di applicazioni e dispositivi eterogenei automatizzando un serie di task:

    • Smartphone
    • Applicazioni e servizi in cloud
    • Dispositivi smart (tramite i rispettivi servizi in cloud)
    Come funziona IFTTT in italiano

    Per fare interagire tra di loro applicazioni e dispositivi si utilizzano le cosiddette applets permettendo di fare qualsiasi azione in base ad un evento mediante una semplice programmazione di questo tipo:

    • se accade un determinato evento (trigger)
    • allora esegui una determinata azione (action)

    ovvero, in inglese anziché italiano, IThis, Then That (IFTTT).

    Come configurare un'applet IFTTT

    Per approfondire ulteriormente leggi anche la mia guida ad IFTTT in italiano.

    IFTTT
    Price: Free+
    ‎IFTTT
    Price: Free+

    Purtroppo, come già scrivevo, Shelly non supporta nativamente IFTTT.

    Webhooks per IFTTT

    Webhooks è un servizio di IFTTT che permette di effettuare o ricevere una richiesta web: in questo modo è possibile interagire con applicazioni e servizi che espongono o utilizzano API pubbliche accessibili da internet ma che non sono ancora supportati da IFTTT: esattamente quanto potrebbe fare al caso nostro con Shelly!

    Per poter utilizzare questo servizio, la prima operazione da fare è collegare Webhooks col nostro profilo IFTTT. A questo punto è possibile utilizzare Webhooks all’interno di una applet IFTTT come:

    • evento (trigger) scatenato mediante una richiesta web
    • azione (action) che effettua una richiesta web

    Abbiamo a disposizione dunque la possibilità di gestire l’interazione, in entrambe le direzione, con API pubbliche esterne al contesto IFTTT:

    • Receive a web request: un’applicazione o servizio esterno (Shelly Cloud Control API) invoca una API pubblica (resa disponibile dal servizio Webhooks) per scatenare un evento IFTTT
    • Make a web request: un’azione IFTTT, tramite il servizio Webhooks, invoca una API pubblica (Shelly Cloud Control API)

    Scopri anche come ho utilizzato Webhooks con la centralina irrigazione WiFi OpenSprinkler.

    Webhooks IFTTT: evento (trigger) scatenato mediante richiesta web

    Nel caso di un evento IFTTT (trigger) generato dal servizio Webhooks in seguito ad una richiesta web arrivata dall’esterno dobbiamo definire un’etichetta per identificarlo in modo univoco all’interno della richiesta stessa:

    Webhooks in IFTTT: etichetta evento (trigger)
    Webhooks in IFTTT: etichetta evento (trigger)

    La documentazione relativa al formato delle chiamate web da fare per scatenare l’evento (trigger) lo trovate accedendo alla configurazione del servizio Webhooks sull’app IFTTT:

    Come potete vedere il formato delle richieste web esterne, in POST o GET, da fare per scatenare su IFTTT un evento (trigger) con etichetta {event_name} sul servizio Webhooks con chiave personale {personal_key} e’ il seguente:

    https://maker.ifttt.com/trigger/{event_name}/with/key/{personal_key}

    Anche se con sicurezza ridotta è supportato anche il protocollo HTTP: questo ci servirà successivamente.

    Webhooks in IFTTT: azione (action) che effettua una richiesta web

    Nel caso di un’azione (action) IFTTT, mediante il servizio Webhooks, invochi una API pubblica esterna, possiamo definire tutti i parametri della richiesta web che verrà effettuata:

    Webhooks in IFTTT: azione (action)
    Webhooks in IFTTT: azione (action)

    Questa configurazione dipende ovviamente dall’applicazione esterna da invocare (nel nostro caso sarà una Shelly Cloud Control API).

    Shelly Cloud App – Azioni I/O o Web hook

    L’app Shelly Cloud è quella che permette la gestione dell’ecosistema di dispositivi intelligenti Shelly tramite lo smartphone.

    Tra la varie opzioni disponibili in Shelly Cloud App è possibile configurare a livello di singolo dispositivo l’invocazione di diversi comandi tramite URL esterna (che potrebbe essere una API pubblica) per ciascun tipo di evento generato sul dispositivo. E’ importante evidenziare che i comandi di invocazione URL avvengono direttamente a partire dal dispositivo Shelly che deve poter raggiungere l’endpoint configurato.

    L’interfaccia e le opzioni sono leggermente diverse tra dispositivi di prima generazione (come lo Shelly 1) e di seconda generazione (come lo Shelly Plus 1):

    Shelly Cloud App – Azioni I/O (1a gen)

    Shelly Cloud App - Azioni I/O (1a generazione)

    Shelly Cloud App Web Hooks (2a gen)

    Shelly Cloud App - Web hook (2a generazione)

    Sono supportate sia le chiamate sia in protocollo HTTP che HTTPS.

    Unendo un’Azione I/O o Web hook su Shelly Cloud App ad un evento (trigger) Webhooks su IFTTT, avremo la possibilità di comandare mediante un dispositivo Shelly un’applicazione, servizio o dispositivo su IFTTT. Vedremo successivamente qualche esempio.

    Per approfondire ulteriormente leggi la mia guida a Shelly Cloud App.

    Shelly Cloud Control API

    Per comandare in modo manuale i dispositivi Shelly sono disponibili le modalità seguenti:

    • da smartphone con Shelly Cloud App
    • tramite PC e browser ovunque vi troviate mediante Interfaccia Web (https://my.shelly.cloud/)
    • da PC e browser su rete locale tramite Interfaccia Web a bordo del dispositivo

    Per poter abilitare applicazioni esterne a poter gestire in modo automatico i dispositivi, sono state sviluppate delle Shelly API per facilitare l’integrazione che operano negli scenari seguenti:

    Quanto fa al nostro caso per l’integrazione ad IFTTT tramite Webhooks sono chiaramente le Shelly Cloud Control API.

    Tutte le Shelly Cloud Control API per poter essere utilizzate necessitano di:

    • chiave di autenticazione personale (auth_key) associata al vostro profilo Shelly
    • indirizzo del server in cloud dov’è ospitato il vostro profilo (nel mio caso https://shelly-14-eu.shelly.cloud)

    Potete recuperare queste due informazioni, ad esempio, potete accedere alla sezione Impostazioni utenteChiave Autorizzazione Cloud dell’app Shelly Cloud:

    Per agire sul singolo dispositivo occorre anche l’identificativo che si trova all’interno di ImpostazioniInformazioni Dispositivo:

    Vediamo ora qualche esempio di Shelly Cloud Control API utili a comandare i dispositivi più popolari.

    Shelly Cloud Control API: accensione e spegnimento uscita dispositivo

    La chiamata POST per attivare o disattivare l’uscita di un dispositivo Shelly ha il formato seguente:

    https://{server location link}/device/relay/control/

    dove i parametri obbligatori da inserire sono

    • channel = numero del canale del dispositivo (0 corrisponde al primo)
    • turn = on oppure off (accensione o spegnimento)
    • id = identificativo del dispositivo a cui inviare il comando
    • auth_key = chiave personale associata al nostro profilo Shelly

    Questo e’ un esempio di chiamata di test per accendere il primo canale di uno Shelly 2.5 effettuata con un tool online per invocazione di API (https://reqbin.com/):

    POST /device/relay/control/ HTTP/1.1
    Host: shelly-14-eu.shelly.cloud
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 130
    channel=0&turn=on&id=Ba86f0&auth_key=******

    Per altri casi ed esempi vi rimando a questo documento o alla pagina Controlling device output channels.

    Unendo l’esecuzione di un’azione (action) Webhooks su IFTTT all’invocazione di una Shelly Cloud Control API, avremo la possibilità di comandare da IFTTT un dispositivo Shelly.

    Siamo pronti a vedere qualche esempio concreto di integrazione Shelly ed IFTTT.

    Shelly + IFTTT: esempi di integrazione con Webhooks e Shelly Cloud Control API

    Come abbiamo visto in precedenza abbiamo finalmente tutti i componenti necessari a realizzare l’integrazione tra IFTTT e Shelly.

    Eccovi qualche esempio concreto: sono sicuro che la fantasia non vi porrà limiti nel trovare scenari di utilizzo.

    Shelly + IFTTT: quando l’uscita di Shelly 1 si accende, tracciare su Google Sheets

    In questo caso di integrazione Shelly IFTTT, sono necessari:

    • applet IFTTT con trigger Webhooks ed action su Google Sheets
    • Azione I/O configurata su Shelly Cloud App per invocare il trigger Webhooks
    Shelly Cloud App - Azioni I/O (1a generazione)

    Shelly + IFTTT: quando la temperatura di Sonoff TH16 supera una soglia accendi il primo canale Shelly 2.5

    In questo caso, per comandare lo Shelly 2.5, basta una applet IFTTT con:

    • trigger servizio eWeLink Smart Home sul dispositivo Sonoff TH16
    • action servizio Webhooks per invocare le Sonoff Cloud Control API per il dispositivo Shelly 2.5

    Siamo riusciti a fare collaborare i rivali Shelly e Sonoff tramite IFTTT. Leggi anche il mio articolo Shelly 1 vs Sonoff Mini.

    Leggi tutti i miei articoli su Shelly:

    Iscriviti alla nostra newsletter per rimanere sempre aggiornato

    Ultimo aggiornamento Amazon Affiliate 2024-07-27 at 08:37

    20 commenti su “Shelly Cloud Control API: usare IFTTT con Webhooks”

    1. Ciao, ho bisogno che lo shally mi mandi una mail quando si attiva l’uscita.
      Ho provato con ifttt Webhooks la seconda parte ho messo gmail. La stringa https che mi ha creato funziona perchè se la metto sulla barra di internet mi invia subito la mail ma con shelly no. Sbaglio qualcosa?
      Attendo un riscontro, grazie

    2. Grazie, sono alle prime armi…
      La mia esigenza sarebbe: quando uno Shelly si accende (orario prefissato dalle 04:00 alle 06:00) tramite IFTTT vorrei registrare quel determinato evento in un Calendario di Google.
      È possibile secondo te?

      Grazie

      1. Ciao, si può fare.
        Con Shelly API Cloud dovresti creare un trigger (evento) tramite webhook e con IFTTT puoi usare l’evento per comandare l’azione di aggiornamento del Calendario di google.

    3. Ciao
      Grazie per la guida, sono ai primi passi in questo mondo e non so bene dove orientarmi.

      Volevo fare in modo che la durata del timer del relè dello “Shelly 1” vari in funzione di quanto tengo premuto il pulsante in SW.

      Hai idee su cosa posso usare per ottenere questo risultato?

    4. Buonasera, ho appena acquistato una striscia Led rgbw e uno shelly rgbw2.
      Sono completamente nuovo a questo mondo ma vorrei approfondire.
      Sarebbe possibile creare una cosa tipo questa:
      Al pressione del pulsante si accende la strip led sul bianco
      Alla seconda pressione si accende sul blu
      Alla terza pressione si spegne.
      Grazie in anticipo di tutto.
      Christian

    5. Se avessi necessità di far si che Shelly si accenda tramite schedulazione solo se sono presente in casa?
      Ho domotizzato tramite seriale con un contatto pulito la stufa a pellet e vorrei fare in modo che al mattino parta in automatico solo se sono presente in casa.

      Grazie per l’eventuale risposta.

      Valerio

      1. Ciao Valerio,

        domanda davvero interessante. Purtroppo non sono riuscito a trovare una soluzione con Shelly.

        Puoi sicuramente creare una recipe IFTTT che utilizza come trigger la posizione del tuo smartphone attraverso il servizio di Location e come action l’invocazione delle Shelly Cloud API attraverso il servizio Webhooks.

        Purtroppo nelle API Shelly ho trova esclusivamente la gestione dei timer e non delle schedulazioni.

        Siccome mi piacciono le sfide intellettuali ho provato ad esplorare altre soluzioni con Alexa, IFTTT, eWeLink, Tuya Smart Life.

        Non se sono venuto a capo perché in nessun caso, in modo diretto o indiretto, si può modificare una schedulazione sulla base di un altro evento.

        Ci vuole qualche idea laterale ma per ora mi sfugge.

        1. Buonasera,
          Buon 2022 e grazie per la guida. Scrivo per chiedere un’informazione: é possibile inviare i dati dei consumi dallo Shelly EM ad un foglio google? Ad esempio IFTTT o altro da me non conosciuto (volendo anche Samsung SmartThings).

          Sto monitorando la temperatura / umidità esterne con un Sonoff TH16, riversate su google fogli, e ho creato un’interfaccia / dashboard con google data studio per vedere i grafici (che vorrei implementare con i consumi).

          Grazie

          Saluti
          Luca

          1. Ciao Luca,

            domanda davvero interessante.

            A grandi linee dovrebbe essere possibile in questo modo un po’ articolato:
            1) integrare lo Shelly EM in Home Assistant
            2) esportare automaticamente i dati da Home Assistant in Google Sheets

            Al momento non mi vengono in mente soluzioni più semplici.

    6. Grazie per la guida,

      Una domanda: ho 6 tapparelle con shelly 2.5, e vorrei chiuderle contermporaneamente tramite ifttt con webhooks ma anche se metto in cascata più azioni webhooks mi chiude sempre e solo la prima azione che setto.
      Secondo te come posso scrivere il codice per farle chiudere tutte insieme?

    7. Grazie per la guida,
      se volessi usare i comandi classici shelly senza passare per il cloud come posso inserirli?
      vorrei usarli per un apparecchio che rimane sempre collegato alla rete locale

      grazie
      Matteo

    8. si può ignorare il boby e compilare solamente la stringa url?
      mi spiego, volevo utilizzare come trigger il fatto che il tablet scenda sotto il 15% di batteria per attivare una shelly che gestisce la presa del tablet (ovviamente il tablet è nella rete dello shelly)

      quindi un semplice comando turn on

    9. Grazie mille per la guida.
      Potrebbe funzionare anche con uno Shelly Em? Che al momento ha la grandissima limitazione di poter essere usato in caso di sovraccarico solo per spegnere altri dispositivi collegati con altri shelly.

      Grazie mille

    Lascia un commento

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

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

    La mia Casa Elettrica

    GRATIS
    VISUALIZZA