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!
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.
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.
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??
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.
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.
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.
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.
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?