Tesla Fleet API

🚗 官方 API 远程控车,一键启动空调充电

通过特斯拉官方 Fleet API 远程控制车辆,支持空调、充电、门锁等全功能操作,需开发者账号及 OAuth 认证

收藏
18.1k
安装
4.1k
版本
1.2.0
CLS 安全性认证2026-08-03
点击查看完整报告 >

使用说明

核心用法

tesla-fleet-api 是基于特斯拉官方 Fleet API 的车辆远程控制工具,需开发者账号完成 OAuth 2.0 认证流程。支持读取车辆数据(电量、位置、温度等)和执行远程命令(空调、充电、门锁、喇叭等)。

关键配置步骤

1. 开发者注册:在 Tesla Developer Portal 创建应用,获取 CLIENT_IDCLIENT_SECRET
2. 域名公钥托管:注册域名并部署公钥至 https://<domain>/.well-known/appspecific/com.tesla.3p.public-key.pem

3. OAuth 授权:执行 auth.py login 完成交互式授权,或使用 tesla_oauth_local.py 本地回调服务器

4. 代理启动(必需):签名命令需运行 tesla-http-proxy,通过 start_proxy.sh <private-key.pem> 启动

主要功能模块

  • vehicle_data.py:读取车辆状态(-c 电量、-t 温度、-l 位置、-d 行驶数据)
  • command.py:执行控制命令,支持多车辆通过名称/VIN 指定目标
  • 空调:启动/停止、设定温度、Keeper 模式(宠物/露营)
  • 座椅:加热/通风(3档)+ 自动气候,支持 9 个座位位置
  • 充电:启动/停止、设定限值(50-100%)
  • 安全:锁车/解锁、鸣笛、闪灯、唤醒
  • 预约: precondition 添加/删除定时预热计划
  • auth.py:令牌管理(刷新、注册域名、配置查看)

显著优点

  • 官方 API:基于 Tesla 正式 Fleet API,功能完整且持续更新
  • 签名安全:车辆命令通过 ECDSA 签名,防止重放攻击
  • 多区域支持:内置欧洲、北美、中国三大区域端点
  • 版本锁定tesla-http-proxy 默认固定 v0.4.1,可显式覆盖

潜在缺点与局限

  • 准入门槛高:需开发者账号、自有域名、TLS 证书及公钥托管,个人用户配置复杂
  • 代理依赖:所有签名命令必须保持 tesla-http-proxy 运行,增加运维负担
  • 令牌轮换:刷新令牌自动轮换,需妥善处理持久化
  • 区域限制:部分功能因车型/地区存在差异

适合人群

  • 智能家居/自动化开发者构建 Tesla 集成
  • 企业车队管理平台的技术团队
  • 具备 DevOps 能力的极客用户

常规风险

  • 密钥泄露TESLA_PRIVATE_KEY 和 OAuth 令牌需严格保密,泄露可导致车辆被远程控制
  • 域名过期:公钥托管域名失效将导致命令签名验证失败
  • 速率限制:API 调用受 Tesla 配额限制
  • 车辆状态依赖:离线车辆需先 wake 唤醒,存在延迟

安全解读

核心用法

Tesla Fleet API Skill 是一套完整的官方 API 集成工具,专为需要程序化控制 Tesla 车辆的用户设计。该技能通过 Tesla 官方 Fleet API 实现车辆远程控制,涵盖 OAuth 认证流程、签名指令执行、车辆数据读取等完整功能链。

认证与配置:用户需先在 Tesla 开发者平台注册应用,获取 Client ID 和 Client Secret。技能支持完整的 OAuth 2.0 授权流程,包括授权码交换、令牌刷新等。关键安全特性包括域名注册(用于签名指令)和公钥托管,确保指令的不可伪造性。

车辆控制:通过 command.py 可执行丰富的车辆指令,包括气候控制(启动/停止/温度设置/宠物模式/露营模式)、座椅加热/通风(支持 6 个座位独立控制)、方向盘加热、充电管理(启停充电、设置充电限值 50-100%)、车门锁止/解锁、鸣笛闪灯等。所有指令支持多车辆环境,可通过车名或 VIN 指定目标车辆。

数据读取vehicle_data.py 提供结构化车辆数据查询,涵盖电池状态(电量、充电功率、剩余时间、预估里程)、气候状态(车内外温度、空调状态)、行驶数据(挡位、速度、功率)、实时位置(GPS 坐标)、车辆配置(型号、颜色、轮毂)等。支持按类别筛选或输出原始 JSON。

