tesla-smart-charge

🔋 智能充电调度与电池健康管理

基于 Tesla API 的自动化充电调度方案,支持定时充电与电池健康保护,通过智能计算优化充电时间并自动管理充放电限制。

收藏
6.6k
安装
2.3k
版本
v1.1.1
CLS 安全性认证2026-05-19
点击查看完整报告 >

使用说明

核心用法

Tesla Smart Charge 是一款专为 Tesla 车主设计的自动化充电调度工具,通过 JSON 配置文件和 cron 定时任务实现智能充电管理。用户需在 memory/tesla-charge-schedule.json 中预设充电计划(包含日期、目标电量、完成时间),系统每日自动检查并执行。工具提供两种运行模式:--check-schedule 用于每日初始化检查,--manage-session 用于实时管理充电会话中的限制调整。支持自动计算最佳充电开始时间(基于电池容量、当前电量、充电器功率和充电效率),并在充电完成后自动将限制调整至 80% 以保护电池健康。

显著优点

电池健康管理:自动在充电会话期间维持 100%(或自定义)限制,会话结束后自动降至 80%,显著延长电池寿命。自动化程度高:一次配置即可通过 cron 每日自动运行,无需人工干预,支持预设多周充电计划。安全设计完善:v1.1.0+ 版本采用参数列表替代 shell=True(主要路径),通过正则表达式验证邮箱格式,限制充电百分比在 0-100 有效范围,敏感凭证通过环境变量传递而非命令行。灵活可配置:支持自定义充电器功率、电池容量、缓冲时间等参数,适应不同家庭充电环境。透明可控:所有操作均本地执行,不上传数据至第三方服务器,用户完全掌控数据源。

潜在缺点与局限性

外部依赖风险:核心功能依赖外部 tesla skill(T3 来源),需用户单独安装配置 Tesla API 凭证,存在供应链安全风险。灵活性受限:仅支持基于预设日期的调度,无法根据实时电价、天气或突发行程动态调整充电计划。配置门槛较高:需要用户具备基础的 Linux/cron 配置知识,手动编辑 JSON 文件并设置环境变量,对非技术用户不够友好。无回滚机制:操作失败时无自动回滚,虽设计为幂等操作,但错误配置可能导致非预期的充电限制变更。来源可信度:作者为个人开发者(thibautrey),非 Tesla 官方或知名开源组织,长期维护存在不确定性。

适合的目标群体

固定通勤车主:有规律的上下班时间,需要车辆在工作日早晨保持特定电量的用户。电池健康敏感者:长期停放或日常使用中希望严格控制充电上限(80%)以延长电池寿命的车主。技术型用户:熟悉命令行操作、环境变量配置和 cron 定时任务,具备基础 Python 环境搭建能力的 Tesla 车主。多车家庭:需要为不同车辆制定差异化充电计划(通过不同配置文件或实例实现)的高级用户。

使用风险与注意事项

API 凭证安全:需妥善保管 TESLA_EMAIL 环境变量和 tesla skill 的 API 凭证,避免在共享环境或日志中泄露。依赖项风险:外部 tesla skill 的更新或 API 变更可能导致功能失效,建议锁定依赖版本并定期检查兼容性。shell 注入残留:虽然主要路径已修复,但 start_charging 方法仍使用 shell=True(已验证邮箱输入),极端情况下存在理论风险。硬件兼容性:默认 2.99kW 充电功率适用于家庭慢充,若使用快充桩需手动调整参数,否则时间计算将严重偏差。网络依赖:依赖 Tesla 官方 API 可用性,网络中断或 API 限流可能导致调度失败,建议保留手动充电能力作为备份。

安全解读

核心功能与用法

Tesla Smart Charge Optimizer 是一款针对特斯拉电动车的智能充电调度工具,通过JSON配置文件实现按计划日期充电动态电量上限管理。核心工作流程:

1. 日程驱动充电:用户预先在 tesla-charge-schedule.json 中配置充电日期、目标电量和目标完成时间
2. 每日自动检查:通过cron在午夜执行 --check-schedule,自动判断当日是否需要充电

3. 智能上限切换

4. 充电时间计算:根据当前电量、目标电量、充电桩功率自动推算最佳启动时间

  • 充电期间:自动提升至100%(或用户指定值),确保满电出发
  • 非充电期:自动降至80%(或用户指定值),减少电池高电量驻留时间以保护电池健康

主要命令

  • --check-schedule:每日检查并执行充电计划(推荐 midnight cron)
  • --manage-session:实时管理充电会话中的电量上限(推荐每30分钟执行)
  • --show-schedule / --show-plan:查看已配置的充电计划和上次执行详情

显著优点

| 维度 | 优势 |
|------|------|
| **电池健康保护** | 核心卖点:自动在"满电需求"和"日常保护"之间切换,避免电池长期保持100% |
| **灵活调度** | JSON配置支持任意日期组合,可轻松实现工作日充电、隔日充电等模式 |
| **时间优化** | 自动计算充电时长,确保在目标时间前刚好完成,减少电网高价时段用电 |
| **零依赖侵入** | 仅依赖Python标准库,外部依赖仅通过子进程调用Tesla skill |
| **安全改进** | v1.1.0+版本修复了多项安全问题,包括email验证、输入范围检查、环境变量传递凭证 |

潜在缺点与局限性

1. 架构耦合风险:核心功能完全依赖外部 tesla skill,若后者API变更或配置错误,本skill失效
2. 残余安全风险start_charging() 方法仍使用 shell=True 执行命令,存在理论上(尽管已验证email)的命令注入可能

3. 无原生API调用:所有Tesla通信通过子进程中转,增加故障点,无法精细控制超时和重试

4. JSON配置无验证:schedule文件缺乏JSON Schema验证,格式错误可能导致运行时异常

5. 无持久化状态:依赖文件系统读取状态,无数据库支持,不适合高频或复杂调度场景

6. 仅限Tesla:品牌锁定,无法扩展至其他电动车品牌

适合人群

  • 有固定通勤模式的特斯拉车主(如每周固定几天需要满电)
  • 关注电池寿命的用户,希望自动化管理"日常80%/出行前100%"的切换
  • 具备基础Linux/cron知识的技术用户,能够配置定时任务和环境变量
  • 家用充电桩功率稳定的用户(默认2.99kW可配置)

常规风险

| 风险类别 | 说明 | 缓解措施 |
|----------|------|----------|
| **车辆控制风险** | 自动启动/停止充电可能影响用车计划 | 务必验证schedule配置,建议初期手动测试 |
| **电池过充风险** | 若session管理失败,可能长期保持100% | 配合 `--manage-session` 定时任务监控 |
| **凭证泄露** | TESLA_EMAIL通过环境变量传递 | 限制脚本执行环境权限,避免多用户系统共享 |
| **外部依赖失效** | Tesla skill配置错误或API变更 | 安装前验证Tesla skill状态,关注版本兼容性 |
| **计划冲突** | 车辆端手动设置可能与本skill冲突 | 避免同时使用Tesla App和本skill控制同一车辆 |

安装建议

1. 沙箱先行:首次使用前在隔离环境测试完整充电周期
2. 双cron配置:推荐同时配置 --check-schedule(午夜)和 --manage-session(白天每30分钟)

3. 监控日志:初期关注输出,确认电量上限切换行为符合预期

4. 版本锁定:明确Tesla skill兼容版本,避免自动更新导致失效

tesla-smart-charge 内容

references文件夹
scripts文件夹
手动下载zip · 12.9 kB
api_reference.mdtext/markdown
请选择文件