首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Tesla 开发者 API 指南:BLE 发送车辆命令

编程知识
2024年08月24日 05:47

前言

特斯拉提供两种与汽车通信的方式。一种是使用 API 通过互联网,另一种是使用 BLE 连接。BLE 连接有助于锁定和解锁汽车的最重要部分之一,即使汽车和手机或任何其他兼容 BLE 的钥匙扣上没有网络连接。这在两种主要用例中很有帮助,即使在互联网非常不稳定的情况下也是如此。

  1. 离开汽车时锁好车
  2. 当你走近汽车时解锁汽车

汽车中低功耗蓝牙 (BLE) 的使用场景不仅限于锁定和解锁车辆。大多数其他命令也可以通过 BLE 直接发送到汽车,而无需完全通过互联网路由命令。但是,需要考虑的一件事是 BLE 在汽车一定距离内的操作范围。

BLE 功能的代码库可在此处找到 –https://github.com/teslamotors/vehicle-command.git

go 环境搭建自行搜索教程

注意:本工具只能运行于 mac 或者 linux, win下不支持。

1. 克隆项目到本地

https://github.com/teslamotors/vehicle-command.git

2. 项目根目录下执行命令

go get ./...
go build ./...
go install ./...
cd cmd
cd tesla-control 
go build 

3. 生成密钥

生成私钥

openssl ecparam -genkey -name prime256v1 -noout > private.pem

生成公钥

openssl ec -in private.pem -pubout > public.pem

3. 添加汽车公钥

vin码就是车架识别号,类似 7ABCGDEE123ABC555。 在前玻璃地下那里能看到,手机app也能找到。以下用 {youvin} 代替,实际替换为你自己的字符串,{ } 这两个符号也去掉。

./tesla-control -vin {youvin} -ble add-key-request public.pem owner cloud_key

发出命令后,成功的请求将返回以下响应。
向 {youvin} 发送添加密钥请求。通过在中央控制台上轻触 NFC 卡进行确认。

当 NFC 卡在特斯拉汽车的中央控制台上触碰时,汽车显示控制台上会出现一条消息。

特斯拉触摸屏显示一个确认按钮,用于将公钥添加到汽车。
添加钥匙后,它将出现在钥匙列表中,如果您的手机上安装了特斯拉应用程序,也会收到通知。

列出汽车配对的所有钥匙

./tesla-control -vin {youvin} -ble -debug list-keys 

4. 解锁/上锁

./tesla-control -ble -vin {youvin} -key-name private.pem -key-file private.pem unlock
./tesla-control -ble -vin {youvin} -key-name private.pem -key-file private.pem lock

6. 后备箱:开,关,开关切换

./tesla-control -ble -vin {youvin} -key-name private.pem -key-file private.pem trunk-open
./tesla-control -ble -vin {youvin} -key-name private.pem -key-file private.pem trunk-close
./tesla-control -ble -vin {youvin} -key-name private.pem -key-file private.pem trunk-move

7. 前备箱开

./tesla-control -ble -vin {youvin} -key-name private.pem -key-file private.pem frunk-open

8. 闪灯

./tesla-control -ble -vin {youvin} -key-name private.pem -key-file private.pem flash-lights

9. 命令帮助

./tesla-control -h

Usage: ./tesla-control [OPTION...] COMMAND [ARG...]

Run ./tesla-control help COMMAND for more information. Valid COMMANDs are listed below.

 * Commands sent to a vehicle over the internet require a VIN and a token.
 * Commands sent to a vehicle over BLE require a VIN.
 * Account-management commands require a token.

