BMW ConnectedDrive Binding

Hi,

until now i am using the BMWConnectedDrive Binding, but since some time the connection to bmw is broken.

I already noticed, that there is a “new” binding at the marketplace: “MyBMW binding add-on”

Can i replace the old binding by the new one or do i have to do major changes at things and items? Is there a recommended migration path?

Thanks, Alex

I’ve just tried this, and worked without any issue!

I’m using text files for my items, so I just had to update the channel ID’s…
2min work…

1 Like

I’ve done the following:
I installed MyBMW binding in parallel and created mybmw vehicle thing. I unlinked the mileage item from ConnectedDrive thing and linked it to MyBMW thing in order to keep the persisted history data. If you want to preserve some more history (soc, ranges, …) do the same for the desired items.

With this one time manual migration the previous collected data from BMW ConnectedDrive binding isn’t lost.

1 Like

Hi and thanks for that advice - mapped all the items from the old binding to the new one.

The following items i couldnt map or i am not sure about.

  • doors#win-rear i didnt fint at the new binding - is this correct?
  • check#mileage seems to be outdated or is it check#details now?
  • destination#name & gps dont appear at the new binding or is it location#address now and can it be used to send destinations to the car?

Thanks, Alex

Is anyone getting error messages lately with this binding? I keep getting this, fresh install OH3.2… Everything else works fine but this.

2022-03-28 22:40:09.043 [WARN ] [internal.handler.ConnectedDriveProxy] - Server returned HTTP response code: 401 for URL: https://customer.bmwgroup.com/gcdm/oauth/authenticate
2022-03-28 22:40:09.329 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.NullPointerException: null
        at org.eclipse.jetty.util.UrlEncoded.decodeTo(UrlEncoded.java:238) ~[?:?]
        at org.openhab.binding.bmwconnecteddrive.internal.handler.ConnectedDriveProxy.codeFromUrl(ConnectedDriveProxy.java:446) ~[?:?]
        at org.openhab.binding.bmwconnecteddrive.internal.handler.ConnectedDriveProxy.updateToken(ConnectedDriveProxy.java:303) ~[?:?]
        at org.openhab.binding.bmwconnecteddrive.internal.handler.ConnectedDriveProxy.getToken(ConnectedDriveProxy.java:259) ~[?:?]
        at org.openhab.binding.bmwconnecteddrive.internal.handler.ConnectedDriveProxy.call(ConnectedDriveProxy.java:144) ~[?:?]
        at org.openhab.binding.bmwconnecteddrive.internal.handler.ConnectedDriveProxy.get(ConnectedDriveProxy.java:177) ~[?:?]
        at org.openhab.binding.bmwconnecteddrive.internal.handler.ConnectedDriveProxy.requestVehicles(ConnectedDriveProxy.java:185) ~[?:?]
        at org.openhab.binding.bmwconnecteddrive.internal.handler.ConnectedDriveBridgeHandler.lambda$3(ConnectedDriveBridgeHandler.java:116) ~[?:?]
        at java.util.Optional.ifPresent(Optional.java:183) ~[?:?]
        at org.openhab.binding.bmwconnecteddrive.internal.handler.ConnectedDriveBridgeHandler.requestVehicles(ConnectedDriveBridgeHandler.java:116) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
        at java.lang.Thread.run(Thread.java:829) [?:?]

Binding ConnectedDrive isn’t working anymore since Feb. Please check MyBMW binding

1 Like

Thank you, I missed that somehow during the install!
Should the old binding maybe removed from the list if it’s not working anymore? Thanks again!

Hi,

I have a conventional BMW. Is it possible to track my ways? I know that there is a item for electric cars, but is there any process to have a map showing all ways I did.

I am a newbie .

Thanks a lot for your help

Regards

C

Hi @Claude5555 it will depend on the model and age of your car. BMW have changed what information they collect and publish, for example I have a 2012 M5 that used to publish it’s location via the app but no longer does. My wife has a 2021 Mini Cooper and that tracks every location the car stops at, you have to enable the setting in the cars settings for this to work.

Hi Maximo

My car is 2021. Which setting have I to activate?

How do you get a map in OH with the road you took? Is it possible to keep a history?

Thanks a lot for your help

Kind regards

Claude

It should be possible then if you have ConnectedDrive and you have enabled it inside the car.
Use the MyBMW binding from the “Community Marketplace” from the bindings.
image

The setup is quite easy.
As for history: yes and no. The road you took is not there (at least in my case) as the car seems to update its position toward BMW on certain events (door open/close). So while driving it doesn’t necessarily update the position in my experience (G30 2017).

Hi and thanks for your help and answer.

I already set up MyBMW bonding add-on and I get an update of my position, but just the update. I don’t get a map with the history of the way I used. Just the last position.

Maybe there is another way to get it.

Thanks

Kind regards

bmw.items
Location Bmw_gpsLatLngLocation “BMW Location” (gBMW) { channel=“mybmw:conv:xxxx:ZZZZ:location#gps” }

default.sitemap
Mapview item=Bmw_gpsLatLngLocation

I hope it helps!

Hi,

thanks again for your help. I don’t have GPSLatLngLocation, but GPS_coordinates. I think it is the same. I already make a Page site map using GPS_coordinates, but it doesn’t keep the different coordinates to show the road I used on a sitemap.

Thanks

Sorry missed your original reply to me.

This is where you have to creative and do a little coding to achieve what your looking for. There is no out of the box way of displaying the full history of items in a way where you can map the various locations. The various persistence methods will help to a degree. BMW don’t record the route you take while driving, they only update the GPS location when the vehicle has stopped and the ignition turned off.

What this means is that you’ll only be able to show on a map, the locations that BMW have recorded for you. As an example, if you’ve travelled to three places and managed to work out how best to record that data, then you use an API into Google Maps to bring up a possible route.

Hi Maximo and thanks for your message. Just one additional thing. A fix years ago, it was possible to send an address with your computer using google maps. There was a partnership between google and BMW. It was simple to search an address on google and send it to your car. Now it seems that it is no more possible. Am I wrong?

I don’t know coding… Maybe you can help me?

Have a good day and thank you for your message

Kind regards

Claude

Hi Claude,

No your not wrong. BMW have changed functionality of their app over the years and via the online portal.

I’m no coder myself, so not really in a position to help. I’ve had to learn by trial and error, also by come back here with my existing code when things don’t go as expected. Writing code for other people is a very difficult thing to get right, there are far to many variables involved. The best advice I could give is for you to search the forum to see how others have written their code and to adapt that for your needs. There are loads of people on here who will be able to help guide you along the way, once you’ve got started.

Cheers,

Garry

Thanks Garry

since some days I see very often the following error in the Log:

Thing 'mybmw:<..ID..>' changed from UNKNOWN to OFFLINE (COMMUNICATION_ERROR): Total timeout 10000 ms elapsed

Is this an issue with BMW-server or an openHAB issue?
Any hints are appreciated.
Best, Kai

I discovered this too since the last days. But I’ve also trouble getting the newest data on MyBMW Smartphone App. Seems BMW is doing something

1 Like