BMW integration: No support from September for thirtparty providers like HA

Hi guys, I’ve got a 2025 i4 M50 and got the BimmerData Streamline integration up and running a few minutes ago. I did enable every checkbox (a total of 244 I think it was) on the BMW site, “but” I only get 19 entities in HA (perhaps more comes up after taking the beast for a spin?)

How many entities did you guys get?

84 at the moment.

Ensure to use the right fork. Will not bring more entities, but fixes some errors and is still maintained.

I’m working on a workaround addon/custom integration to allow us to control in-app functions like activate heating/ventilation or lock/unlock the car.

I’m almost done with it. Doing some final tests/tweaks. It’s not as nice as it used to be when old API was still available. But at least it seems to be working my usecase (activation of heating on Google Home Mini through HASS).

This is not to replace the CarData stuff… It’s just to be able to control the features that we all lost due to BMW decision.

Will add more info in few days. Stay tuned!

5 Likes

How do you do it?

Currently I’m using the Alexa way and it is o.k.

I don’t use Alexa. I have Google Home / Assistant / Gemini setup at home and My BMW doesn’t integrate with Google for some reason. So for me the official BMW app is the only way to interact with the car.

So I finished the fist version of the addon/integration:

Please note that the documentation is still a complete garbage - I based this integration on several open source addons and haven’t sorted out CI/CD stuff, documentation and translations.

TLDR: This integration is a just workaround (not the actual API integration) - it required some cheap Android device to be connected to your HASS host to simulate user interactions with the app.

Steps to set it up:

  1. Install Mosquitto broker addon & integration. (it is required for communication between my addon and integration both ways).

  2. Add GitHub - coder89/hassio-maestro-dev: Home Assistant add-on for running automations on a mobile device with Maestro CLI as a new addon repo & install the “Maestro Mobile” addon. DON’T start it yet.

  3. Add GitHub - coder89/hassio-maestro-dev: Home Assistant add-on for running automations on a mobile device with Maestro CLI as a new HACS repo and install “Maestro Mobile” integration.

  4. Restart HASS

  5. Setup some cheap Android device (I tried setting up the emulator but My BMW app doesn’t work on emulated devices - they detect that and prevent you from logging in).

    • Enable Developer options
    • Enable USB / WiFi debugging
    • Disable ADB authorization timeout
    • Enable screen lock (triggering works much faster when you don’t need to unlock the device).
    • Install My BMW app and configure it.
    • (Optional) Enable App pinning on the phone (to prevent accidental closure of the app)
    • (Optional) Open and pin My BMW app (that way actions triggering will be even faster)
    • Connect the device to your HASS host
    • Start the Maestro Mobile addon
    • Once it’s started you should get a popup on the device to authorize connection. Select “Always allow” and confirm.
    • If you DIDN’T GET a popup it is possible that your HASS setup doesn’t allow USB access to docker containers. In that case you need to configure static IP for your mobile phone on your local network and configure that IP + PORT (you can find that in Android Developer options under Wifi debugging) in “Maestro Mobile” under “Automatically connect devices” option. Once done, restart the addon and you should get the popup.
  6. You can open web UI of the addon and try adb devices and other adb commands to verify your device is accessible by the addon.

  7. Go to the Maestro Mobile integration and start adding some entries. Here are the ones I created for my BMW (I guess options may vary depending on the model/config) but this should get you started. (you can leave “device” field empty if you only have one android phone connected to HASS)

Name: Lock doors
Flow:

appId: "de.bmw.connected.mobile20.row"
---
- launchApp:
    stopApp: false
- tapOn: "Vehicle tab"
- assertVisible: "Lock Vehicle"
- tapOn: "Lock Vehicle"
- assertVisible: "Successfully sent to your BMW."

Name: Unlock doors
Flow:

appId: "de.bmw.connected.mobile20.row"
---
- launchApp:
    stopApp: false
- tapOn: "Vehicle tab"
- assertVisible: "Unlock Vehicle"
- tapOn: "Unlock Vehicle"
- assertVisible: "Successfully sent to your BMW."

Name: Honk horn
Flow:

appId: "de.bmw.connected.mobile20.row"
---
- launchApp:
    stopApp: false
- tapOn: "Vehicle tab"
- assertVisible: "Use horn"
- tapOn: "Use horn"
- assertVisible: "Successfully sent to your BMW."

Name: Flash lights
Flow:

appId: "de.bmw.connected.mobile20.row"
---
- launchApp:
    stopApp: false
- tapOn: "Vehicle tab"
- assertVisible: "Flash Lights"
- tapOn: "Flash Lights"
- assertVisible: "Successfully sent to your BMW."

Name: Toggle climate
Flow:

appId: "de.bmw.connected.mobile20.row"
---
- launchApp:
    stopApp: false
- tapOn: "Vehicle tab"
- assertVisible: "Start Ventilation / Heating"
- tapOn: "Start Ventilation / Heating"
- assertVisible: "Successfully sent to your BMW."

Once you configure the flows you will get button entities you can click (or activate via any voice assistant).

For the device I got Motorola G15 8GB - the cheapest I could get in the store for ~100$.

If you want to build automations for other functions in the My BMW app you can enable “Enable Maestro Studio” in the addon config, restart and then you should be able to access visual designer on [HASS_LOCAL_HOST]:9999 where you can see the screen, click stuff and record interactions to generate flows similar to the ones I pasted above. Once you have it just copy the YAML code and paste that into the Maestro Mobile integration. Once you are done remember to disable Maestro Studio because it can consume quite a lot of resources and it may also block the phone connection and the integration may not work correctly.

I used this setup yesterday/today several times already and no issues so far. Hope somebody finds this useful.

4 Likes