Come geolocalizzare uno Smartphone con Tasker e Home Assistant

Come geolocalizzare uno Smartphone con Tasker e Home Assistant

di Vincenzo Caputo

03 Marzo 2018

Tasker

Vincenzo Caputo

Ho scritto qualche settimana fa un articolo per mostrare come geolocalizzare uno smartphone su Home Assistant grazie all'applicazione Owntracks. Alcuni utenti mi hanno fatto giustamente notare che l'applicazione è stata abbandonata dallo sviluppatore e che andava trovato un metodo alternativo per ottenere lo stesso risultato. Prendendo spunto dall'idea di Nicola Bertelli, che ringrazio pubblicamente, ho messo a punto la procedura che ora andrò a descrivere che ci permetterà di usare Tasker al posto di Owntracks

Vi ricordo che Home Assistant dispone di una mappa basata su OpenStreetMap sulla quale possiamo definire e gestire delle aree di interesse e dove possiamo osservare in tempo reale la posizione dei dispositivi geolocalizzati.

Inoltre possiamo attivare dei simpatici indicatori nella pagina principale di HA, che ci mostrano al volo se i dispositivi controllati sono o meno in una delle aree definite (in casa, a lavoro, a scuola, ecc…).

Piccola nota: come tutte le tecnologie, anche questa può essere usata per scopi più o meno nobili. Vi ricordo pertanto che tracciare la posizione di una persona a sua insaputa, viola il diritto alla privacy e vi espone a possibili azioni legali. Quindi sottolineo ulteriormente, qualora la cosa fosse passata come sottintesa, che questo articolo serve solo ad illustrare possibili applicazioni di Domotica legati alla geolocalizzazione di uno o più dispositivi mobili. 

Il metodo che presenterò in quest’articolo prevede l’utilizzo dell’app Tasker da installare sul dispositivo da monitorare. Tale applicazione andrà configurata per comunicare ad intervalli predefiniti la posizione del dispositivo ad Home Assistant.

Quindi avremo due configurazione da effettuare, una sullo smartphone e una su Home Assistant.

Configurazione Smartphone:

Scaricate e installate Tasker dal playstore, apritelo e create un nuovo task chiamandolo come più vi piace (es. locHA).

Le azioni che comporranno il task saranno le seguenti:

  • GET LOCATION in questa azione chiederemo a Tasker di geolocalizzare lo smartphone. Vi raccomando di utilizzare l'opzione NET nel campo Source
  • VARIABLE SET in questa azione creeremo una variabile (campo name) assegnandole con un nome a piacimento (es. %HApos) e le assegneremo il valore (nel campo To) della variabile %LOCN
  • VARIABLE SPLIT in questa azione divideremo la variabile appena creata (%HApos) in due variabile usando come splitter il valore , (virgola)
  • HTTP GET in questa azione invieremo i dati ad Home Assistant: Nel campo server va inserita la seguente stringahttp://indirizzo_ip_pubblico:8123/api/gpslogger?latitude=%HApos1&longitude=%HApos2&device=nome_a_piacere&api_password=api_password

    Api password è impostata nella sezione http di configuration.yaml di HA. 

Con questo sistema si possono aggiungere anche la PERCENTUALE di batteria del telefono e altri dati quali i satelliti, la precisone ecc...

Naturalmente questo task andrà collegato ad un profilo di tipo TIME dove andremo a scegliere la frequenza con cui Tasker invierà i dati ad HA. Quindi aggiungete un profilo scegliendo la tipologia TIME, poi fate TAP su EVERY, scegliete Minutes o Hours e la relativa frequenza (es. every 5 minutes). Uscite e collegate il profilo al task precedentemente creato (nell'esempio locHA).

Configurazione Home Assistant:

Come al solito dobbiamo aprire il file configuration.yaml in modalità utente Root. Per prima cosa apriate il terminale sul vostro Raspberry e digitiate il comando:

sudo pcmanfm (come al solito è necessario ricordare che gli spazi tra un comando e l’altro sono indispensabili) e premete il tasto invio.

questo comando vi permetterà di entrare nel file manager di Raspbian in modalità utente Root in maniera tale da avere i permessi per modificare cartelle e file all’interno del vostro Raspberry.

Come geolocalizzare uno Smartphone con Tasker e Home Assistant

in seguito dovrete digitare nella barra di ricerca il seguente percorso:

/home/homeassistant/.homeassistant e a seguito premere invio

Come geolocalizzare uno Smartphone con Tasker e Home Assistant

In cima al file configuration.yaml troverete tra le primissime righe le voci Latitude e Longitude, seguite ciascuna da alcuni valori numerici. Questi numeri rappresentano le coordinate che HA identifica come Casa. Per curiosità ho sparato dentro Maps le coordinate che erano preconfigurate dopo la prima installazione di HA e mi sono ritrovato da qualche parte in America. Quindi come fare a sostituire quei numeri con quelli equivalenti alla posizione di casa nostra? Facile, aprite Google Maps ed andate a trovare casa vostra facendo un doppio click con il mouse proprio sopra casa vostra. Vedrete che nella barra degli indirizzi del browser le coordinate cambieranno restituendovi una stringa simile alla seguente:

https://www.google.it/maps/@40.6871497,16.5471079,20.25z?hl=it

Facile intuire che la parte numerica sia quella che vi interessa. Copiate la prima parte (quella che inizia con 40 fino alla virgola) e sostituitela, nel file configuration.yaml, con quella scritta nella voce Latitude e la seconda parte (quella che inizia con 16 sempre fino alla virgola) con quella scritta nella voce Longitude.

Ok, adesso abbiamo detto ad HA quel’è casa nostra. Ma se vogliamo definire altre zone da far riconoscere ad HA oltre che casa? Basterà andare in coda al file configuration.yalm oppure dove trovate la parola zone ed aggiumgere una stringa come nel seguente esempio:

zone:  - name: lavoro (oppure il nome della zona che state definendo)  latitude: 40.6871497 (coordinate individuate su Maps con lo stesso distema indicato in precedenza)  longitude: 16.5471079  radius: 250 (raggio di estensione dell'area che andate a definire)

Definite in questo modo, sotto la parola zone (che quindi non andrà riscritta) tutte le aree che desiderate.

Ora sempre nel file configuration.yaml andiamo ad aggiungere in coda un ulteriore stringa per informare HA che stiamo lavorando con il servizio di GPSlogger. Scrivete esattamente la stringa come segue:

device_tracker:  - platform: gpslogger

Chiudete il file, salvate e riavviate il sistema. Se avete fatto tutto bene vedrete delle schermate dentro Home Assistant come le immagini di esempio a seguire.

 

Come geolocalizzare uno Smartphone con Tasker e Home Assistant

 

Come geolocalizzare uno Smartphone con Tasker e Home Assistant

Ora vi lascio al solito video dimostrativo e vi saluto augurandovi una 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...