核心用法
Tesla Fleet API Skill 是一套用于集成特斯拉官方 Fleet API 的命令行工具集,支持读取车辆/能源设备数据及发送远程指令。核心组件包括:
- `auth.py`:管理 OAuth 2.0 认证流程,支持第三方令牌与合作伙伴令牌,处理令牌刷新轮换
- `command.py`:执行车辆命令(空调、座椅加热/通风、方向盘加热、充电控制、门锁、鸣笛、闪灯等)
- `vehicle_data.py`:读取车辆状态(电池、温度、位置、行驶状态、锁止状态等)
- `tesla_fleet.py`:列出已授权车辆
关键特性
1. 自动车辆选择:单车辆用户无需指定 VIN/名称
2. 多区域支持:内置欧洲、北美、中国三大区域的 Base URL 配置
3. 签名命令支持:集成 Tesla 官方 vehicle-command 代理,实现安全的车辆指令签名
4. 预处理调度:支持设置出发前的空调预热计划(支持周期性/一次性任务)
技术架构要求
- 依赖:Python 3、Go(编译代理)、OpenSSL、Git
- 必需环境变量:
TESLA_CLIENT_ID、TESLA_CLIENT_SECRET - 可选配置:自定义域名、重定向 URI、区域受众 URL、TLS 证书路径等
- 状态目录:
~/.openclaw/tesla-fleet-api/(存储.env、config.json、auth.json、代理 TLS 材料)
显著优点
- 官方 API 合规性:基于特斯拉官方 Fleet API,非逆向工程,稳定性与兼容性有保障
- 安全设计:强制 OAuth 认证、支持刷新令牌轮换、使用 TLS 证书与私钥签名命令
- 功能完整:覆盖车辆控制(气候、充电、门锁)、数据读取、调度计划等主流需求
- 开发者友好:提供本地 OAuth 回调服务器、详细的 SETUP.md 文档、人类可读的 CLI 输出
- 多车辆管理:支持通过名称或 VIN 精准操作特定车辆
潜在缺点与局限性
1. 准入门槛高:
- 必须注册特斯拉开发者账号并创建应用
- 需要自有域名与公钥托管(
/.well-known/appspecific/com.tesla.3p.public-key.json) - 部分命令需完成虚拟密钥注册(
tesla.com/_ak/<domain>)
2. 基础设施依赖:
- 签名命令必须运行本地代理(
vehicle-command),需 Go 环境编译 - 车辆离线/休眠时需先执行
wake命令
3. 成本与合规:
- 特斯拉 Fleet API 可能对商业用途收费(2024 年起政策变化)
- 需遵守特斯拉开发者协议,存在 API 限流与权限回收风险
4. 功能边界:
- 不支持实时监控(WebSocket 推送),需轮询
- 部分高级功能(如召唤、自动驾驶)受 API 权限限制不可用
适合人群
- 智能家居开发者:将特斯拉整合至 Home Assistant 等自动化平台
- 企业车队管理:构建多车辆监控与调度系统
- 技术型车主:偏好命令行工具、需要定制化自动化脚本(如根据日历事件预热车辆)
- 第三方服务提供商:开发充电优化、能源管理等增值服务
不适合:非技术用户、仅需基础远程控制(官方 App 已足够)、无法维护域名/服务器基础设施的个人
常规风险
| 风险类别 | 具体描述 | 缓解建议 |
|---------|---------|---------|
| **令牌安全** | `auth.json` 存储访问令牌与刷新令牌,若权限配置不当可能导致未授权访问 | 设置目录权限为 `0700`,避免版本控制提交 |
| **私钥泄露** | 代理使用的 ECDSA 私钥用于命令签名,泄露后攻击者可伪造车辆指令 | 使用硬件安全模块(HSM)或密钥管理服务存储 |
| **供应链风险** | `setup_proxy.sh` 从 GitHub 克隆并编译 `vehicle-command`,存在代码注入风险 | 审计/锁定特定 Git 修订版本,验证签名 |
| **API 滥用封禁** | 频繁调用或违反特斯拉使用政策可能导致开发者账号或车辆 API 权限被撤销 | 实现指数退避重试、监控速率限制响应 |
| **隐私泄露** | 车辆位置、行驶数据等敏感信息通过 CLI 输出或日志文件暴露 | 日志脱敏处理,避免 `--json` 输出重定向至公共环境 |
| **域名劫持** | 公钥托管域名被劫持后,攻击者可注册同名应用骗取授权 | 启用 DNSSEC,监控域名解析异常 |