Come creare un orologio marcatempo con Tasker e Google Drive

Tasker

Scritto da Vincenzo Caputo

Chi mi segue da tempo, probabilmente, lo fa per merito di Tasker. I miei primissimi progetti infatti facevano uso proprio della fantastica applicazione per Android che, a mio parere, rimane ancora di gran lunga la migliore app in circolazione. 

Tra i vari progetti ed esperimenti che ho realizzato con Tasker ce n'è uno in particolare che vorrei riproporre oggi scrivendo questa guida sul Blog, anni fa infatti usavo solo YouTube per mostrare il risultato delle mie idee.

A dimostrazione di quanto Tasker sia versatile e possa essere usato in tantissimi campi d'applicazione, oggi mostreremo come poter creare un sistema di rilevazione presenze, o marcatempo che dir si voglia, che non ha nulla da invidiare alle soluzioni commerciali ben più costose.

Il sistema si basa interamente su Tasker e si poggia sul Cloud di Google Drive per scrivere le timbrature direttamente su un foglio di calcolo di Google Documents. E' inutile che sottolinei quanto sia evoluto un approccio del genere, con i dati accessibili ovunque e con la libertà di non dover possedere server locali per la conservazione delle informazioni con conseguente risparmio in termini di acquisto di Hardware e gestione e manutenzione dello stesso.

Tutto quello che servirà per realizzare questo progetto è un dispositivo Android con Tasker a bordo.

Vi ricordo che Tasker è un app che esiste solo per Android e che è scaricabile sul PlayStore al seguente link:

https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=it

 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 arichiviazione.

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

Successivamente cliccate su Nuovo-altro-Moduli di Google 

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

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.

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 di timbrature. Naturalmente potrete generare una coppia di questi file per ogni collaboratore di cui vorrete monitorare gli orari di entrata e di uscita.

IMPOSTIAMO TASKER

Premetto che le seguenti indicazioni fanno riferimento a Tasker impostato con la lingua Inglese, quindi se lo usate in Italiano, probabilmente non troverete perfetta corrispondenza con le indicazioni che vi darò. Regolatevi di conseguenza!

Come farà Tasker a scrivere all'interno del foglio di Google Drive?

Tramite il comando HTTP Post, Tasker scriverà dentro il Modulo Google creato che a sua volta modificherà aggiungendo un record al foglio di calcolo su DRIVE.

Ma per fare questo ci servirà raccogliere un po' di dati prima di procedere:

