Teslalogger mit Raspberry Pi & MySql & Grafana & OSM (Teil 1)

Dieser Thread ist die Fortsetzung von Teslalogger mit Raspberry Pi & MySql & Grafana & OSM bis 12.02.2021. Bitte die Diskussion hier fortführen.

2 „Gefällt mir“

Ich kann mich leider nach dem Update nicht mit TeslaLogger in den Tesla Account einloggen. MFA ist an und die Zugangsdaten wurden auch überprüft indem ich mich in der App ab- und wieder angemeldet habe. MFA Token wurde akzeptiert.

Bei Tesla Logger gebe ich die Zugangsdaten ein, klicke auf Speichern und Reconnect. Dann werde ich zur Eingabe des MFA Tokens aufgefordert aber dieser wird nicht akzeptiert.
Wir haben im Tesla Account 2 Geräte für MFA angemeldet. Kann es sein, dass TeslaLogger die MFA vom 2. Gerät haben möchte und meine (1. Gerät) daher nicht akzeptiert wird?

Alle Logfiles gehen hoooooooooch! 🙋🏻‍♂️

12.02.2021 16:06:46 : #1: GetAvgConsumption: sumkm:508.8 avgkm:127.2 kwh/100km:23.3 avgsocdiff:36.2 maxkm:356.3
12.02.2021 16:06:46 : #1: No Refresh Token
12.02.2021 16:06:46 : #1: Login with : ‚[email protected]‘ / ‚xxxxxxxxxxxxx‘
12.02.2021 16:06:47 : #1: Start waiting for MFA code !!!
12.02.2021 16:06:57 : #1: Wait for MFA code !!!
12.02.2021 16:07:07 : #1: Wait for MFA code !!!
12.02.2021 16:07:07 : #1: MFA Code: 540224
12.02.2021 16:07:07 : #1: transaction_id: GutnG2Hg
12.02.2021 16:07:07 : #1: MFA1 Result: {
„data“: [
{
„dispatchRequired“: false,
„id“: „55e864f3-7713-4180-86d6-a10987c0f1d3“,
„name“: „Gerät Nr. 2“,
„factorType“: „token:software“,
„factorProvider“: „TESLA“,
„securityLevel“: 1,
„activatedAt“: „2020-12-03T10:13:03.000Z“,
„updatedAt“: „2020-12-03T02:13:03.000Z“
},
{
„dispatchRequired“: false,
„id“: „8261ffc5-a458-4748-be52-7e4493ca67d8“,
„name“: „Gerät Nr. 1“,
„factorType“: „token:software“,
„factorProvider“: „TESLA“,
„securityLevel“: 1,
„activatedAt“: „2020-10-11T04:44:43.000Z“,
„updatedAt“: „2020-10-10T21:44:42.000Z“
}
]
}
12.02.2021 16:07:08 : #1: Error: GetTokenAsync3(): invalid_grant
12.02.2021 16:07:09 : #1: HttpStatus: Unauthorized
12.02.2021 16:07:09 : #1: System.Collections.Generic.KeyNotFoundException: The given key ‚access_token‘ was not present in the dictionary.
at System.Collections.Generic.Dictionary2[T**Key** ,TValue].get_Item (T**Key** key) [0x0001e] in :0 at (wrapper dynamic-method) System.Object.CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,object,string) at TeslaLogger.WebHelper.GetTokenAsync4 (System.String access_token) [0x0033e] in :0 12.02.2021 16:07:09 : #1: TOKEN: 12.02.2021 16:07:10 : #1: HttpStatusCode = Unauthorized. Password changed or still valid? 0 12.02.2021 16:08:10 : #1: No Refresh Token 12.02.2021 16:08:10 : #1: Login with : '[email protected]' / 'xxxxxxxxxxxxx' 12.02.2021 16:08:11 : #1: Start waiting for MFA code !!! 12.02.2021 16:08:11 : #1: MFA Code: 540224 12.02.2021 16:08:11 : #1: transaction_id: rf3S9QwJ 12.02.2021 16:08:11 : #1: MFA1 Result: { "data": [ { "dispatchRequired": false, "id": "55e864f3-7713-4180-86d6-a10987c0f1d3", "name": "Gerät Nr. 2", "factorType": "token:software", "factorProvider": "TESLA", "securityLevel": 1, "activatedAt": "2020-12-03T10:13:03.000Z", "updatedAt": "2020-12-03T02:13:03.000Z" }, { "dispatchRequired": false, "id": "8261ffc5-a458-4748-be52-7e4493ca67d8", "name": "Gerät Nr. 1", "factorType": "token:software", "factorProvider": "TESLA", "securityLevel": 1, "activatedAt": "2020-10-11T04:44:43.000Z", "updatedAt": "2020-10-10T21:44:42.000Z" } ] } 12.02.2021 16:08:12 : #1: Error: GetTokenAsync3(): invalid_grant 12.02.2021 16:08:13 : #1: HttpStatus: Unauthorized 12.02.2021 16:08:13 : #1: System.Collections.Generic.**Key**NotFoundException: The given key 'access_token' was not present in the dictionary. at System.Collections.Generic.Dictionary2[TKey,TValue].get_Item (TKey key) [0x0001e] in :0
at (wrapper dynamic-method) System.Object.CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,object,string)
at TeslaLogger.WebHelper.GetTokenAsync4 (System.String access_token) [0x0033e] in :0
12.02.2021 16:08:13 : #1: GetVehicles Error: Object reference not set to an instance of an object.
12.02.2021 16:08:44 : #1: HttpStatusCode = Unauthorized. Password changed or still valid? 1
12.02.2021 16:09:44 : #1: No Refresh Token
12.02.2021 16:09:44 : #1: Login with : ‚[email protected]‘ / ‚xxxxxxxxxxxxx‘
12.02.2021 16:09:45 : #1: Start waiting for MFA code !!!
12.02.2021 16:09:45 : #1: MFA Code: 540224
12.02.2021 16:09:45 : #1: transaction_id: EvKyjD6P
12.02.2021 16:09:45 : #1: MFA1 Result: {
„data“: [
{
„dispatchRequired“: false,
„id“: „55e864f3-7713-4180-86d6-a10987c0f1d3“,
„name“: „Gerät Nr. 2“,
„factorType“: „token:software“,
„factorProvider“: „TESLA“,
„securityLevel“: 1,
„activatedAt“: „2020-12-03T10:13:03.000Z“,
„updatedAt“: „2020-12-03T02:13:03.000Z“
},
{
„dispatchRequired“: false,
„id“: „8261ffc5-a458-4748-be52-7e4493ca67d8“,
„name“: „Gerät Nr. 1“,
„factorType“: „token:software“,
„factorProvider“: „TESLA“,
„securityLevel“: 1,
„activatedAt“: „2020-10-11T04:44:43.000Z“,
„updatedAt“: „2020-10-10T21:44:42.000Z“
}
]
}
12.02.2021 16:09:46 : #1: Error: GetTokenAsync3(): invalid_grant
12.02.2021 16:09:46 : #1: HttpStatus: Unauthorized
12.02.2021 16:09:46 : #1: System.Collections.Generic.KeyNotFoundException: The given key ‚access_token‘ was not present in the dictionary.
at System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) [0x0001e] in :0
at (wrapper dynamic-method) System.Object.CallSite.Target(System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,object,string)
at TeslaLogger.WebHelper.GetTokenAsync4 (System.String access_token) [0x0033e] in :0
12.02.2021 16:09:47 : #1: GetVehicles Error: Object reference not set to an instance of an object.
12.02.2021 16:10:17 : #1: HttpStatusCode = Unauthorized. Password changed or still valid? 2
12.02.2021 16:10:17 : #1: Abort: Login retrys exeeded!
12.02.2021 16:10:17 : #1: GetVehicles Error: Thread was being aborted.
12.02.2021 16:10:47 : #1: *** Exit Loop !!!

