Support: Tesla

Alles rund um SoC (Ladezustand des Fahrzeuges). Probleme, Fragen, Fehlfunktionen gehören hier hin
kai9555
Beiträge: 168
Registriert: Mi Feb 01, 2023 7:16 am

Re: Support: Tesla

Beitrag von kai9555 »

kai9555 hat geschrieben: Mo Aug 14, 2023 9:29 am
mrinas hat geschrieben: Mo Aug 14, 2023 9:23 am
kai9555 hat geschrieben: Mo Aug 14, 2023 9:21 am Zumal das Log auch nix brauchbares darlegt…Schade.
Wenn es hilft würde ich mich gern zum experimentieren bereit erklären.
sehr gern. Nimm' dir gern mein Testscript hier, füge Deine Tokens ein und Teste welche Library das Problem versursacht bzw. das Update welcher Library das Problem löst:

viewtopic.php?p=88640#p88640

Gefühlt tippe ich in Richtung requests oder etwas in Richtung TLS (cryptrography?)
Ja das mache ich gern. Ich kenne mich rudimentär mit Linux aus und benötige lediglich eine Spickzettel. Kannst du mich kurz in 3-4 Stichpunkten anleiten, damit wir zum gewünschten Ergebnis kommen.

Zugriff über Konsole oder GUI ist beides möglich.

VG Kai
Ok ich habe mir es gerade selber angelesen. Das Script läuft bei mir erst einmal sauber mit Thonny durch. Ich würde morgen noch einmal schauen was es dann sagt.
Benutzeravatar
mrinas
Beiträge: 1796
Registriert: Mi Jan 29, 2020 10:12 pm

Re: Support: Tesla

Beitrag von mrinas »

kai9555 hat geschrieben: Mo Aug 14, 2023 12:41 pm
kai9555 hat geschrieben: Mo Aug 14, 2023 9:29 am
mrinas hat geschrieben: Mo Aug 14, 2023 9:23 am

sehr gern. Nimm' dir gern mein Testscript hier, füge Deine Tokens ein und Teste welche Library das Problem versursacht bzw. das Update welcher Library das Problem löst:

viewtopic.php?p=88640#p88640

Gefühlt tippe ich in Richtung requests oder etwas in Richtung TLS (cryptrography?)
Ja das mache ich gern. Ich kenne mich rudimentär mit Linux aus und benötige lediglich eine Spickzettel. Kannst du mich kurz in 3-4 Stichpunkten anleiten, damit wir zum gewünschten Ergebnis kommen.

Zugriff über Konsole oder GUI ist beides möglich.

VG Kai
Ok ich habe mir es gerade selber angelesen. Das Script läuft bei mir erst einmal sauber mit Thonny durch. Ich würde morgen noch einmal schauen was es dann sagt.
Gut, zu erwarten ist dass mein Testscript fehlerfrei durchläuft.
Immer wenn es den Token-Refresh Fehler gibt wird das Script in einen 403 (o.ä.) Fehler laufen. Meine Vermutung ist dass auf selbsinstallierten (?) openWB Instanzen eine der verwendeten Bibliotheken in der eingesetzten Version für diesen Fehler verantwortlich ist. Soweit ich das durch meine Tests hab klären können ist der HTTP Request selber syntaktisch korrekt. Dennoch scheint nicht alles genau so wie zu erwarten wäre bei Tesla anzukommen.
Aus meiner Erfahrung mit dem OneDrive Backup Modul würde ich empfehlen den Tests mindestens parallel auch auf einem Raspbi durchzuführen um Unterschiede in der Architektur (x86/x64 bei VMs, ARM bei Raspbi) auszuschließen.
15,2kWp SMA (SB4000TL-21, SB3.0, STP6.0-SE + BYD HVS, EnergyMeter), openWB Standard+, openWB Pro, Peugeot e2008, Tesla Model Y LR.
kai9555
Beiträge: 168
Registriert: Mi Feb 01, 2023 7:16 am

Re: Support: Tesla

Beitrag von kai9555 »

Ok - danke für die Info. Ich habe ein wenig Zeug herumliegen und teste das mal die Tage.
mistro
Beiträge: 12
Registriert: Fr Feb 10, 2023 3:58 pm

Re: Support: Tesla

Beitrag von mistro »

Was mich ja wundert, ist die Tatsache, dass beim erneuten speichern der Modulkonfiguration "Ladepunkte" der Refresh ohne Probleme durchläuft.

