核心用法
my-tesla 是专为 macOS 设计的 Tesla 车辆控制 Skill,基于 teslapy 库实现与 Tesla Owner API 的交互。用户通过环境变量 TESLA_EMAIL 完成首次 OAuth 认证后,即可在终端执行完整的车辆远程操作。
认证流程:首次运行 python3 tesla.py auth 会弹出 Tesla 登录页,回调 URL 粘贴回 CLI 完成授权。凭证以 0600 权限缓存在 ~/.tesla_cache.json,严格本地存储。
核心功能矩阵:
- 状态查询:
summary(单行聊天友好)、report(详细综合报告)、status(完整原始数据),均支持--json输出 - 车辆控制:lock/unlock、climate(空调/除霜/温度调节)、charge(启停充电、限流、定时充电)
- 车身控制:trunk/frunk、windows(通风/关闭)、seat heaters、sentry mode
- 数据功能:TPMS 胎压、
location(默认模糊坐标,需--yes解锁精确位置)、mileage 本地 SQLite 里程追踪
特色设计:支持 --no-wake 避免唤醒睡眠车辆节省电量;--car 参数支持名称模糊匹配或索引选择;多车用户可设置默认车辆。
显著优点
1. 安全优先架构:所有破坏性操作(unlock、charge start/stop、trunk、windows、honk/flash 等)强制要求 --yes 确认,防止误触
2. 隐私保护:凭证本地缓存+权限锁定;summary --json 和 report --json 主动剔除地理位置等敏感字段,默认输出为隐私安全版本
3. 聊天场景优化:summary 单行输出适合 IM/Chatbot 场景;report 整合电池健康(usable_level_percent)、胎压、座椅加热、定时充电等高频关注信息
4. macOS 原生体验:Python 3.10+ 单脚本部署,无 Docker 依赖,文件路径使用 {baseDir} 占位符便于 IDE/Agent 集成
潜在缺点与局限性
- 平台限制:明确标注 macOS 设计,Windows/Linux 兼容性未验证
- API 依赖风险:基于非官方 Tesla Owner API(
teslapy),Tesla 可能随时变更接口或限制第三方访问(参考 2023 年 API 收紧事件) - 功能边界:不支持 Fleet API(企业/车队管理场景)、不支持远程启动(Remote Start)驾驶、不支持召唤(Summon)功能
- 凭证管理:OAuth token 有效期有限,长期无人值守场景需定期重新认证
- 网络要求:车辆需有网络连接,地下停车场等弱网环境指令可能超时
适合人群
- 个人 Tesla 车主:需要比官方 App 更快捷的终端/脚本化控制
- macOS 开发者/自动化用户:希望将车辆状态接入 Hammerspoon、Alfred、Raycast 等 macOS 自动化工具链
- 隐私敏感用户:希望避免官方 App 的云端数据追踪,偏好本地凭证缓存
- Chatbot/Agent 开发者:需要结构化的车辆 JSON 数据接入 LLM 工作流
常规风险
| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| **车辆误操作** | 远程解锁、开窗等物理安全风险 | 强制 `--yes` 二次确认;建议配合 `MY_TESLA_DEFAULT_CAR` 避免选错车 |
| **凭证泄露** | `~/.tesla_cache.json` 被窃取可能导致车辆被远程控制 | 文件权限 `0600`;禁止提交到 Git;建议定期轮换 Tesla 密码 |
| **API 失效** | Tesla 官方 API 变更导致功能中断 | 关注 `teslapy` 上游更新;避免关键业务依赖 |
| **隐私暴露** | `status --json` 默认输出原始数据含精确坐标 | 优先使用 `summary --json` 或 `report --json` sanitiz 版本 |
| **电量消耗** | 频繁 wake 车辆加速 12V 电池损耗 | 大量使用 `--no-wake` 选项;合理设置 `auto-wake-after-hours` |
> T1 来源说明:作者 Parth Maniar (@officialpm) 为公开 GitHub 用户,代码可审计;依赖 teslapy 为社区广泛使用的 Tesla API 封装库,非官方 SDK 但历史稳定。