Noch eine Frage zum TeslaFi import.
Ich habe hier 20 csv files.
Zuerst hab ich eines nach dem anderen auf den raspi kopiert und den import befehl ausgeführt.
Offenbar ist dann aber nur das letzte (Februar 2021) aktiv, weil ich zb. bei den trips nur Fahrten im Februar 2021 sehen.
Wenn ich aber alle 20 files auf den raspi kopiere und den import befehl starte, hängt sich der raspi irgendwann auf („killed“ steht im terminal) - ist offenbar zu viel!?!
Gibts hierzu eine Idee bzw. eine Lösung?
Danke!

hast du auch Speicher freigegeben mit:

sudo pkill mono
sudo service grafana-server stop
sudo service apache2 stop

Ja, ich schaue nach dem ersten Eintrag in MFA1 Result nach und das ist bei dir wohl „Gerät Nr. 2“. Das ist die Referenzimplementierung. Ich könnte jetzt natürlich beide Geräte abfragen, aber da habe ich schiss, dass Tesla dein Account sperrt. Eigentlich müsste ich Fragen, mit welchem Gerät du gerne das MFA machen möchtest…

Wenn du es mit dem 2. Gerät eingibst, geht dann der Teslalogger?

bringt alles leider nix

Guten Morgen…
ich habe für mich ein kl. script geschrieben…
es schaut ob das Backupfile 0 Byte groß ist…wenn ja unterbricht es den Vorgang.
Wenn die Backupdatei > 0 dann verschiebt es die Datei auf ein NFS gemountet Verz.
prüft dort ob mehr als 5 (variable) Einträge da sind…falls ja werden die alten gelöscht.
Dies lasse ich ich jeden Tag um 4:00 per cronjob ausführen…
Es funktioniert nur wenn 1 Datei im BackupVerz. liegt…liegen dort mehrere …
bricht es mit einer Fehlermeldung ab…daher lasse ich es jeden Tag laufen.
Das automatische Backup wird ja jeden Tag vom TS erstellt.
für jeden inetressenten

