[APP][Pro] BMW Connected

!!! Authentican broken, if app/homey restarted. Fix available in test version.

BMW Connected connects you to your BMW and the rest of the world.

BMW Connected App voor Homey | Homey


  • Lock and Unlock door
  • Start and Stop Climate Now (Cars supporting Climate Now functionality might support Heating only/Aircondition)
  • Monitor if the car alarm is armed
  • For PHEV/BEV check the underlying actual battery state of charge
  • Flash lights (Action flow)
  • Blow horn (Action flow)
  • Monitor range (For PHEV/BEV includes battery and fuel only range)
  • Charging status monitor and trigger flows
  • Drive log. Drive session completed flow triggered when vehicle locked and location was changed. This flow also adds additional information about last and current mileage including location information.
  • Refuelling log. Refuelled flow triggered when vehicle is refuelled including how much and location. There is a threshold which can be set in device settings.


  • Install this app on your Homey
  • Go to the application settings section and save your ConnectedDrive services login
  • Go to Devices are and add BMW Connected device and select the vehicles from the the list that you want to pair

Upcoming feature

  • Monitor Window states
  • Monitor Hood state
  • Monitor Trunk state
  • Update Charging profile
  • Monitor Last status update

Useful links


Release Info
Latest release: 0.0.9
Test release: 0.0.16 Added flow trigger to improve log odometer readings. Added text address capability. Added flow trigger when refuelled.

0.0.1: Ability to add BMW with Connected Drive Services
0.0.5: Improved capability detection for older cars. Added Remaining Fuel capability. (Also fixed BEV capability detection)
0.0.9: Added lock unlock flow for older cars. Added location capability and geofence based flow triggers. Added logging.
0.0.11: Fixed issue with fresh install.
0.0.16: Added flow trigger to improve log odometer readings. Added text address capability. Added flow trigger when refuelled.

Frequently Asked Questions


  • Add geofence using maps
  • Window states capability
  • Hood state capability
  • Trunk state capability
  • Charging control capability
  • Last status update
  • CBS

Thinking of creating a separate ClimateNow device so that it works with google home. Thoughts?


Greaaaaaat man, great, great, great.
I added my X1 successfully: message, light, Horn, worked as well. I’ll test the other actions.
Thanks again for this great app.
I did not see the button for donation.

Hey @Likhan - great app - thank you for creating.

I have a 2015 BMW X5 and successfully connected to the service through Homey, and I want to add a ‘lock car’ action to a flow, but when I select the vehicle I don’t get that option.

See https://i.imgur.com/pn6F9HM.png

I do have the option to lock the car via the My BMW app, so I’m wondering why it’s not showing in Homey?

@goatboy currently the lock action is wired upto thw built in lock capability in homey which also has the flow configuration. If the car cannot report back the status, then the lock capability is disabled as the status cannot be updated in homey. However, I am aware of this limitation, planning on atleast adding a custom lock/unlock flow separately.

Thanks @Moussa_BA. The donate link is in the app’s page in homey. PayPal.Me

@goatboy can you try the test version of the app from here. Please remove the car and add it again, and you should get the lock/unlock flows. If everything works let me know then I will publish the app to the store.

Thank you @Likhan - it works perfectly.

The new test version of the app has location capability along with geofencing based triggers.

Hey @Likhan - thanks for the latest release. Two questions for you:

  1. With the new location capability I can see the ‘location changed’ trigger. Do you have any idea how to create a flow that allows for ‘then’ actions when the vehicle enters a geofence? eg. open garage.

  2. My car has factory alarm, but I don’t get the ‘if alarm is armed/disarmed’ ‘And’ option in flows. Is that because it’s an older model?

@goatboy you can create a flow with trigger as follows

And then in the condition you can yse a logic flow and use the ‘Label’ tag and check against the label you used in geofence like follows

However, as yours is 2015 I am not sure what status is returned from bmw as the most oldest I tested with is 2016 LCI post July build. Based on the status returned capabilities are enabled in the device. If you can send the diagnostic report with trace level and logging enabled I can get back to you with more detailed info.

For the other issue can you enable logging and set it to trace and keep the app running for a while and send in the diagnostic report from the app. I will try to see what is the cause. Remember to set the trace level back to information and disable logging.

1 Like

Thanks again @Likhan - so I need to create that label with relevant location data in the app settings right? Is the radius there in metres?

Also, I notice you removed the polling frequency setting - is that because you need to be polling in near real time for geofencing?

I’ve setup logging and will upload to you once there is data there in coming days.

Hi likhan,

Thx for developing n linking BMW app to homey! I just started using it and getting excited about the possibilities!

Was also wondering for normal petrol car, are the following “parameters” available?

Thx again for the app!

Juz realised there maybe some parameters BMW took out from the old app. Have a look at my old BMW connected app.

@AlexToh can you try the latest version, the fuel and the range should be available. The CBS status I will add in the todo list.

Yo. Yes, the mileage n fuel parameters are shown in homey app. But I am trying to create a use case to alert me when my car is low on petrol :sweat_smile:

Or when I have warnings appearing like engine oil n tire pressure warnings (not sure r these part of CBS) but they r on our BMW connected.

@AlexToh aah ok. Will add the flows in the next release. The cbs condition based service functionality is what reports those values. I have them in the api just not exposed.