Available OPTIONs:
  -ble
    	Force BLE connection even if OAuth environment variables are defined
  -command-timeout duration
    	Set timeout for commands sent to the vehicle. (default 5s)
  -connect-timeout duration
    	Set timeout for establishing initial connection. (default 20s)
  -debug
    	Enable verbose debugging messages
  -domain value
    	Domains to connect to (can be repeated; omit for all)
  -key-file file
    	A file containing private key. Defaults to $TESLA_KEY_FILE.
  -key-name name
    	System keyring name for private key. Defaults to $TESLA_KEY_NAME.
  -keyring-debug
    	Enable keyring debug logging
  -keyring-file-dir directory
    	keyring directory for file-backed keyring types (default "~/.tesla_keys")
  -keyring-type type
    	Keyring type (file|keychain|pass). Defaults to $TESLA_KEYRING_TYPE.
  -session-cache file
    	Load session info cache from file. Defaults to $TESLA_CACHE_FILE.
  -token-file File
    	File containing OAuth token. Defaults to $TESLA_TOKEN_FILE.
  -token-name name
    	System keyring name for OAuth token. Defaults to $TESLA_TOKEN_NAME.
  -vin string
    	Vehicle Identification Number. Defaults to $TESLA_VIN.

Available COMMANDs:
  add-key                  Add PUBLIC_KEY to vehicle whitelist with ROLE and FORM_FACTOR
  add-key-request          Request NFC-card approval for a enrolling PUBLIC_KEY with ROLE and FORM_FACTOR
  auto-seat-and-climate    Turn on automatic seat heating and HVAC
  autosecure-modelx        Close falcon-wing doors and lock vehicle. Model X only.
  body-controller-state    Fetch limited vehicle state information. Works over BLE when infotainment is asleep.
  charge-port-close        Close charge port
  charge-port-open         Open charge port
  charging-schedule        Schedule charging to MINS minutes after midnight and enable daily scheduling
  charging-schedule-cancel Cancel scheduled charge start
  charging-set-amps        Set charge current to AMPS
  charging-set-limit       Set charge limit to PERCENT
  charging-start           Start charging
  charging-stop            Stop charging
  climate-off              Turn off climate control
  climate-on               Turn on climate control
  climate-set-temp         Set temperature (Celsius)
  drive                    Remote start vehicle
  erase-guest-data         Erase Guest Mode user data
  flash-lights             Flash lights
  frunk-open               Open vehicle frunk. Note that there's no frunk-close command!
  get                      GET an owner API http ENDPOINT. Hostname will be taken from -config.
  honk                     Honk horn
  list-keys                List public keys enrolled on vehicle
  lock                     Lock vehicle
  media-set-volume         Set volume
  media-toggle-playback    Toggle between play/pause
  ping                     Ping vehicle
  post                     POST to ENDPOINT the contents of FILE. Hostname will be taken from -config.
  product-info             Print JSON product info
  remove-key               Remove PUBLIC_KEY from vehicle whitelist
  rename-key               Change the human-readable metadata of PUBLIC_KEY to NAME, MODEL, KIND
  seat-heater              Set seat heater at POSITION to LEVEL
  sentry-mode              Set sentry mode to STATE ('on' or 'off')
  session-info             Retrieve session info for PUBLIC_KEY from DOMAIN
  software-update-cancel   Cancel a pending software update
  software-update-start    Start software update after DELAY
  steering-wheel-heater    Set steering wheel mode to STATE ('on' or 'off')
  tonneau-close            Close Cybertruck tonneau.
  tonneau-open             Open Cybertruck tonneau.
  tonneau-stop             Stop moving Cybertruck tonneau.
  trunk-close              Closes vehicle trunk. Only available on certain vehicle types.
  trunk-move               Toggle trunk open/closed. Closing is only available on certain vehicle types.
  trunk-open               Open vehicle trunk. Note that trunk-close only works on certain vehicle types.
  unlock                   Unlock vehicle
  wake                     Wake up vehicle
  windows-close            Close all windows
  windows-vent             Vent all windows

参考资料

https://shankarkumarasamy.blog/2024/01/28/tesla-developer-api-guide-ble-key-pair-auth-and-vehicle-commands-part-3/

