NEWS
Test Adapter VW Connect für VW, ID, Audi, Seat, Skoda
-
@tombox
Ja. funktioniert jetzt. Danke. -
Hallo zusammen,
sehr schwierig was zu diesem Thema zu finden...
Ich habe selber ein Android Widget geschrieben, welches die Audi Fahrzeugdaten des Servers abruft und mir im Android Widget auf dem Smartphone anzeigt.
Damals abgeleitet von https://github.com/davidgiga1993/AudiAPIHintergrund: Ich hatte das Problem, dass laufend meine Heckklappe aufgegangen ist. Mit dem Widget wurde mir das im Gegensatz zur myAudi App mit einer kurzen Verzögerung zumindest angezeigt.
Am 12.12.2019 16:30 Uhr wurde leider an dieser Schnittstelle (https://msg.audi.de/fs-car/) irgendetwas geändert. Zumindest wurden die Tokenrequests auf einen neuen Server umgeleitet (https://id.audi.com). Die alten Aufrufe von https://github.com/davidgiga1993/AudiAPI funktionieren daher nicht mehr.
Anhand des brokers https://github.com/TA2k/ioBroker.vw-connect habe ich jetzt für einige Audi-Requests (Vehicle, User) die richtigen Header und ich bekomme Response.
Allerdings hänge ich gerade an der StoredVehicleDataResponse, die die aktuellen Fahrzeugdaten (km-Stand, Verriegelung, Oil etc.) wiedergibt. Für mich die Wichtigste.
Die Url, die ich aufrufe scheint die richtige zu sein (ist eigentlich genau die alte vom AudiAPI Interface). Ich bekomme allerdings vom Service die Meldung:
(401) Nicht autorisiert, Token not valid
Das wundert mich. Der access_token funktioniert für alle anderen Aufrufe wie Vehicle und User.
Den access_token übergebe ich im Header über:
"Authorization", "Bearer {access_token}"Muss ich mir jetzt neuerdings noch weitere Token laden oder stimmt an meinem Header für diesen Aufruf etwas noch nicht?
mein Header:
"client_id", "mmiconnect_android",
"X-ClientId", "77869e21-e30a-4a92-b016-48ab7d3db1d8",
"X-App-Version", "3.14.0",
"X-App-Name", "myAudi",
"scope", "G_SVDATA",
"Authorization", "Bearer {access_token}",
"Accept-charset", "UTF-8",Wenn jemand hieran arbeitet oder nützliche Hinweise hat, wäre das prima!!
Schöne Weihnachten Allen!
-
@NafIdua es gibt zwei token der normale und vwtoken ich denke deine url benötigt den vwtoken. Warum fragst du die Daten nicht einfach über IoBroker ab einfache simpleapi.
-
@tombox da müsste ich mir den vw token zusätzlich abrufen. Geht das denn mit meinem myAudi Account überhaupt?
Im IoBroker wird für Audi der Token über https://id.audi.com/v1/token geholt. Und im Login nochmals getVWToken. Um StoredVehicleData abzurufen wird nur über die im stateArray definiert vw url gegangen. Funktioniert das für Audi im IoBroker? -
@NafIdua ich glaube er meint dass du die States, die der Adapter anlegt, direkt per simple-api abfragen sollst
-
@AlCalzone ich arbeite im VS2019 und habe da schon eine komplete Anwendung.
-
@NafIdua Ah, ich hatte das Wörtchen "Android" überlesen und bin davon ausgegangen, dass du im ioBroker-Kontext unterwegs bist.
-
@AlCalzone alles gut
@tombox Ich habe jetzt versucht mir mit dem Audi id_token einen vwa-token über die mbboauth-1d.prd.ece.vwg-connect.com Url zu laden wie im IoBroker.
Header ist wie im IoBroker:
"User-Agent", "okhttp/3.7.0",
"X-App-Version", "3.14.0",
"X-App-Name", "myAudi",
"X-Client-Id", "77869e21-e30a-4a92-b016-48ab7d3db1d8",
"grant_type", "id_token",
"token", $"{id_token}",
"scope", "sc2:fal"Leider bekomme ich nur (403) Unzulässig DENY zurück. Fehlt mir hier noch etwas?
Wenn das über den IoBroker funktioniert müsste es ja mit den gleichen Angaben auch über meinen HttpClient klappen.
-
@tombox Hallo
ich habe mir jetzt mal den IoBroker installiert. Sehr schöner Service! Gefällt mir sehr gut.
Natürlich habe ich die Verbindung zu myAudi über vwconnect sofort eingerichtet und getestet. Und es geht.
Jetzt bin ich ratlos! Könntest du mir vielleicht Hilfestellung geben wie der genaue Authentifizierungsprozess zu myAudi abläuft? Welche Token und Infos wann über welche Urls geholt werden? Als Login wird ja auch nur der einfache myAudi Account verwendet. Den verwende ich auch nur. Installiert vwconnect Plugin vielleicht noch ein Zertifikat was u.U. benötigt wird?
Danke! -
@NafIdua Realtiv schwierig und komplex da auch andere protokolle als http verwenden und man deswegen fehlermeldung auswerten muss und die server benötigen genaue request.
Meine Empfehlung nutze ioBroker dauerhaft auf einem rasperry pi und sende dir via Telegram eine Meldung wenn der Kofferraum auf ist. -
@tombox ok das wäre noch eine Möglichkeit. Leider würde mir dann mein eigenes Android Widget nichts mehr nutzen und ehrlich gesagt will ich auch keine Messagequeue.
Für die Audi Schnittstelle wird genau das Stück Quellcode auf Github verwendet oder noch zusätzlich etwas? -
@NafIdua nur der Code.
-
@tombox ok danke! Dann muss sich das rausfinden lassen. Wenn ich was habe gebe ich Bescheid.
-
Ich hab es rausgefunden.
- Im vwtoken Abruf war der ContentType nicht korrekt. Hier musste noch "application/x-www-form-urlencoded" übergeben werden, sonst 403 unzulässig Fehler.
- Beim Abruf der StoredReportStatus hing es an einem Buchstabe. In der Url steht die Country drin. Ich hatte sie mit "De" übergeben. Der Server erwartet aber "DE". Der Server hat demzufolge case sensitive.
Jetzt läuft es. Die alte Schnittstelle funktioniert seit 19.12. 12:30 übrigens auch wieder.
-
He, ich finde das Plugin ja klasse. Läuft mit meinem Superb und Karoq. Die Daten werden an Homekit übergeben, dafür nutze ich Temperatursensoren und Feuchtigkeitssensoren sowie Schwitchs und für die Kilometer CO2-Sensoren.
Ich hätte noch ein paar Wünsche.
- Mittlerweile wird in der App bei Standheizung die Außentemperatur angezeigt. Das wäre noch eine gute Idee. Hätt ich auch gern.
- Der Status der Heizung ändert sich auch von off auf heating, wenn man diese per Fernbedienung startet. Wenn sich dazu parallel noch der Schalterstatus ändern würde, wäre das auch klasse. Man startet per Fernbedienung und der Schalter schaltet sich trotzdem ein. Umgekehrt natürlich auch. Die Heizung deaktiviert sich nach x Minuten und der Schalter geht auf aus. Vielleicht kann man das mittels Script regeln, aber da bin ich zu unerfahren im ioBroker.
-
Die Außentemperatur gibt es schon: data06 -> field01. Ist aber in Zehntel Kelvin, also / 10 - 273,15, dann hast Du normale °C.
-
@vernichter04 Du kannst doch als Status der Standheizung einfach die Felder nutzen oder?
vw-connect.0.xxxx.remoteStandheizung.climatisationStateReport -
@Sneak-L8 Ich bin nur leider kein Skriptexperte und ich habe es bisher nur geschafft, die dort angezeigten Werte an Homekit zu übergeben ohne Skript, was mir die Werte vorher zurechtbastelt.
-
@tombox Ja, den Status kann ich mir anzeigen lassen, nur nicht an Homekit übergeben. Den Standheizungsschalter habe ich dagegen als Switch an Homekit übergeben. Daher dachte ich, man könnte es möglich machen, dass über den Status der Schalter geschaltet wird, was sinnvoll ist, wenn man über Fernbedienung startet.
Momentan habe ich es so gelöst. Ich frage minütlich die Restlaufzeit ab und übertrage die Restlaufzeit und habe in Homekit eine Regel erstellt: Restlaufzeit >= 29 min schalte Standheizung ein, Restlaufzeit <= 1 min schalte Standheizung aus. Die optimale Lösung ist das natürlich nicht, da beim Ein- und Ausschalten immer nochmal der Start- oder Stop-Befehl gesendet wird.
-
@vernichter04 es ist leider auch mit dem status nicht so einfach. Da das Problem besteht du schaltest die Heizung ein. Der Adapter aktualisiert und bekommt noch ein off vom Fahrzeug also wird die Heizung als Aus dargestellt. Erst 30sek später wird die Heizung dann korrekt als An dargestellt. Ohne ein Status wird gestartet wird das schwer zu realisieren.