Tesla 开发者 API 指南:BLE 密钥 – 身份验证和车辆命令
注意:本工具只能运行于 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. 添加汽车公钥
./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://github.com/teslamotors/vehicle-command/blob/main/README.md
Tesla 开发者 API 指南:BLE 密钥 – 身份验证和车辆命令的更多相关文章
- [翻译] API测试最佳实践 - 身份验证(Authentication)
API测试最佳实践 - 身份验证 适用等级:高级 1. 概况 身份验证通常被定义为是对某个资源的身份的确认的活动,这里面资源的身份指代的是API的消费者(或者说是调用者).一旦一个用户的身份验证通过了 ...
- CentOS7.4配置SSH登录密码与密钥身份验证踩坑
简单记录,自用CentOS7.4虚拟机与ALiYunVPS,在配置ssh登录身份验证时碰到的问题. 阿里云VPS:因为在重置磁盘时选择了密钥对的身份验证方式,因此VPS中的CentOS7.4中的 /e ...
- .net core web API使用Identity Server4 身份验证
一.新建一个.net core web项目作为Identity server 4验证服务. 选择更改身份验证,然后再弹出的对话框里面选择个人用户账户. nuget 安装Identity server相 ...
- API测试最佳实践 - 身份验证
适用等级:高级 1. 概况 身份验证通常被定义为是对某个资源的身份的确认的活动,这里面资源的身份指代的是API的消费者(或者说是调用者).一旦一个用户的身份验证通过了,他将被授权访问那些期待访问的资源 ...
- 第23章 Windows身份验证 - Identity Server 4 中文文档(v1.0.0)
在支持的平台上,您可以使用IdentityServer使用Windows身份验证对用户进行身份验证(例如,针对Active Directory).当前使用以下命令托管IdentityServer时,W ...
- 第14章 身份验证:使用Identity将用户添加到应用程序(ASP.NET Core in Action, 2nd Edition)
本章包括 ASP.NET Core中web应用程序的身份验证工作原理 使用ASP.NET Core标识系统创建项目 向现有web应用添加用户功能 自定义默认ASP.NET Core标识UI 像ASPN ...
- ASP.NET Core Web API中带有刷新令牌的JWT身份验证流程
ASP.NET Core Web API中带有刷新令牌的JWT身份验证流程 翻译自:地址 在今年年初,我整理了有关将JWT身份验证与ASP.NET Core Web API和Angular一起使用的详 ...
- Asp.Net Core 5 REST API 使用 JWT 身份验证 - Step by Step
翻译自 Mohamad Lawand 2021年1月22日的文章 <Asp Net Core 5 Rest API Authentication with JWT Step by Step> ...
- Sentry 开发者贡献指南 - SDK 开发(性能监控:Sentry SDK API 演进)
内容整理自官方开发文档 本文档的目标是将 Sentry SDK 中性能监控功能的演变置于上下文中. 我们首先总结了如何将性能监控添加到 Sentry 和 SDK, 然后我们讨论 identified ...
- ASP.NET Web API 2基于令牌的身份验证
基于令牌的认证 我们知道WEB网站的身份验证一般通过session或者cookie完成的,登录成功后客户端发送的任何请求都带上cookie,服务端根据客户端发送来的cookie来识别用户. WEB A ...
随机推荐
- 3562-Linux系统使用手册
- P7086 题解
考虑把每个字符串的前 \(k\) 位和后 \(k\) 位看成点,字符串看成边,那么一个字符串前缀后缀至少有一个是相似群体的前缀后缀,看成这条边的两个端点至少有一个被选中. 那么这就变成了一个最小点覆盖 ...
- 基于python3 flet库的证书查看工具
前言 基于python3 flet库实现了证书信息的提取,留作自用,如有错误欢迎指正. 正文 程序架构: 主程序 main.py 证书解析程序 certHandle.py 运行 python main ...
- boltdb一瞥
boltdb 网上关于boltdb的文章有很多,特别是微信公众号上,例如: boltdb源码分析系列-事务-腾讯云开发者社区-腾讯云 (tencent.com) 这些文章都写的挺好,但不一定覆盖了我所 ...
- 1.1 第一个hello程序
还记得在每一个编程平台上的第一个程序都是hello world,现在就以这个程序为载体,先浅聊一下计算机系统吧. 1.预处理阶段,预处理器cpp根据字符#开头的命令修改原始的程序,并把头文件里的内容直 ...
- ArchSummit回顾:从云原生到实时数据湖,架构如何支撑业务发展
[点击了解更多网易热点] 数字化.自动化.智能化的主旋律下,架构的进化也在提速.在近日举办的ArchSummit全球架构师峰会上,网易数帆高级技术专家.资深架构师裴斐和网易数帆高级技术专家周劲松分别分 ...
- 靶机: AdmX_new
靶机: AdmX_new 准备阶段 靶机:https://download.vulnhub.com/admx/AdmX_new.7z 下载后进行 MD5:2948034da23a8acc1285fd4 ...
- 硬件开发笔记(二十八):TPS54331电源设计(一):5V电源供电原理图设计
前言 电源供电电路设计很重要,为了更好的给对硬件设计有需求的人,特意将电源设计的基础过程描述出来. 本篇描述设计常用的12V转5V电路3A. TPS54331(DC-DC稳压器) 概述 ...
- 手把手教你集成GraphRag.Net:打造智能图谱搜索系统
在人工智能和大数据发展的背景下,我们常常需要在项目中实现知识图谱的应用,以便快速.准确地检索和使用信息. 今天,我将向大家详细介绍如何在一个新的.NET项目中集成GraphRag.Net,这是一个参考 ...
- WordPress基础之基本SEO设置
基础内容,不会涉及过深,在谷歌SEO教程中会做详细的介绍,我这里只简单讲下. 1. SEO介绍 SEO,又名搜索引擎优化(Search Engine Optimization,缩写为SEO)是透过了解 ...