Recensione Shelly i3, come funziona e come usarlo via MQTT in Home Assistant
di Luigi Duchi
05 Luglio 2020
Domotica
Come anticipato qualche giorno fa proprio su questo Blog (https://www.vincenzocaputo.com/shelly/shelly-7-new-smart-home-devices-427), Allterco ha presentato ben 7 nuovi dispositivi dedicati al modo Smart Home.
Alcuni di questi dispositivi sono disponibili da subito, altri sono in arrivo nei prossimi mesi.
Tra i dispositivi disponibili, ed attualmente in nostro possesso, c'è lo Shelly i3.
Lo Shelly i3 è acquistabile sullo store Shelly al seguente link:
https://shop.shelly.cloud/shelly-i3-wifi-smart-home-automation#363
Lo Shelly i3 è il primo modulo (della famiglia Shelly) che non presenta un relè al suo interno, non avendo di conseguenza neanche un'uscita comandabile.
A cosa serve allora un dispositivo del genere?
Le potenzialità di questo device in realtà sono molto ampie possedendo ben 3 ingressi.
Nella foto sopra potete osservare una semplice tipologia di cablaggio ovvero 3 pulsanti connessi ognuno ad un ingresso.
A quale scopo?
Lo Shelly i3 riesce a riconoscere varie tipologie di posizione del pulsante o dell'interruttore ad esso collegato.
8 possibilità a dire il vero:
- interruttore acceso
- interruttore spento (le prime due disponibili solo in modalità TOGGLE)
- pressione
- pressione prolungata
- doppio click
- triplo click
- pressione breve + lunga
- pressione lunga + breve
Ad ognuna di queste azioni si potrà associare un operazione conseguente da far eseguire ad un altro Shelly all'interno della stessa rete o, perché no, farsi mandare una notifica all'attivazione della funzione.
Non avendo il relè, le dimensioni dello Shelly i3 sono decisamente più piccole rispetto ad agli altri componenti della famiglia Shelly.
Parliamo di 36,7 mm di altezza, 40,6 di larghezza e solamente 10,4 mm di profondità.
lo Shelly i3 non presenta neanche morsetti per connettere i fili.
Sul suo corpo sono presenti dei cavetti sui quali poter connettere altri conduttori.
Lo Shelly i3 può essere alimentato a 230V AC e quindi anche gli ingressi potranno sopportare tale tensione (sia che si decida di portarci la fase, o si decida di portarci il neutro) oppure in alternativa si potrà utilizzare bassa tensione da 24V a 60V DC.
Ovviamente in questo caso sui 3 ingressi andrà portata la bassa tensione.
NOTA BENE
Lo schema riportato qua sopra è quello corretto. Quello incluso nella confezione invece, relativo al collegamento in corrente continua (DC), è errato (perlomeno quello ricevuto da me). Sicuramente nei successivi lotti di produzione verrà modificato il libretto delle istruzioni.
Non ci dilungheremo sulla modalità di accoppiamento in quanto identica a tutti gli altri Shelly.
Fate riferimento eventualmente ai numerosi articoli già pubblicati in passato per gli altri dispositivi della famiglia Shelly.
Una volta che lo Shelly i3 sarà connesso alla vostra rete Wi-Fi, la schermata che vi troverete di fronte sarà una cosa del genere.
La schermata mostrerà i 3 ingressi e il relativo stato.
Dalla schermata principale delle impostazioni potrete settare la durata della pressione prolungata ovvero il tempo necessario, espresso in ms, che il pulsante collegato ad uno degli ingressi debba rimanere premuto per svolgere l'azione.
Questo se avete utilizzato la funzione long press che vedremo dopo.
Allo stesso modo si potrà settare la pausa, espressa sempre in ms, necessaria al pulsante per svolgere un azione in modalità doppio o triplo click.
Il mio consiglio è quello di lasciare questi valori di default essendo più che sufficienti a svolgere l'azione in maniera distinta tra una modalità e l'altra.
Nell'altro menù, oltre a poter settare le impostazioni della rete Wi-Fi come di consueto, si potrà abilitare la modalità avanzata e di conseguenza anche il protocollo MQTT (dopo vedremo come fare).
Vi ricordo inoltre che la modalità avanzata è disponibile solo se vi connettete al vostro Shelly i3 da un browser.
Visualizzandolo sull'applicazione questo passaggio è volutamente disabilitato per impedire ai meno esperti di andare a cambiare l'impostazione.
Funzionamento:
Passiamo adesso a vedere come di preciso funziona lo Shelly i3.
Ricordo che questo dispositivo non possiede relè a bordo, ma semplicemente riuscirà a leggere l'input di un pulsante o eventualmente di un interruttore
Andando a cliccare su una delle 3 uscite sulla schermata principale, si potrà programmare l'azione da compiere all'attivazione di una tipologia di pressione del pulsante connesso allo Shelly i3.
In pratica si potrà assegnare un comando http da svolgere all'attivazione di una delle tipologie di pressione.
Le prime due voci sono da usare in caso di interruttore mentre le altre sono funzioni si possono svolgere se c'è un pulsante attaccato all'ingresso.
Come detto è possibile inserire un comando http.
Ad esempio potremo comandare uno Shelly1 (o qualsiasi altro Shelly) tramite una stringa http.
Ma tramite questa stringa potrete ovviamente comandare anche altri dispositivi o attivare servizi di altro genere come IFTTT WebHooks o Autoremote di Taker, tanto per citare due esempi noti.
Prenderemo come esempio l'accensione e lo spegnimento di uno Shelly1 mediante la pressione del pulsante collegato allo Shelly i3.
Per prima cosa vi rimando alla pagina ufficiale delle API Shelly in modo che da poter trarre tutti i comandi che vi servono per i vari dispositivi della famiglia.
https://shelly-api-docs.shelly.cloud/#shelly-family-overview
Ad esempio il comando http per accendere uno Shelly 1 è il seguente
http://indirizzoip/relay/0?turn=on
Dove indirizzo ip è l'indirizzo ip assegnato dal vostro router allo Shelly 1.
es. http://192.168.1.134/relay/0?turn=on
Allo stesso modo potrete spegnere il vostro Shelly 1 con il comando :
http://192.168.1.134/relay/0?turn=off
Se invece vorrete accenderlo e spegnerlo con il medesimo comando, ad esempio alla pressione del medesimo pulsante sullo Shelly i3, userete:
http://192.168.1.134/relay/0?turn=toggle
vediamo come configurare il comando http sullo Shelly i3.
Nel mio caso ho configurato lo Shelly sulla pressione breve del pulsante.
...ovviamente avrei potuto configurare come long press, 2xclick , 3xclick, Long press+ short press oppure short press+long press.
E nulla mi avrebbe vietato di assegnare un comando http diverso per ognuna di quelle modalità.
Parliamo di MQTT
Non c'è ancora della documentazione ufficiale a riguardo o perlomeno io non ho trovato nulla.
Però ho notato che, se si abilità la modalità MQTT e si compiono delle azioni, lo Shelly i3 genererà un topic del genere.
shellies / shellyix3-XXXXXXXX / input _ event / 0
dove le xxxxxxxx sono il codice identificativo del proprio Shelly e lo 0 è relativo al 1 canale.
Il secondo canale è raffigurato con un 1 ed infine il terzo canale di input è raffigurato da un 2.
Tenendo presente che invece la pressione dei tasti sarà nel payload interpretata come
S = single click, SS = double, SSS = triple, L = long, SL = short+long press, LS = long+short press
si potrebbe realizzare un automazione del genere in Home Assistant:
- alias: prova shellyi3
initial_state: true
trigger:
- platform: mqtt
topic: shellies/shellyix3-xxxxxxxx/input_event/0
condition:
- condition: template
value_template: '{{ (trigger.payload_json[''event''] ==''S'' ) }}'
action:
- service: light.toggle
entity_id: light.prova
dove nel value_template si può sostituire la S con una delle altre modalità a scelta sopraindicate e nel topic si può variare l'input semplicemente variando lo 0 con 1 o 2.
Questa automazione funziona perfettamente su Home Assistant.
Tuttavia c'è un piccolo problema da risolvere.:
l'update_period dell'MQTT fa in modo che la lampada si accenda e spenga da sola in un loop infinito. ...va azzerato questo valore!
Purtroppo non è presente l'impostazione nei parametri dell'app Shelly Cloud (o perlomeno io non l'ho trovata da nessuna parte), sarà necessario quindi scaricare un programma come POSTMAN che potrete reperire QUI (Grazie ALE!!)
una volta scaricato apritelo e cliccate sul simbolo + presente in foto
successivamente dove trovate scritto GET cliccate sulla freccia verso il basso e selezionate la voce POST e accanto digitate http://192.168.1.143/settings ovviamente inserite al posto dell'indirizzo ip l'indirizzo del vostro Shelly i3.
successivamente selezionate la voce body e appena sotto spuntate la voce
x-www-form-urlencoded.
Nel campo key inserite la voce mqtt_update_period e alla voce value inserite uno 0
infine cliccate il pulsante blu send
Questa operazione andrà fatta solo la prima volta e non sarà necessario rifarla in seguito.
Dopo questa configurazione potrete fare tutte le automazioni che vi servono su Home Assistant.
Vi lascio al solito video di fine articolo.
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.