Aprite (facendo doppio clic) il modulo creato dentro Google Drive (Timbrature 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

Copiate il link che appare (e prendetene nota perchè servirà dopo dentro Tasker) 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 fogli di calcolo collegato che avete nella stessa cartella in DRIVE. Ma il nostro obiettivo è quello di fare in modo che Tasker 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 HTTP Post di Tasker.

A questo punto abbiamo tutto quello che ci serve per fare la prima prova dentro Tasker.

Create subito un nuovo Task e una nuova azione HTTP Post all'interno.

Come potete osservare nella precedente immagine abbiamo usato la prima stringa di cui abbiamo preso nota, nel campo Server:Port

Piccola nota: la stringa, nel mio caso 

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

va copiata in Tasker omettendo quanto scritto dopo l'ultimo /

Nel mio caso diventa quindi:

https://docs.google.com/forms/d/e/1FAIpQLSeRaoyZ0EJmTF1QwdwCNGXLzNIOVEImrMWGgbUj4RmA1jTThQ

Nel campo Path scrivete invece formResponse

e nel campo Data / File invece il secondo valora appuntato (nel mio caso entry.363299726) seguito da =testochevolete, nel mio caso ho scritto entry.363299726=ingresso per simulare una prima timbratura in ingresso.

Se eseguite questo comando in Tasker, vedrete apparire sul foglio di Google Drive un primo record con la data, l'orario e il testo della timbratura

Ora si tratterà solamente di elaborare il task in maniera tale da contemplare tutti i tipi di timbrature di cui abbiamo bisogno (ingresso, uscita, pausa pranzo, trasferta, ecc...)

Come procedere: faremo un esempio con due tipi di timbrature (ingresso e uscita) e due utenti (Vincenzo e Luigi).

Create quindi un altra coppia di file all'interno della cartella di Google Drive esattamente come in precedenza, cioè un modulo e un foglio di calcolo ad esso collegato. Naturalmente questa volta lo chiamate Timbrature Luigi (o come vi pare).

Prendete naturalmente nota dei link esattamente come fatto nell'esempio precedente.

Ritorniamo su Tasker riprendendo il task creato per prova con il comando HTTP post.

Per prima cosa duplicate il comando (oppure ne create uno identico) cambiando solamente la parola dopo entry.363299726= scrivendo questa volta uscita. Avrete adesso un Task con 2 comandi consecutivi uno che scrive un record di ingresso e uno che ne scrive uno di uscita. Questo Task chiamatelo Timbrature Vincenzo e per adesso lasciatelo così com'è, dopo faremo ulteriori modifiche.

Spostatevi ora nel Tab VARS e create due variabili: %Scegliutente (assegnategli il valore 0001) %Timbratura (assegnategli il valore di 0)

Tornate al Task Timbrature Vincenzo e assegnate un IF per ognuna della due azioni create impostando la variabile %Timbratura come 0 nel caso di ingresso e su 1 in caso di uscita. Dovreste ottenere una cosa simile all'immagine seguente.

Ora Tasker sarà in grado di timbrare selettivamente due valori diversi sul foglio di calcolo di DRIVE. Naturalmente potrete prevedere quanti tipi di timbrature vorrete aggiungendo nuove azioni.

Create ora un nuovo Task e chiamatelo Scegli utente. Aggiungete un azione di tipo Variable Query e configuratela come nell'immagine seguente.

Aggiungete ancora un azione di tipo Perform Task facenzo eseguire il task Timbrature Vincenzo e successivamente ancora un Perform Task con il task Timbrature Luigi. Ognuno di questi due Task deve avere un IF sulla variabile %Scegliutente come mostrato nella seguente immagine.

Ora passiamo ai Task che daranno inizio al tutto e cioè i Task TimbrIngresso, TimbrUscita, ecc... andranno fatti tutti nello stesso modo ed uno per ogni tipo di timbratura. 

Prendiamo come esempio il TimbrIngresso che naturalmente potrete chiamare come più vi piace:

Create un nuovo Task chiamandolo appunto come desiderate.

Aggiungete un azione Variable Set che imposta la variabile %Timbratura su 0, poi aggiungete una seconda azione Perform Task che esegue il task Scegli Utente.

Naturalmente dovrete creare tanti Task uguali a questo quanti sono i tipi di timbratura che desiderate ottenere, cambiando solo il valore a cui impostate la variabile %Timbratura, che naturalmente dovrà corrispondere all'IF nell'HTTP Post.

I task TimbrIngresso, TimbrUscita, ecc... potrete collegarli (dopo avergli assegnato un icona) sulla Home del dispositivo che sarà messo a disposizione per fare da marcatempo (un tablet probabilmente).

Facendo TAP su una delle icone vi verrà chiesto di inserire dei valori che corrisponderanno ad un codice PIN assegnato ad ogni utente. Nell'esempio ho assegnato 0001 a Vincenzo e 0002 a Luigi.

Naturalmente in base al pin che inserirete verrà inserita una timbratura nel relativo file su Drive con specificato anche i tipo di timbratura (ingresso, uscita, ecc...) 

I più attenti ricorderanno che il progetto originario, che avevo proposto in passato, faceva uso di tag NFC per l'autenticazione dell'utente. Ho deciso in questa nuova versione di sostituire il tag con un PIN Utente per diversi motivi:

  • Intanto non dovrete acquistare dei Tag NFC
  • Eviterete che nel caso in cui l'utente dimentichi il propio tag a casa sia impossibilitato a timbrare
  • I dispositivi quali Tablet e Smartphone hanno il lettore NFC sul lato opposto al display, il che ne rende problematica la lettura se posizionati a parete.

Il progetto può essere ulteriormente perfezionato aggiungendo indicazioni testuali tramite Widget comandato direttamente da Tasker, o messaggi vocali di conferma, benvenuto, ecc...

Vi aspetto numerosi nei commenti per conoscere il vostro parere su questa guida e per ulteriori chiarimenti.

In coda propongo il vecchio video girato qualche anno fa (non proprio eccezionale) in attesa di poter realizzare una versione migliore e più aggiornata. 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