介绍
# OpenClaw Tesla (tescmd) — Setup Guide
该插件通过 [tescmd](https://github.com/oceanswave/tescmd) 节点将特斯拉车辆连接到 OpenClaw 网关。安装并配对后,插件会自动注册所有工具、命令、斜杠命令和遥测事件类型。
本文档仅涵盖 **安装和设置**。运行时工具使用、工作流和错误处理由 `tescmd` 技能提供(调用 `tescmd_help` 获取完整参考)。
**功能特性:** - 39 个代理可调用工具 - 14 个斜杠命令 - 实时遥测流传输 - 超充站发现(通过 supercharge.info 提供 10,000+ 个位置) - 节点断开连接时的 CLI 回退方案
**代码仓库:** - 插件:https://github.com/oceanswave/openclaw-tescmd - tescmd 节点(Python CLI):https://github.com/oceanswave/tescmd
---
## 架构
``` Agent (you) ↓ tool calls OpenClaw Gateway ↓ node.invoke.request openclaw-tescmd Plugin ↓ WebSocket dispatch tescmd Node (Python) ├─ Tesla Fleet API (REST) ├─ Vehicle Command Protocol (VCSEC — signed commands) └─ Fleet Telemetry Stream (WebSocket) ↓ Tesla Vehicle ```
该插件是 tescmd 节点的 **网关端对应部分**。它定义工具模式并路由调用。tescmd 节点处理与特斯拉的所有直接通信。
---
## 设置
### 步骤 1:检查先决条件
开始之前,请验证所需工具已安装并完成身份验证。
#### 必需:git
```bash git --version ```
如果缺失,请安装: - macOS: `xcode-select --install` - Linux: `sudo apt install git` 或 `sudo dnf install git`
#### 必需:GitHub CLI (gh)
```bash gh --version gh auth status ```
如果未安装 `gh`: - macOS: `brew install gh` - Linux: 参见 https://github.com/cli/cli/blob/trunk/docs/install_linux.md
如果未登录: ```bash gh auth login ```
**告知用户:** “请在您的终端中完成 GitHub CLI 登录。根据提示选择您的偏好并完成基于浏览器的身份验证流程。”
在继续之前,等待用户确认他们已完成登录。
#### 必需:Python 3.11+
```bash python3 --version ```
必须是 3.11 或更高版本。如果不是: - macOS: `brew install [email protected]` - Linux: `sudo apt install python3.12` 或使用 pyenv
#### 推荐:Tailscale
Tailscale 为特斯拉车队遥测流传输提供公共 HTTPS 端点,无需基础架构设置。
```bash tailscale version tailscale status ```
如果未安装: - macOS: `brew install tailscale` 或从 https://tailscale.com/download 下载 - Linux: `curl -fsSL https://tailscale.com/install.sh | sh`
如果未登录: ```bash sudo tailscale up ```
**告知用户:** “如果提示,请在浏览器中完成 Tailscale 登录。”
等待用户确认后再继续。
---
### 步骤 2:安装 tescmd OpenClaw 插件
#### 标准安装:
```bash openclaw plugins install @oceanswave/openclaw-tescmd ```
#### 验证安装:
```bash openclaw plugins list ```
您应该会看到该插件列出,版本为 0.9.0(或更高)。
#### 插件管理命令:
| 命令 | 用途 | |---------|---------| | `openclaw plugins list` | 列出已安装的插件 | | `openclaw plugins info openclaw-tescmd` | 插件详情 | | `openclaw plugins doctor` | 检查插件健康状态 | | `openclaw plugins update openclaw-tescmd` | 更新到最新版本 | | `openclaw plugins enable openclaw-tescmd` | 启用插件 | | `openclaw plugins disable openclaw-tescmd` | 禁用而不卸载 |
---
### 步骤 3:安装 tescmd CLI
```bash pip install tescmd ```
验证: ```bash tescmd --version ```
---
### 步骤 4:运行 tescmd 设置
tescmd 设置向导是 **交互式的**,需要用户在终端和浏览器中做出选择并完成步骤。您无法自主完成此步骤。
```bash tescmd setup ```
**告知用户:** “我已经启动了 tescmd 设置向导。这是一个交互式过程,将指导您完成:” 1. 创建特斯拉开发者应用 2. 生成您的 EC 密钥对 3. 托管您的公钥(通过 GitHub Pages 或 Tailscale Funnel) 4. 注册特斯拉车队 API 5. 在浏览器中完成 OAuth2 登录 6. 将密钥与您的车辆配对(需要亲自在车辆旁)
“请按照终端中的提示操作,并在设置完成后告知我。”
**在继续之前,等待用户确认设置已完成。**
#### 验证设置
用户确认后,检查身份验证状态: ```bash tescmd auth status ```
这应该显示有效的令牌。如果显示过期或缺失,用户需要重新运行: ```bash tescmd auth login ```
---
### 步骤 5:识别车辆
列出账户上的车辆以获取 VIN: ```bash tescmd vehicle list ```
记下 VIN — serve 命令需要它。
---
### 步骤 6:启动 tescmd 节点并与网关配对
tescmd 节点充当特斯拉车队 API 与 OpenClaw 网关之间的桥梁。首次连接需要一次性配对批准。
#### 首次配对:
仅使用网关 URL 启动节点(不需要令牌): ```bash tescmd serve <VIN> --openclaw <gateway_ws_url> ```
节点向网关发送 `node.pair.request` 并等待批准。待处理的请求会在 **5 分钟** 后过期,因此请及时批准。
**在另一个终端中**,批准配对: ```bash openclaw nodes pending # View waiting pair requests openclaw nodes approve <requestId> # Approve the node ```
批准后,网关颁发身份验证令牌。节点接收该令牌,将其保存到 `~/.config/tescmd/bridge.json`,并建立经过身份验证的连接。无需手动处理令牌。
**告知用户:** “使用 `tescmd serve <VIN> --openclaw <gateway_url>` 启动 tescmd 节点,然后在另一个终端运行 `openclaw nodes pending` 和 `openclaw nodes approve <requestId>` 以完成配对。”
**在继续之前,等待用户确认配对已完成。**
#### 后续连接(已配对):
一旦配对,节点将使用存储的令牌自动重新连接: ```bash tescmd serve <VIN> --openclaw <gateway_ws_url> ```
如果需要,您也可以显式传递令牌: ```bash tescmd serve <VIN> --openclaw <gateway_ws_url> --openclaw-token <gateway_token> ```
#### 节点管理命令:
| 命令 | 用途 | |---------|---------| | `openclaw nodes pending` | 查看待处理的配对请求 | | `openclaw nodes approve <id>` | 批准节点 | | `openclaw nodes reject <id>` | 拒绝节点 | | `openclaw nodes status` | 列出已配对节点及其状态 |
#### 操作模式:
| 模式 | 命令 | 描述 | |------|---------|-------------| | **完整** (默认) | `tescmd serve <VIN> --openclaw <url>` | MCP 服务器 + 遥测 + OpenClaw 桥接 | | **仅桥接** | `tescmd serve <VIN> --no-mcp --openclaw <url>` | 遥测 + OpenClaw,无 MCP 服务器 | | **使用 Tailscale** | `tescmd serve <VIN> --tailscale --openclaw <url>` | 通过 Tailscale Funnel 暴露 MCP | | **试运行** | `tescmd serve <VIN> --dry-run` | 将事件记录为 JSONL,不连接网关 |
#### 关键标志参考:
| 标志 | 描述 | |------|-------------| | `<VIN>` | 车辆识别代号 (位置参数) | | `--openclaw <ws_url>` | 网关 WebSocket URL (例如 `ws://host:18789`) | | `--openclaw-token <token>` | 网关身份验证令牌 (配对后自动存储) | | `--openclaw-config <path>` | 桥接配置 JSON (默认: `~/.config/tescmd/bridge.json`) | | `--transport <type>` | MCP 传输方式: `streamable-http` (默认) 或 `stdio` | | `--port <num>` | MCP HTTP 端口 (默认: 8080) | | `--host <addr>` | MCP 绑定地址 (默认: 127.0.0.1) | | `--telemetry-port <num>` | 遥测 WebSocket 端口 (默认: 4443) | | `--fields <preset>` | 遥测字段: `driving`, `charging`, 或 `all` | | `--interval <sec>` | 遥测轮询间隔(秒) | | `--no-telemetry` | 禁用遥测流传输 | | `--no-mcp` | 禁用 MCP 服务器 | | `--no-log` | 禁用 CSV 遥测日志记录 | | `--dry-run` | 将事件记录为 JSONL 而不连接到网关 | | `--tailscale` | 通过 Tailscale Funnel 暴露 MCP | | `--client-id <id>` | MCP OAuth 客户端 ID | | `--client-secret <secret>` | MCP OAuth 客户端密钥 |
#### 环境变量(标志的替代方案):
这些可以在 `~/.config/tescmd/.env` 中设置: ```bash TESLA_CLIENT_ID=your-client-id TESLA_CLIENT_SECRET=your-client-secret TESLA_VIN=5YJ3E1EA1NF000000 TESLA_REGION=na # na, eu, or cn OPENCLAW_GATEWAY_URL=ws://gateway.example.com:18789 OPENCLAW_GATEWAY_TOKEN=your-token TESLA_COMMAND_PROTOCOL=auto # auto, signed, or unsigned ```
---
### 步骤 7:验证连接
一旦节点运行并配对,确认其已连接到网关: ```bash openclaw nodes status ```
或使用代理工具: - 调用 `tescmd_node_status` 检查连接状态
如果已连接,插件的工具就绪了。调用 `tescmd_help` 获取完整的运行时参考,包括工具使用、工作流和错误处理。
---
## 设置故障排除
| 问题 | 解决方案 | |---------|----------| | "no node connected" | 启动节点:`tescmd serve <VIN> --openclaw <url>` | | 配对请求不可见 | 检查 `openclaw nodes pending` — 请求在 5 分钟后过期。重启节点以生成新请求。 | | 节点连接后断开 | 检查网关 URL。运行 `tescmd auth status` 验证特斯拉身份验证。 | | 身份验证/令牌错误 | 重新进行身份验证:`tescmd auth login` | | 设置向导问题 | 重新运行 `tescmd setup` 或检查 https://github.com/oceanswave/tescmd | | 插件未加载 | 运行 `openclaw plugins doctor`。检查 `openclaw plugins list` 查看插件条目。 | | 触发器显示 "not available" | 使用遥测重启节点:移除 `--no-telemetry` 或添加 `--fields all` |
---
## 配置
最少化配置 — tescmd 节点处理所有特定于车辆的配置。
```json { "plugins": { "entries": { "openclaw-tescmd": { "enabled": true, "config": { "debug": false } } } } } ```
---
## CLI 快速参考
### tescmd CLI 命令
```bash tescmd serve <VIN> --openclaw <url> # Start node (uses stored token) tescmd serve <VIN> --openclaw <url> --openclaw-token <token> # Start node (explicit token) tescmd setup # Interactive setup wizard tescmd auth status # Check auth token status tescmd auth login # Re-authenticate with Tesla tescmd vehicle list # List vehicles on account tescmd vehicle info # Full vehicle data snapshot tescmd cache status # Check cache stats ```