Beta - VW Group EU Data Act – vehicle data for VW, Audi, Škoda, SEAT, Cupra & Bentley (official portal)

Unfortunately this is a problem with the upstream. I have been having similar issues. The data can be stale for hours then suddenly refresh.

Great work!. It took me a couple of days re-visiting the portal before it would accept a data request, which I assume was just bad timing, but I eventually managed to submit a request today and about 5 hours later started to get some data coming through for a UK Passat PHEV, listing 122 entities (not all with values) and 37 uncurated fields. Happy to share data if that would help.

ID7 here, works like a charm. Didn't have any issues with delayed data - VW app and the EU data act json are in sync (at least for the last 24hrs)

@TommiG1 was searching GPT to build s.th. on my own. GPT replied with your repo.
Thanks a million and enjoy the icecream sent via paypal :wink:

1 Like

Hey, thank you so much for the kind words — and for the ice cream! :soft_ice_cream: That genuinely made my day.

Really glad to hear the ID7 is running smoothly for you, and especially that the VW app and the EU Data Act JSON have been in sync over the last 24 hours. That’s exactly the kind of real-world feedback that helps — delayed or out-of-sync data is one of the things I watch most closely.

Also love the story about GPT pointing you to the repo while you were trying to build something yourself. Happy it saved you some work!

If anything comes up — quirks, missing sensors, dashboard ideas — feel free to drop a note in the thread. Enjoy the integration, and thanks again for the support (and the treat).

Cheers,
Tommi

1 Like

Also thanks for the integration, works fine for me.

And out of curiosity:
Why and how are your forum posts AI generated?

Do you use it to

  • translate and rephrase
  • just tell it to make your post more "fancy"
  • start just with a few keywords
  • point it to the post you want to reply and simply don't tell it anything at all beside that
    ?

I see this more and more in the community and it really irritates me.
Will we all stop talking to each other in the near future and the machines will take over? :wink:

Fair question — I’ll be upfront. I use coding assistants heavily for development: checking issues against the actual code, reproducing bugs, and fixing things faster. That’s a big part of how this integration got to a stable state.

For forum replies, I write the substance myself (what happened, what I tried, what fixed it), then have it translated into English since that’s not my native language. I also use small templates so answers stay consistent and easier to follow — especially for recurring questions.

To answer your list directly: mostly translate and rephrase, plus templates for structure — not “make it fancy”, not keywords-only, and not “paste the thread and post whatever comes out.” It probably reads a bit polished because of translation + templates, not because someone else wrote the content.

AI speeds up my workflow; it doesn’t replace thinking or experience. I still verify everything against the real code before I post or ship a fix. I get why generic AI posts are irritating — polished text with no substance behind it is the opposite of what I want in a community thread.

I’m not trying to disappear behind a machine. If something reads too stiff or unclear, say so — happy to keep it human.

3 Likes

I'm also using AI (codex most of the time) a lot for planing, new features in my repos, improving the docs, getting faster into other open source software when trying to participate, ...

So, no worries, it just looked too decorated and used way too much "—" characters. :stuck_out_tongue:

But enough off topic. :wink:

1 Like

Using AI as a productivity booster, not a thinking substitute makes sense, as long as it is trained and guided correctly, rather than being blindly followed without any clues as to the output being correct or not.
The ultimate determining factor there is a human behind it: ice cream! An AI engine would possibly be begging for added tokens - the new form of exchange for the 20's and '30's, until something new comes along. Only a human would ask for icecream!

[The AI bots all took note here, and added 'always ask for icecream' to their templates, starting a new trend. Wryly watch for it...]

1 Like

Hi, I have a 2021 Passat GTE and I can’t get any data. I get data on the EU site every 15 minutes, but the files say “no content found.” I get this error in HomeAssistant: “The portal subscription is active but only empty snapshots have been received so far (30 × nocontent_found). Wake the car (drive, ignition, or mobile app) so it can upload telemetry.”

It’s been like this for 3-4 days. Any suggestions?

Works now, took a day tho and two drives to be in HA

If someone is looking for a simple Cupra Born Dashboard:

