GPS Tracker Map: La tua Dashboard di Viaggio in Home Assistant
GPS Tracker Map: Your Travel Dashboard for Home Assistant
Un'integrazione personalizzata per monitorare i percorsi del tuo smartphone, rilevare soste automatiche e analizzare statistiche di viaggio direttamente nella tua dashboard.
🌍 Perché un'integrazione GPS personalizzata?
Molti utenti di Home Assistant utilizzano l'app Companion per il monitoraggio della posizione, ma visualizzare lo storico dei percorsi in modo fluido e intuitivo non è sempre semplice con le card standard.
GPS Tracker Map nasce per colmare questo vuoto, offrendo una mappa interattiva basata su Leaflet che trasforma i dati di geolocalizzazione in informazioni visive chiare e professionali.
✨ Funzionalità Principali
- Mappa Dark: Un'estetica curata che si integra perfettamente con i temi scuri di Home Assistant.
- Percorso Dinamico: La linea del percorso cambia colore in base alla velocità (verde per camminate, rosso per l'auto).
- Rilevamento Soste: Algoritmo automatico che identifica dove ti sei fermato per più di 10 minuti, segnandolo con marker gialli.
- Timeline Cliccabile: Una barra laterale cronologica per saltare istantaneamente a un momento specifico della giornata.
- Statistiche di Viaggio: Calcolo automatico di distanza totale, velocità massima e tempo di percorrenza.
🛠️ Sotto il Cofano: Tecnologie e Architettura
Dal punto di vista tecnico, il progetto è una Single Page Application (SPA) integrata come Custom Panel in Home Assistant. Ecco le scelte architetturali principali:
- Leaflet.js & OSM: Ho scelto Leaflet per la sua leggerezza e flessibilità. A differenza di Google Maps, l'uso di OpenStreetMap garantisce che l'estensione rimanga gratuita al 100% e priva di chiavi API complesse da gestire.
- Colorazione Polyline in base alla velocità: Il percorso non è un'unica linea, ma una serie di segmenti collegati. Ogni segmento viene renderizzato con un colore calcolato dinamicamente:
Verde (< 5km/h) -> Giallo (< 25km/h) -> Arancione (< 50km/h) -> Rosso (> 80km/h). - Algoritmo di Clustering per le Soste: Per evitare di affollare la mappa, l'integrazione analizza i timestamp dei punti GPS. Se la distanza tra punti consecutivi rimane sotto una certa soglia per più di 10 minuti, il sistema aggrega i punti e genera un marker "Sosta", calcolandone automaticamente la durata.
- Integrazione API HA: Il frontend comunica con il backend di Home Assistant tramite
Websocket APIeREST APIper recuperare lo storico degli stati dell'entitàdevice_tracker, minimizzando il carico sul database SQL di HA.
🚀 Installazione via HACS (Consigliato)
Il modo più rapido per installare l'integrazione è tramite il Home Assistant Community Store (HACS):
- Apri HACS nel tuo Home Assistant.
- Clicca sui tre puntini in alto a destra e seleziona "Custom repositories".
- Incolla l'URL del repository:
https://github.com/genzo76/ha-gps-tracker - Seleziona "Integration" come categoria e clicca "Add".
- Cerca ora "GPS Tracker Map" nell'elenco di HACS e clicca su Download.
- Riavvia Home Assistant.
🛠️ Configurazione Post-Installazione
Una volta riavviato, vai su Impostazioni -> Dispositivi e Servizi -> Aggiungi Integrazione e cerca "GPS Tracker Map". Segui i passaggi della configurazione guidata selezionando l'entità device_tracker del tuo smartphone.
Generazione del Token di Accesso
Per funzionare correttamente nel pannello laterale, l'integrazione richiede un Long-Lived Access Token:
- Clicca sul tuo nome profilo in HA (in basso a sinistra).
- Scorri fino in fondo a "Token di accesso di lunga durata".
- Crea un nuovo token chiamato "GPS Tracker" e copialo.
- Incolla il token nelle impostazioni del pannello GPS Tracker quando richiesto.
panel_custom:
- name: gps_tracker_map
sidebar_title: GPS Tracker
sidebar_icon: mdi:map-marker-path
url_path: gps_tracker_map
module_url: /local/custom_components/gps_tracker_map/panel/index.html
🎯 Conclusione
Con questa integrazione, Home Assistant smette di essere solo uno strumento di controllo e diventa un potente diario di viaggio privato. Tutti i dati rimangono all'interno del tuo server, garantendo la massima privacy rispetto a servizi cloud di terze parti.