Skip to content

Upcoming API changes notification from BMW #149750

@cbjoldham

Description

@cbjoldham

The problem

This is a heads up from the maintainers of the BMW Connected Drive integration.

In the last 48 hours I have:

  • received a notification via the BMW Android App of upcoming API changes for charge control
  • had several authentication issues in the Home Assistant integration
  • had an app update from my electricity supplier that forced a reintegration through a new flow with BMW

The need to reauthenticate the integration in Home Assistant is not the issue I am reporting, these are just likely symptoms of disruption of the API backend. To date I have always been able to reauthenticate.

I will attach a screenshot of the notification from the BMW app, it leads to the following link

https://faq-backend.api.bmw/uk/s/article/Which-electricity-providers-can-charge-my-BMW-via-remote-access-ZwUkP

Apologies I did not immediately realise the significance of the new integration flow from my electricity provider, as it was advertised as a change from them, so I did not record it in any way. However in retrospect it was clearly hosted by BMW not them.

Image

For additional context I am in the Rest of World region in this integration's terms - so Europe not China/North America

What version of Home Assistant Core has the issue?

core-2024.12.5

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant Container

Integration causing the issue

BMW Connected Drive

Link to integration documentation on our website

https://www.home-assistant.io/integrations/bmw_connected_drive

Diagnostics information

No response

Example YAML snippet

Anything in the logs that might be useful for us?

Additional information

No response

Activity

home-assistant

home-assistant commented on Jul 31, 2025

@home-assistant

Hey there @gerard33, @rikroe, mind taking a look at this issue as it has been labeled with an integration (bmw_connected_drive) you are listed as a code owner for? Thanks!

Code owner commands

Code owners of bmw_connected_drive can trigger bot actions by commenting:

  • @home-assistant close Closes the issue.
  • @home-assistant rename Awesome new title Renames the issue.
  • @home-assistant reopen Reopen the issue.
  • @home-assistant unassign bmw_connected_drive Removes the current integration label and assignees on the issue, add the integration domain after the command.
  • @home-assistant add-label needs-more-information Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue.
  • @home-assistant remove-label needs-more-information Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


bmw_connected_drive documentation
bmw_connected_drive source
(message by IssueLinks)

helmerzNL

helmerzNL commented on Aug 1, 2025

@helmerzNL

Next to this change in Remote Control Charging, it also mentions that you cannon control your car anymore with a Home Automation system (like Home Assistant). (in the Dutch notification Home Automatisering (a.k.a. Home Automation) was mentioned explicitely, a bit more explicitely the in the English screenshot)

Any idee on how to proceed? I haven’t been able to get the BMW integration working for months now :-(

Image
gigatexel

gigatexel commented on Aug 3, 2025

@gigatexel
Contributor

So, again, out of the blue, things will get crippled by a manufacturer. Rip bmw integration.

Trojafux

Trojafux commented on Aug 4, 2025

@Trojafux

Are you sure, that no access via API will be possible any longer? Or just the charging features? My hope is that there will always be an API since there is an Amazon Alexa skill that also needs to gain access.

added a commit that references this issue on Aug 8, 2025
sshaikh

sshaikh commented on Aug 27, 2025

@sshaikh

Hitting reauthentication issues here. Not sure if related but posting for the data point.

JjyKs

JjyKs commented on Aug 29, 2025

@JjyKs

Just got failed auth and now the plugin fails to relogin, thank you BMW for ruining a perfectly good API without even providing an alternative ways to handle things that it enabled.

mahi2003

mahi2003 commented on Aug 29, 2025

@mahi2003

So far my vehicles are still online in Home Assistant - no re-authentication required, but I did notice the connection was down a lot today. Maybe they are simply having server problems? Fingers crossed...

JjyKs

JjyKs commented on Aug 29, 2025

@JjyKs

Let's hope so, I think that the original deadline was on 1.9.2025, so maybe they're getting the servers ready for transition.

Trojafux

Trojafux commented on Aug 29, 2025

@Trojafux

Having repeated re-authentication required issues here aswell. I see a new type of error message:

Logger: bimmer_connected.api.client
Source: components/bmw_connected_drive/coordinator.py:74
First occurred: August 19, 2025 at 5:22:42 PM (16 occurrences)
Last logged: 2:29:17 PM

MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 00:49:03." }
MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 00:13:43." }
MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 00:03:41." }
MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 00:33:21." }
MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 00:30:43." }

JjyKs

JjyKs commented on Aug 29, 2025

@JjyKs

I was digging as well and noticed the same. Managed to reauthenticate after the timeout but got kicked out after couple syncs.

Maybe lowering the default polling rate would help?

Having repeated re-authentication required issues here aswell. I see a new type of error message:

Logger: bimmer_connected.api.client Source: components/bmw_connected_drive/coordinator.py:74 First occurred: August 19, 2025 at 5:22:42 PM (16 occurrences) Last logged: 2:29:17 PM

MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 00:49:03." } MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 00:13:43." } MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 00:03:41." } MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 00:33:21." } MyBMWQuotaError due to HTTPStatusError: { "statusCode": 403, "message": "Out of call volume quota. Quota will be replenished in 00:30:43." }

