Conta passaggi con una Barriera Laser, Shelly 1 e Google Sheet

Conta passaggi con una Barriera Laser, Shelly 1 e Google Sheet

di Vincenzo Caputo

31 Marzo 2020

Guide

Vincenzo Caputo

Qualche settimana fa abbiamo pubblicato un interessante articolo (e relativo video) che aveva come argomento la realizzazione di una barriera laser con uno Shelly 1 e altri semplici ed economici componenti tra cui un diodo laser e un relè con fotoresistenza.

Come costruire una barriera LASER a monitoraggio remoto con uno Shelly 1

Barriera Laser DIY - ulteriori test ed evoluzioni sempre con Shelly 1

La prima applicazione pratica che viene in mente quando si guarda quel progetto è sicuramente quella relativa alla sicurezza di un determinato ambiente.

È facile infatti immaginare di posizionare gli estremi della barriera sui montanti di una porta o di una finestra e di fare in modo di essere allertati nel caso in cui la barriera venga violata.

Naturalmente sarebbe possibile anche attivare scenari di altro tipo, come l'accensione di una luce di cortesia o qualsiasi altra cosa vi venga in mente.

Oggi andiamo a vedere un particolare campo di applicazione del progetto barriera laser:

contapassaggi o contapersone.

A molti infatti è venuta l'idea di usare questo sistema magari per contare oggetti in uscita da un macchinario, o addirittura contare le galline che escono dal pollaio, ecc...

Naturalmente lo Shelly 1 da solo no sarebbe in grado di fare una cosa del genere, semplicemente perchè non è pensato per questo.

Dunque sono andato a ripescare alcuni miei vecchi progetti dai quali prendere dei pezzi che potessero in qualche modo essermi utili a raggiungere l'obiettivo.

Qualche anno fa ho proposto un video, del quale poi recentemente ho pubblicato anche un articolo sul Blog, su come realizzare un marcatempo con Tasker e Google Sheet.

Come creare un orologio marcatempo con Tasker e Google Drive

L'idea che mi è venuta in mente è stata quella di istruire lo Shelly 1 per visitare un URL preimpostato che andasse ad aggiungere un record ad un foglio di calcolo appunto in Google Sheet, similmente a come faceva Tasker per inserire le timbrature del marcatempo.

Questo è possibile tramite la ACTION di Shelly.

Cosa sono le ACTIONS di Shelly?

Con un recente aggiornamento software, Shelly ha incluso la possibilità di lanciare dei comandi HTTP a seguito del verificarsi di particolari condizioni sul dispositivo.

Shelly Actions

Di seguito ad esempio un elenco delle condizioni alle quali è possibile assegnare un comando HTTP con lo Shelly 1:

  • All'accensione del pulsante fisico collegato su SW 
  • Allo spegnimento del pulsante fisico 
  • Alla pressione prolungata del pulsante fisico
  • Alla pressione breve del pulsante fisico
  • Uscita sul morsetto O attivata
  • Uscita sul morsetto O disattivata

Negli altri dispositivi della famiglia Shelly naturalmente le condizioni saranno diverse.

Per esempio sullo Shelly Door/Window le condizioni saranno legate alle porta aperta o chiusa, sullo Shelly EM al carico rilevato sulla linea ecc...

Il principio in ogni caso rimane lo stesso, se accade un evento tra quelli disponibili, lo Shelly di turno è in gradi di visitare un URL a nostro piacere.

In linea di principio sarebbe stato sufficiente immettere l'url giusto, in riferimento al nostro foglio Google Sheet, per ottenere la marcatura dell'interruzione della barriera laser.

Sfortunatamente l'url da utilizzare è veramente molto lungo e lo Shelly 1 ha pochissima memoria disponibile per questa operazione.

Sostanzialmente provando ad incollare l'indirizzo che andrebbe utilizzato, si ottiene un errore di stringa troppo lunga.

Ho dovuto ripiegare dunque su una diversa soluzione passando per IFTTT usando le famose WebHooks.

Incredibile dover fare questo giro solo per ottenere un url più corto! ... ma non mi vengono in mente altre soluzioni, no! TinyURL non è una soluzione!

Dunque procediamo per ordine, impostando prima Google Drive, poi IFTTT ed infine usando il tutto dentro lo Shelly 1

 IMPOSTIAMO GOOGLE DRIVE

Sicuramente tutti sanno che è sufficiente possedere un account Google per poter accedere gratuitamente ad uno spazio di archiviazione su Google Drive, una sorta di chiavetta USB remota. Lo spazio di archiviazione gratuito è di 15 GB ed è più che sufficiente per stoccare le informazione dei nostri file di timbrature per tempi lunghissimi. Si tratta infatti di informazioni testuali che notoriamente occupano pochissimo spazio di archiviazione.

Accedete dunque al vostro Google Drive e create una cartella dedicata al progetto chiamandola "contapassaggi" o come più vi piace.

Conta passaggi con una Barriera Laser, Shelly 1 e Google Sheet

Successivamente cliccate su Nuovo-altro-Moduli di Google 

Conta passaggi con una Barriera Laser, Shelly 1 e Google Sheet