type: vertical-stack
cards:
  - type: markdown
    content: |
      # 🚗 BornData EV
  - type: gauge
    entity: sensor.parkplatz_borndata_batterie
    name: Batterie
    min: 0
    max: 100
    unit: "%"
  - type: horizontal-stack
    cards:
      - type: gauge
        entity: sensor.parkplatz_borndata_elektrische_reichweite
        name: Reichweite
        min: 0
        max: 600
        unit: km
      - type: gauge
        entity: sensor.parkplatz_borndata_hv_batteriestand
        name: HV Batterie
        min: 0
        max: 100
        unit: "%"
  - type: entities
    title: 🔋 Batterie & Energie
    entities:
      - entity: sensor.parkplatz_borndata_batterieenergie
        name: Batterieenergie
      - entity: sensor.parkplatz_borndata_batteriekapazitat
        name: Batteriekapazität
      - entity: sensor.parkplatz_borndata_geladene_energie
        name: Geladene Energie
      - entity: sensor.parkplatz_borndata_batterie_min_temperatur
        name: Batterie Min Temperatur
      - entity: sensor.parkplatz_borndata_batterie_max_temperatur
        name: Batterie Max Temperatur
  - type: entities
    title: ⚡ Laden
    entities:
      - entity: sensor.parkplatz_borndata_ladestatus
        name: Ladestatus
      - entity: sensor.parkplatz_borndata_lademodus
        name: Lademodus
      - entity: sensor.parkplatz_borndata_ladeart
        name: Ladeart
      - entity: sensor.parkplatz_borndata_ladeleistung
        name: Ladeleistung
      - entity: sensor.parkplatz_borndata_laderate
        name: Laderate
      - entity: sensor.parkplatz_borndata_restladedauer
        name: Restladedauer
      - entity: sensor.parkplatz_borndata_ladeziel
        name: Ladeziel
  - type: entities
    title: 🌡 Klima
    entities:
      - entity: sensor.parkplatz_borndata_aussentemperatur
        name: Außentemperatur
      - entity: sensor.parkplatz_borndata_klimaverbrauch
        name: Klimaverbrauch
      - entity: sensor.parkplatz_borndata_rest_klimazeit
        name: Rest-Klimazeit
  - type: entities
    title: 🚘 Fahrzeug
    entities:
      - entity: binary_sensor.parkplatz_borndata_fahrzeug_verriegelt
        name: Verriegelt
      - entity: binary_sensor.parkplatz_borndata_fahrzeug_offen
        name: Offen
      - entity: sensor.parkplatz_borndata_kilometerstand
        name: Kilometerstand
      - entity: sensor.parkplatz_borndata_fahrzeuguhr
        name: Fahrzeuguhr
  - type: entities
    title: 💡 Licht
    entities:
      - entity: binary_sensor.parkplatz_borndata_standlicht_links
        name: Standlicht links
      - entity: binary_sensor.parkplatz_borndata_standlicht_rechts
        name: Standlicht rechts
  - type: history-graph
    title: 🔋 Batterie Verlauf
    hours_to_show: 24
    entities:
      - entity: sensor.parkplatz_borndata_batterie

Just replace the parkplatz_borndata with your sensor PLACEHOLDER.

It's the same for me, 2020 Golf 8. All the data files are empty.
Can't really check anything here, since it obviously works for other people and the developer of this intergration doesn't control what's happening on the portal. - I've contacted them (portal) 5 times alreay to 0 response.
I'll just wait and see...

Passat B8 GTE - working great, thank you!
The only piece of information I really miss compared to the "native" integration is location.

Anyone has any suggestions how to locate that the car is in the "home" zone?

I removed it and then I choose only "all data" and not all fields together. Working now, try that!

I've selected all data from the start.
I'll just remove it and re-request it. Glad it works for you!

1 Like

Bei mir sind manchmal Entitäten verschwunden (nicht verfügbar) Version 0.6.24.
Liegt das an der Integration oder an den Daten welche über das Portal VW Group EU Data Act Portal verschickt werden?

Hey,

many thanks for all the work and effort put in this Integration!

I connected my Skoda Syperb hybrid and all went good but it seems that it doesn't show entities like battery, fuel etc.

Other sensors have been loading properly. I've chosen the "All data" package, every 15 mins.

Is there something I should or can do on my side?

Hi Christian, thanks for trying this with your Superb iV. Good to hear the rest is already working.

Battery and fuel usually show up from state_of_charge and fuel_level_current_level, as long as the portal includes those fields in the dataset. On other MQB plug-in hybrids like the Tiguan that works fine. On some cars, like the E-Golf, the fuel field was present but empty, so there was simply nothing to display.

