介绍
# My Tesla
**作者:** Parth Maniar — [@officialpm](https://github.com/officialpm)
一个基于 `teslapy` 构建的、适用于 Clawdbot 的实用特斯拉控制技能。
## 安装设置
### 环境要求
- 设置 `TESLA_EMAIL` 环境变量(您的特斯拉账户邮箱) - Python 3.10+
### 首次认证
```bash TESLA_EMAIL="[email protected]" python3 {baseDir}/scripts/tesla.py auth ```
这将打开一个特斯拉登录 URL。登录后,将回调 URL(callback URL)粘贴回命令行界面。
- Token 缓存:`~/.tesla_cache.json`(仅限本地;尝试设置为 `chmod 0600`) - 可选:将 `MY_TESLA_DEFAULT_CAR` 设置为车辆显示名称,以便通过环境变量选择默认车辆 - 或者通过以下命令持久化本地默认设置:`python3 {baseDir}/scripts/tesla.py default-car "Name"`(写入 `~/.my_tesla.json`;尝试设置为 `chmod 0600`)
## 命令
```bash # List vehicles python3 {baseDir}/scripts/tesla.py list python3 {baseDir}/scripts/tesla.py list --json # machine-readable, privacy-safe
# Version python3 {baseDir}/scripts/tesla.py version python3 {baseDir}/scripts/tesla.py --version
# Debugging # If something fails unexpectedly, add --debug for a full traceback # (or set MY_TESLA_DEBUG=1) python3 {baseDir}/scripts/tesla.py --debug status --no-wake
# Pick a car (optional) # --car accepts: exact name, partial name (substring match), or a 1-based index from `list` python3 {baseDir}/scripts/tesla.py --car "Model" status python3 {baseDir}/scripts/tesla.py --car 1 report
# Set a default car (used when --car is not passed) python3 {baseDir}/scripts/tesla.py default-car "My Model 3"
# One-line summary (best for chat) python3 {baseDir}/scripts/tesla.py summary python3 {baseDir}/scripts/tesla.py summary --no-wake # don't wake a sleeping car
# Summary as JSON (privacy-safe) # Unlike `status --json`, this emits a small sanitized object (no location). # Includes `usable_level_percent` when the vehicle reports it. python3 {baseDir}/scripts/tesla.py summary --json python3 {baseDir}/scripts/tesla.py summary --json --raw-json # raw vehicle_data (may include location)
# One-screen report (chat friendly, more detail) # Includes battery/charging/climate + (when available) TPMS tire pressures. # Includes "Usable battery" when the vehicle reports it (helpful for health/degradation). # Also includes a quick openings summary (doors/trunk/frunk/windows) when available. # When available, includes a compact seat heater summary line. # When the vehicle reports it, includes scheduled departure / preconditioning / off-peak charging status. python3 {baseDir}/scripts/tesla.py report python3 {baseDir}/scripts/tesla.py report --no-wake
# Detailed status python3 {baseDir}/scripts/tesla.py status python3 {baseDir}/scripts/tesla.py status --no-wake python3 {baseDir}/scripts/tesla.py status --summary # include one-line summary + detailed output python3 {baseDir}/scripts/tesla.py --car "My Model 3" status
# JSON output (prints ONLY JSON; good for piping/parsing) # NOTE: `status --json` outputs *raw* `vehicle_data`, which may include location/drive_state. # Prefer `summary --json` (sanitized) or `report --json` (sanitized) unless you explicitly need the raw payload. python3 {baseDir}/scripts/tesla.py summary --json # sanitized summary object (no location) python3 {baseDir}/scripts/tesla.py report --json # sanitized report object (no location; includes scheduled charging + charge port state) python3 {baseDir}/scripts/tesla.py status --json # raw vehicle_data (may include location) python3 {baseDir}/scripts/tesla.py report --json --raw-json # raw vehicle_data (may include location) python3 {baseDir}/scripts/tesla.py summary --json --raw-json # raw vehicle_data (may include location) python3 {baseDir}/scripts/tesla.py charge status --json # includes usable battery + (when charging) power details (kW/V/A)
# Lock / unlock python3 {baseDir}/scripts/tesla.py lock python3 {baseDir}/scripts/tesla.py unlock
# Climate (status is read-only) python3 {baseDir}/scripts/tesla.py climate status python3 {baseDir}/scripts/tesla.py climate status --no-wake python3 {baseDir}/scripts/tesla.py climate on python3 {baseDir}/scripts/tesla.py climate off python3 {baseDir}/scripts/tesla.py climate defrost on python3 {baseDir}/scripts/tesla.py climate defrost off python3 {baseDir}/scripts/tesla.py climate temp 72 # default: °F python3 {baseDir}/scripts/tesla.py climate temp 22 --celsius
# Charging python3 {baseDir}/scripts/tesla.py charge status python3 {baseDir}/scripts/tesla.py charge status --no-wake python3 {baseDir}/scripts/tesla.py charge start --yes python3 {baseDir}/scripts/tesla.py charge stop --yes python3 {baseDir}/scripts/tesla.py charge limit 80 --yes # 50–100 python3 {baseDir}/scripts/tesla.py charge amps 16 --yes # 1–48 (conservative guardrail)
# Scheduled charging (set/off are safety gated) python3 {baseDir}/scripts/tesla.py scheduled-charging status python3 {baseDir}/scripts/tesla.py scheduled-charging status --no-wake python3 {baseDir}/scripts/tesla.py scheduled-charging set 23:30 --yes python3 {baseDir}/scripts/tesla.py scheduled-charging off --yes
# Scheduled departure (read-only) # Shows scheduled departure, preconditioning, and off-peak charging flags (when the vehicle reports them). python3 {baseDir}/scripts/tesla.py scheduled-departure status python3 {baseDir}/scripts/tesla.py scheduled-departure status --no-wake python3 {baseDir}/scripts/tesla.py --json scheduled-departure status
# Location (approx by default; use --yes for precise coordinates) python3 {baseDir}/scripts/tesla.py location python3 {baseDir}/scripts/tesla.py location --no-wake python3 {baseDir}/scripts/tesla.py location --digits 1 # coarser rounding python3 {baseDir}/scripts/tesla.py location --digits 3 # a bit more precise (still approximate) python3 {baseDir}/scripts/tesla.py location --yes
# Tire pressures (TPMS) python3 {baseDir}/scripts/tesla.py tires python3 {baseDir}/scripts/tesla.py tires --no-wake
# Openings (doors/trunks/windows) python3 {baseDir}/scripts/tesla.py openings python3 {baseDir}/scripts/tesla.py openings --no-wake python3 {baseDir}/scripts/tesla.py openings --json
# Trunk / frunk (safety gated) python3 {baseDir}/scripts/tesla.py trunk trunk --yes python3 {baseDir}/scripts/tesla.py trunk frunk --yes
# Windows python3 {baseDir}/scripts/tesla.py windows status python3 {baseDir}/scripts/tesla.py windows status --no-wake python3 {baseDir}/scripts/tesla.py windows status --json
# Windows (safety gated) python3 {baseDir}/scripts/tesla.py windows vent --yes python3 {baseDir}/scripts/tesla.py windows close --yes
# Seat heaters python3 {baseDir}/scripts/tesla.py seats status python3 {baseDir}/scripts/tesla.py seats status --no-wake python3 {baseDir}/scripts/tesla.py seats status --json
# Seat heaters (safety gated) # seat: driver|passenger|rear-left|rear-center|rear-right|3rd-left|3rd-right (or 0–6) # level: 0–3 (0=off) python3 {baseDir}/scripts/tesla.py seats set driver 3 --yes
# Sentry Mode (status is read-only; on/off safety gated) python3 {baseDir}/scripts/tesla.py sentry status python3 {baseDir}/scripts/tesla.py sentry status --no-wake python3 {baseDir}/scripts/tesla.py sentry on --yes python3 {baseDir}/scripts/tesla.py sentry off --yes
# Charge port door python3 {baseDir}/scripts/tesla.py charge-port status python3 {baseDir}/scripts/tesla.py charge-port status --no-wake python3 {baseDir}/scripts/tesla.py charge-port status --json
# Mileage tracking (odometer) — local SQLite python3 {baseDir}/scripts/tesla.py mileage init python3 {baseDir}/scripts/tesla.py mileage record --no-wake --auto-wake-after-hours 24 python3 {baseDir}/scripts/tesla.py mileage status python3 {baseDir}/scripts/tesla.py mileage export --format csv python3 {baseDir}/scripts/tesla.py mileage export --format csv --since-days 7 python3 {baseDir}/scripts/tesla.py mileage export --format json python3 {baseDir}/scripts/tesla.py mileage export --format json --since-ts 1738195200
# Charge port door open/close (safety gated) python3 {baseDir}/scripts/tesla.py charge-port open --yes python3 {baseDir}/scripts/tesla.py charge-port close --yes
# Fun / attention-grabbing python3 {baseDir}/scripts/tesla.py honk --yes python3 {baseDir}/scripts/tesla.py flash --yes ```
## 安全默认设置
某些操作需要显式的确认标志: - `unlock`(解锁)、`charge start|stop|limit|amps`(充电 开始|停止|限制|电流)、`trunk`(后备箱)、`windows`(车窗)、`seats set`(座椅设置)、`sentry on|off`(哨兵模式 开启|关闭)、`honk`(鸣笛)、`flash`(闪灯)、`charge-port open|close`(充电口 打开|关闭)以及 `scheduled-charging set|off`(计划充电 设置|关闭)需要 `--yes` 参数 - `location`(位置)默认为*近似*值;添加 `--yes` 以获取精确坐标(或使用 `--digits N` 控制四舍五入精度)
## 隐私
- 凭证仅缓存在本地(`~/.tesla_cache.json`)。 - 请勿提交 token、日志、VIN 或位置输出。