
Adapter for VW We Connect, We Connect ID, We Charge, myAudi, Skoda Connect, Seat Connect and We Connect Go
Please update your system on Node 10. https://forum.iobroker.net/topic/22867/how-to-node-js-f%C3%BCr-iobroker-richtig-updaten
VW hat den klassischen App-Login für VW ID, CUPRA und SEAT abgeschaltet. Für diese Marken funktionieren nur noch zwei Wege — beide unten konfigurierbar, lassen sich auch parallel laufen:
Für die anderen Marken (Audi, MyŠKODA, Seat Elli, ŠKODA Powerpass, Audi DataPlug, ŠKODA Alt, VW Connect Go) funktioniert der klassische Login weiterhin.
VW retired the classic VW-ID OAuth client (a24fba63-...) on 2026-06-01. The IdP at identity.vwgroup.io/oidc/v1/authorize returns HTTP 403 with an Auth0 "tenant misconfiguration" error page for that client; the BFF mirror at emea.bff.cariad.digital/auth/v1/idk/oidc/authorize does the same. Other brand clients (Audi cc29b87a-..., Skoda 3ea88bf9-..., Seat/Cupra f85e5b69-..., VW Passenger Cars EU-Data-Act 9b58543e-...) are unaffected.
For config.type === "id" the adapter now skips the classic login entirely and relies on the Tibber Data API (recommended) or the EU Data Act portal. You MUST set up at least one of those, otherwise no data flows. See "Tibber Data API" and "EU Data Act portal" sections below.
The Cupra/SEAT OLA backend (ola.prod.code.seat.cloud.vwgroup.com) started enforcing Firebase App Check with the Play Integrity provider around 2026-06. Every API call now needs an X-Firebase-AppCheck header. Decompiled MyCupra 2.18.0 APK confirms: an OkHttp interceptor (es.seat.ola.attestation.interceptor.AppCheckInterceptor, Firebase project ola-apps-prod, app id 1:530284123617:android:9b9ba5a87c7ffd37fbeea0) attaches the token automatically. Without it the server returns 403 Forbidden device detected, missing-device-token.
Play Integrity tokens are generated by Google Play Services on a real Android device with the registered APK signing-cert SHA-256. A Node.js adapter cannot produce them — there is no documented bypass.
For config.type === "seatcupra" and "seat" the adapter now skips the classic login. Use the Tibber Data API (recommended) or the EU Data Act portal instead — both still work for Cupra and SEAT vehicles. See the sections below.
For all VW Group brands (VW, Audi, Škoda, Seat, Cupra) the adapter can additionally consume the continuous 15-minute datasets that VW publishes via the EU Data Act portal at https://eu-data-act.drivesomethinggreater.com. This is optional — the classic brand-specific login is the primary source and works on its own. The EU Data Act path adds a few hundred extra data points per dataset (mostly diagnostics, configuration and report fields) under <vin>.statuseudata.* (snake_case dotted names like battery_state_report.soc, mileage.value, parking_brake, charging_state_report.current_charge_state).
The same portal serves all brands — only the OIDC brand key differs. The adapter selects the right one based on your configured type:
Adapter type |
EU Data Act brand |
|---|---|
VW ID / Volkswagen App |
VOLKSWAGEN_PASSENGER_CARS |
Audi E-tron, Audi DataPlug |
AUDI |
MyŠKODA, ŠKODA Alt |
SKODA |
My SEAT |
SEAT |
My CUPRA |
CUPRA |
To enable it you have to set up a continuous data request once in a browser; the adapter only downloads what the portal produces, it can't create the request for you. If you skip this step the adapter still works fine, the EU Data Act side just stays silent in the log.
<vin>.statuseudata.* will contain._dataset_name-Prefix in den Filenames.*_no_content_found.zip until your car wakes up. Force-syncing via the Volkswagen app or driving once kicks the producer side awake.The adapter picks up the request automatically — no extra setting in ioBroker. As long as type is VW ID / Volkswagen App and your credentials match the portal, it polls the listing every minute and downloads only when a new ZIP appears.
Object tree per VIN once the EU Data Act side is active:
<vin>.general.vin
<vin>.general.nickname
<vin>.general.licensePlate
<vin>.general.imageLocation
<vin>.statuseudata.battery_state_report.soc (= 58 %)
<vin>.statuseudata.battery_state_report.charge_power (= 0.0 kW)
<vin>.statuseudata.charging_state_report.current_charge_state
<vin>.statuseudata.mileage.value
<vin>.statuseudata.parking_brake
<vin>.statuseudata.locked
<vin>.statuseudata._dataset_name
<vin>.statuseudata._dataset_created_on
... and many more (depending on the Data Clusters you ticked on the portal)
EU Data Act ... no data request configured: you haven't done the portal-side setup above. The classic login keeps working in the meantime.portal has N dataset(s) but all are '_no_content_found': car was asleep at every sampling slot. Force-sync the car via the VW app, or just drive once.<vin>.statuseudata channel is missing: the portal has no content datasets yet — same fix as above.Use the state under remote control to control your car remotely. Normale refresh is the polling interval to receive data from the VAG Cloud Force refresh is for non E-Cars to enforce a refresh this number is limited by VAG until the car is turn on again. Trip data is only available for non E-Cars.
You can set climatisaton temperature in .climater.settings.targetTemperature.content
https://forum.iobroker.net/topic/26438/test-adapter-vw-connect-für-vw-id-audi-seat-skoda
MIT License
Copyright (c) 2019-2030 ta2k tombox2020@gmail.com
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
$ claude mcp add ioBroker.vw-connect \
-- python -m otcore.mcp_server <graph>