Nach dem Zeitablauf (bei mir 720 Minuten) läuft der Token Refresh aber in einen Fehler.

Im Log ist erkennbar, dass beim Speichern des Ladepunktes der "State" sowie "SoC" aktualisiert wird (einen Wert erhalten):

Code: Alles auswählen

2023-08-14 22:29:00: PID: 14876: Lp1: SoC: 80 (LV1) at 64 getAndWriteSoc /var/www/html/openWB/modules/soc_tesla/main.sh
2023-08-14 22:29:00: PID: 14876: Lp1: State: "online" (LV1) at 62 getAndWriteSoc /var/www/html/openWB/modules/soc_tesla/main.sh
Beim Update nach Zeitablauf wird kein Wert eingetragen:

Code: Alles auswählen

2023-08-14 10:25:00: PID: 21592: Lp1: SoC:  (LV1) at 64 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 10:25:00: PID: 21592: Lp1: State:  (LV1) at 62 getAndWriteSoc modules/soc_tesla/main.sh
Und das, obwohl scheinbar der gleiche Code "getAndWriteSoc" aufgerufen wird :?:

Gesamter Log sieht folgendermaßen aus:

Code: Alles auswählen

2023-08-14 22:29:00: PID: 14876: Lp1: SoC: 80 (LV1) at 64 getAndWriteSoc /var/www/html/openWB/modules/soc_tesla/main.sh
2023-08-14 22:29:00: PID: 14876: Lp1: State: "online" (LV1) at 62 getAndWriteSoc /var/www/html/openWB/modules/soc_tesla/main.sh
2023-08-14 22:28:51: PID: 6783: Lp1: SoC: null (LV1) at 64 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:28:50: PID: 6783: Lp1: State: null (LV1) at 62 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:28:49: PID: 6783: Lp1: Car not online after timeout. SoC will be outdated! (LV0) at 180 main modules/soc_tesla/main.sh
2023-08-14 22:28:37: Lp1: Token Refresh failed
2023-08-14 22:28:37: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 22:28:36: PID: 14876: Lp1: Waking up car. (LV1) at 121 wakeUpCar /var/www/html/openWB/modules/soc_tesla/main.sh
2023-08-14 22:28:31: Lp1: Token Refresh failed
2023-08-14 22:28:31: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 22:28:25: Lp1: Token Refresh failed
2023-08-14 22:28:25: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 22:28:18: Lp1: Token Refresh failed
2023-08-14 22:28:18: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 22:28:12: Lp1: Token Refresh failed
2023-08-14 22:28:12: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 22:28:06: Lp1: Token Refresh failed
2023-08-14 22:28:06: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 22:28:00: Lp1: Token Refresh failed
2023-08-14 22:28:00: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 22:27:54: Lp1: Token Refresh failed
2023-08-14 22:27:54: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 22:27:47: Lp1: Token Refresh failed
2023-08-14 22:27:47: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 22:27:41: Lp1: Token Refresh failed
2023-08-14 22:27:41: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 22:27:35: Lp1: Token Refresh failed
2023-08-14 22:27:35: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 22:27:34: PID: 6783: Lp1: Waking up car. (LV1) at 121 wakeUpCar modules/soc_tesla/main.sh
2023-08-14 14:00:49: PID: 8849: Lp1: SoC:  (LV1) at 64 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 14:00:49: PID: 8849: Lp1: State:  (LV1) at 62 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 14:00:49: Lp1: Token Refresh failed
2023-08-14 14:00:49: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 14:00:48: PID: 8849: Lp1: Car not online after timeout. SoC will be outdated! (LV0) at 180 main modules/soc_tesla/main.sh
2023-08-14 14:00:43: Lp1: Token Refresh failed
2023-08-14 14:00:43: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 14:00:36: Lp1: Token Refresh failed
2023-08-14 14:00:36: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 14:00:30: Lp1: Token Refresh failed
2023-08-14 14:00:30: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 14:00:24: Lp1: Token Refresh failed
2023-08-14 14:00:24: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 14:00:18: Lp1: Token Refresh failed
2023-08-14 14:00:18: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 14:00:12: Lp1: Token Refresh failed
2023-08-14 14:00:12: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 14:00:06: Lp1: Token Refresh failed
2023-08-14 14:00:06: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 13:59:59: Lp1: Token Refresh failed
2023-08-14 13:59:59: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 13:59:53: Lp1: Token Refresh failed
2023-08-14 13:59:53: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 13:59:47: Lp1: Token Refresh failed
2023-08-14 13:59:47: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 13:59:41: Lp1: Token Refresh failed
2023-08-14 13:59:41: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 13:59:35: Lp1: Token Refresh failed
2023-08-14 13:59:35: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 13:59:34: PID: 8849: Lp1: Waking up car. (LV1) at 121 wakeUpCar modules/soc_tesla/main.sh
2023-08-14 10:25:00: PID: 21592: Lp1: SoC:  (LV1) at 64 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 10:25:00: PID: 21592: Lp1: State:  (LV1) at 62 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 10:24:59: Lp1: Token Refresh failed
2023-08-14 10:24:59: Lp1: Expecting value: line 1 column 1 (char 0)
2023-08-14 10:24:58: PID: 21592: Lp1: Car not online after timeout. SoC will be outdated! (LV0) at 180 main modules/soc_tesla/main.sh
EDIT:
Habe jetzt mal getestet, wie es bei einem Intervall von einer Minute aussieht. Es scheint alles zu funktionieren. Der Fehler könnte also daran liegen, dass beim "Refresh" das Auto nicht aufgeweckt werden kann?

