Konfiguration Teslalogger

Zum Hauptartikel “Teslalogger mit Raspberry Pi 3+ MySql + Grafana” geht es hier: LINK

Einrichtung

Raspberry Pi mit Router zuhause verbinden (Ethernet / Netzwerk-Kabel).
In die Steckdose einstecken
Nach 2-3 Minuten sollte der Raspberry in Netzwerk angemeldet sein.

Tesla Zugangsdaten eingeben

Im Browser folgenden Link eingeben:
http://raspberry/admin/password.php

Dort die selben Zugangsdaten wie im Teslaaccount angeben und speichern. Nach einer Minute sollte sich der Teslalogger mit dem Server verbunden haben.

Mehrere Fahrzeuge

Im Explorer zum Verzeichnis gehen:
\\RASPBERRY\teslalogger
Name: pi
Passwort: teslalogger

Dort befindet sich eine Datei:
TeslaLogger.exe.config
Diese muss angepasst werden (Notepad).

Bei Car kann man die Fahrzeugnummer im Teslaaccount angeben. Sie fängt mit 0 an. Hat man nur ein Fahrzeug, dann bleibt dort eine 0. Hat man 2 Fahrzeuge und man möchte das 2. Fahrzeug mit dieser Instanz loggen, dann schreibt man dort eine 1 rein. Achtung: pro Fahrzeug benötigt man ein Raspberry.

<setting name="TeslaName" serializeAs="String">
<value>max@mustermann.de</value>
</setting>
<setting name="TeslaPasswort" serializeAs="String">
<value>MyTeslaPassword</value>

</setting>
<setting name="Car" serializeAs="String">
<value>0</value>
</setting>

Nach dem Speichern, ein Mal neu starten unter:
http://raspberry/admin/
Dann „Restart“ drücken.

Smart-Home mit MQTT

Möchte man die Daten vom Tesla an einem MQTT-Broker schicken, dann muss man dafür die MQTTClient.exe.config editieren:

            <setting name="MQTTHost" serializeAs="String">
                <value></value>
            </setting>
            <setting name="Topic" serializeAs="String">
                <value></value>
            </setting>
            <setting name="Name" serializeAs="String">
                <value></value>
            </setting>
            <setting name="Password" serializeAs="String">
                <value></value>
            </setting>

Name und Password braucht man nur, wenn der MQTT-Broker das auch wirklich braucht.
Anschließend neu starten und im Logfile sollte man dann sehen:

17.02.2019 23:49:28 : MQTT : MqttClient Version: 1.2.0.0
17.02.2019 23:49:29 : MQTT : Connecting without credentials: 192.168.1.23
17.02.2019 23:49:29 : MQTT : Connected!

Auswertung

Auswertungen unter:
http://raspberry:3000
Username: admin
Passwort: teslalogger

Update

 

Neuere Versionen können einfach im Admin Bereich mit dem Button “Update” aktualisiert werden: http://raspberry/admin/
Ist dieser Button nicht sichtbar, dann muss man ein mal den Teslalogger händisch updaten:

Der Teslalogger wird ständig erweitert und Fehler behoben. 
Die neueste Version vom TeslaLogger ist immer unter:

https://github.com/bassmaster187/TeslaLogger/blob/master/TeslaLogger/bin/TeslaLogger.exe

Diese Datei Herunterladen und in (Datei Explorer)
\\RASPBERRY\teslalogger
austauschen. Danach den Raspberry neu Starten. (Siehe oben).

Spende

Wenn du das Projekt unterstützen möchtest, dann würde ich mich auf eine kleine Spende freuen:

Kontoinhaber: Christian Pogea
IBAN: DE04 7603 0080 0240 0145 02
BIC: CSDBDE71XXX
Verwendungszweck: Spende Teslalogger
Mit meinem Empfehlungslink bekommst du 1500km kostenloses Supercharging beim Kauf eines Teslas:
http://ts.la/christian7267

FAQ

Fehlende Datensätze

Greift man auf die Daten des Fahrzeug zu, kann das Fahrzeug nicht in den “Sleep” Modus gehen. Die Konsequenz ist, dass das Fahrzeug ca. 4kWh / 20km pro Tag an Kapazität verliert. Deshalb greift der Teslalogger 15 Minuten nach der letzten Fahrt / Ladung, für 21 Minuten nicht mehr auf das Fahrzeug zu, damit es in den Sleep Modus gehen kann.

Das kann man auch im Logfile sehen:

