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.kai9555 hat geschrieben: ↑Mo Aug 14, 2023 9:29 amJa 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.mrinas hat geschrieben: ↑Mo Aug 14, 2023 9:23 amsehr 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?)
Zugriff über Konsole oder GUI ist beides möglich.
VG Kai
Support: Tesla
Re: Support: Tesla
- mrinas
- Beiträge: 2148
- Registriert: Mi Jan 29, 2020 10:12 pm
- Has thanked: 8 times
- Been thanked: 6 times
Re: Support: Tesla
Gut, zu erwarten ist dass mein Testscript fehlerfrei durchläuft.kai9555 hat geschrieben: ↑Mo Aug 14, 2023 12:41 pmOk 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.kai9555 hat geschrieben: ↑Mo Aug 14, 2023 9:29 amJa 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.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?)
Zugriff über Konsole oder GUI ist beides möglich.
VG Kai
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, Smart #1 (ersetzt den e2008), Tesla Model Y LR.
Re: Support: Tesla
Ok - danke für die Info. Ich habe ein wenig Zeug herumliegen und teste das mal die Tage.
Re: Support: Tesla
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):
Beim Update nach Zeitablauf wird kein Wert eingetragen:
Und das, obwohl scheinbar der gleiche Code "getAndWriteSoc" aufgerufen wird
Gesamter Log sieht folgendermaßen aus:
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?
EDIT2:
Habe jetzt mal Python3 aktualisiert. Mal schauen ob das vll. etwas gebracht hat.
Jetzige Version:
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
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
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
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
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)
Re: Support: Tesla
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.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?
EDIT2: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
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)
Re: Support: Tesla
Mhh openWB gibt mir den Token refresh error, dein script gibt jedoch keinen Fehler aus.mrinas hat geschrieben: ↑Mo Aug 14, 2023 1:01 pmGut, zu erwarten ist dass mein Testscript fehlerfrei durchläuft.kai9555 hat geschrieben: ↑Mo Aug 14, 2023 12:41 pmOk 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.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
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.
Re: Support: Tesla
Mir ist jetzt noch ein Unterschied aufgefallen.
Beim Aktualisieren des Ladepunktes erscheint folgende Meldung im LOG File:
Nach Zeitablauf der 720 Minuten (in welcher "WakeUpCar" fehlschlägt) erscheint folgende Meldung im LOG File:
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
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
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
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
Re: Support: Tesla
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.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)
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
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
Re: Support: Tesla
Puh sehr technisch hier... Bin ich mit der Fehlermeldung s Anhang allein?
Danke
Danke
21kWp PV
SMH 2.0
STP 20000TL-30
openWB series2 standard+
Nissan Leaf ZE1 40kWh
SMH 2.0
STP 20000TL-30
openWB series2 standard+
Nissan Leaf ZE1 40kWh
Re: Support: Tesla
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?
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
SMH 2.0
STP 20000TL-30
openWB series2 standard+
Nissan Leaf ZE1 40kWh