Code: Alles auswählen

2023-08-14 22:44:07: PID: 31946: Lp1: SoC: 80 (LV1) at 64 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:44:07: PID: 31946: Lp1: State: "online" (LV1) at 62 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:44:03: PID: 31946: Lp1: Waking up car. (LV1) at 121 wakeUpCar modules/soc_tesla/main.sh
2023-08-14 22:42:59: PID: 23241: Lp1: SoC: 80 (LV1) at 64 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:42:59: PID: 23241: Lp1: State: "online" (LV1) at 62 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:42:55: PID: 23241: Lp1: Waking up car. (LV1) at 121 wakeUpCar modules/soc_tesla/main.sh
2023-08-14 22:41:48: PID: 14651: Lp1: SoC: 80 (LV1) at 64 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:41:48: PID: 14651: Lp1: State: "online" (LV1) at 62 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:41:44: PID: 14651: Lp1: Waking up car. (LV1) at 121 wakeUpCar modules/soc_tesla/main.sh
2023-08-14 22:41:03: PID: 7017: Lp1: SoC: 80 (LV1) at 64 getAndWriteSoc /var/www/html/openWB/modules/soc_tesla/main.sh
2023-08-14 22:41:03: PID: 7017: Lp1: State: "online" (LV1) at 62 getAndWriteSoc /var/www/html/openWB/modules/soc_tesla/main.sh
2023-08-14 22:40:41: PID: 7017: Lp1: Waking up car. (LV1) at 121 wakeUpCar /var/www/html/openWB/modules/soc_tesla/main.sh
EDIT2:
Habe jetzt mal Python3 aktualisiert. Mal schauen ob das vll. etwas gebracht hat.

Jetzige Version:

Code: Alles auswählen

pip 23.2.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)
kai9555
Beiträge: 168
Registriert: Mi Feb 01, 2023 7:16 am

Re: Support: Tesla

Beitrag von kai9555 »

mistro hat geschrieben: Mo Aug 14, 2023 8:40 pm
EDIT:
Habe jetzt mal getestet, wie es bei einem Intervall von einer Minute aussieht. Es scheint alles zu funktionieren. Der Fehler könnte also daran liegen, dass beim "Refresh" das Auto nicht aufgeweckt werden kann?

Code: Alles auswählen

2023-08-14 22:44:07: PID: 31946: Lp1: SoC: 80 (LV1) at 64 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:44:07: PID: 31946: Lp1: State: "online" (LV1) at 62 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:44:03: PID: 31946: Lp1: Waking up car. (LV1) at 121 wakeUpCar modules/soc_tesla/main.sh
2023-08-14 22:42:59: PID: 23241: Lp1: SoC: 80 (LV1) at 64 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:42:59: PID: 23241: Lp1: State: "online" (LV1) at 62 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:42:55: PID: 23241: Lp1: Waking up car. (LV1) at 121 wakeUpCar modules/soc_tesla/main.sh
2023-08-14 22:41:48: PID: 14651: Lp1: SoC: 80 (LV1) at 64 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:41:48: PID: 14651: Lp1: State: "online" (LV1) at 62 getAndWriteSoc modules/soc_tesla/main.sh
2023-08-14 22:41:44: PID: 14651: Lp1: Waking up car. (LV1) at 121 wakeUpCar modules/soc_tesla/main.sh
2023-08-14 22:41:03: PID: 7017: Lp1: SoC: 80 (LV1) at 64 getAndWriteSoc /var/www/html/openWB/modules/soc_tesla/main.sh
2023-08-14 22:41:03: PID: 7017: Lp1: State: "online" (LV1) at 62 getAndWriteSoc /var/www/html/openWB/modules/soc_tesla/main.sh
2023-08-14 22:40:41: PID: 7017: Lp1: Waking up car. (LV1) at 121 wakeUpCar /var/www/html/openWB/modules/soc_tesla/main.sh
EDIT2:
Habe jetzt mal Python3 aktualisiert. Mal schauen ob das vll. etwas gebracht hat.

