Fancy Visualisierungen

Es kommt bei mir nicht selten vor, dass Fancy Visualisierungen von Daten ein “Wow” auslösen. Ein Stück dieses Wow-Effektes will ich dir heute zeigen. In diesem Beitrag zeige ich dir, wie du mit Grafana, Influxdb und einem Python Skript, die API Daten deines Teslas visualisieren kannst.

Hintergrund

Es gibt zahlreiche Web Services wie Teslafi oder Teslaspy. Die Weitergabe des Tesla Account Passwortes an Dritte ist aber nicht gerade vorteilhaft. Liegt ein Raspberry Pi oder Linux Maschine zu Hause rum, erhält man eine noch bessere kostenfreie Lösung.

Voraussetzungen

Grafana, Influxdb und das Python Skript zum abfragen der Tesla API, können auf einer Linux Maschine oder einem Raspberry Pi installiert werden. Hat man bereits eine laufende Grafana und Influxdb Instanz, empfehle ich diese zu verwenden. Obwohl ich Grafana und Influxdb bereits seit mehreren Jahren privat verwende, zeige ich dir hier alle Konfigurationsschritte von Anfang bis Anschluss. Ich verwende an dieser Stelle ein Raspberry PI 3. 

Docker

Die Installation via Docker vereinfacht den ganzen Ablauf stark, wer dennoch auf Docker verzichten will, kann sich unter https://github.com/lephisto/tesla-apiscraper die nötigen Informationen holen. Diese Anleitung setzt jedoch auf Docker. 

Let's go

Zuerst muss das Repository geklont werden
git clone https://github.com/lephisto/tesla-apiscraper
Wenn git nicht vorinstalliert ist
sudo apt-get install git
  Docker installiert man mit
curl -fsSL get.docker.com -o get-docker.sh && sudo sh get-docker.sh
Zudem muss Docker Compose mitinstalliert werden
sudo apt-get install docker-compose
Die Konfiguration kopieren
cp config.py.compose config.py
 Anpassen mit 
nano config.py
Es sei hier angemerkt, dass mindestens die Tesla Account Daten hinzugefügt werden müssen. Hast du keine Verwendung für die Android App die in der Konfiguration erwähnt wird, dann setzt die Variable a_enable_api auf False Nun erstellst du das Logfile, damit dieses in den Docker Container gemountet werden kann.
touch apiscraper.log
Für den persistenten Speicher des Containers braucht es drei weitere Befehle: 
sudo mkdir -p /opt/apiscraper/influxdb sudo mkdir -p /opt/apiscraper/grafana sudo chown 472 /opt/apiscraper/grafana
Der Docker Stack lässt sich nun starten
./dashboard2docker.sh docker-compose up -d
Beim ersten Ausführen dauert dieser Prozess ein Wenig länger, da zuerst alle Docker Images heruntergeladen werden müssen. Ist der Stack einmal online, erreicht man das Grafana Dashboard unter http://ip:3000 (ip muss hier natürlich mit der tatsächlichen IP Adresse ersetzt werden). Stoppen lässt sich der Docker Stack mit
docker-compose down  
Die Docker Images von Grafana und Influxdb werden immer wieder auf den neuesten Stand gebracht. Somit empfiehlt es sich von Zeit zu Zeit die folgenden Befehle auszuführen, um die Images auf den letzten Stand zu bringen: 
docker-compose pull docker-compose build --build-arg CACHEBUST=$(date +%s) apiscraper docker-compose up --force-recreate --build
Damit das Abfragen der Tesla API Daten auch nach einem Neustart des Systems direkt anläuft, muss ein Service eingerichtet werden
sudo cp tesla-apiscraper.service /lib/systemd/system sudo systemctl daemon-reload sudo systemctl enable tesla-apiscraper.service

Grafana

Das Passwort der Users admin lautet beim ersten Start von Grafana admin. Grafana fordert dich jedoch direkt auf, ein neues Passwort einzugeben.  Unter Dashboards lässt sich ein vorkonfiguriertes Dashboard mit dem Namen Tesla Metrics V2 vorfinden. Ist man mit dem Tesla Metrics V2 Dashboard nicht zufrieden, kann man eines nach dem eigenen Gusto erstellen. Lass mich in den Kommentaren wissen, ob du einen detaillierten Beitrag zum Thema Grafana möchtest.

Disclaimer

Zu oftes Abfragen der Tesla API Daten kann zu erhöhtem Energieverbrauch des Fahrzeuges führen. Die Variablen a_allow_sleep und a_maximum_sleep in der Konfiguration, können bei der Optimierung helfen.

Blog Monitoring – worldPing und Grafana

Ein Blog ist schön und gut, doch was wenn der Blogger nicht bemerkt, dass sein Blog seit Tagen nicht mehr läuft. Die Hintergründe des Ausfalles interessieren den Blog Leser wenig.…


0 9 Minuten

Traceroute Monitoring – MTR

Du interessierst dich für die Anzahl an Hops. die ein IP Paket zu einem gewissen Target Host traversieren muss. Das Resultat davon willst du visualisieren und in einer Datenbank…


0 9 Minuten

Logfiles mit Loki

Mittlerweile betreibe ich meine Applikationen fast nur noch als Docker Container. Jeder der bereits einmal mit Docker gearbeitet hat, weiss das Container plötzlich stoppen können…


0 11 Minuten