




















今天在 GitHub Trending 上看到一个有意思的项目:TeslaMate,这是一款专为 Tesla 车主设计的开源自托管数据记录与可视化平台,让你完全掌控自己的车辆数据。
TeslaMate 是一个功能强大的自托管 Tesla 数据记录工具,由 Adrian Kumpf 发起,现由 teslamate-org 组织维护。项目采用 Elixir 编写,使用 Postgres 数据库存储数据,通过 Grafana 提供可视化分析能力,并将车辆数据发布到本地 MQTT Broker。
核心特性:
| 组件 | 技术 | 选型理由 |
|---|---|---|
| 后端语言 | Elixir | 高并发、容错、适合长连接场景 |
| 数据库 | PostgreSQL | 成熟稳定,支持复杂查询和时序数据 |
| 可视化 | Grafana | 开源、强大的数据可视化平台 |
| 消息队列 | MQTT | 轻量级 IoT 协议,适合车辆数据传输 |
| 容器化 | Docker | 简化部署,一键启动 |
TeslaMate 采用模块化设计,主要组件包括:
Tesla API → TeslaMate (Elixir) → PostgreSQL
↓
MQTT Broker → Home Assistant / Node-RED / Telegram
↓
Grafana ← PostgreSQL
核心代码(取自 Dockerfile):
FROM elixir:1.19.5-otp-28 AS builder
# 安装 Node.js 用于前端资源编译
RUN mix local.rebar --force && mix local.hex --force
# 编译 Assets 和 Release
RUN mix assets.deploy && mix compile
docker-compose.yml:version: '3.8'
services:
teslamate:
image: teslamate/teslamate:latest
restart: always
environment:
- DATABASE_HOST=db
- DATABASE_USER=teslamate
- DATABASE_PASS=password
- DATABASE_NAME=teslamate
- MQTT_HOST=mqtt
- [email protected]
- TESLA_PASSWORD=your_password
- ENCRYPTION_KEY=your_32_byte_key_here!!
ports:
- 4000:4000
depends_on:
- db
- mqtt
db:
image: postgres:15
restart: always
environment:
- POSTGRES_USER=teslamate
- POSTGRES_PASSWORD=password
- POSTGRES_DB=teslamate
volumes:
- teslamate-db:/var/lib/postgresql/data
grafana:
image: teslamate/grafana:latest
restart: always
environment:
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer
ports:
- 3000:3000
depends_on:
- db
mqtt:
image: eclipse-mosquitto:2
restart: always
ports:
- 1883:1883
volumes:
teslamate-db:
http://localhost:4000# 克隆项目
git clone https://github.com/teslamate-org/teslamate.git
cd teslamate
# 使用 Docker Compose 启动
docker-compose up -d
# 查看日志
docker-compose logs -f teslamate
http://localhost:4000,输入 Tesla 账户凭据(存储在本地数据库,使用 AES 加密)通过 MQTT 将车辆数据接入 Home Assistant:
# configuration.yaml
mqtt:
sensor:
- name: "Tesla Battery Level"
state_topic: "teslamate/cars/1/battery_level"
unit_of_measurement: "%"
在 Web 界面创建自定义位置(如"家"、“公司”),系统会自动识别并标注行程起止点。
支持从 TeslaFi 导入历史数据:
# 在 Settings → Import 页面上传 TeslaFi 导出文件
场景一:监控 vampire drain 通过 Grafana 的 “Vampire Drain” Dashboard,分析车辆静置时的电量损耗,优化充电策略。
场景二:充电成本优化 记录每次充电的电量和成本,结合电价时段数据,找出最经济的充电时间。
问题:Docker 容器无法启动,报错 Database connection refused
解决方案:
DATABASE_HOST 是否设置为 db(Docker Compose 服务名)docker-compose ps dbdocker-compose logs db问题:Web 界面显示 “Vehicle is asleep”,无法获取数据
解决方案:
ENCRYPTION_KEY 是否设置正确(必须恰好 32 字节)问题:Grafana Dashboard 加载缓慢
解决方案:
问题:Tesla API 更新后无法获取数据
解决方案:
docker-compose pull && docker-compose up -dTeslaMate 是一款功能全面、技术栈现代的开源 Tesla 数据记录工具。其 Elixir + Postgres + Grafana 的架构设计既保证了高并发性能,又提供了强大的数据分析能力。对于有自托管需求的 Tesla 车主来说,TeslaMate 是绝佳选择。
项目亮点:
相关链接:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。