代理架构:对于需要签名的敏感指令(如行驶相关控制),技能集成 Tesla 官方 tesla-http-proxy,通过本地 TLS 代理完成指令签名。该代理使用固定版本(v0.4.1)从官方仓库安装,确保供应链安全。

显著优点

官方授权与合规性:直接对接 Tesla 官方 Fleet API,而非逆向工程或第三方非官方接口,确保长期稳定性和合规性。支持企业级 Partner Token 和普通 Third-party Token 两种认证模式。

安全架构完善:采用 OAuth 2.0 标准授权流程,支持令牌自动刷新和轮换;敏感指令通过本地代理签名,私钥本地生成和管理;所有 API 通信强制 HTTPS/TLS 加密;令牌文件权限严格限制为 600(仅所有者可读写)。

零依赖轻量设计:Python 脚本仅使用标准库(urllib、json、argparse 等),无外部 pip 依赖,彻底消除供应链攻击风险。代理工具采用固定版本安装,避免"latest"带来的不确定性。

企业级功能覆盖:支持多车辆管理、预约预处理(precondition scheduling,可按工作日/周末/特定日期设置定时空调)、车队级批量操作、结构化数据导出等,满足个人车主和车队运营者的专业需求。

透明开源与可信维护:由知名 iOS 开发者 Oliver Drobnik 维护,GitHub 活跃度高,代码完全开源可审计,无隐藏功能或混淆逻辑。

潜在缺点与局限性

部署复杂度较高:完整的生产部署需要完成开发者应用注册、OAuth 配置、域名注册与公钥托管、本地代理 TLS 证书配置等多个步骤,对非技术用户门槛较高。SETUP.md 文档虽详尽,但整体流程仍比消费级 App 复杂。

地理区域限制:Fleet API 按区域划分端点(欧洲/北美/中国),用户需正确配置 audience URL,否则可能面临连接失败。部分功能(如特定市场车型)可能存在区域差异。

实时性依赖车辆在线状态:被控车辆需处于在线状态,若车辆深度睡眠(deep sleep),需先执行 wake 指令唤醒,可能引入 10-30 秒延迟。地下停车场等信号盲区会严重影响可用性。

敏感数据本地存储风险:OAuth 令牌虽以 600 权限存储,但仍为明文 JSON 格式,未集成系统密钥环(keyring/keychain)。位置数据(GPS 坐标)可本地持久化,存在隐私泄露隐患。

Go 工具链依赖:代理安装依赖本地 Go 环境,虽使用固定版本,但仍存在理论上的供应链风险(如 GitHub 账号被盗)。企业环境可能需要额外的二进制校验流程。

功能边界限制:根据 Tesla API 政策,部分高敏感功能(如远程启动驾驶)受限或不可用;日历自动化等本地功能未随包分发,需用户自行配置。

适合的目标群体

技术型 Tesla 车主:具备基础命令行和脚本能力的个人用户,希望实现自动化车控(如定时预处理、充电优化、离家自动锁车等)。

车队运营与管理方:拥有多辆 Tesla 的企业客户,包括租车公司、物流配送、高端礼宾服务等,需要批量监控车辆状态、远程调度、能耗分析。

智能家居集成爱好者:希望将 Tesla 车辆纳入 Home Assistant、Node-RED 等智能家居生态的高级用户,本技能可作为 bridge/adapter 使用。

开发者与集成商:需要在自有应用中集成 Tesla 控制能力的软件开发商,可将本技能作为参考实现或二次开发基础。

使用风险说明

认证安全风险:OAuth 令牌泄露可导致第三方完全控制车辆。用户需确保运行环境安全,避免在共享服务器或不可信容器中部署。

指令误操作风险:远程指令(如解锁、启动空调)无二次确认机制,脚本自动化时需格外谨慎,避免条件判断错误导致非预期操作。

API 变更与兼容性:Tesla 保留修改 Fleet API 的权利,官方工具版本更新(vehicle-command)可能与旧版技能产生兼容性断裂,需关注版本更新。

电池消耗影响:频繁的远程唤醒和数据轮询会显著增加车辆待机功耗,长期部署建议合理设置查询间隔,避免 12V 小电瓶亏电。

合规与使用条款:商业用途需确认符合 Tesla 开发者协议,过度频繁的 API 调用可能触发速率限制或账号审查。

Tesla Fleet API 内容

scripts文件夹
手动下载zip · 34.2 kB
auth.pytext/plain
请选择文件