ClawSkills logoClawSkills

tescmd

通过 tescmd 节点进行 Tesla 车辆控制和遥测的安装和设置指南。

介绍

# 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 ```

更多产品