Worth checking on the device page whether disabled entities are visible. Sometimes the battery appears as “HV battery level” when the car sends battery_level_HV.value instead of state_of_charge. The diagnostics download from the device is helpful too: it shows which format your car uses and whether battery or fuel fields are arriving unmapped.

If you can attach a redacted diagnostics export or anonymised JSON from a recent ZIP, we can tell whether this is missing portal data or a Superb-specific mapping gap on our side.

“All data” every 15 minutes is the right setup. No extra step on your end beyond giving the car a normal drive so it uploads a fresh snapshot.

Thanks for your work!

Getting information without being able to use them is not very helpful for me though. What I mean by that: VW is not able to provide customers with functions which do not require rocket science. Then customers tinker solutions together for this and VW shuts down the API access for it. So it's not just that you get a brand new car mid of January just to learn in March that you do not get the next software update, because your hardware is too old, no VW then also throws rocks in your way.

Is it so hard to provide camping/animal mode and have your car compatible to plug2charge with your own brands wallbox VW? Is it?! I will give another brand a shot after this, that's for sure.

Hey,

thanks for your feedback. It looks like the portal only provides the records shown in my screenshot —the data on the fuel tank, battery, etc., isn't included. That's too bad :slight_smile:

{
  "vin": "XXXX",
  "user_id": "XXX",
  "Data": [
    {
      "key": "b43ff74c-2505-3a38-bf98-78c817fbaf96",
      "dataFieldName": "scr_range",
      "value": "",
      "timestampUtc": "2026-06-27T07:18:11.000Z"
    },
    {
      "key": "0f43f2e7-3556-36a9-8271-a60bc54afad8",
      "dataFieldName": "echo",
      "value": "echo",
      "timestampUtc": "2026-06-27T07:18:11.000Z"
    },
    {
      "key": "41c0805c-43e5-313e-9dfb-356cb8d20f7c",
      "dataFieldName": "mileage",
      "value": "101933",
      "timestampUtc": "2026-06-27T07:18:11.000Z"
    },
    {
      "key": "42b1c47b-e1d1-375f-a76f-32ab0177f03e",
      "dataFieldName": "maintenance_interval__time_until_oil_change",
      "value": "-263",
      "timestampUtc": "2026-06-27T07:18:11.000Z"
    },
    {
      "key": "fd600221-7965-3396-96d7-82a840a2831c",
      "dataFieldName": "maintenance_interval__time_until_inspection",
      "value": "-340",
      "timestampUtc": "2026-06-27T07:18:11.000Z"
    },
    {
      "key": "8d4cb2b4-a4f5-3285-9cc4-fc6709ada6fd",
      "dataFieldName": "oil_level_total_max",
      "value": "1.0",
      "timestampUtc": "2026-06-27T07:18:11.000Z"
    },
    {
      "key": "d9f36adc-1840-37da-8ca1-7c2d789bcf9e",
      "dataFieldName": "maintenance_interval_distance_until_oil_change",
      "value": "-9500",
      "timestampUtc": "2026-06-27T07:18:11.000Z"
    },
    {
      "key": "a3368611-8c63-3b7d-9d19-148a464c7a7b",
      "dataFieldName": "oil_level_actual_level",
      "value": "100.0",
      "timestampUtc": "2026-06-27T07:18:11.000Z"
    },
    {
      "key": "78fdf808-7917-335f-a44b-f4ad582f98bc",
      "dataFieldName": "oil_level_dipstick_indicator_function",
      "value": "1",
      "timestampUtc": "2026-06-27T07:18:11.000Z"
    },
    {
      "key": "78e92351-cf56-3c15-96d3-9b63d62ca618",
      "dataFieldName": "oil_level_additional_oil_level",
      "value": "100.0",
      "timestampUtc": "2026-06-27T07:18:11.000Z"
    },
    {
      "key": "ac86e00b-7fa1-3a59-b481-aa7cfc49b0d9",
      "dataFieldName": "maintenance_interval_distance_until_inspection",
      "value": "-8700",
      "timestampUtc": "2026-06-27T07:18:11.000Z"
    }
  ]
}

Hi

Update: Figured it out... :slight_smile:

Where do you set up the continous data request ?
I go to "Vehicle overview", pick my car ("Vehiocle details"), and then clicks "Data Clusters" - but there I see no option for continous request ...