Bitte oder Registrieren, um Beiträge und Themen zu erstellen.

Ai Ways U5 SOC abgreifen

VorherigeSeite 17 von 17
Zitat von dvbhannes am 24. April 2023, 15:35 Uhr

Wie 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

Könnte es sein, dass man mit einer API  ABRP mit den Live-Daten des Aiways versorgen kann...

siehe https://www.iternio.com/

Grüße dvbhannes Airways U5 Aubergin, Interieur schwarz bestellt und bekommen...
Zitat von Jpsy am 28. April 2023, 12:03 Uhr
Zitat von dvbhannes am 24. April 2023, 15:35 Uhr

Wie 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...

Grüße dvbhannes Airways U5 Aubergin, Interieur schwarz bestellt und bekommen...

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.

Jpsy hat auf diesen Beitrag reagiert.
Jpsy
Gruß
Valentin
__________________________________
Kia e-Niro Spirit von 11/20
Tesla Model Y LR von 02/22
Aiways U5 Premium von 12/22 mit AHK
WallE92 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 Uhr

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.

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 PeterCs am 13. März 2024, 19:10 Uhr
WallE92 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 Uhr

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.

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 😉

Gruß
Valentin
__________________________________
Kia e-Niro Spirit von 11/20
Tesla Model Y LR von 02/22
Aiways U5 Premium von 12/22 mit AHK

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

VorherigeSeite 17 von 17