BMW Connected App

I managed to get an integration of BMW Connected working on Homekit using a home bridge integration (https://www.npmjs.com/package/homebridge-bmw-connected) which I can use to lock/unlock my car using Siri (don’t get too excited, it’s sloooowww), but I’m now thinking of writing a specific smart-app/DTH to interface with the ConnectedDrive website and view location, control lock and lights.

If anyone fancies helping me out, please let me know!

I don’t know nuts abt coding but I’m willing to help test

For anybody interested, I’ve made some good progress on this.

The app is pretty basic, but it uses your ConnectedDrive login details to connect to the web interface and gives details on VIN, fuel, door lock status, doors/windows and location.

It also acts as a presence sensor to tell you when you car is at your SmartThings hub home location.

IMG_0010

I’ve uploaded the SmartApp and associate Child DeviceHandler to my githhub:

You’ll need to enter Vin, username/password for your connected-drive account and a ClientID, which can be found by looking at the page resources when you log into connected drive website and searching for the gcdm-api-key.

TEST/USE THIS APP AT YOUR OWN RISK!!

https://github.com/needlerp/SmartThings

How do you look at “page resources?”

I meant I know how to see the page source, but can’t find the client ID.

I’m using a mac – enable the Developer tab under preferences then ‘Show Page Resources’ and you can search. I think you can do similar in Chrome with Ctrl + F12??

Regards

Paul Needler

+44 (0)7979 651978

Thanks, am able to see the elements, but can’t find the ClientID or the API call. Do you know the line number or thereabouts in the code?

I found my client ID and credentials - but no luck connecting to car. Times out. Is the code region specific ? like Uk ?

It’s in a div with class fupo-root page-wrapper after a note “actual app goes here”

Yes, my app is for the UK - check what your url is when you log into your ConnectedDrive website - you might need to amend my code to address the correct servers as I believe they authenticate separately.

I think that if you’re in the US, you’ll need to change bmw-connecteddrive.co.uk for connecteddrive.bmwusa.com.

Also, check your logs - does the smart app report getting a token? you should get a debug line with a token and expiry before it attempt to collect your car details.

Thanks for doing this.

I changed the URLs in the smartapp to the US specific ones.

I cannot find the “ClientID” anywhere. I have searched the source of basically every link within the connected website.

Would be interesting to know around what line number you find it. Is it on the dashboard landing page?

Anyone have any luck finding the “clientID”?

You need to search for gcdm-api-key not ClientID. Here’s a screenshot of where it appears on mine.

I think that’s the issue…my home page looks nothing like yours. What link are you using? I am using https://connecteddrive.bmwusa.com/

This is what mine looks like:

I’m accessing the UK connected-drive portal.

Try going to the page on your website where you can remote lock/unlock the car, view mileage etc – then try searching again. On the UK it’s referred to as the cockpit.

Regards

Paul Needler

+44 (0)7979 651978

Thanks again.

We cannot do any of those activities on the website. That can only be done via the app. I haven’t been able to find that capability anywhere on the US connected drive website.

That’s too bad…

I do have it connected to Google Home and I can remotely send those commands so there has to be some sort of connection available.

Hiya,

Sorry to bring up an old thread, but I’ve tried adding my i3 - after installing and publishing both your SmartApp and DTH I get as far as “adding” the car after adding the App, but I get an error, logs below:

25c9df51-9d43-4bf5-9f49-393b3ea914c6 17:57:11: error groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.math.BigDecimal#minus.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.Number] @line 437 (calculateDistance)
25c9df51-9d43-4bf5-9f49-393b3ea914c6 17:57:10: trace Polling i3 (+ REX)-V*******
25c9df51-9d43-4bf5-9f49-393b3ea914c6 17:57:10: debug getChildDevices(false), children=1
25c9df51-9d43-4bf5-9f49-393b3ea914c6 17:57:10: debug Create New device for i3 (+ REX)
25c9df51-9d43-4bf5-9f49-393b3ea914c6 17:57:10: debug Installed

Is it something BMW have changed at the backend please?

Thanks
Guy

I tried to get my wife’s 535 connected, with no success.
These ‘smart’ systems sure can be stupid sometimes.

Hi,

I have the lastest version of the BMW software on the car, it is from end of this year. What is the process to make this work ?

There is a newer SmartApp and DTH in this thread which will enable you to add your BMW Connected vehicle as a ‘Thing’ in SmartThings.