NEWS
Test Adapter VW Connect für VW, ID, Audi, Seat, Skoda
-
@amg_666 enyaq iv 80x
-
Beim Enyaq musst du mMn SkodaE wählen, das hast du?
Ging es denn irgendwann schonmal bei dir? Der Github-Issue ist doch noch nicht gelöst... -
Ich nehme mir eigentlich auch schon seit Monaten vor, das ganze Thema mal genauer zu untersuchen...
Vielleicht kann man auch bei anderen (OpenSource-) Projekten mal nachsehen, evcc hat z.Bsp. auch eine Einbindung - oder kann man dort auch keinen Enyaq neu hinzufügen?Zielbringend könnte auch sein, den Netzwerk-Verkehr der App mal mitzschneiden - denn die vielen hartcodierten URLs werden eigentlich auch von der API nach dem Login gemeldet, man müsste also (vielleicht) nicht so oft etwas ändern, wenn man dem API-Dialog der App(s) folgt...
-
@giermann enyaqE hab ich gewählt. evcc hatte auch das problem,. dort wurde das gefixed. bei mir hat es noch nie funktioniert, weil ich den enyaq erst seit 05/24 habe, und die anmeldung an der alten app (und damit der alten API) nicht mehr funktionierte.
-
@astrakid
Okay, das ist mal ein interessanter Ansatz/Hinweis!
Die Änderungen bei evcc sind nicht so leicht zu durchschauen, da sie gleichzeitig mit einer Verschiebung in ein eigenes Package erfolgten.Kannst du zum Test mal in deiner main.js die Zeile 1855 ändern und aus:
url = "https://api.connect.skoda-auto.cz/api/v3/garage";
das hier machen:
url = "https://mysmob.api.connect.skoda-auto.cz/api/v2/garage";
Das könnte vielleicht schon reichen, um wenigstens das Fahrzeug zu finden. Weiterhin muss wahrscheinlich geändert werden:
Zeilen 3430 bis 3435
{ path: "air-conditioning", version: "v1", postfix: "/status" }, { path: "air-conditioning", version: "v1", postfix: "/settings" }, // { path: "air-conditioning", version: "v1", postfix: "/timers" }, { path: "charging", version: "v1", postfix: "/status" }, { path: "charging", version: "v1", postfix: "/settings" }, { path: "vehicle-status", version: "v2", postfix: "" },
in
{ path: "air-conditioning", version: "v2", postfix: "" }, // { path: "air-conditioning", version: "v1", postfix: "/settings" }, // { path: "air-conditioning", version: "v1", postfix: "/timers" }, { path: "charging", version: "v1", postfix: "" }, // { path: "charging", version: "v1", postfix: "/settings" }, { path: "vehicle-health-report/warning-lights", version: "v1", postfix: "" },
und Zeile 3441
"https://api.connect.skoda-auto.cz/api/" + status.version + "/" + status.path + "/" + vin + status.postfix;
in
"https://mysmob.api.connect.skoda-auto.cz/api/" + status.version + "/" + status.path + "/" + vin + status.postfix;
Damit ist erstmal keine Steuerung für Laden und Klimatisierung möglich, für weitere Änderungen würde mich aber erstmal interessieren, ob das zum Erfolg führt.
-
@giermann nein, da scheint der login nicht mehr zu klappen (nur zeile 1855 angepasst):
user ist definitiv richtig. -
mit höherem loglevel:
-
Sorry, dann müsste man genauer prüfen, was die (neue) App jetzt wirklich tut.
Eine Anleitung gibt es ja: https://gitlab.com/prior99/skoda@tombox liest du hier noch mit?
Gab es schon Untersuchungen dazu, Zugangsdaten hatte doch schon jemand geschickt, oder? -
@giermann Habe das bei mir mal angepasst. Dann bekomme ich im LOG ein 403 - Access Denied.
ist das bei Euch auch so?
ein Test mit evcc zeigt - dort geht es -
@matzefro
Ich habe einen Superb (also "skoda", nicht "skodae") und der war auch schon vorher registriert, daher kann ich es nicht testen.
Die geänderten URLs habe ich nur blind von evcc übernommen, vielleicht fehlt auch noch etwas - so ganz verstehe ich den ganzen Ablauf noch nicht.
Habe auch leider aktuell wenig Zeit - bevor man sich das alles anschaut, müsste man mal den Code insgesamt bereinigen... -
@giermann
Die Lösung scheint sehr einfach:
Zeile 1855
url = "https://api.connect.skoda-auto.cz/api/v3/garage";ersetzen durch
url = "https://api.connect.skoda-auto.cz/api/v4/garage"; -
@matzefro kann ich bestätigen.
-
@Giermann da hab ich ja Hoffnung, dass das beim Cupra Born auch nur eine Versionsänderung ist. Angeblich soll die Klimatisierung über evcc dort laufen. Ich hatte da auch schonmal den Index um +1 hochgenommen, aber ohne Erfolg.
-
@NoVinoPhobie ..."angeblich"?
Ich habe leider nur Zugang zu meinem Skoda, bei dem wird die Klimatisierung im evcc gar nicht unterstützt.
Warum geht sie denn bei dir nicht?
Welche probierst du aus?Die "climatisation", "climatisationv2" und "climatisationv3" unterscheiden sich nicht einfach nur in der Versionsnummer, sondern auch in den übermittelten Aktionen.
-
@giermann
ich habe nur einen Datenpunkt für die Klimatisierung
der bringt aber seit Sommer dann diese Fehlermeldung und setzt den Datenpunkt zurück
Ich nutze evcc nicht. Ich habe die KEBA Wallbox und die ist direkt in ioBroker eingebunden.
auf GitHub wird das Thema auch bereits angesprochen und da taucht eben evcc auf.
https://github.com/TA2k/ioBroker.vw-connect/issues/333
https://github.com/TA2k/ioBroker.vw-connect/issues/331Alle anderen Daten vom Born kommen an. Akkustand, Lädt, ect. Nur eben die Klimatisierung nicht.
-
Ja, sorry - einer der vielen Gründe, warum man den Code mal aufräumen müsste...
Für deinen Cupra wird nur "Climatisation" angeboten, für meinen Skoda zusätzlich "...v2" und beim Audi eTron auch noch "...v3".
Skoda scheint beides zu verstehen, der Audi wohl alle 3.
Ich könnte mir vorstellen, dass der Born jetzt nur noch v2 oder v3 akzeptiert.Kannst du ausprobieren, wenn du in Zeile 2185 aus ".remote.climatisation" mal ".remote.climatisationv2" oder ".remote.climatisationv3" machst.
Wenn das auch nicht klappt: wo hattest du denn versucht, die Versionsnummer zu erhöhen?
Du könntest einfach mal die allgemeingültige Variante probieren, statt einer Sondernummer für Cupra.
Dazu in Zeile 5712 mal "seatcupra" ändern in "AAAseatcupra".Und letzte Idee (wobei die Reihenfolge der 3 beliebig ist):
In Zeile 3324 wird in setSeatCupraStatus() immer "https://ola.prod.code.seat.cloud.vwgroup.com/vehicles/" genutzt, während bei getSeatCupraStatus() je nach Anforderung auch mal "https://ola.prod.code.seat.cloud.vwgroup.com/v1/vehicles/" oder "https://ola.prod.code.seat.cloud.vwgroup.com/v2/vehicles/" genutzt wird.
Man könnte also auch mal versuchen, beim "set" das "v1" oder "v2" in den Pfad einzuschieben...
NACHTRAG: Wenn ich das richtig sehe, nutzt aber evcc auch einfach die URL "https://ola.prod.code.seat.cloud.vwgroup.com/vehicles/{vin}/climatisation/requests/start", also genau so wie es aktuell setSeatCupraStatus() tut.PS: Für mich ist es leider alles etwas umständlicher, da ich die Dinge blind im Code nachlese.
Vielleicht muss ich mir doch mal ein ioBroker mit dem Adapter installieren und ein paar Zugangsdaten von euch ausprobieren... -
@giermann sagte in Test Adapter VW Connect für VW, ID, Audi, Seat, Skoda:
Und letzte Idee (wobei die Reihenfolge der 3 beliebig ist):
In Zeile 3324 wird in setSeatCupraStatus() immer "https://ola.prod.code.seat.cloud.vwgroup.com/vehicles/" genutzt, während bei getSeatCupraStatus() je nach Anforderung auch mal "https://ola.prod.code.seat.cloud.vwgroup.com/v1/vehicles/" oder "https://ola.prod.code.seat.cloud.vwgroup.com/v2/vehicles/" genutzt wird.
Man könnte also auch mal versuchen, beim "set" das "v1" oder "v2" in den Pfad einzuschieben...Die Änderung auf v1 funktioniert bei mir. Damit wird der Datenpunkt gesetzt und es kommt keine Fehlermeldung im LOG. Beim Rücksetzen kommt weiterhin die Fehlermeldung 404. Das nutze ich eher selten bis gar nicht, sollte aber der Vollständigkeit halber erwähnt sein.
Die anderen Änderungen haben keinen Erfolg gebracht.
Zugangsdaten kann ich dir zum Testen bei bedarf geben. -
Moin!
Ich habe einen ID.7 Tourer und die Ordner "Status" bleibt komplett leer.
Im Debug-Log bekomme ich unter anderem folgende Fehler:vw-connect.0 2024-10-04 18:58:50.025 info ID login successfull vw-connect.0 2024-10-04 18:58:49.842 debug Error: Invalid protocol: weconnect: vw-connect.0 2024-10-04 18:58:49.356 debug {"date":"Fri, 04 Oct 2024 16:58:49 GMT","content-length":"0","connection":"close","apigw-requestid":"fIm_ejdxFiAEM9w=","vary":"Origin, Access-Control-Request-Method, Access-Control-Request-Headers","x-content-type-options":"nosniff","x-xss-protection":"0","cache-control":"no-cache, no-store, max-age=0, must-revalidate","pragma":"no-cache","expires":"0","strict-transport-security":"max-age=31536000; includeSubDomains; preload","x-frame-options":"DENY","location":"https://identity.vwgroup.io/oidc/v1/oauth/sso?clientId=****","content-language":"en-US"} vw-connect.0 2024-10-04 18:58:49.355 debug "" vw-connect.0 2024-10-04 18:58:49.148 debug emailPasswordForm2 vw-connect.0 2024-10-04 18:58:48.959 debug parseEmailForm vw-connect.0 2024-10-04 18:58:48.368 info Login in with id vw-connect.0 2024-10-04 18:58:48.358 info starting. Version 0.0.67 in /opt/iobroker/node_modules/iobroker.vw-connect, node: v18.20.4, js-controller: 6.0.11
Muss ich auch eine Version erhöhen?
-
Hallo zusammen,
ich baue mir gerade eine neue Überschussladung für meinen ID.4
weiß jemand welche Werte der Datenpunkt vw-connect.0.WVGZZXXXXXXXXXXXXX.remote.charging haben kann? Ich will an einem Punkt im skript überprüfen ob der Wagen überhaupt gerade läd und dann erst das laden stoppen. Ansonsten versucht das skript ständig das laden zu stoppen obwohl der wagen gerade gar nicht angesteckt ist und ich bekomme fehlermeldungen in der VW App.
Andere Frage:
Ich möchte, dass das Überschussladen nicht möglich ist, wenn der Wagen nicht zuhause ist. Damit soll verhindert werden, dass die Überschussladung eingreift wenn der Wagen irgendwo anders als Zuhause geladen wird. Wie kann ich das realisieren?Gruß
Masterkey
-
@masterkey sagte in Test Adapter VW Connect für VW, ID, Audi, Seat, Skoda:
Hallo zusammen,
ich baue mir gerade eine neue Überschussladung für meinen ID.4
weiß jemand welche Werte der Datenpunkt vw-connect.0.WVGZZXXXXXXXXXXXXX.remote.charging haben kann? Ich will an einem Punkt im skript überprüfen ob der Wagen überhaupt gerade läd und dann erst das laden stoppen. Ansonsten versucht das skript ständig das laden zu stoppen obwohl der wagen gerade gar nicht angesteckt ist und ich bekomme fehlermeldungen in der VW App.
Andere Frage:
Ich möchte, dass das Überschussladen nicht möglich ist, wenn der Wagen nicht zuhause ist. Damit soll verhindert werden, dass die Überschussladung eingreift wenn der Wagen irgendwo anders als Zuhause geladen wird. Wie kann ich das realisieren?Gruß
Masterkey
geben die Objektdaten des Datenpunktes ggf. was her? In dem JSON könnte es einen Abschnitt states geben