特斯拉车主能拿到的车辆数据其实很有限:官方 App 侧重实时控制,车机端的行程记录会滚动覆盖,充电明细、能耗曲线、电池健康度的长期趋势基本拿不到。车主想知道「这个月充电花了多少钱」「电池衰减到什么程度了」「这次长途的实际能耗是多少」,往往只能自己手动记账。
特斯拉开放 Fleet API 与车辆遥测(telemetry)推送后,第三方应用可以在车主授权后拿到秒级的原始车辆数据,但接入门槛不低:需要在特斯拉开发者平台注册应用、配置 mTLS 双向证书、完成虚拟钥匙授权,链路长且坑多;而国内可用的同类工具几乎空白,Tessie、TeslaFi 等均为海外产品,按美元计价、国内访问不稳定。
本项目即为解决这一需求立项:把车辆推送的原始遥测数据落库,按行程与充电会话聚合,为车主提供长期可回溯的用车数据服务——实时仪表盘、行程与充电明细、能耗与电池健康分析,并以订阅制覆盖服务器的长期存储成本。
特行助手 是一款特斯拉车辆数据助手,连接你的特斯拉账号,实时掌握车辆状态。
主要功能:
· 实时仪表盘 —— 电量、续航、温度、位置、车锁、哨兵状态一目了然
· 行程记录 —— 自动记录每一次出行,统计里程、能耗、时长与起终点位置
· 充电记录 —— 充电明细、功率曲线与电池健康度评估
· 全屏 HUD —— 行车途中实时车速、电量与里程信息
· 今日活动 —— 24 小时驾驶 / 充电 / 停车时间轴
· 订阅 Pro —— 解锁全部历史数据(免费版保留最近 30 天)
项目由我一人独立完成,需求分析、架构设计、编码到部署运维全流程负责。
【我负责的任务】后端 Go 服务(特斯拉 Fleet API 与 OAuth 授权、遥测接收、行程与充电状态机、REST API 与 SSE 推送);数据库表结构设计;Flutter 移动端;React + TypeScript 管理后台;Docker Compose 部署运维。
【技术栈】Go 1.25(标准库 net/http,无 Web 框架)+ PostgreSQL 16/TimescaleDB + Redis;Flutter;React 19 + TypeScript + Vite;Prometheus + 钉钉告警。链路:车辆 →(mTLS)→ 自建 fleet-telemetry → Redis Pub/Sub → api-server →(REST + SSE)→ 客户端。
【亮点与难点】
1. 双数据源合并。数据来自 API 轮询与遥测推送,字段集不同、顺序不定。合并只认「字段是否出现」而非「值是否大于 0」,否则负电流(能量回收)、电量 0% 等合法值会被误丢。
2. 推送链路的静默故障。服务重启时订阅租约未正确释放,会出现数分钟推送中断且日志无异常。用 Redis 租约续约 + 优雅关闭释放租约,把部署窗口的推送中断归零。
3. 状态机与数据精度。秒级遥测流按挂挡切分行程、按充电状态切分会话;行程距离用里程表差值替代 GPS 消除漂移。
4. iOS 内购服务端验签。本地校验 StoreKit 2 交易 JWS 的证书链至内嵌 Apple Root CA G3 并做 ES256 验签;按 originalTransactionId 幂等、到期只前推,用 appAccountToken 绑定账号防重放。
5. 权益分层。免费保留 30 天、订阅看全部历史,到期经 30 天宽限期。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论