mahi2003

mahi2003 commented on Aug 29, 2025

@mahi2003

I just checked my logs and see the same errors. That explains the frequent downtime today.

228 remaining items

olealm

olealm commented on Sep 5, 2025

@olealm

evcc

Seems like there is a lot of "personal back luck" in this thread 😉
Anyway that's Your personal opinion/choice. Tell yourself what to do, don't tell me what to do.

brand1011

brand1011 commented on Sep 5, 2025

@brand1011

You can do what u want, but it does not change your solution is slow, unstable (as u can see) and just bullshit. Everything u are doing is implemented in evcc already. And yes... its personal bad luck if U need a higher update interval because of a shitty solution while everyone else does not.

Rooske64

Rooske64 commented on Sep 5, 2025

@Rooske64

Yeah, but I disagree. Have put quite a bit of much work into automating charging and other stuff, and an update-rate of, say, 15 or 30 minutes is too slow.

Personal bad luck and not a good solution at all. Use evcc instead.

any EVCC that would connect to a BMW would use the same HTTP request ... that fail or have quota issues ....
So this is not a solution

see https://docs.evcc.io/en/docs/devices/vehicles#bmw

brand1011

brand1011 commented on Sep 5, 2025

@brand1011

any EVCC that would connect to a BMW would use the same HTTP request ... that fail or have quota issues .... So this is not a solution

As i mentioned earlier, evcc is working for me with the BMW SoC module and an interval of 15min without any errors.

olealm

olealm commented on Sep 5, 2025

@olealm

You can do what u want, does not change your solution is slow, unstable (as u can see) and just bullshit.

Wow, some people are just hostile by nature.
Anyway, sunshine, "We communicate with all manufacturers". I'd prefer being able to continue communicating directly with BMW/Easee myself. Besides, if I have problems communicating with BMW, so will probably EVCC.

olealm

olealm commented on Sep 5, 2025

@olealm

any EVCC that would connect to a BMW would use the same HTTP request ... that fail or have quota issues .... So this is not a solution

Just wrong. As i mentioned earlier, evcc is working for me with the BMW SoC module and an interval of 15min without any errors.

15 minutes is not not slow 😉

BrainDra1n

BrainDra1n commented on Sep 5, 2025

@BrainDra1n

Interesting. I was at a 2 hours quota. I changed X_USER_AGENT value in const.py (and restarted HA) and was able to login again without the quota error. Not sure for how much time it will last, but that might be a key.

@renaudallard : What did you change it into? Do brand and app_version and region need to remain part of it?

jello1974

jello1974 commented on Sep 5, 2025

@jello1974

I must agree with olealm on this one. I'm so tired that everybody knows what's best for me, from politicians to any cloud service provider. If is so hard for BMW server to respond to api calls every 5 minutes for every "smart" bimmer holder they shouldn't sell "smart" cars at all. It is curious how servers cannot hold that volume of api calls when is in private person benefit (and i'm not just refering to BMW servers but any cloud server) but when it comes to collect your data.....it will do just fine

PoelieVortex

