My Chevy在线数据的Python接口
项目描述
Python接口到My Chevy网站
与Tesla不同,GM并没有为他们的车辆提供消费者级别的API。我购买了我的Chevy Bolt后,尝试注册他们的开发者计划,但至今一切都没有进展。他们提供了一个有用的My Chevy网站,你可以用OnStar凭证登录,查看诸如电池充电状态等信息。这一切都是用javascript框架构建的,数据通过OnStar网络加载,延迟为60 - 120秒(OnStar是一个相当慢的专有蜂窝网络)
这个库会登录到mychevy网站,并使用网站上javascript使用的API来加载onstar数据。
安装
这个库的安装只需pip install。
pip install mychevy
使用
使用非常基础。
from mychevy.mychevy import MyChevy
page = MyChevy("<username>", "<password>")
# This takes up to 2 minutes to return, be patient
# build credentials and starts a session on the mychevy site
page.login()
# gets a list of cars associated with your account
page.get_cars()
# update stats for all cars, and returns the list of cars. This will take
# 60+ seconds per car
cars = page.update_cars()
# Percent battery charge
print(cars[0].percent)
每次调用login()都会创建一个新的会话,以避免凭证超时。
不建议你频繁运行这个程序。例如,每小时运行一次可以提供基本数据,而且不应该给任何人的系统造成过载。
测试
因为有太多可能出错的地方,提供了一个基本的cli工具。
> mychevy -c config.ini
Loading data, this takes up to 2 minutes...
<EVCar vin="...", range=185 miles, bat=100%, plugged_in=True, mileage=903 miles, charging=Your battery is fully charged., charge_mode=Departure Based, eta=None, state="">
config.ini必须包含mychevy网站的以下格式的用户名和密码
[default]
user = my@email.address
passwd = my@wes0mepa55w0rd
注意事项
有很多注意事项……这个软件希望成为它所听说的让互联网运转的华丽而坚韧的泡泡糖和胶带。
猜测JSON格式
会话捕获和传输以及检查返回的JSON仍然会创建与网站使用的参数略有不同的参数。键和值的集合是猜测的。这都有些脆弱和启发式。
MyChevy网站的OnStar链接不够健壮
在使用Bolt的第一个月,我看到了两次多小时的mychevy网站无法连接到他们的OnStar后端网关的故障。一次持续了一天。在这段时间窗口内,Android应用的OnStar链接运行正常。所以这不是OnStar的故障,而是Web侧某处或为服务OnStar请求的网关不够健壮。
因此,这个软件在Pypi上始终被分类为Alpha。它可能会出错。为此我感到抱歉。但这是我最好的。
免费软件:Apache软件许可证2.0
特性
待办事项
致谢
此软件包是用Cookiecutter和audreyr/cookiecutter-pypackage项目模板创建的。
项目详情
mychevy-2.1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 27b214619b8bbf959466fb3ba4e07c0a3360c95b9e6f47366be517d19834cab4 |
|
MD5 | e627f827e5b5d2f11ab721ad3d8f5cf5 |
|
BLAKE2b-256 | 1aa8e42221e1a3e5bd306d6f81dd2e87fe6b59bcb4bbf484f65f866c469d58ce |