← 返回信息流
GitHub 热榜GitHub Trending · 日·2 小时前

TeslaMate:自托管特斯拉数据记录器

原标题:teslamate-org/teslamate
Elixir8,130 stars+35 今日

速览

TeslaMate 是一个基于 Elixir 构建的自托管数据记录器,通过 API 实时同步特斯拉车辆的位置、充电状态、里程等遥测数据。它提供直观的 Web 仪表盘,支持历史数据可视化、充电成本计算及地理围栏告警,适用于注重隐私且希望长期追踪车辆健康与能耗的车主。

AI 深度解读

这是什么

TeslaMate 是一个基于 Elixir 编写、功能强大的自托管(Self-hosted)特斯拉数据记录器。它通过本地 MQTT 代理与车辆通信,将驾驶、充电及车辆状态数据实时采集并存储于 PostgreSQL 数据库中,随后利用 Grafana 提供可视化的数据分析和仪表盘展示。

该项目由 teslamate-org 维护,采用 AGPLv3 开源协议。其核心设计理念是让用户完全掌控自己的车辆数据,无需依赖第三方云服务,同时保持极低的后台资源占用,确保车辆能尽快进入休眠状态以减少“吸血鬼”电量损耗。

解决的问题

  1. 数据隐私与所有权:特斯拉官方 App 的数据通常存储在云端,用户难以获取原始数据或进行深度本地化分析。TeslaMate 允许用户将数据保留在本地服务器(如 NAS 或家庭服务器),避免数据泄露风险。
  2. 缺乏细粒度历史数据:官方应用主要提供实时状态,缺乏长期的历史趋势分析(如电池健康度随时间的变化、不同驾驶习惯下的能耗对比)。TeslaMate 提供高精度的历史数据记录,支持长期追踪。
  3. 智能家居集成困难:特斯拉原生 API 对 Home Assistant、Node-RED 等自动化平台的集成支持有限或存在延迟。TeslaMate 通过 MQTT 协议发布标准化数据,极大地降低了与主流智能家居平台集成的门槛。
  4. 第三方服务的安全隐患:市面上存在许多非官方的特斯拉数据服务或修改版 App,可能窃取账号凭证或植入恶意代码。TeslaMate 强调官方源的重要性,并提供完全透明的开源代码,消除信任黑盒。

核心功能

  • 高精度数据记录:实时记录行驶数据、充电过程、位置信息及车辆状态(在线/休眠)。
  • 零额外吸血鬼损耗:优化了与车辆的通信逻辑,确保车辆在完成数据同步后能迅速进入休眠模式,避免电池过度放电。
  • 自动地址查找:基于 GPS 坐标自动解析地理位置,生成有意义的地点名称(如“家”、“公司”)。
  • MQTT 数据发布:将车辆数据发布到本地 MQTT Broker,便于其他系统订阅。
  • 多车支持:单个 TeslaMate 实例支持管理同一特斯拉账号下的多辆汽车。
  • 充电成本追踪:记录每次充电的电量、费用及电价,帮助用户分析能源支出。
  • 地理围栏(Geo-fencing):允许用户自定义电子围栏,触发特定自动化流程或记录访问历史。
  • 数据导入:支持从 TeslaFi 和 tesla-apiscraper 导入历史数据,实现平滑迁移。
  • 主题定制:支持亮色、暗色及跟随系统默认的主题模式。

亮点 / 与同类相比

  • 技术栈优势(Elixir + PostgreSQL + Grafana)

    • 相比基于 Python 或 Node.js 的轻量级脚本,Elixir 具备高并发和稳定性优势,适合长期运行。
    • PostgreSQL 提供强大的关系型数据管理能力,便于复杂查询和历史回溯。
    • Grafana 提供了业界顶级的可视化能力,用户可自由定制仪表盘,远超官方 App 的固定视图。
  • 极致的资源效率

    • TeslaMate 的核心卖点之一是“无额外吸血鬼损耗”。许多竞品服务需要车辆保持在线或频繁唤醒,而 TeslaMate 仅在必要时通信,确保车辆休眠。
  • 开源与合规性

    • 采用 AGPLv3 协议,强制要求衍生作品也必须开源。这确保了项目生态的开放性和透明度,防止商业实体将其闭源化。
    • 明确警告用户警惕非官方 Fork 和恶意 App,强调从 https://github.com/teslamate-org/teslamate 获取官方版本,保护用户账号安全。
  • 丰富的仪表盘生态

    • 内置超过 20 个预配置仪表盘,涵盖电池健康、充电统计、驾驶效率、里程统计、更新时间历史、吸血鬼损耗分析等,开箱即用。
  • 自动化集成友好

    • 原生支持 Home Assistant、Node-RED 和 Telegram 集成,通过 MQTT 实现低延迟的自动化场景(如:车辆到家自动开空调、离家自动锁车并发送通知)。

适合谁用 / 上手

适合人群:

  • 特斯拉车主:希望深入了解车辆能耗、电池健康及驾驶习惯的用户。
  • 技术爱好者 / 极客:拥有家庭服务器(如 Raspberry Pi、NAS、Linux 服务器),熟悉 Docker 部署,希望构建个人智能家居中枢的用户。
  • 隐私倡导者:拒绝将车辆数据上传至第三方云端,坚持数据本地化的用户。
  • 智能家居玩家:需要将特斯拉数据接入 Home Assistant 或 Node-RED 以实现复杂自动化场景的用户。

上手指南:

  1. 环境准备:需要一台持续运行的服务器(推荐 Docker 环境),安装 PostgreSQL 数据库和 MQTT Broker(如 Mosquitto)。
  2. 获取代码:务必从官方仓库 teslamate-org/teslamate 克隆代码,切勿使用来源不明的 Fork。
  3. 配置连接:在 TeslaMate 配置中填入特斯拉账号的邮箱和密码(或 OAuth 令牌),以及 MQTT 和 PostgreSQL 的连接信息。
  4. 启动服务:使用 Docker Compose 启动 TeslaMate 及其依赖服务(Grafana、InfluxDB 可选,但官方推荐 PostgreSQL)。
  5. 访问界面:通过浏览器访问 Grafana 仪表盘,即可开始查看车辆实时状态和历史数据。
  6. 集成自动化:在 Home Assistant 或 Node-RED 中配置 MQTT 订阅,即可利用 TeslaMate 提供的数据进行自动化控制。

注意事项:

  • 请严格遵守 AGPLv3 许可证要求,若修改代码并分发,需开源修改后的源码。
  • 定期备份 PostgreSQL 数据库,以防数据丢失。
  • 关注官方文档 https://docs.teslamate.org 以获取最新的配置指南和安全更新。
查看原文 →github.com