06.01.2019 16:26:41 : online
06.01.2019 16:41:46 : Waiting for car to go to sleep 0
06.01.2019 16:42:46 : Waiting for car to go to sleep 1
... usw
06.01.2019 17:00:46 : Waiting for car to go to sleep 19
06.01.2019 17:01:46 : Waiting for car to go to sleep 20
06.01.2019 17:02:48 : asleep

Es gibt einen Trick, wie man das Problem umgehen kann:
Für Android Benutzer: LINK
Für iPhone Benutzer: LINK

Hoher Standbyverbrauch

Frägt man Daten ab vom Fahrzeug mit der Tesla-App oder mit meinem Teslalogger, dann bleibt der Computer im Tesla an und verbraucht bis zu 4kWh / Tag. Damit das nicht passiert, habe ich Voraussetzungen getroffen, dass das Fahrzeug überhaupt die Möglichkeit hat in den Standby Mode zu gehen.

Zusätzlich müssen dringend diese Voraussetzungen getroffen werden:

  • “immer verbunden” muss aus sein
  • “Energiesparmodus” muss an sein.
  • “Intelligente Vorklimatisierung” muss aus sein.
  • keine weiteren Dienste wie z.B. abetterrouteplanner / TeslaFi / Openhab2 usw. dürfen die Zugangsdaten / Token haben.
  • keine Teslaschlüssel in der Nähe
  • Tesla Widget auf den Smartphone deaktivieren. 
  • Manche (ältere) Android Geräte lassen die Tesla-App im Hintergrund weiterlaufen. Immer darauf achten, dass die App beendet wird notfalls im Taskmanager abschießen.
  • Es soll wohl Probleme geben, wenn das Fahrzeug einen schlechten WLan Empfang hat. So versucht es sich permanent zu verbinden und die Verbindung zu schließen und kommt so nicht in den Sleep Modus. Notfalls WLan Profil im Auto löschen.
Wenn du meinen Blog unterstützen möchtest, dann würde ich mich über eine kleine Spende freuen:

Manuelle Installation

Einige möchten den Teslalogger nicht auf einem Raspberry laufen lassen, dann muss man das ganze selbst installieren. Das soll jetzt keine Schritt für Schritt Anleitung werden, sondern nur grob angeschnitten werden, was man installieren muss, da die vielen verschiedenen Konstellationen das fast unmöglich machen.

Ein Tip: die Raspberry Paketmanager beinhalten leider nicht die aktuellsten Installationspakete, die benötigt werden. Deshalb muss man alles manuell installieren.

  1. MariaDB / MySql installieren: https://mariadb.com/downloads/
  2. Datenbank-Schema erstellen: https://github.com/bassmaster187/TeslaLogger/blob/master/TeslaLogger/sqlschema.sql
  3. NodeJS installieren: https://nodejs.org/en/download/
  4. Grafana installieren: https://grafana.com/grafana/download
  5. Trackmap-Panel für Grafana installieren: https://github.com/pR0Ps/grafana-trackmap-panel
  6. Grafana Panels importieren. Siehe: https://www.impala64.de/blog/tesla/2018/12/06/einrichtung-teslalogger/#update
  7. Teslalogger runterladen: https://github.com/bassmaster187/TeslaLogger/blob/master/TeslaLogger/bin/TeslaLogger.exe
  8. App.config runterladen und umbenennen in “TeslaLogger.exe.config” https://github.com/bassmaster187/TeslaLogger/blob/master/TeslaLogger/App.config
  9. TeslaLogger.exe.config konfigurieren
  10. Je nach System muss .net Framework oder Mono installiert werden. Auf Windows würde ich .net Framework 4.5 verwenden. Auf alle anderen Systemen Mono: https://www.mono-project.com/download/stable/

TeslaLogger.exe muss jetzt beim Systemstart automatisch gestartet werden.
Unter Linux z.B. in
etc/rc.local
nohup mono TeslaLogger.exe &

Verbinden per SSH

Terminal Client wie Putty starten.
Verbinden zur Host IP: raspberry
Port: 22
Typ: SSH
Name: pi
Passwort: teslalogger

Daten löschen bis zu einem bestimmten Datum

Backup machen und das wo anders sichern!

Verbinden per SSH

Dann im SSH eingeben:
mysql -u root -pteslalogger teslalogger

delete from charging where Datum < '2019-12-20';
delete from chargingstate where StartDate < '2019-12-20';
delete from drivestate where StartDate < '2019-12-20';
delete from state where StartDate < '2019-12-20';
delete from can where datum < '2019-12-20';
delete from car_version where StartDate < ‚2019-12-20‘;

Das Datum muss natürlich auf dein Bedürfnis angepasst werden. Das format ist Jahr-Monat-Tag
Monat und Tag müssen zweistellig sein. ggf eine 0 als Prefix verwenden.

