
Ai Ways U5 SOC abgreifen
Zitat von Jpsy am 8. März 2023, 21:07 UhrÜbrigens: Im Google Play Store gibt's die Aiways App wieder. Jetzt in Version 1.2.2.
Übrigens: Im Google Play Store gibt's die Aiways App wieder. Jetzt in Version 1.2.2.
Zitat von dvbhannes am 9. März 2023, 10:33 UhrDanke für die kurze Erklärung... leider funzt die Version 1.2.2 auf meinem Xiaomi 12 nicht. Mit der vorgängerversion hatte ich keine Probleme. Wir in der Familie haben nur Xiaomi Smartphones, da funktioniert die App ohne Probleme nur bei meinem Xioami 12 nicht. Alte Versionen kann ich da n icht installieren. Auf meinem IOS Appel X läuft die aktuelle App Version 1.1.1 auch ohne Probleme, nur dass ich alle Funktionen der App nutzen kann außer die Klimaanlage. Das ist derzeit nervig...Montag bin ich bei ATU in Berlin Steglitz. Ich hoffe, die finden den Fehler...
Danke für die kurze Erklärung... leider funzt die Version 1.2.2 auf meinem Xiaomi 12 nicht. Mit der vorgängerversion hatte ich keine Probleme. Wir in der Familie haben nur Xiaomi Smartphones, da funktioniert die App ohne Probleme nur bei meinem Xioami 12 nicht. Alte Versionen kann ich da n icht installieren. Auf meinem IOS Appel X läuft die aktuelle App Version 1.1.1 auch ohne Probleme, nur dass ich alle Funktionen der App nutzen kann außer die Klimaanlage. Das ist derzeit nervig...Montag bin ich bei ATU in Berlin Steglitz. Ich hoffe, die finden den Fehler...
Zitat von Jpsy am 9. März 2023, 11:29 Uhr...leider funzt die Version 1.2.2 auf meinem Xiaomi 12 nicht
Hab die 1.2.2 bei mir auf einen Pixel 6 laufen. Bisher keine Probleme. Ich musste mich aber neu anmelden – und dann natürlich wieder das aktuelle Token neu abgreifen. Nervig.
...leider funzt die Version 1.2.2 auf meinem Xiaomi 12 nicht
Hab die 1.2.2 bei mir auf einen Pixel 6 laufen. Bisher keine Probleme. Ich musste mich aber neu anmelden – und dann natürlich wieder das aktuelle Token neu abgreifen. Nervig.
Zitat von dvbhannes am 16. März 2023, 11:06 Uhr@jpsy
Hatte "Dein" Anliegen mit Aiways besprochen. Ich soll dazu mal ne Mail fertig machen. Könntest Du mir dazu was "schreiben"? Würde vieleicht Deine Telefonnummer weitergeben können?
Schreib mir einfach mal ne Mail unter henrik.schuhr at web.de
Hatte "Dein" Anliegen mit Aiways besprochen. Ich soll dazu mal ne Mail fertig machen. Könntest Du mir dazu was "schreiben"? Würde vieleicht Deine Telefonnummer weitergeben können?
Schreib mir einfach mal ne Mail unter henrik.schuhr at web.de
Zitat von Jpsy am 14. April 2023, 18:33 UhrHier ist mein aktueller Weg, um die Anmeldeinformationen der Android App abzugreifen. Die Beschreibung bezieht sich auf die aktuelle Version 1.3.0 und die damit vollzogenen, neuesten Änderungen an der Server-API (aktiv offenbar seit gestern).
Ich nutze die so gewonnenen Zugangsdaten - wie schön früher gesagt - in Home Assistant (Node RED), aber jeder andere Weg wird auch gehen:
- Ich verwende PCAPdroid unter Android um die Kommunikation der Aiways-App mitzuschneiden.
Dieses Tool benötigt KEINE Root-Rechte.- In PCAPdroid die TLS-Entschlüsselung aktivieren. Dem Wizzard folgen, um ein Zertifikat zu generieren und es in Android als vertrauenswürdig zu installieren. Der Guide kann beim Testen der Entschlüsselung hilfreich sein.
- "HTTP-Server" als Traffic Dump wählen und die Aiways-App als Ziel wählen.
Den Dump mit dem Play-Button starten.- Die Aiways-App starten und zu den Fahrzeugdaten navigieren.
- Zurück zu PCAPdroid und dort denn Dump stoppen und anschauen. Es sollten eine Reihe von Requests und Antworten aufgezeichnet worden sein.
Die meisten Requests enthalten die gesuchten Parameter als Header:
* token
* registerid
* deviceid- Außerdem solltet Ihr noch userId (Euer Benutzername) und vin (Eure Fahrzeugidentnr.) kennen.
Die stehen aber auch in einem der Requests drin (sucht nach dem Request "getCondition").Mit diesen Parametern kann dann ein eigener Request aufgebaut werden:
URL:
POST auf https://coiapp-api-eu.ai-ways.com:10443/app/vc/getCondition
Header:
language: detoken: ...registerid: ...deviceid: ...version: 1.3.0platform: androidapptimezone: GMT+02:00apptimezoneid: Europe/Berlincontent-type: application/json; charset=utf-8accept-encoding: gzipuser-agent: okhttp/4.3.1Payload:{"userId": "...","vin": "..."}Wenn alles gut geht, steht in der Payload der Antwort der Wert code: "0" und ein data-Object mit allen Daten des Fahrzeugs.
Eine Beispiel, wie die Abfrage der Daten in Home Assistant umgesetzt werden kann, findet sich hier.
Viel Erfolg!
Hier ist mein aktueller Weg, um die Anmeldeinformationen der Android App abzugreifen. Die Beschreibung bezieht sich auf die aktuelle Version 1.3.0 und die damit vollzogenen, neuesten Änderungen an der Server-API (aktiv offenbar seit gestern).
Ich nutze die so gewonnenen Zugangsdaten - wie schön früher gesagt - in Home Assistant (Node RED), aber jeder andere Weg wird auch gehen:
- Ich verwende PCAPdroid unter Android um die Kommunikation der Aiways-App mitzuschneiden.
Dieses Tool benötigt KEINE Root-Rechte. - In PCAPdroid die TLS-Entschlüsselung aktivieren. Dem Wizzard folgen, um ein Zertifikat zu generieren und es in Android als vertrauenswürdig zu installieren. Der Guide kann beim Testen der Entschlüsselung hilfreich sein.
- "HTTP-Server" als Traffic Dump wählen und die Aiways-App als Ziel wählen.
Den Dump mit dem Play-Button starten. - Die Aiways-App starten und zu den Fahrzeugdaten navigieren.
- Zurück zu PCAPdroid und dort denn Dump stoppen und anschauen. Es sollten eine Reihe von Requests und Antworten aufgezeichnet worden sein.
Die meisten Requests enthalten die gesuchten Parameter als Header:
* token
* registerid
* deviceid - Außerdem solltet Ihr noch userId (Euer Benutzername) und vin (Eure Fahrzeugidentnr.) kennen.
Die stehen aber auch in einem der Requests drin (sucht nach dem Request "getCondition").
Mit diesen Parametern kann dann ein eigener Request aufgebaut werden:
URL:
POST auf https://coiapp-api-eu.ai-ways.com:10443/app/vc/getCondition
Header:
Wenn alles gut geht, steht in der Payload der Antwort der Wert code: "0" und ein data-Object mit allen Daten des Fahrzeugs.
Eine Beispiel, wie die Abfrage der Daten in Home Assistant umgesetzt werden kann, findet sich hier.
Viel Erfolg!
Zitat von jensjep am 17. April 2023, 09:46 UhrThanks you so much, Jpsy!
In March I used mitmproxy on a PC to learn my token and registerid, but this time I couldn't see any aiways traffic through mitmproxy.
However, because I already had the token and registerid from before, the only thing I needed after I saw your incredibly helpful post, was to add the "version" and "platform" parameters to the header.
It seems to be working without the deviceid parameter, so I did not try out pcapdroid yet, but thanks for the name of that tool for future use.
I am getting the data into Home Assistant based on the Node-Red example you have provided earlier, and added more sensors from the car.
Among other things, I hope to some day make some statistics of the car's energy consumption (and thus costs) based on the home-charger's energy sensor and the Aiways' mileage-sensor, like kWh/km and cost/km, possibly also taking into account temperature, trip-length, etc.
Thanks again for repairing this when Aiways breaks (/improves) it 🙂
Jens (from Denmark, I read German, but prefer to write English, sorry)
Thanks you so much, Jpsy!
In March I used mitmproxy on a PC to learn my token and registerid, but this time I couldn't see any aiways traffic through mitmproxy.
However, because I already had the token and registerid from before, the only thing I needed after I saw your incredibly helpful post, was to add the "version" and "platform" parameters to the header.
It seems to be working without the deviceid parameter, so I did not try out pcapdroid yet, but thanks for the name of that tool for future use.
I am getting the data into Home Assistant based on the Node-Red example you have provided earlier, and added more sensors from the car.
Among other things, I hope to some day make some statistics of the car's energy consumption (and thus costs) based on the home-charger's energy sensor and the Aiways' mileage-sensor, like kWh/km and cost/km, possibly also taking into account temperature, trip-length, etc.
Thanks again for repairing this when Aiways breaks (/improves) it 🙂
Jens (from Denmark, I read German, but prefer to write English, sorry)
Zitat von dvbhannes am 17. April 2023, 20:08 UhrSchön wäre, wenn das für EVCC für meinem Aiways funktionieren würde um den aktuellen SOC auf dem Handy zu haben....
Danke, ob das mit einem abgegriffenen token lange funktioniert??
Schön wäre, wenn das für EVCC für meinem Aiways funktionieren würde um den aktuellen SOC auf dem Handy zu haben....
Danke, ob das mit einem abgegriffenen token lange funktioniert??
Zitat von Jpsy am 22. April 2023, 07:21 UhrHi Jens,
ich antworte Dir in Deutsch, das ist hier vermutlich für mehr Leute lesbar.
Der Grund, warum der Weg über mitmproxy überhaupt funktioniert hat, war ein Fehler in der alten Appversion. Die App hat damals einen unverschlüsselten HTTP-Request (also nicht HTTPS) zum Laden eines Bildes verwendet, und dabei auch noch die Login Credentials mitgeschickt. Das war sicherheitstechnisch ein totaler Fail. Aber für uns eine große Hilfe, um das Token und die RegisterId zu bekommen.Nun hat Aiways diese Sicherheitslücke aber geschlossen. Jetzt braucht man bessere Werkzeuge, wie z.B. Pcapdroid. Damit ist es möglich, den Datenverkehr zu entschlüsseln, weil man in Android ein Zertifikat von Pcapdroid als vertrauenswürdig hinterlegt.
BTW: Der Verbrauch unseres U5 über seine bisher 33.000 km liegt bei 27,3 kWh / 100 km. Das ist viel, enthält aber die Ladeverluste, die sonst meist nicht angegeben werden (und den Fahrstiel meiner Frau :). Ein Tesla kommt aber auch mit Ladeverlusten auf sehr viel niedrigere Werte - bedingt durch Siliziumkarbid-Halbleiter, selbst entwickelte Motoren, viel besseren cw-Wert und sicher noch viele weitere Faktoren.
@dvbhannes:
Kannst Du den EVCC-Code nicht selbst anpassen? Gegenüber der ursprünglichen Version mit drei Requests musst Du alle Requests weglassen außer dem einen, der die Daten bezieht. In diesem Request fügst Du Dein Token und Deine RegisterId fest ein und fügst die Parameter version und plattform hinzu und es sollte wieder funktionieren.
Mein Token ist bisher seit vielen Monaten stabil. Wenn es wirklich ein Verfallsdatum haben sollte, kann mit Pcapdroid jederzeit wieder das neue abgegriffen werden. Einmal im Jahr wäre das z.B. für mich ok. Besser als garkeine Daten.Gruß Jörg
Hi Jens,
ich antworte Dir in Deutsch, das ist hier vermutlich für mehr Leute lesbar.
Der Grund, warum der Weg über mitmproxy überhaupt funktioniert hat, war ein Fehler in der alten Appversion. Die App hat damals einen unverschlüsselten HTTP-Request (also nicht HTTPS) zum Laden eines Bildes verwendet, und dabei auch noch die Login Credentials mitgeschickt. Das war sicherheitstechnisch ein totaler Fail. Aber für uns eine große Hilfe, um das Token und die RegisterId zu bekommen.
Nun hat Aiways diese Sicherheitslücke aber geschlossen. Jetzt braucht man bessere Werkzeuge, wie z.B. Pcapdroid. Damit ist es möglich, den Datenverkehr zu entschlüsseln, weil man in Android ein Zertifikat von Pcapdroid als vertrauenswürdig hinterlegt.
BTW: Der Verbrauch unseres U5 über seine bisher 33.000 km liegt bei 27,3 kWh / 100 km. Das ist viel, enthält aber die Ladeverluste, die sonst meist nicht angegeben werden (und den Fahrstiel meiner Frau :). Ein Tesla kommt aber auch mit Ladeverlusten auf sehr viel niedrigere Werte - bedingt durch Siliziumkarbid-Halbleiter, selbst entwickelte Motoren, viel besseren cw-Wert und sicher noch viele weitere Faktoren.
@dvbhannes:
Kannst Du den EVCC-Code nicht selbst anpassen? Gegenüber der ursprünglichen Version mit drei Requests musst Du alle Requests weglassen außer dem einen, der die Daten bezieht. In diesem Request fügst Du Dein Token und Deine RegisterId fest ein und fügst die Parameter version und plattform hinzu und es sollte wieder funktionieren.
Mein Token ist bisher seit vielen Monaten stabil. Wenn es wirklich ein Verfallsdatum haben sollte, kann mit Pcapdroid jederzeit wieder das neue abgegriffen werden. Einmal im Jahr wäre das z.B. für mich ok. Besser als garkeine Daten.
Gruß Jörg
Zitat von dvbhannes am 24. April 2023, 15:35 Uhr@ Jpsy:
Wie EVCC-Code? Meinst Du in der Konfigurationsdatei einfach Token und RegisterId einfügen???
Gruß Henrik
@ Jpsy:
Wie EVCC-Code? Meinst Du in der Konfigurationsdatei einfach Token und RegisterId einfügen???
Gruß Henrik