Package: bimmer-connected
bimmer_connectedThis is a simple library to query and control the status of your BMW or Mini vehicle from
the MyBMW portal.Installationbimmer_connectedis tested againstPython 3.8 or above. Just install the latest release fromPyPIusingpip3 install --upgrade bimmer_connected.Alternatively, clone the project and executepip install -e .to install the currentmasterbranch.NoteIf you want to connect to achineseserver, you need to install the[china]extra, e.g.pip3 install --upgrade bimmer_connected[china].UsageWhile this library is mainly written to be included inHome Assistant, it can be use on its own.After installation, executebimmerconnectedfrom command line for usage instruction
or see the fullCLI documentation.Please be aware thatbimmer_connectedis anasynclibrary when using it in Python code.
The description of themodulescan be found in themodule documentation.Example in anasyncioevent loopimport asyncio
from bimmer_connected.account import MyBMWAccount
from bimmer_connected.api.regions import Regions

async def main():
    account = MyBMWAccount(USERNAME, PASSWORD, Regions.REST_OF_WORLD)
    await account.get_vehicles()
    vehicle = account.get_vehicle(VIN)
    print(vehicle.brand, vehicle.name, vehicle.vin)

    result = await vehicle.remote_services.trigger_remote_light_flash()
    print(result.state)

asyncio.run(main())Example in non-async codeimport asyncio
from bimmer_connected.account import MyBMWAccount
from bimmer_connected.api.regions import Regions


account = MyBMWAccount(USERNAME, PASSWORD, Regions.REST_OF_WORLD)
asyncio.run(account.get_vehicles())
vehicle = account.get_vehicle(VIN)
print(vehicle.brand, vehicle.name, vehicle.vin)

result = asyncio.run(vehicle.remote_services.trigger_remote_light_flash())
print(result.state)CompatibilityThis works with BMW (and Mini) vehicles with a MyBMW 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 MyBMW/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 certainly vary across the different
vehicle models.Data ContributionsIf 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 pleasecheck for any personal datasuch asdealer nameorcountry.The following attributes are by default replaced with anonymized values:vin(Vehicle Identification Number)latandlon(GPS position)licensePlateinformation of dealerCreate a newfingerprint data contributionand add the files as attachment to the discussion.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.Code ContributionsContributions are welcome! Please make sure that your code passes the checks in.github/workflows/test.yml.
We currently test againstflake8,pylintand our ownpytestsuite.
And please add tests where it makes sense. The more the better.See thecontributing guidelinesfor more details.Thank youThank you to allcontributorsfor your research and contributions! And thanks to everyone who shares thefingerprint dataof their vehicles which we use to test the code.
A special thanks to @HuChundong, @muxiachuixue, @vividmuse for figuring out how to solve login issues!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.https://github.com/edent/BMW-i-Remotehttps://github.com/jupe76/bmwcdapihttps://github.com/frankjoke/iobroker.bmwhttps://github.com/TA2k/ioBroker.bmwhttps://gitee.com/ichuixue/bmw_shortcuts/https://www.icloud.com/shortcuts/eb064e89e6b647d2828a404227b91c4aThank you for your great software!LicenseThe bimmer_connected library is licensed under the Apache License 2.0.DisclaimerThis library is not affiliated with or endorsed by BMW Group.