#!/bin/bash
datei="mysqldump";

cd /etc/teslalogger/backup
if [ -s ${datei}*.gz ] ; then
  echo 'Backupdaten werden werden verschoben' ;
  sudo mv /etc/teslalogger/backup/*.* /mnt/server/ ;
  cd /mnt/server ;
  sudo ls -1t |tail -n +6|xargs sudo rm -rf ;
 else
  echo 'File mysqldump*.* is empty...i do nothing..repair it !' ;
fi ;
1 „Gefällt mir“

Weil du eine wildcard als -s Parameter verwendest. Wenn sie zu -s a b expandiert, ist das natürlich ein Fehler.

Kleine Stilbemerkung: du solltest konsistent dein Symbol „datei“ verwenden, statt nur an einer Stelle.

Und: wenn es für mehrere Dateien funktionieren soll, einfach über alle mit for … do … done loopen.

1 „Gefällt mir“

Moin Leute!
Erstmal: Geiles Projekt!

Hatte anhand der Anleitung von bassmaster bei Github zunächst zum Ausprobieren alles auf einem virtuellen Ubuntu Server unter Docker ohne Schwierigkeiten ans Laufen gebracht.

Habe das Gleiche dann nochmal auf einem Pi 3+ unter Ubuntu Server 20.04.2 LTS 64 bit gemacht. Läuft auch so weit, allerdings habe ich das Problem, daß ich in Grafana keine dashboards sehe.

Habe gemäß Tipp schon ein paar mal den Teslalogger und Grafana Container neugestartet mit

sudo docker restart teslalogger_teslalogger_1 

Problem besteht aber weiterhin. Hat jemand einen Tipp?

ah…danke…
werde ich gleich ausprobieren ! :slightly_smiling_face:

update:

#!/bin/bash

cd /etc/teslalogger/backup
for datei in *
do
  if [ -s ${datei} ] ; then
   echo 'Backupdaten werden werden verschoben' ;
   sudo mv /etc/teslalogger/backup/${datei} /mnt/server/ ;
   cd /mnt/server ;
   sudo ls -1t |tail -n +6|xargs sudo rm -rf ;
   cd /etc/teslalogger/backup
 else
   echo 'File mysqldump*.* is empty...i do nothing..repair it !' ;
 fi ;
done
2 „Gefällt mir“

Das Thema hat sich jetzt über Nacht irgendwie von selbst erledigt!

Habe nur noch eine Kleineigkeit: wo kann man konfigurieren, zu welchem hostname die URL standardmäßig führen? Links aus dem Admin Panel heraus führen bei mir immer zu „raspberry“, ist bei mir aber ein anderer hostname bzw. IP

Beispiel:
Link in Grafana:

http://raspberry/admin/?var-Car=1&var-Textfilter=

sollte aber m.E. sein:

http://192.168.178.49:8888/admin/?var-Car=1&var-Textfilter=

Das legst Du im Admin Panel unter Einstellungen fest:

echo $datei is empty…

1 „Gefällt mir“

komme aus der Welt von TeslaFi & ScanMyTesla , habe mir jetzt auch Teslalogger eingerichtet.

Am Anfang hatte ich Einrichtungsprobleme jetzt läuft es. Es ist eine Große Umstellung wenn mann nicht IT-affin ist
und keine Grundkenntnisse mit „Befehlszeilen“ hat.

Es wäre von Vorteil wenn es „ab werk“ möglich wäre auf die Oberfläche aus der Ferne zuzugreifen.

Habe meine Fritz-BoX Teslalogger Dashboard - #160 von RedStromer hiernach eingerichtet als nächstes muss ich entweder einenPasswortschutz installieren oder eine Möglichkeit per VPN auf meine RasPi Oberfläche zuzugreifen (PC auf der Arbeit , unterwegs mit Laptop, Handy …)

habe sogar zugriff auf die Settings

image

allerdings sieht die Startseite ernüchternd aus !

wo gibt es einen ToDo oder FAQ um mit Grafana Werte aus SMT/Mutterschiff auszuwerten.
Kenne mich zwar mit Excel aus aber Grafana ist schon eine ganz andere Welt :earth_africa:

was ich sagen möchte leider sind die ersten Schritte für 08/15 user problematisch.
für dieses Tool sind wohl IT’ler die Zielgruppe.

desweiteren möchte ich auf die Sleep Settings mit T-Fi anpassen. / Suche noch bei T-Logger einfacher ist es bei T-Fi anzupassen (25 online : 21 Waiting for car to go to sleep : 15 online : 21 Waiting for car to go to sleep

1 „Gefällt mir“

Ich würde Dir empfehlen von außen generell nur mit einer VPN Verbindung auf den Teslalogger zuzugreifen. Fritzboxfreigaben würde ich nicht empfehlen.
In der FRITZ!Box kannst Du ja leicht einen Fritzboxuser als VPN anlegen.
Dann kannst Du einfach mit PC, PAD, Handy etc. von Extern nach aktiverten VPN Tunnel zugreifen.

3 „Gefällt mir“

Hoffe aber auch tagaktiviert :joy:

Gibt es eine Liste was welche id bedeutet die ich unter „can“ in der Datenbank sehen kann? Klar habe einige schon über Grafana und Blick in den Code herausgefunden, aber eben nicht alle und eine Liste aller „Signale“ wäre übersichtlicher. Im SMT Thread wurde die Frage bisher leider nicht beantwortet.

Hier ist eine Quelle, die vielleicht hilfreich ist:
https://teslamotorsclub.com/tmc/threads/2018-model-3-can-bus-ids.169941/

:slight_smile: Der war gut :slight_smile:

1 „Gefällt mir“

Die kenne ich, aber SMT nutzt nicht die identischen id‘s, meine ich zumindest

Edit: Werde es aber nochmal prüfen. Zum Beispiel die Spannung der 12V Batterie, obwohl ich das Signal aktiviert habe zur Übertragung, sehe ich es nicht in der Datenbank unter „can“. Ebenso würde mich interessieren ob die Akkuheizung auch in den „can“ Daten zu finden ist? Daher eine Liste, von mir aus vom Entwickler von SMT, wäre nützlich.