Nella schermata che segue potrete dare un nome al modulo (io l'ho chiamato Contapassaggi Vincenzo) e potrete scegliete il tipo di risposta alla domanda. Scegliete "risposta beve" nell'elenco di quelle disponibili come vedete nell'immagine successiva.

Creazione modulo google

Spostatevi ora sul tab Risposte e cliccate su creazione foglio di lavoro.

Nella schermata successiva scegliete Crea nuovo foglio di lavoro e successivamente Crea, in alto a destra.

Collegamento foglio di calcolo a modulo Google

Se vi recate ora nella cartella di Google Drive, che avete creato in precedenza, troverete due file. Uno è il modulo domande, che servirà a Tasker per inserire i dati, l'altro è il foglio elettronico dove i dati verranno realmente registrati sotto forma di record dei passaggi.

Cartelle di Google Drive

Aprite (facendo doppio clic) il modulo creato dentro Google Drive (Passaggi Vincenzo nell'esempio) e cliccate INVIA in alto a destra. Nella schermata che segue cliccate il simbolo del link al centro della pagina per raggiungere la la posizione delle seguente immagine

Conta passaggi con una Barriera Laser, Shelly 1 e Google Sheet

Copiate il link che appare (e prendetene nota perchè servirà dopo dentro IFTTT) e incollatelo in un nuovo tab del Browser Web. Vi comparirà la pagina del modulo domande di Google con la casella da compilare. Se scrivete manualmente qualcosa nel campo la tua risposta e cliccate su INVIA, potrete osservare un nuovo record aggiunto nel relativo foglio di calcolo collegato che avete nella stessa cartella in DRIVE.

Ma il nostro obiettivo è quello di fare in modo che lo Shelly 1 faccia automaticamente questo lavoro al posto nostro. Quindi cliccate con il tasto destro del mouse sul campo vuoto delle risposte e scegliete nel menu contestuale la voce ispeziona (la guida è realizzata usando Google Chrome).

Apparirà sulla destra una pagina piena di codice comprensibile solo agli sviluppatori software. Non temete, non dovrete necessariamente comprendere nulla di quello che vi è scritto, l'importante è che identifichiate (nel testo evidenziato) la voce entry. seguita da alcuni numeri (es.entry.3632998754). Prendete nota anche di questo valore perchè sarà necessario usarlo nel comando nel webhooks di IFTTT.

Conta passaggi con una Barriera Laser, Shelly 1 e Google Sheet

CONFIGURIAMO IFTTT

Scaricate l’applicazione IFTTT o loggatevi al servizio online (https://ifttt.com) da PC previa registrazione.Una volta loggati dovrete ricercare, tramite il finder (Search) di IFTTT, il servizio webhooks e naturalmente connetterlo al vostro IFTTT.

Creare Applets su IFTTT

A questo punto siamo pronti per creare un'applets su IFTTT che reagisca alle ACTIONS di Shelly.

Vediamo come fare: cliccando su My Applets e poi su new applet vi ritroverete di fronte alla famosa domanda if this then that del servizio IFTTT

Conta passaggi con una Barriera Laser, Shelly 1 e Google Sheet

premete su +this e nella barra di ricerca di IFTTT, cercate il servizio webhooks e cliccateci sopra.Cliccate adesso sull’unico riquadro che vi si apre chiamato Receive a web request.Sotto Event Name scrivete una parola che rappresenta il comando che effettuerà quest'azione (es. passaggi). Se decidete di scrivere un nome composto da due parole ogni parola dovrà essere separata dal carattere _ quindi premete il pulsante create trigger.

Adesso premete su +that, andate a cercare ancora una volta il servizio webhooks e cliccateci sopra. Vi appariranno diversi campi da compilare.

Screenshot IFTTT

Sarà sufficiente compilare il solo campo url, lasciando invariati tutti gli altri.

A questo punto vi sarviranno i dati di cui vi ho fatto prendere nota in fase di configurazione di Google DRIVE.

Avevate preso nota di una stringa simile alla seguente:

https://docs.google.com/forms/d/e/1FAIpQLSeRaoyZ0EJmTF1QwdwCNGXLzNIOVEImrMWGgbUj4RmA1jTThQ/viewform?usp=sf_link

e di un codice simile al seguente:

entry.363299726

Le due stringhe vanno combinate nel seguente modo

https://docs.google.com/forms/u/0/d/e/1FAIpQLSeRaoyZ0EJmTF1QwdwCNGXLzNIOVEImrMWGgbUj4RmA1jTThQ/formResponse?entry.363299726=passaggio

Come potrete facilmente osservare variano solo dopo l'ultimo /

Sostituite viewform?usp=sf_link con formResponse? e aggiungete il vostro equivalente di  entry.363299726 seguito da = e il testo che volete in timbratura.

Premete su create action, successivamente levate la spunta alla notifica ad esecuzione del servizio e salvate. Avrete creato il vostro applet. 

Ora non ci resta che reperire la stringa da inserire nelle ACTION di Shelly.

Come reperiamo questa stringa?

La parte fissa della stringa la reperite nei settings del servizio webhooks su IFTTT alla voce URL come potete osservare nella seguente immagine

webhooks url

Esattamente la parte che vi serve è quella finale (quella che nell'esempio è cancellata con il segno rosso)

La parte iniziale e variabile della stringa invece è composta così:

https://maker.ifttt.com/trigger/accendi/with/key/

Da notare che ad un certo punto c'è esattamente con la parola che abbiamo inserito quando abbiamo creato l'applet (nel mio caso passaggi).

La stringa definitiva sarà la somma delle due ed esattamente nel mio esempio come segue:

https://maker.ifttt.com/trigger/accendi/with/key/xxxxxxxxxxxxx

Dove le xxxxx andranno sostituite con il codice preso dalle impostazioni di webhooks (ricordate quello che io ho cancellato di rosso)

Per utilizzare tutto con Shelly non vi resterà altro da fare che copiare l'URL generato all'interno di Actions di Shelly come nell'esempio:

Shelly Cloud ACTIONS

A questo punto, ogni volta che interromperemo la barriera laser, otterremo l'aggiunta di un nuovo record ti timbratura al nostro Google Sheet.

Nel seguente video potrete apprezzare il sistema in funzione. 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

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.

Disqus loading...