{"id":13538580,"url":"https://github.com/edent/bmw-i-remote","last_synced_at":"2025-04-02T05:31:24.475Z","repository":{"id":46823707,"uuid":"46869376","full_name":"edent/BMW-i-Remote","owner":"edent","description":"A reverse engineered interface for the BMW i3 Electric Car","archived":true,"fork":false,"pushed_at":"2022-01-13T14:44:27.000Z","size":52,"stargazers_count":389,"open_issues_count":19,"forks_count":60,"subscribers_count":41,"default_branch":"master","last_synced_at":"2024-11-03T03:31:41.482Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edent.png","metadata":{"files":{"readme":"README-python.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"edent","patreon":"edent","open_collective":"edent","ko_fi":"edent","custom":"https://www.amazon.co.uk/hz/wishlist/ls/13GFCFR2B2IX4?tag=edentgithub-21"}},"created_at":"2015-11-25T15:16:33.000Z","updated_at":"2024-10-12T09:12:02.000Z","dependencies_parsed_at":"2022-09-23T05:03:54.019Z","dependency_job_id":null,"html_url":"https://github.com/edent/BMW-i-Remote","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edent%2FBMW-i-Remote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edent%2FBMW-i-Remote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edent%2FBMW-i-Remote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edent%2FBMW-i-Remote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edent","download_url":"https://codeload.github.com/edent/BMW-i-Remote/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246763805,"owners_count":20829795,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T09:01:13.700Z","updated_at":"2025-04-02T05:31:24.153Z","avatar_url":"https://github.com/edent.png","language":"Python","funding_links":["https://github.com/sponsors/edent","https://patreon.com/edent","https://opencollective.com/edent","https://ko-fi.com/edent","https://www.amazon.co.uk/hz/wishlist/ls/13GFCFR2B2IX4?tag=edentgithub-21"],"categories":["\u003ca id=\"9eee96404f868f372a6cbc6769ccb7f8\"\u003e\u003c/a\u003e工具"],"sub_categories":["\u003ca id=\"31185b925d5152c7469b963809ceb22d\"\u003e\u003c/a\u003e新添加的"],"readme":"# The Python BMW API wrapper\n\nThe `bmw.py` file is a basic module that you can import to make convenient use of the (unofficial, unsupported) BMW i3 API.  For details of the API, please see the main [README.md](README.md) file.\n\nTo use this, you will need to know some authentication details used by your phone app.  This can be discovered by capturing the traffic between the app and the server -- a process which beyond the scope of this document.  The protocol requires an 'access token', which expires periodically and is then regenerated using your API key and secret (analagous to your username and password). You can discover these by looking at the traffic at the time the app is re-authenticating.  \n\nThe request will contain the base64-encoded version of key:secret, which can be put in the credentials.json file as 'auth_basic'.  Until that time, you may be able to capture the access token and use that.\n\nHere's a very simple demo:\n\n    import bmw\n    import json\n    \n    car = bmw.ConnectedDrive()\n    resp = car.call(\"/user/vehicles/\")\n    veh = resp['vehicles'][0]\n    print (json.dumps(veh, indent=2))\n    \n    vin = veh['vin']\n    status = car.call(\"/user/vehicles/{}/status\".format(vin))['vehicleStatus']\n    print (json.dumps(status, indent=2))\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedent%2Fbmw-i-remote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedent%2Fbmw-i-remote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedent%2Fbmw-i-remote/lists"}