https://github.com/teslamotors/vehicle-command/blob/main/README.md

From:https://www.cnblogs.com/densen2014/p/18377322
本文地址: http://shuzixingkong.net/article/1391
0评论
提交 加载更多评论
其他文章 004.MinIO-DirectPV分布式存储部署
MinIO部署介绍 部署概述 Kubernetes hostpath、local和本地静态配置都存在需要事先在node节点准备好可用的块存储或文件系统,例如对插入的硬盘,或者磁盘阵列做分区格式化,文件系统则需提前创建好Kubernetes即将利用的挂载目录,并且两种方法都会有亲和性限制,无法做到让K
004.MinIO-DirectPV分布式存储部署 004.MinIO-DirectPV分布式存储部署 004.MinIO-DirectPV分布式存储部署
推荐7款美观且功能强大的WPF UI库
前言 经常看到有小伙伴在DotNetGuide技术社区交流群里提问:WPF有什么好用或者好看的UI组件库推荐的?,今天大姚给大家分享7款开源、美观、功能强大、简单易用的WPF UI组件库。 WPF介绍 WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 Windows 应用。它提供了灵
推荐7款美观且功能强大的WPF UI库 推荐7款美观且功能强大的WPF UI库 推荐7款美观且功能强大的WPF UI库
全网最适合入门的面向对象编程教程:37 Python常用复合数据类型-列表和列表推导式
在Python中,列表是一个非常灵活且常用的复合数据类型。它允许存储多个项,这些项可以是任意的数据类型,包括其他列表。列表推导式是一种简洁的方式来创建和操作列表。
全网最适合入门的面向对象编程教程:37 Python常用复合数据类型-列表和列表推导式 全网最适合入门的面向对象编程教程:37 Python常用复合数据类型-列表和列表推导式 全网最适合入门的面向对象编程教程:37 Python常用复合数据类型-列表和列表推导式
Python的OpenCV转换图像大小
本文简要介绍了Python的OpenCV转换图像大小的方法,本文加载一个图像文件,将其大小转换为指定的宽度和高度,然后显示并保存转换后的图像。
如何在 Nuxt 中动态设置页面布局
title: 如何在 Nuxt 中动态设置页面布局 date: 2024/8/24 updated: 2024/8/24 author: cmdragon excerpt: 摘要:本文介绍如何在Nuxt框架中通过设置setPageLayout函数动态调整页面布局,包括安装Nuxt、创建不同布局文件及
如何在 Nuxt 中动态设置页面布局 如何在 Nuxt 中动态设置页面布局
索引的使用
5年之后 祺源开发Java开发的时候才有使用索引的感觉。索引 面试中是十分频繁地被问到。索引分为聚簇索引和非聚簇索引。 古至今,人类都是 文盲到文明的演变过程。书籍的使用,文字的发明和记载信息。当文字量一大,翻阅查找起来就越困难。把相似的东西放 一起,使用标签标记存放,找起来更快。 索引和ID的概念
C++11新特性(二):语言特性
C++11新特性 语言特性 nullptr空指针 nullptr空指针的使用可以规避掉以往设置为NULL的风险。NULL在编译器中常常被设置为0或者其它数字,此时判断指针是否为NULL,即判断指针类型是否能够等于整型值,并不安全。 int *p = nullptr; 强类型枚举 强类型枚举不能隐式转
从网友探秘 《黑神话:悟空》 的脚本说说C#
《黑神话:悟空》千呼万唤始出来。在正式发售后不到24小时,Steam在线玩家峰值突破222万,在Steam所有游戏在线玩家历史峰值中排名第二。第一拨玩家纷纷晒出好评,称这款现象级产品正式开启国产3A游戏(3A 俗称:大量的资源、大量的金钱和大量的时间)元年,黑神话悟空是国内首款3A游戏,画面剧情都很
从网友探秘 《黑神话:悟空》 的脚本说说C#