BavarianData

Manual / Getting started

3. Add & authorize the integration

You need the portal prep from step 1 done first: a CarData Client created and subscribed to both CarData API and CarData Streaming. That applies to both setup paths below — the guided path only saves you copying the client ID by hand, it doesn’t skip creating the client.

Start setup:

  1. Settings → Devices & Services → Add Integration → BavarianData: Connect Home Assistant to BMW CarData.

  2. Pick a setup path — Guided or Manual:

    First screen: reminder to create a CarData Client subscribed to both services, then a choice between Guided setup (recommended) and 'I'll paste the Client ID myself'

Guided vs Manual — which to pick#

Both paths need the same portal client and both end the same way (device authorization → a live stream). They differ only in how the client ID gets in and how the stream is switched on:

Guided (recommended)Manual
Client IDdiscovered for youyou copy & paste it
Switching on the streamone click — an Activate BMW data bookmarklet you run on the portal, before authorizingthe same bookmarklet, after authorizing and picking clusters
Which fields turn ona sensible default set (fine-tune later)exactly the clusters you tick
Best whenyou just want it working with no copyingyou want to choose clusters up front

You can always change the streamed clusters afterwards from Configure → Choose streamed data, which uses the same one-click activator again — see step 4.

Guided path#

  1. Choose Guided setup (recommended). Home Assistant serves a small activation page. Drag the Activate BMW data button to your bookmarks bar (once):

    The served activation page with a draggable 'Activate BMW data' bookmarklet button and a console fallback
  2. Open the BMW or MINI portal, sign in, go to a vehicle’s stream setup page (BMW CarData → Change data selection), and click the Activate BMW data bookmark. This is the page it runs on:

    BMW CarData stream-setup page ('Selection of vehicle data') listing the streamable technical descriptors for an i5 eDrive40

    The bookmarklet finds your client ID, checks the vehicle, and turns on the default data fields — all in your own browser, so no password or session ever leaves it. You’ll see it read the available fields…

    The same portal page with a 'BavarianData — Reading available fields…' progress toast in the top-right corner

    …then report how many are active:

    Portal page with a 'BavarianData — 228 fields active' toast and a 'Copy this and paste it into Home Assistant' box with a Copy button

    Back in Home Assistant, the guided screen waits for that result:

    Guided activation screen: run the bookmarklet on the portal, then Home Assistant continues automatically or you paste the short result
    • On an https Home Assistant the activator reports back and setup continues on its own.
    • On an http Home Assistant, press Copy in the box the activator shows (pictured above) and paste the short (non-secret) result into the field.
  3. Continue with device authorization (below). When it finishes, the default clusters are already streaming — fine-tune them any time from Configure → Choose streamed data.

Manual path#

  1. Choose I’ll paste the Client ID myself and paste the client ID you copied from the portal.

    Manual path: a recap of the portal setup and a field to paste the CarData Client ID
  2. Continue with device authorization (below).

  3. When authorization succeeds, setup moves straight into the cluster picker. Choose your clusters, then run the Activate BMW data bookmarklet exactly as on the guided path. Continue with step 4.

Device authorization (both paths)#

Home Assistant shows a link and a code. Open the link, sign in, and approve the device on BMW’s site. When BMW accepts the approval, the dialog continues on its own — there is nothing to click in Home Assistant. If the code times out, press Submit for a fresh one and try again.

If onboarding fails with “access denied”#

BMW’s authorization backend is sometimes flaky and can report access denied even though your login clearly worked and you never saw a consent page. This is a known BMW-side quirk, not a fault in the integration, and it has a reliable workaround — see Troubleshooting → “access denied”.

Re-authorizing later#

If BMW later invalidates the token, run Configure → Re-authorize with BMW. Running Add device again with the same client ID also works — the existing entry is re-authorized in place and keeps its history. (Removing the integration yourself deletes its recorded history.)

Next: 4. Choose which data to stream →

Updated Edit this page on GitHub