Fahrzeug Löschen

Hat man aus versehen ein Fahrzeug angelegt und möchte es löschen, dann geht man so vor:

Backup machen und das wo anders sichern!

Verbinden per SSH

Dann im SSH eingeben (id muss angepasst werden):

mysql -u root -pteslalogger teslalogger -Bse "delete from cars where id=2;" 

32 Gedanken zu „Konfiguration Teslalogger“

  1. Hallo, das Update von Grafana funktioniert nicht. Kann Dir die Error-Meldung (Screenshot) mailen.
    Import failed
    JSON -> JS Serialization failed: JSON Parse error: Unrecognized token ‘<'

  2. Hi,

    ich habe das heute auch mal ausprobiert, leider startet der grafna service so gar nicht:
    root@raspberry:~# /etc/init.d/grafana-server status -l
    ● grafana-server.service – Grafana instance
    Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: enabled)
    Active: failed (Result: signal) since Wed 2019-01-30 21:59:36 CET; 3min 15s ago
    Docs: http://docs.grafana.org
    Process: 564 ExecStart=/usr/sbin/grafana-server –config=${CONF_FILE} –pidfile=${PID_FILE_DIR}/grafana-server.pid –packaging=deb cfg:default.paths.logs=${LOG_DIR} cfg:default.paths.data=${DATA_DIR} cfg:default.paths.plugins=${PLUGINS_DIR} cfg:default.paths.provisioning=${PROVISIONING_CFG_DIR} (code=killed, signal=SEGV)
    Main PID: 564 (code=killed, signal=SEGV)

    Jan 30 21:59:35 raspberry systemd[1]: grafana-server.service: Failed with result ‘signal’.
    Jan 30 21:59:36 raspberry systemd[1]: grafana-server.service: Service hold-off time over, scheduling restart.
    Jan 30 21:59:36 raspberry systemd[1]: Stopped Grafana instance.
    Jan 30 21:59:36 raspberry systemd[1]: grafana-server.service: Start request repeated too quickly.
    Jan 30 21:59:36 raspberry systemd[1]: Failed to start Grafana instance.
    Jan 30 21:59:36 raspberry systemd[1]: grafana-server.service: Unit entered failed state.
    Jan 30 21:59:36 raspberry systemd[1]: grafana-server.service: Failed with result ‘signal’.

    Von wo will er denn die Konfig Dateien lesen?
    -crzydg

  3. Hallo Christian,
    Das Teil läuft prima. Ich bekomme nur keine FTP-Verbindung.
    Mit FileZilla musste ich ein ungültiges Zertifikat frei geben. Danach hat es geklappt. Ich möchte mir die Backupdateien über eine Synologic per FTP einsammeln. Das wäre über einen Ordnersync super einfach zu machen. Nur bei der FTP oder SFTP schaffe ich es nicht mich am Teslalogger anzumelden.
    Es werden im Anmeldeformular folgende Punkte abgefragt:
    In {} die Angaben, die ich benutze.
    Host oder IP: {akutelle IP des Raspberrys alternativ raspberry}
    Port: {FTP_21, SFTP_22}
    Kontoname: {pi}
    Kennwort: {teslalogger}
    Codepage: {Unicode (UTF8)}
    in der phpinfo ist sowohl FTP als auch STPS support mit enabled angegeben. Sollten als auch laufen.
    Leider habe ich absolut keine Linux-Erfahrungen. Weiß als nicht wo ich suchen kann.

      1. leider nein.
        Es ist eigentlich gedacht, um Web-Laufwerke in die Synologic einzubinden.
        Ich suche die Daten, mit denen man sich auch über “Netzlaufwerk Verbinden/Verbinden mit einem Netzlaufwerk” im Dateiexplorer anmelden kann.
        Da FTP support auf enabled steht und auch das Modul FTP eingebunden ist, muss es eigentlich gehen. Nur mit welchen Daten?
        Server: IP-Adresse des Teslaloggers
        Port: ? Standard sind wohl FTP_21, SFTP_22
        Kontoname: “pi” oder “root”
        Kennwort: ? “teslalogger”
        Codepage: ? Standard ist wohl {Unicode (UTF8)}
        Hier komme ich einfach nicht weiter.
        kannst du mal bei dir versuchen eine FTP-Verbindung aufzubauen. Ich schaffe es auch vom Windowsrechner nicht mehr.
        Ergänzende Frage ist es möglich, die Daten einer oder aller Auswertungen zu exportieren?
        CSV, Excel …?

        1. Also SFTP scheint zu gehen. FTP nicht. Probier mal FileZilla. Vielleicht kann man Synology überreden auch mit SFTP zu funktionieren. Ansonsten muss man vielleicht ein FTP Server am Raspberry installieren.

  4. Hallo Christian, danke für deine super Lösung, bin bisher noch bei teslalog, aber will da weg, weil ich die Daten auch lieber im eigenen Speicher (Synology) haben will.
    Nur zweifel ich langsam an meinen Fähigkeiten und komm mit der Installation überhaupt nicht weiter und scheitere ständig an der arm v7 vs v8 Thematik. Will es mit Docker auf einem Raspi 3+B installieren. Aber ich finde kein installierbares Image mit 64Bit als Default?
    Mit Raspbian geht es definitiv nicht.
    Was mach ich falsch?
    Welches Raspi Image ist die beste Basis?
    Danke!
    Wolfi

    1. Prinzipiell ist kein Raspberry Image gut für den Docker Betrieb. Am besten ist es den Docker nicht über apt-get zu installieren, sondern von der Homepage. Docker-compose genauso.
      Ich würde mir aber keine großen Umstände machen. Es gibt ein fertiges Raspberry kit zum kaufen und du unterstützt damit auch unsere Weiterentwicklung.

  5. Hi,

    ist es möglich 2 Teslalogger Instanzen zusammenzuführen?
    Wir haben 2 Raspis am laufen, pro Auto einen.
    Gibt es eine Anleitung oder Vorgehensweise, wie man die Daten von einem Raspi auf den anderen übertragen und zusammenführen kann?

    Danke!

  6. Servus Christian, jetzt habe ich den Teslalogger als Dockerinstanz laufen und sehe auch mein Fahrzeug online. In den Dashboards habe ich allerdings überhaupt keine Daten. Mittlerweile ist das Fahrzeug fast 4,5 Jahre im Betrieb, da sollte doch einiges vorhanden sein. Im Mai diesen Jahres wurde die MCU1 gegen eine neuere MCU1 ausgetauscht. Gibt es da einen Zusammen hang? VG Jörg

  7. Hallo Christian

    Ich habe von einem funktionierenden Teslalogger die SD-Karte geklont Für einen 2. Teslalogger für unser 2. Fahrzeug. Die Datenbank teslalogger habe ich gelöscht und das Datenbank-Schema von deinem git eingespielt. Teslalogger.exe.config konfiguriert (war nur die car-nummer die geändert werden musste). Der Teslalogger läuft aber sammelt keine Daten. Was habe ich falsch gemacht?

    Hier noch die letzten Zeilen des Log-Files nach dem Start des Teslalogger:
    26.02.2021 17:38:27 : Housekeeping: database usage (teslalogger)
    26.02.2021 17:38:27 : Table: can data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:27 : Table: candata data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:27 : Table: car_version data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:27 : Table: cars data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:27 : Table: charging data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:28 : Table: chargingstate data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:28 : Table: drivestate data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:28 : Table: httpcodes data: 0 MB index: 0 MB rows: 61
    26.02.2021 17:38:28 : Table: mothership data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:28 : Table: mothershipcommands data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:28 : Table: pos data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:28 : Table: shiftstate data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:28 : Table: state data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:28 : Table: superchargers data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:28 : Table: superchargerstate data: 0 MB index: 0 MB rows: 0
    26.02.2021 17:38:28 : settings file not found at /etc/teslalogger/settings.json
    26.02.2021 17:38:28 : settings file not found at /etc/teslalogger/settings.json
    26.02.2021 17:38:28 : Housekeeping: database.mothership older than 14 days count: 0 minID:0 maxID:0
    26.02.2021 17:38:28 : RunHousekeepingInBackground finished, took 303.737ms

    Warum sind alle Tabellen der DB leer? Müsste nicht mindestens in die Tabelle “cars” das Fahrzeug angelegt werden?

    Thomas

      1. Danke für die Rückmeldung.

        Hat geklappt. Ich wusste nicht, dass der Teslalogger unterdessen mehrere Fahrzeuge unterstützt.

        Thomas

  8. Hallo Christian,
    Danke sehr für die Lösung!

    Ich habe ei mir im smarthome bereits exisitierende Installationen von MariaDB, Grafana usw. und würde mir den Teslalogger gerne auf einer vorhandenen VM installieren. Ich hänge jetzt gerade daran, wie ich die Grafana Panel auf meinem vorhandenen Grafana importieren kann. Hast Du da einen Tip?

  9. Quick question: I already have the Teslalogger running but I’m now selling the “old” car and getting a new one. Do I need to do anything to starting getting the data from the new car? If yes, what are the recommended steps?
    Thank you!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert