This is a simple library to query and control the status of your BMW or Mini vehicle from the Connected Drive portal.
bimmer_connected requires Python 3.6 or above but should also run with Python 3.5. Just install the latest release from PyPI
pip3 install --upgrade bimmer_connected.
Alteratively, clone the project and execute
pip install -e . to install the current
After installation, execute
bimmerconnected from command line for usage instruction
or see the full CLI documentation.
The description of the
modules can be found in the module documentation.
This library is written to be included in Home Assistant.
This works with BMW (and Mini) vehicles with a Connected Drive account. So far it is tested on vehicles with a ‘MGU’, ‘NBTEvo’, ‘EntryEvo’, ‘NBT’, or ‘EntryNav’ navigation system. If you have any trouble with other navigation systems, please create an issue with your server responses (see next section).
To use this library, your BMW (or Mini) must have the remote services enabled for your vehicle. You might need to book this in the Connected Drive/Mini Connected portal and this might cost some money. In addition to that you need to enable the Remote Services in your infotainment system in the vehicle.
Different models of vehicles and infotainment systems result in different types of attributes provided by the server. So the experience with the library will certaily vary across the different vehicle models.
If some features do not work for your vehicle, we would need the data returned form the server to analyse this and potentially extend the code. Different models and head unit generations lead to different responses from the server.
If you want to contribute your data, perform the following steps:
# get the latest version of the library pip3 install --upgrade bimmer_connected # run the fingerprint function bimmerconnected fingerprint <username> <password> <region>
This will create a set of log files in the “vehicle_fingerprint” folder. Before sending the data to anyone please check for any personal data such as dealer name or country.
The following attributes are by default replaced with anonymized values:
vin(Vehicle Identification Number)
Please add your model and year to the title of the issue, to make it easier to organize. If you know the “chassis code” of your car, you can include that too. (For example, googling “2017 BMW X5” will show a Wikipedia article entitled “BMW X5 (F15)”. F15 is therefore the chassis code of the car.)
Note: We will then use this data as additional test cases. So we will publish (parts of) it (after checking for personal information again) and use this as test cases for our library. If you do not want this, please let us know in advance.
Contributions are welcome! Please make sure that your code passed the
We currently test against
pylint and our own
And please add tests where it makes sense. The more the better.
Thank you Christian, m1n3rva, gerard33, rikroe, robthebold, timmccor, kernelkraut, robbz23, swimsystems and lawtancool for your research and contributions!
This library is basically a best-of of other similar solutions, yet none of them provided a ready to use library with a matching interface to be used in Home Assistant and is available on pypi.
Thank you for your great software!
The bimmer_connected library is licensed under the Apache License 2.0.
This library is not affiliated with or endorsed by BMW Group.