Ai Ways U5 SOC abgreifen
Zitat von Jpsy am 28. April 2023, 12:03 UhrZitat von dvbhannes am 24. April 2023, 15:35 UhrWie EVCC-Code? Meinst Du in der Konfigurationsdatei einfach Token und RegisterId einfügen???
Nein, ich meine den Quellcode von EVCC. Das ist ja ein OpenSource-Projekt und die Quellen liegen offen.
Falls Du dazu in der Lage bist, kannst das Aiways-Modul von EVCC selbst modifizieren und das Projekt neu kompilieren.
Ich denke, die dafür relevanten Dateien stehen hier:
https://github.com/evcc-io/evcc/tree/master/vehicle/aiways
Zitat von dvbhannes am 24. April 2023, 15:35 UhrWie EVCC-Code? Meinst Du in der Konfigurationsdatei einfach Token und RegisterId einfügen???
Nein, ich meine den Quellcode von EVCC. Das ist ja ein OpenSource-Projekt und die Quellen liegen offen.
Falls Du dazu in der Lage bist, kannst das Aiways-Modul von EVCC selbst modifizieren und das Projekt neu kompilieren.
Ich denke, die dafür relevanten Dateien stehen hier:
https://github.com/evcc-io/evcc/tree/master/vehicle/aiways
Zitat von dvbhannes am 26. Mai 2023, 11:35 UhrKönnte es sein, dass man mit einer API ABRP mit den Live-Daten des Aiways versorgen kann...
siehe https://www.iternio.com/
Könnte es sein, dass man mit einer API ABRP mit den Live-Daten des Aiways versorgen kann...
siehe https://www.iternio.com/
Zitat von dvbhannes am 26. Mai 2023, 11:48 UhrZitat von Jpsy am 28. April 2023, 12:03 UhrZitat von dvbhannes am 24. April 2023, 15:35 UhrWie EVCC-Code? Meinst Du in der Konfigurationsdatei einfach Token und RegisterId einfügen???
Nein, ich meine den Quellcode von EVCC. Das ist ja ein OpenSource-Projekt und die Quellen liegen offen.
Falls Du dazu in der Lage bist, kannst das Aiways-Modul von EVCC selbst modifizieren und das Projekt neu kompilieren.
Ich denke, die dafür relevanten Dateien stehen hier:
https://github.com/evcc-io/evcc/tree/master/vehicle/aiwaysDanke Dir, aber dazu bin ich leider nicht in der Lage...
Zitat von Jpsy am 28. April 2023, 12:03 UhrZitat von dvbhannes am 24. April 2023, 15:35 UhrWie EVCC-Code? Meinst Du in der Konfigurationsdatei einfach Token und RegisterId einfügen???
Nein, ich meine den Quellcode von EVCC. Das ist ja ein OpenSource-Projekt und die Quellen liegen offen.
Falls Du dazu in der Lage bist, kannst das Aiways-Modul von EVCC selbst modifizieren und das Projekt neu kompilieren.
Ich denke, die dafür relevanten Dateien stehen hier:
https://github.com/evcc-io/evcc/tree/master/vehicle/aiways
Danke Dir, aber dazu bin ich leider nicht in der Lage...
Zitat von WallE92 am 28. Juli 2023, 08:37 UhrHallo zusammen,
erstmal toll, was so viele hier schon so geleistet haben!
Ich werkel jetzt auch schon ein paar Tage daran rum, den Abruf der Daten über JS in iobroker zu integrieren.
Mit den vorhandenen Anleitungen erreiche ich auch immerhin schon den Aiways-Server. Token und den ganzen Spaß habe ich auch aus der App ausgelesen.
Es wird in meinem Skript nur auch noch der getCondition request ausgeführt.Leider erhalte ich aber nach wie vor die Meldung
{"code":702,"message":"The detection environment is not safe, please try again later","timestamp":1690467531139}Ich vermute, ich habe noch einen Fehler im Header.
Kann mir dazu eventuell jemand einen Hinweis liefern, was daran falsch ist?
Mein Header sieht derzeit wie folgt aus:
const requestHeaders = {"language":language,"token":token,"requesttime":Date.now(),"appsignid":appsignid,"reqtimestamps":Date.now(),"authorization":authorization,"registerid":registerid,"deviceid":deviceid,"version":version,"platform":platform,"apptimezone":apptimezone,"apptimezoneid":apptimezoneid,"content-type":"application/json; charset=utf-8","accept-encoding":"gzip","user-agent":"okhttp/4.3.1",};
Vielen Dank schon einmal!
EDIT:
Problem ist gefunden. Die aktuelle App-Version ist 1.4.1, jedoch scheint der Aiways-Server mit dieser einen anderen Zugriff zu erwarten. Dieser muss sämtliche Informationen enthalten, welche ich oben aufgelistet habe. Am Ende scheitert das bei mir an der "authorization". Ich weiß nicht, wie diese generiert wird. Sie ändert sich auch bei jeder Anfrage an den Server.
Das alles scheint aber kein Problem zu sein, so lange man die "version": "1.3.0" an den Server schickt. In diesem Fall kann man sich die authorization, die appsignid und die zwei timestamps sparen und man erhält die Daten.
Hallo zusammen,
erstmal toll, was so viele hier schon so geleistet haben!
Ich werkel jetzt auch schon ein paar Tage daran rum, den Abruf der Daten über JS in iobroker zu integrieren.
Mit den vorhandenen Anleitungen erreiche ich auch immerhin schon den Aiways-Server. Token und den ganzen Spaß habe ich auch aus der App ausgelesen.
Es wird in meinem Skript nur auch noch der getCondition request ausgeführt.
Leider erhalte ich aber nach wie vor die Meldung
{"code":702,"message":"The detection environment is not safe, please try again later","timestamp":1690467531139}
Ich vermute, ich habe noch einen Fehler im Header.
Kann mir dazu eventuell jemand einen Hinweis liefern, was daran falsch ist?
Mein Header sieht derzeit wie folgt aus:
};
Vielen Dank schon einmal!
EDIT:
Problem ist gefunden. Die aktuelle App-Version ist 1.4.1, jedoch scheint der Aiways-Server mit dieser einen anderen Zugriff zu erwarten. Dieser muss sämtliche Informationen enthalten, welche ich oben aufgelistet habe. Am Ende scheitert das bei mir an der "authorization". Ich weiß nicht, wie diese generiert wird. Sie ändert sich auch bei jeder Anfrage an den Server.
Das alles scheint aber kein Problem zu sein, so lange man die "version": "1.3.0" an den Server schickt. In diesem Fall kann man sich die authorization, die appsignid und die zwei timestamps sparen und man erhält die Daten.
Valentin
__________________________________
Tesla Model Y LR von 02/22
Aiways U5 Premium von 12/22 mit AHK
Zitat von PeterCs am 13. März 2024, 19:10 UhrWallE92 könntest du mir Hilfestellung geben wie ich so weit komme wie du? Ich würde unseren U5 auch per IoBroker so laden können Aber weiß noch nicht so recht wie ich das bewerkstelligen kann.Wäre um jede Hilfe froh!Zitat von WallE92 am 28. Juli 2023, 08:37 UhrHallo zusammen,
erstmal toll, was so viele hier schon so geleistet haben!
Ich werkel jetzt auch schon ein paar Tage daran rum, den Abruf der Daten über JS in iobroker zu integrieren.
Mit den vorhandenen Anleitungen erreiche ich auch immerhin schon den Aiways-Server. Token und den ganzen Spaß habe ich auch aus der App ausgelesen.
Es wird in meinem Skript nur auch noch der getCondition request ausgeführt.Leider erhalte ich aber nach wie vor die Meldung
{"code":702,"message":"The detection environment is not safe, please try again later","timestamp":1690467531139}Ich vermute, ich habe noch einen Fehler im Header.
Kann mir dazu eventuell jemand einen Hinweis liefern, was daran falsch ist?
Mein Header sieht derzeit wie folgt aus:
const requestHeaders = {"language":language,"token":token,"requesttime":Date.now(),"appsignid":appsignid,"reqtimestamps":Date.now(),"authorization":authorization,"registerid":registerid,"deviceid":deviceid,"version":version,"platform":platform,"apptimezone":apptimezone,"apptimezoneid":apptimezoneid,"content-type":"application/json; charset=utf-8","accept-encoding":"gzip","user-agent":"okhttp/4.3.1",};
Vielen Dank schon einmal!
EDIT:
Problem ist gefunden. Die aktuelle App-Version ist 1.4.1, jedoch scheint der Aiways-Server mit dieser einen anderen Zugriff zu erwarten. Dieser muss sämtliche Informationen enthalten, welche ich oben aufgelistet habe. Am Ende scheitert das bei mir an der "authorization". Ich weiß nicht, wie diese generiert wird. Sie ändert sich auch bei jeder Anfrage an den Server.
Das alles scheint aber kein Problem zu sein, so lange man die "version": "1.3.0" an den Server schickt. In diesem Fall kann man sich die authorization, die appsignid und die zwei timestamps sparen und man erhält die Daten.
Hallo zusammen,
erstmal toll, was so viele hier schon so geleistet haben!
Ich werkel jetzt auch schon ein paar Tage daran rum, den Abruf der Daten über JS in iobroker zu integrieren.
Mit den vorhandenen Anleitungen erreiche ich auch immerhin schon den Aiways-Server. Token und den ganzen Spaß habe ich auch aus der App ausgelesen.
Es wird in meinem Skript nur auch noch der getCondition request ausgeführt.Leider erhalte ich aber nach wie vor die Meldung
{"code":702,"message":"The detection environment is not safe, please try again later","timestamp":1690467531139}Ich vermute, ich habe noch einen Fehler im Header.
Kann mir dazu eventuell jemand einen Hinweis liefern, was daran falsch ist?
Mein Header sieht derzeit wie folgt aus:
const requestHeaders = {"language":language,"token":token,"requesttime":Date.now(),"appsignid":appsignid,"reqtimestamps":Date.now(),"authorization":authorization,"registerid":registerid,"deviceid":deviceid,"version":version,"platform":platform,"apptimezone":apptimezone,"apptimezoneid":apptimezoneid,"content-type":"application/json; charset=utf-8","accept-encoding":"gzip","user-agent":"okhttp/4.3.1",};
Vielen Dank schon einmal!
EDIT:
Problem ist gefunden. Die aktuelle App-Version ist 1.4.1, jedoch scheint der Aiways-Server mit dieser einen anderen Zugriff zu erwarten. Dieser muss sämtliche Informationen enthalten, welche ich oben aufgelistet habe. Am Ende scheitert das bei mir an der "authorization". Ich weiß nicht, wie diese generiert wird. Sie ändert sich auch bei jeder Anfrage an den Server.
Das alles scheint aber kein Problem zu sein, so lange man die "version": "1.3.0" an den Server schickt. In diesem Fall kann man sich die authorization, die appsignid und die zwei timestamps sparen und man erhält die Daten.
Zitat von kuttis am 14. März 2024, 09:33 UhrSchau mal hier:
https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/4
Der Post vom 1.4.23 von jpsy.
Dort wird erklärt, wie du mit einem Android Gerät an den Token für die APP kommst.
Schau mal hier:
https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/4
Der Post vom 1.4.23 von jpsy.
Dort wird erklärt, wie du mit einem Android Gerät an den Token für die APP kommst.
Zitat von WallE92 am 4. April 2024, 10:35 UhrZitat von PeterCs am 13. März 2024, 19:10 UhrWallE92 könntest du mir Hilfestellung geben wie ich so weit komme wie du? Ich würde unseren U5 auch per IoBroker so laden können Aber weiß noch nicht so recht wie ich das bewerkstelligen kann.Wäre um jede Hilfe froh!Zitat von WallE92 am 28. Juli 2023, 08:37 UhrHallo zusammen,
erstmal toll, was so viele hier schon so geleistet haben!
Ich werkel jetzt auch schon ein paar Tage daran rum, den Abruf der Daten über JS in iobroker zu integrieren.
Mit den vorhandenen Anleitungen erreiche ich auch immerhin schon den Aiways-Server. Token und den ganzen Spaß habe ich auch aus der App ausgelesen.
Es wird in meinem Skript nur auch noch der getCondition request ausgeführt.Leider erhalte ich aber nach wie vor die Meldung
{"code":702,"message":"The detection environment is not safe, please try again later","timestamp":1690467531139}Ich vermute, ich habe noch einen Fehler im Header.
Kann mir dazu eventuell jemand einen Hinweis liefern, was daran falsch ist?
Mein Header sieht derzeit wie folgt aus:
const requestHeaders = {"language":language,"token":token,"requesttime":Date.now(),"appsignid":appsignid,"reqtimestamps":Date.now(),"authorization":authorization,"registerid":registerid,"deviceid":deviceid,"version":version,"platform":platform,"apptimezone":apptimezone,"apptimezoneid":apptimezoneid,"content-type":"application/json; charset=utf-8","accept-encoding":"gzip","user-agent":"okhttp/4.3.1",};
Vielen Dank schon einmal!
EDIT:
Problem ist gefunden. Die aktuelle App-Version ist 1.4.1, jedoch scheint der Aiways-Server mit dieser einen anderen Zugriff zu erwarten. Dieser muss sämtliche Informationen enthalten, welche ich oben aufgelistet habe. Am Ende scheitert das bei mir an der "authorization". Ich weiß nicht, wie diese generiert wird. Sie ändert sich auch bei jeder Anfrage an den Server.
Das alles scheint aber kein Problem zu sein, so lange man die "version": "1.3.0" an den Server schickt. In diesem Fall kann man sich die authorization, die appsignid und die zwei timestamps sparen und man erhält die Daten.Entschuldige bitte für die späte Rückmeldung.
Ich habe hier im Forum schon lange nicht mehr reingesehen.
Bist du eventuell in einer der Support-Whatsapp-Gruppen? Da heiße ich Valentin (Profilbild mit einem weißen Hund). Kannst mich auch gerne da anschreiben.
Ich bin kein Experte in solchen Dingen und ich habe sicher nicht die sicherste Methode "erstellt", um die Daten abzugreifen.Aber es funktioniert so weit recht zuverlässig 😉
Zitat von PeterCs am 13. März 2024, 19:10 UhrWallE92 könntest du mir Hilfestellung geben wie ich so weit komme wie du? Ich würde unseren U5 auch per IoBroker so laden können Aber weiß noch nicht so recht wie ich das bewerkstelligen kann.Wäre um jede Hilfe froh!Zitat von WallE92 am 28. Juli 2023, 08:37 UhrHallo zusammen,
erstmal toll, was so viele hier schon so geleistet haben!
Ich werkel jetzt auch schon ein paar Tage daran rum, den Abruf der Daten über JS in iobroker zu integrieren.
Mit den vorhandenen Anleitungen erreiche ich auch immerhin schon den Aiways-Server. Token und den ganzen Spaß habe ich auch aus der App ausgelesen.
Es wird in meinem Skript nur auch noch der getCondition request ausgeführt.Leider erhalte ich aber nach wie vor die Meldung
{"code":702,"message":"The detection environment is not safe, please try again later","timestamp":1690467531139}Ich vermute, ich habe noch einen Fehler im Header.
Kann mir dazu eventuell jemand einen Hinweis liefern, was daran falsch ist?
Mein Header sieht derzeit wie folgt aus:
const requestHeaders = {"language":language,"token":token,"requesttime":Date.now(),"appsignid":appsignid,"reqtimestamps":Date.now(),"authorization":authorization,"registerid":registerid,"deviceid":deviceid,"version":version,"platform":platform,"apptimezone":apptimezone,"apptimezoneid":apptimezoneid,"content-type":"application/json; charset=utf-8","accept-encoding":"gzip","user-agent":"okhttp/4.3.1",};
Vielen Dank schon einmal!
EDIT:
Problem ist gefunden. Die aktuelle App-Version ist 1.4.1, jedoch scheint der Aiways-Server mit dieser einen anderen Zugriff zu erwarten. Dieser muss sämtliche Informationen enthalten, welche ich oben aufgelistet habe. Am Ende scheitert das bei mir an der "authorization". Ich weiß nicht, wie diese generiert wird. Sie ändert sich auch bei jeder Anfrage an den Server.
Das alles scheint aber kein Problem zu sein, so lange man die "version": "1.3.0" an den Server schickt. In diesem Fall kann man sich die authorization, die appsignid und die zwei timestamps sparen und man erhält die Daten.
Entschuldige bitte für die späte Rückmeldung.
Ich habe hier im Forum schon lange nicht mehr reingesehen.
Bist du eventuell in einer der Support-Whatsapp-Gruppen? Da heiße ich Valentin (Profilbild mit einem weißen Hund). Kannst mich auch gerne da anschreiben.
Ich bin kein Experte in solchen Dingen und ich habe sicher nicht die sicherste Methode "erstellt", um die Daten abzugreifen.
Aber es funktioniert so weit recht zuverlässig 😉
Valentin
__________________________________
Tesla Model Y LR von 02/22
Aiways U5 Premium von 12/22 mit AHK
Zitat von malagache am 7. April 2024, 18:34 UhrHi all,
thanks to Jspy's info, I was able to collect my token, registerid and other technical infos. Yet I can't manage to forge a request that will give me an answer. I tried to lower the version:1.3.0 and dropped the two timestamps in the header according to Wall92's post but I get a strange error stating:
{"code":500,"message":"org.springframework.http.converter.HttpMessageNotReadableException:JSON parse error: Unrecognized token 'userId': was expecting ('true', 'false' or 'null'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'userId': was expecting ('true', 'false' or 'null')\n at [Source: (PushbackInputStream); line: 1, column: 8]","timestamp":1712506894789}
I tried in python and with curl but no positive result.
For those who get this technique working, can you confirm that:
- version 1.3.0 is still the correct way to go
- what list of headers do you exactly send
- does all this still work now, april 24 ?
Many thanks for your answer
Mala
Hi all,
thanks to Jspy's info, I was able to collect my token, registerid and other technical infos. Yet I can't manage to forge a request that will give me an answer. I tried to lower the version:1.3.0 and dropped the two timestamps in the header according to Wall92's post but I get a strange error stating:
{"code":500,"message":"org.springframework.http.converter.HttpMessageNotReadableException:JSON parse error: Unrecognized token 'userId': was expecting ('true', 'false' or 'null'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'userId': was expecting ('true', 'false' or 'null')\n at [Source: (PushbackInputStream); line: 1, column: 8]","timestamp":1712506894789}
I tried in python and with curl but no positive result.
For those who get this technique working, can you confirm that:
- version 1.3.0 is still the correct way to go
- what list of headers do you exactly send
- does all this still work now, april 24 ?
Many thanks for your answer
Mala