Come gestire lo Shelly 1 direttamente da Tasker

Tasker

Scritto da Vincenzo Caputo

Se c'è un aspetto in particolare che ci ha colpito da quando abbiamo provato i primi dispositivi della famiglia Shelly, è la facilità con cui sia possibile utilizzare questi dispositivi anche al di fuori del loro ambiente nativo, nonchè al di fuori del Cloud Shelly.

Per esempio Luigi Duchi ha più volte mostrato come usare il protocollo MQTT, nativamente supportato da tutti i dispositivi Shelly, per integrare questi ultimi all'interno di Home Assistant.

Quello che più colpisce è che non è necessaria alcuna modifica software o hardware. Si usa lo Shelly esattamente "come mamma l'ha fatto!"

Questo mi ha portato a chiedermi se si potesse in qualche modo usare i dispositivi Shelly anche tramite Tasker, direttamente, senza alcun Plug-in e senza dover modificare nulla.

Mi sono messo subito alla ricerca di documentazione ufficiale e ho presto scoperto che i dispositivi Shelly rispondono direttamente a molti comandi HTTP.

La documentazione, a cui ho fatto riferimento, è reperibile al seguente link:

https://shelly-api-docs.shelly.cloud

Sarà sufficiente incollare la stringa giusta nella barra degli indirizzi di un Browser Web per poter, per esempio, sperimentare l'accensione o lo spegnimento del relè interno, oppure semplicemente interrogare il dispositivo per conoscere lo stato in cui si trova.

Chi usa Tasker sa bene che tra le azioni disponibili ci sono sia HTTP GET che HTTP POST. Sarà quindi sufficiente usare questi comandi con le giuste stringhe HTTP per comandare o interrogare i dispositivi.

In realtà Tasker, quando cerchiamo di usare uno dei due comandi citati, ci avvisa che sono stati sostituiti dal comando HTTP Request. Ad una mia prova ho verificato che funzionano sia i vecchi comandi che il nuovo. Quindi usate pure quello che preferite.

COME PROCEDERE

Premetto che la prova che segue l'ho effettuata con uno Shelly 1, ma è facilmente applicabile anche agli altri dispositivi della famiglia.

Vi ricordo che lo Shelly 1 è acquistabile su Amazon ai seguenti link:

https://amzn.to/32DVPP0 (confezione singola)

https://amzn.to/2LQRjWV (confezione doppia)

Naturalmente per prima cosa dovrete individuare l'indirizzo IP locale del vostro Shelly, per farlo potrete consultare l'app proprietaria Shelly Cloud entrando nelle impostazioni-device information. Potrete leggere il device id, indirizzo IP e rete WiFi a cui è connesso.

Oppure potrete usare l'app Fing Network facendo una scansione della vostra rete alla ricerca del dispositivo.

In ogni caso prendete nota dell'indirizzo ip e andate a scrivere dentro la barra degli indirizzi di un Browser web la seguente stringa per fare una prova:

http://10.243.138.100/status

Al posto di 10.243.138.100 dovrete scrivere l'indirizzo IP del vostro Shelly.

Se tutto è andato per il verso giusto nella pagina web dovrebbe apparire una stringa simile a questa:

Questa prova sta a dimostrare come lo Shelly risponda ad una richiesta HTTP restituendo in questo caso delle info del dispositivo. 

Se tutto è andato a buon fine potrete iniziare a incollare, sempre nella barra degli indirizzi di un Browser web, altri tipi di stringhe come ad esempio:

http://10.243.138.100/relay/0?turn=on

Dopo aver fatto invio sentirete il relè dello Shelly scattare ed eventualmente vedrete accendersi quello che avete collegato in uscita sullo Shelly (una lampadina o altro).

Ricordatevi sempre che la prima parte del comando rappresenta l'indirizzo ip dello Shelly sulla rete locale e che nel vostro caso dovrete sostituire quei numeri con quelli che avete individuato sul vostro dispositivo.

Naturalmente basterà usare la stringa seguente:

http://10.243.138.100/relay/0?turn=off

... per ottenere lo spegnimenti del relè

Lo stesso comando può essere utilizzato per monitorare lo stato del relè dello Shelly. Usando la seguente stringa infatti...

http://10.243.138.100/relay/0

... riceverete un risultato come quello qui di seguito

{"ison":false, "has_timer":false}

Se il relè fosse stato acceso al posto del primo false avreste letto true

Dopo vedremo come poter popolare una variabile all'interno di Tasker e poter monitorare lo stato dello Shelly per realizzare degli automatismi.

Nel link della documentazione Shelly in cima all'articolo potrete trovare molti altri comandi gestibili in questo modo, ad esempio inviando la seguente stringa potrete attivare o disattivare l'accesso dello Shelly al proprio Cloud:

http://10.243.138.100/settings/cloud?enabled=1  ... oppure 0 se volete disabilitare!

Non sto a farvi l'elenco completo di tutto quello che sia possibile fare tramite comandi HTTP perchè potrete facilmente ricavarlo dalla documentazione Shelly ufficiale.

COME FARE ALL'INTERNO DI TASKER

Come detto poco più sopra, sarà sufficiente creare un comando di tipo HTTP Request, come potete osservare nella seguente immagine:

Da notare che ho lasciato come Method GET e subito sotto (nel rigo URL) ho incollato la stringa esattamente come ho fatto in precedenza nel Browser Web. A seguito dell'esecuzione di questo comando otterremo l'accensione del relè interno.

Nella prima riga di questo comando possiamo anche leggere la variabile che conserva i dati delle richieste HTTP: %http_data

Nel caso volessimo conoscere lo stato del relè, basterà realizzare un comando HTTP Request con la stringa http://10.243.138.100/relay/0

La variabile %http_data verrà popolata con:

{"ison":false, "has_timer":false}

Se splittiamo opportunamente questa variabile (io per comodità ho prima copiato il contenuto della variabile %http_data in una nuova variabile %MioShelly) tramite il comando Variable SPLIT (io ho dovuto splittarla due volte, la prima con la virgola (,) e la seconda volta con i due punti (:) potremo ottenere il valore False o True a seconda che il relè sia acceso o spento.

Con questo dato, conservato in una variabile, potremmo per esempio cambiare icona sulla Home del nostro smartphone ad una lampadina (icona lampadina accesa o icona lampadina spenta) o creare qualsiasi altra automazione ci viene in mente.

Vi ricordo che lo Shelly 1 è acquistabile su Amazon ai seguenti link:

https://amzn.to/32DVPP0 (confezione singola)

https://amzn.to/2LQRjWV (confezione doppia)

Nel video che segue potrete osservare tutta la procedura con dei piccoli esempi sul mio smartphone. Buona visione!

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.

Vincenzo Caputo

Nato a Matera, il 1° novembre 1977. Sono da sempre appassionato di tecnologia e ho un'esperienza lavorativa ventennale nel settore IT. Mi piace sperimentare e cercare sempre nuove soluzioni e soprattutto mi piace comunicare le mie esperienze agli altri.


Vai ai commenti