PoelieVortex commented on Sep 5, 2025

@PoelieVortex

Hi,
After reading several topics, I understand that this is likely related to a polling rate that is too high, which is blocking BMW's API. I would like to try lowering the polling rate to see if this solves the problem and makes the connection stable again.

My question is: Where and how can I adjust the polling rate (or scan_interval) of the BMW Connected Drive integration in Home Assistant? I've tried to find it in the UI, but I haven't been successful.

Can someone explain the steps or provide an example of the YAML code I need to use?

Thanks in advance!

pergolafabio

pergolafabio commented on Sep 5, 2025

@pergolafabio

Hi, After reading several topics, I understand that this is likely related to a polling rate that is too high, which is blocking BMW's API. I would like to try lowering the polling rate to see if this solves the problem and makes the connection stable again.

My question is: Where and how can I adjust the polling rate (or scan_interval) of the BMW Connected Drive integration in Home Assistant? I've tried to find it in the UI, but I haven't been successful.

Can someone explain the steps or provide an example of the YAML code I need to use?

Thanks in advance!

This is what I mean, please lock this thread to devs only

ronvl

ronvl commented on Sep 5, 2025

@ronvl

Just read as it is here probably 10 times explained, also it is not only the polling frequency but also the x user value you use to connect... it is all explained......

phreaks

phreaks commented on Sep 5, 2025

@phreaks

He folks,
modified x-user-agent manually and it works so far for me.
I modified the used library bimmer_connected to generate a unique x-user-agent. Feel free to check it out!
PR-Link

I hope it helps someone.

btw: I've installed the modified library in my ha-instance successfully. Short description (how-to) for Proxmox w/ LXC and HA-Container plz see PR.

timlaing

timlaing commented on Sep 5, 2025

@timlaing
Contributor

For reference the User Agent for the MyBMW app is:

  • iOS: My%20BMW/45210 CFNetwork/3826.600.41 Darwin/24.6.0
PlutoniumOD

PlutoniumOD commented on Sep 5, 2025

@PlutoniumOD

Note: This isn't about punishing users for polling more than 12 times an hour to check if their boot is shut or tyres are inflated.

The root issue isn't just the polling quota. BMW appears to be restricting all unofficial API access, regardless of usage volume. Tools like BimmerConnected and the Home Assistant integration are easy targets due to their identifiable request patterns. The reason user-agent and app name workarounds are still functioning is likely because BMW is monitoring request metadata and hasn't yet seen significant traffic from these isolated sources. But once they do, they’re reacting quickly—hence why users report being locked out again shortly after switching methods.

If every user had a randomly generated user-agent and app name, it would be much harder for BMW to block access based on those identifiers. They probably can't block access per individual user without affecting their own official app, which limits their options.

If BMW is serious about this, they may eventually shut down all unofficial access—including integrations like EVCC. Alternatively, they might tire of the cat-and-mouse game and either shut everything down or automate detection and blocking using AI.

Also, if you read the thread from the beginning, it’s clear BMW is intentionally restricting Remote Charging control services to selected energy partners (e.g., via E.ON or ChargeScape) to support V2G (Vehicle-to-Grid) and optimized charging. To enable this, they’re separating Remote Charging from other remote functions, which likely means scaling back or even removing API access entirely. Hopefully this is temporary, but if Remote Charging is being split off, it’s unlikely we’ll regain access through this integration—or even through their official Home Assistant integration.

junk67

junk67 commented on Sep 5, 2025

@junk67

I have the issue discussed starting today, right after the update to 2025.9.0. I have followed the instructions on how to setup a custom polling interval. I read a bunch of threads, waited for the Out of call volume quota to time out, and then logged in. That got it back up and running.

Can I ask what might be a stupid question? There has been an update to the: homeassistant.update_entity action. (see image below) You can only select entities, not devices like before. I am just wondering if I need to select every entity, or will selecting just one entity cause an update for all the entities that are associated with a specific car?

Image Image
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @sshaikh@renaudallard@JjyKs@helmerzNL@fideias

        Issue actions

          Upcoming API changes notification from BMW · Issue #149750 · home-assistant/core