How it works in one minute
HACS
It was written in October 2026 from the integration's official documentation, but nobody in the Watt Budget community has followed it end to end on their car yet. Trying it? Tell me what works and what gets stuck.
(official stream)BMW CarData
(HACS integration)Home
Assistant
| What it is | The official BMW CarData stream, enabled in your MyBMW area, and a community integration that reads it |
| Cost | Free |
| Data | Everything the car publishes in the stream: battery level, range, charging, power, mileage, location, doors… |
| Commands | None: read-only |
| Where it works | Anywhere, through the car's connection |
| Depends on | The BMW CarData service and a Client ID you create |
What you need
- Home Assistant installed and reachable from your computer.
- HACS, the community store for Home Assistant extensions (installation explained on hacs.xyz).
- Your MyBMW or MyMini account, with the car.
- A computer for the BMW CarData portal, where the preparation happens.
1Install the integration
- Open the CarData portalSign in to your MyBMW area on BMW's website (or MyMini on Mini's), open the car's page and choose BMW CarData (or Mini CarData). The portal isn't available in every country: use the UK or German site if needed, the settings are shared.
- Create a Client IDIn the CarData API section, delete the suggested ID and create a new one. Copy it: Home Assistant will ask for it. Do not use the portal's “Authenticate device” button.
- Request both accessesClick “Request access to CarData API”, then “Request access to CarData Stream”. If an error shows at the top of the page, reload it and wait two minutes between requests.
- Choose the stream's dataCarData Streaming section → Configure data stream: load the whole list (“Load more” until the end) and tick the data you want, at least battery level, range and charging state.
- Install the integrationIn HACS, open the ⋮ menu → Custom repositories, add
https://github.com/kvanbiesen/bmw-cardata-hawith the Integration category, download it, then restart Home Assistant. - Add itSettings → Devices & services → Add integration, search for BMW CarData, paste the Client ID, then open the verification address shown and approve on BMW's page. Wait for BMW's confirmation before clicking “Submit” in Home Assistant.
- Wake the carSensors appear as the car publishes data: lock then unlock it from the app, or take a drive for older models.
Remove the integration, delete the Client ID in the portal, create a new one, redo the access requests, then start again. If it persists, BMW CarData support answers by email.
2The data you get
| Data | What it's for |
|---|---|
| Battery level | In %, the value to give Watt Budget |
| Electric range | Estimated kilometres |
| Charging state and power | While charging |
| Charge limit | As set in the car |
| Mileage | With long-term statistics, handy for a monthly counter |
| Location | A tracker, when the car publishes it |
| Doors, windows, locks | Depending on what you ticked in the stream |
| API reads | A button to force a read, counted against the quota |
Replace the long names with short ones, for example sensor.i4_battery (Settings → Devices & services → Entities → the entity → cog). Your cards, automations and Watt Budget settings will be much easier to read.
3Connect Watt Budget
The sensor to enter in Watt Budget, under Settings › Home Assistant: the battery level sensor (in %) that BMW CarData creates for the car.
Once connected, Watt Budget reads the level every minute: no more typing the starting percentage, and the charge is worked out from the real battery level.
The four steps (HTTPS access, token, sensors, check) are explained on the guides home page and in the Watt Budget guide.
4Precautions
- The stream is real-time, but direct API reads are limited to 50 per 24 hours: don't use the forced-read button in a frequent automation.
- Never put your email address in place of the Client ID: it's the most common setup mistake.
- Unofficial integration: the manufacturer can change its app and break it overnight. Keep the official app on your phone.
- Don't shorten the update interval: each query can wake the car and drain its 12 V battery. The defaults are a good balance.
- Your credentials stay in your Home Assistant; neither Watt Budget nor I can see them.
Frequently asked questions
Home Assistant's BMW Connected Drive integration no longer works. Why?
BMW closed the access it used in 2025. BMW CarData is the official service that replaced it.
Not all sensors show up. Is that normal?
Yes: a sensor is only created once the car publishes that data. Data you didn't tick in the stream will never arrive.
Does Watt Budget get access to my car?
No. Watt Budget only reads the battery level sensor in your Home Assistant, from your browser, with the token you give it. It never sees your manufacturer login or the car's location.
My model isn't listed. Can it work?
Often yes: these integrations go through the manufacturer's app, shared across the range. The easiest is to try, then tell me how it went via the contact page.
Links and thanks
- github.com/kvanbiesen/bmw-cardata-ha
- bmw-cardata.bmwgroup.com/customer/public/api-documentation/Id-Technical-registration_Step-1
Thanks to the authors of BMW CarData for Home Assistant (kvanbiesen, and JjyKsi for the original version), who rebuilt access after the 2025 shutdown.
Does your car reach Home Assistant another way? Share your method: the next guides will follow your feedback.
The other Home Assistant guides
What does a charge really cost you? Off-peak tariffs, solar, rapid chargers and XCombo codes: Watt Budget works it all out, free and without an account.
Open Watt Budget