Jetzige Version:

Code: Alles auswählen

pip 23.2.1 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)
Mir ist tatsächlich gestern auch aufgefallen, dass der SoC im Modus „Sofort Laden“ stetig mit aktualisiert wurde. Als der Ladevorgang dann abgeschlossen wurde ging es nicht mehr. Ich habe es für einen Zufall gehalten (Ladedauer war etwa 5h) aber eventuell passt da ja zusammen.
kai9555
Beiträge: 168
Registriert: Mi Feb 01, 2023 7:16 am

Re: Support: Tesla

Beitrag von kai9555 »

mrinas hat geschrieben: Mo Aug 14, 2023 1:01 pm
kai9555 hat geschrieben: Mo Aug 14, 2023 12:41 pm
kai9555 hat geschrieben: Mo Aug 14, 2023 9:29 am

Ja das mache ich gern. Ich kenne mich rudimentär mit Linux aus und benötige lediglich eine Spickzettel. Kannst du mich kurz in 3-4 Stichpunkten anleiten, damit wir zum gewünschten Ergebnis kommen.

Zugriff über Konsole oder GUI ist beides möglich.

VG Kai
Ok ich habe mir es gerade selber angelesen. Das Script läuft bei mir erst einmal sauber mit Thonny durch. Ich würde morgen noch einmal schauen was es dann sagt.
Gut, zu erwarten ist dass mein Testscript fehlerfrei durchläuft.
Immer wenn es den Token-Refresh Fehler gibt wird das Script in einen 403 (o.ä.) Fehler laufen. Meine Vermutung ist dass auf selbsinstallierten (?) openWB Instanzen eine der verwendeten Bibliotheken in der eingesetzten Version für diesen Fehler verantwortlich ist. Soweit ich das durch meine Tests hab klären können ist der HTTP Request selber syntaktisch korrekt. Dennoch scheint nicht alles genau so wie zu erwarten wäre bei Tesla anzukommen.
Aus meiner Erfahrung mit dem OneDrive Backup Modul würde ich empfehlen den Tests mindestens parallel auch auf einem Raspbi durchzuführen um Unterschiede in der Architektur (x86/x64 bei VMs, ARM bei Raspbi) auszuschließen.
Mhh openWB gibt mir den Token refresh error, dein script gibt jedoch keinen Fehler aus.
mistro
Beiträge: 12
Registriert: Fr Feb 10, 2023 3:58 pm

Re: Support: Tesla

Beitrag von mistro »

Mir ist jetzt noch ein Unterschied aufgefallen.

Beim Aktualisieren des Ladepunktes erscheint folgende Meldung im LOG File:

Code: Alles auswählen

2023-08-17 12:49:39: PID: 14827: Lp1: Waking up car. (LV1) at 122 wakeUpCar /var/www/html/openWB/modules/soc_tesla/main.sh
Nach Zeitablauf der 720 Minuten (in welcher "WakeUpCar" fehlschlägt) erscheint folgende Meldung im LOG File:

Code: Alles auswählen

2023-08-17 09:05:54: PID: 6893: Lp1: Waking up car. (LV1) at 122 wakeUpCar modules/soc_tesla/main.sh
Man beachte den Unterschied bzgl. dem Pfad von "main.sh".

Ist hier vll. der Aufruf nach dem Timeout mit falscher Pfadangabe? Ich habe jetzt noch nicht herausgefunden, wo genau dieser Aufruf erfolgt (Unterschied zw. Aufruf von WakeUpCar beim Speichern des Ladepunktes und Aufruf von WakeUpCar nach Zeitablauf). Aber vll. hat das ja jemand schneller herausgefunden als ich :?:
pece800
Beiträge: 12
Registriert: Mo Mär 09, 2020 9:40 pm

