Installazione di TeslaMate: una seconda instanza di Grafana?🤨

Oggi ho finalmente installato sul mio home server TeslaMate, il datalogger per chi possiede una Tesla. Questo tool permette di avere una comoda dashboard con innumerevoli dati relativamente al vostro veicolo elettrico ed una delle caratteristiche più interessanti è la connessione con Grafana, che permette di visualizzare tutti i dati raccolti sulla nota applicazione per la visualizzazione e l’analisi interattiva dei dati.

Ho quindi consultato la documentazione e dato uno sguardo alla guida per l’installazione su Docker: è previsto un file docker-compose.yml, io uso portainer, creo quindi uno stack TeslaMate e vi incollo il contenuto del file, ma… mi accorgo che TeslaMate include una versione modificata di Grafana e di Mosquitto già configurate al 100%, ed io (come tanti presumo) ho già un’istanza di Grafana funzionante e presto un’istanza di Mosquitto.

Dovrei lanciare una seconda istanza di Grafana su una porta differente? abbastanza sporca come soluzione, ma la documentazione di TeslaMate non propone valide alternative, per cui mi fiondo su Google e cerco se qualcuno si è già trovato dinanzi a questo dubbio, intanto rimuovo dal file docker-compose.yml le parti relative a Grafana e Mosquitto e lancio l’installazione dei container rimanenti, ovvero l’app vera e propria ed il suo database PostgreSQL.

Su Google trovo due pagine, entrambe su GitHub, “Best Practice: A second Grafana and Mosquitto?” e “Update install document for existing grafana instance” ma entrambe le soluzioni proposte mi lasciano qualche perplessità ed onestamente ad un primo test non hanno nemmeno funzionato. In particolare la seconda pagina prevede una modalità automatica con uno script che promette di svolgere parte del lavoro, ma devo ammettere che soluzioni di questo tipo mi lasciano un po’ perplesso se non è chiaro fino in fondo cosa svolgano tali script, per cui inizio a studiarlo per capire più a fondo le operazioni che effettua.

In pratica questo script imposta 3 volumi aggiuntivi su Grafana, copia un file di configurazione relativo al dataset e tutte le dashboard in formato json presenti all’interno della cartella grafana di TeslaMate… ma perché fare tutto questo attraverso uno script, che per giunta non funziona?

Come ho risolto

Capito quindi il meccanismo ho deciso di configurare TeslaMate su Grafana manualmente, attraverso l’interfaccia grafica di Grafana. Questa soluzione mi permette di avere tutte le modifiche sotto controllo, mi permette di aggiornare le dashoboard facilmente quando uscirà un aggiornamento di TeslaMate, mi permetterà di svolgere tutte queste operazioni anche in remoto se ho accesso a Grafana e non alla macchina e soprattutto mi permette di poter disinstallare tutto e ripristinare Grafana pulito qualora decidessi di farlo. Vediamo quindi come ho fatto.

I passaggi per collegare TeslaMate a Grafana

Prima di tutto su Portainer ho collegato Grafana alla stessa rete di TeslaMate, questo per rendere possibile il collegamento di Grafana al database di Teslamate.

Grafana si collega alla stessa rete di TeslaMate

Successivamente ho aggiunto sul container di Grafana una nuova variabile di ambiente, che permette di installare i plugin necessari al funzionamento della dashboard di TeslaMate:

GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=natel-discrete-panel,pr0ps-trackmap-panel,panodata-map-panel,natel-plotly-panel

A questo punto ho avviato Grafana ed accedendo alla console direttamente sul container ho installato i plugin necessari con il seguente comando:

grafana-cli --pluginsDir /var/lib/grafana/plugins plugins install pr0ps-trackmap-panel 2.1.2 &&
         grafana-cli --pluginsDir /var/lib/grafana/plugins plugins install natel-plotly-panel 0.0.7 &&
         grafana-cli --pluginsDir /var/lib/grafana/plugins --pluginUrl https://github.com/panodata/panodata-map-panel/releases/download/0.16.0/panodata-map-panel-0.16.0.zip plugins install grafana-worldmap-panel-ng

Questo è il momento in cui è possibile creare il dataset. Andiamo quindi sulla pagina di configurazione dei dataset e scegliamo come sorgente PostgreSQL. Impostiamo TeslaMate come nome del dataset, poi host, username, database name e password impostati su TeslaMate, disabilitiamo “TLS/SSL Mode”, clicchiamo su “Save & test” per verificare se la connessione funziona. Se Grafana non riuscisse a collegarsi al database di TeslaMate significa che qualcuno dei dati inseriti non è corretto oppure che Grafana non si trova sulla stessa rete di TeslaMate.

A questo punto possiamo creare le dashboard, clicchiamo su “New” ed aggiungiamo una nuova cartella dal nome “TeslaMate”, una dal nome “Internal” ed un’ultima dal nome “Reports”, prendendo spunto dalla configurazione vista sulla versione completa di TeslaMate. Scarichiamo quindi TeslaMate da GitHub ed estraiamo la cartella “grafana”. Al suo interno ci saranno una serie di file json e due cartelle, internal e reports appunto. Clicchiamo quindi su “New” > “New Dashboard” ed import, selezioniamo uno alla volta tutti i file json presenti nella cartella grafana. Al termine spostiamo tutte le dashboard nella cartella “TeslaMate” in modo da raggrupparle. Rimangono quindi le dashboard presenti in Internal e quella presente in Reports, ripetiamo lo stesso procedimento spostando poi le dashboard nelle relative cartelle. Al termine ci ritroveremo con una struttura di questo tipo:

TeslaMate dashboard su Grafana

L’ultimo passaggio necessario a questo punto è di impostare l’url di Grafana sulle impostazioni di TeslaMate.

Abbiamo visto quindi come installare TeslaMate e collegarlo ad un’istanza di Grafana già esistente e funzionante, ma Mosquitto? Al momento non ho ancora installato Mosquitto ma sono sicuro che si presenterà lo stesso problema quando sarà il momento. Vi terrò aggiornati!😉

Commenti

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *