-
-
Notifications
You must be signed in to change notification settings - Fork 720
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Genesis API #13929
Add Genesis API #13929
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODOs:
- evcc AppId
- verify all URLs are correct
- regression test for Hyundai/Kia
- test with Genesis to ensure only URLs are different, but schemas are the same
Danke schon mal! Hier die AppId: GenesisAppID = "f11f2b86-e0e7-4851-90df-5600b01d8b70" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hier die AppId:
Ja, die habe ich schon drin. Ich hatte allerdings verstanden, dass diese noch nicht evcc spezifisch war?
stimmt, sorry habs gesehen. Ich blicke noch nicht so ganz durch wie ich mir diesen PR lokal clone...hab mir dein master genommen und da wars nicht drin. diese AppID habe ich aus https://github.com/Hyundai-Kia-Connect/hyundai_kia_connect_api/blob/master/hyundai_kia_connect_api/KiaUvoApiEU.py für Hyundai/Kia wurde das auch so gemacht, natürlich unschön da das theoretisch jederzeit widerrufen werden könnte, aber leider kann man sich nicht selber dafür registrieren, da bräuchte es jemanden aus Korea dafür (koreanische Telefonnummer nötig). Also soweit alles "evcc-konform" ;-) |
habs geschafft dein PR bei mir zu testen. Erste Änderung für Genesis in der identity.go müsste so sein:
d.h. da müsste man den Abschnitt so gestalten, dass für Genesis die APIURI verwendet wird und für die anderen beiden die AuthURI |
func (v *Identity) brandLogin(cookieClient *request.Helper, user, password string) (string, error) { |
|
alt: |
Die Änderung gibt es in dem PR nicht, das war wohl bei Dir lokal. ;) Ich habe mal die APIURI analog zu den anderen Stellen eingefügt. |
sorry, oh mann ich hab ein durcheinander ;-)
|
@pasqualito79 Wenn Du oben auf den Tab Files Changed wechselst, kannst Du in der Zeile, wo die Änderung hin soll auf plus drücken, und dort direkt den Kommentar rein schreiben. |
Jetzt kommt was kniffliges. Login hat funktioniert, soweit gut...
nächster Request sieht aktuell so aus:
hier sieht man, dass Parameter "code" leer ist. Der wird hier irgendwo abgeholt:
Wenn ich den original-App anschaue sieht der so aus:
|
@pasqualito79 den code würde ich XXXen. ;) |
Email und Passwort sollten nicht leer sein. Kann es sein, dass Du die credentials noch konfigurieren musst? |
So ist besser formatiert, da sieht man auch dass user/pwd gefüllt sind... |
Kannst Du das komplette log zwischen signin und token posten? Da müsste noch irgendwo die response von dem signin call sein. |
Ok, hier die Requests:
Request Body:
Response Body:
Request Body:
Response Body (hier ist der Code drin):
Request Body (Code wird mitgeschickt):
Response Body (Tokens kommen zurück):
|
Das sind die meiner Meinung nach relevanten Requests beim Login. Es gibt natürlich noch einige Requests dazwischen, das sind aber vor allem GET requests auf Ressourcen wie CSS Files. Falls du denkst dass vielleicht doch noch was fehlt, einfach melden... |
Spannend, jetzt habe ich einen Code in dem Request (POST https://prd-eu-ccapi.genesis.com/api/v1/user/oauth2/token) drin! An dem kanns also nicht liegen...vielleicht muss man zuerst das License Agreement akzeptieren, damit der Code generiert wird. Die redirect_uri ist in diesem Request jedenfalls noch komplett falsch, ist: "https%3A%2F%2Fprd-eu-ccapi.genesis.com%2Fapi%2Fv1%2Fuser%2Foauth2%2Fredirect" und müssten sein "https%3A//accounts-eu.genesis.com/realms/eugenesisidm/ga-api/redirect2". Zusätzlich wird via App noch der Parameter "client_id" mitgesendet. Den haben wir ja in deer bluelink.go als CCSPServiceID drin. |
Hier der aktuelle Stand:
|
Habe noch einen anderen Fehler entdeckt:
hier zeigt das %s nach redirect_uri auf die AuthURI, müsste aber APIURI sein. |
@pasqualito79 Ich denke ich habe Deine letzten Anmerkungen drin. Bin mal gespannt, ob das mit dem RedirectPath so funktioniert. Das sieht doch deutlich anders aus als bei Hyundai/Kia. |
@runtologist Habs getestet, leider noch selbes Ergebnis:
Der einzige Unterschied zum "Original"-Request ist, dass "/" nicht als %2F gesendet wird, sondern eben so: "https%3A//accounts-eu.genesis.com/realms/eugenesisidm/ga-api/redirect2". Was ich noch angepasst habe sind die beiden:
aber auch das führt zum gleichen Ergebnis. Hier mal der ganze Originalrequest-Header in RAW:
XXX, YYY und ZZZ sind lange Strings. |
Hast du schon Zeit gehabt, den Token-Request anzuschauen? Hier noch als curl-Befehl:
Was sich bei jedem neuen Login ändert sind die beiden Variablen YYY und ZZZ. Alles andere bleibt gleich. |
@pasqualito79 Ich denke ich habe Deine letzten Anmerkungen drin. Nur der redirect path ist offensichtlich falsch. Ich habe im Augenblick leider niht viel Zeit, mir das anzuschauen. |
Kein Fortschritt, closing. Gerne wieder auf machen wenns konkret wird. |
evtl tut sich ja bald etwas |
No description provided.