Re: Support: Tesla

Beitrag von pece800 »

mrinas hat geschrieben: So Jul 09, 2023 8:09 pm Hm, ich berichte hier mal was ich herausgefunden habe, auch wenn ich mir da noch keinen Reim darauf machen kann. Manchmal hilfts zu teilen, bisweilen komm' ich dann einen Schritt weiter.

Ich hab' mir aus den Anfragen des 1.9er Moduls mit meinem refreshtoken eine kleine tesla-test.py Datei gebaut mit welcher ich den Aufruf losgelöst von allem anderen ausführen kann. Mal gehts, mal gehts nicht:

windows lokal - geht
2.0 lokal raspbian bullseye - geht
1.9er azure debian 11 bullseye - geht nicht
2.0 azure debian 11 bullseye- geht

Scheint so dass ausschließlich die 1.9er Version nicht funktioniert, wenngleich ich nur eine selbstinstallation auf Azure auf Debian 11 Bullseye zur Verfügung hab. Meine beiden Azure-Instanzen basieren beide auf dem identischen Image, Debian 11 Bullseye. Mit 1.9 bekomme ich einen 403 Fehler, mit 2.0 läuft es. Womöglich unterschiedliche Versionen der Libraries, ggf. für TLS? Mal sehen ob ich mit wireshark/TCPdump Unterschiede feststellen kann. Und Urllib3 und requests versionen vergleichen.
Weitere Ideen? Immer her damit!

hier ist mein Testscript:

Code: Alles auswählen

import requests
import logging
from http.client import HTTPConnection


log = logging.getLogger('urllib3')

log.setLevel(logging.DEBUG)
tokens = {"access_token": "", "refresh_token": "hier kommt der Refresh Token aus tokens.lp1 rein"}

HTTPConnection.debuglevel = 1

# headers = {"user-agent": UA, "x-tesla-user-agent": X_TESLA_USER_AGENT}
headers = {
    "Content-Type": "application/json",
    "Accept": "*/*",
    #"Referer": "https://auth.tesla.com/",
    #"user-agent": "",
    #"x-tesla-user-agent": "",
    #'accept-encoding': "deflate"
}
print("headers", headers)
payload = {
    "grant_type": "refresh_token",
    "client_id": "ownerapi",
    "refresh_token": tokens["refresh_token"],
    "scope": "openid email offline_access",
}
print("payload", payload)
session = requests.Session()

resp = session.post("https://auth.tesla.com/oauth2/v3/token", headers=headers, json=payload, timeout=120)

print(resp.text)
Was mir aufgefallen ist: Bei den Rechnern, auf denen das testscript funktioniert (danke dafür, damit konnten wir den Fehler gut nachstellen!), war eine "alte" 1.x Version von der "urllib3" installiert.
Bei den anderen die 2.x. Scheinbar ist die mit einem der vergangenen openWB Updates aktualisiert worden?
Und tatsächlich: Mit

Code: Alles auswählen

pip install urllib3==1.26.16
bekomme ich das Script zum Laufen. Und auch der Token refresh funktioniert dann sauber.
Da gibt es wohl einige Changes, die sich mit der Tesla API nicht vertragen. Habe aber aktuell nicht die Zeit, es zu debuggen, aber vielleicht jemand von Euch. Könnte es in der Ecke TLS sein? Eventuell mal durch die breaking changes schauen?
https://urllib3.readthedocs.io/en/lates ... guide.html

Ciao
Peter
AndiBu
Beiträge: 60
Registriert: So Sep 20, 2020 2:49 pm

Re: Support: Tesla

Beitrag von AndiBu »

Puh sehr technisch hier... Bin ich mit der Fehlermeldung s Anhang allein?

Danke
Dateianhänge
1000016530.png
21kWp PV
SMH 2.0
STP 20000TL-30
openWB series2 standard+
Nissan Leaf ZE1 40kWh
AndiBu
Beiträge: 60
Registriert: So Sep 20, 2020 2:49 pm

Re: Support: Tesla

Beitrag von AndiBu »

URL Eingabe funktioniert nicht. Kann mich nicht über openwb bei tesla anmelden...siehe Fehlermeldung oben

installierte Version: 1.9.303.0

Was kann ich machen?
21kWp PV
SMH 2.0
STP 20000TL-30
openWB series2 standard+
Nissan Leaf ZE1 40kWh
Antworten