TeslaMate完全指南:从安装到数据可视化的开源特斯拉监控方案
TeslaMate完全指南:从安装到数据可视化的开源特斯拉监控方案
你还在为特斯拉车辆数据分散、分析困难而烦恼吗?TeslaMate作为一款开源的特斯拉数据监控工具,能够帮助你轻松收集、存储和可视化车辆的实时数据,包括行驶里程、充电详情、电池健康状态等关键信息。本文将从安装部署到数据应用,为你提供一套完整的特斯拉数据管理解决方案,让你全面掌握车辆状态,优化驾驶体验。
一、TeslaMate简介
TeslaMate是一个开源项目,用于收集特斯拉电动汽车的实时数据,并存储在数据库中以便进一步分析和可视化。该项目支持监控车辆状态、行驶里程、充电详情等信息,帮助车主更好地了解车辆使用情况,优化充电策略,延长电池寿命。
TeslaMate的核心功能包括:
- 实时监控车辆状态,如电池电量、续航里程、充电状态等
- 记录行驶数据,包括行驶里程、速度、能耗等
- 分析充电数据,如充电时间、充电量、充电效率等
- 提供丰富的数据可视化图表,帮助用户直观了解车辆使用情况
- 支持数据导出和第三方集成,如Home Assistant等
项目结构主要包括以下几个部分:
- 核心代码:lib/teslamate/
- Web界面:lib/teslamate_web/
- 数据库迁移:priv/repo/migrations/
- Grafana仪表盘:grafana/dashboards/
- 文档:website/docs/
二、安装部署
2.1 Docker安装(推荐)
Docker安装是最简单快捷的方式,适用于大多数用户。首先确保你的系统已经安装了Docker和Docker Compose。
创建一个docker-compose.yml文件,内容如下:
services: teslamate: image: teslamate/teslamate:latest restart: always environment: - ENCRYPTION_KEY=secretkey # 替换为安全的加密密钥 - DATABASE_USER=teslamate - DATABASE_PASS=password # 替换为安全的数据库密码 - DATABASE_NAME=teslamate - DATABASE_HOST=database - MQTT_HOST=mosquitto ports: - 4000:4000 volumes: - ./import:/opt/app/import cap_drop: - all database: image: postgres:17 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: - DATABASE_USER=teslamate - DATABASE_PASS=password # 替换为安全的数据库密码 - DATABASE_NAME=teslamate - DATABASE_HOST=database ports: - 3000:3000 volumes: - teslamate-grafana-data:/var/lib/grafana mosquitto: image: eclipse-mosquitto:2 restart: always command: mosquitto -c /mosquitto-no-auth.conf volumes: - mosquitto-conf:/mosquitto/config - mosquitto-data:/mosquitto/data volumes: teslamate-db: teslamate-grafana-data: mosquitto-conf: mosquitto-data: 在终端中执行以下命令启动服务:
docker compose up -d 2.2 高级安装:使用Traefik实现HTTPS和Basic Auth
如果你需要将TeslaMate暴露到公网,建议使用Traefik作为反向代理,实现HTTPS加密和Basic Auth认证。详细配置可参考Traefik指南。
主要步骤包括:
- 创建
docker-compose.yml、.env和.htpasswd文件 - 配置Traefik反向代理
- 设置HTTPS证书自动续期
- 配置Basic Auth认证
三、数据导入
如果你之前使用过其他特斯拉数据记录工具,如TeslaFi,可以将历史数据导入到TeslaMate中。
3.1 从TeslaFi导入数据
- 首先创建数据备份:
docker compose exec -T database pg_dump -U teslamate teslamate > ./teslamate.bck - 从TeslaFi导出CSV数据:
Settings -> Advanced -> Download TeslaFi Data - 将导出的CSV文件复制到
import目录:
. ├── docker-compose.yml └── import ├── TeslaFi82019.csv ├── TeslaFi92019.csv └── ... - 重启TeslaMate服务,在管理界面中选择时区并开始导入:
docker compose restart teslamate - 导入完成后,清空
import目录并重启服务:
rm -rf import/* docker compose restart teslamate 3.2 数据备份与恢复
定期备份数据是一个好习惯,可以使用以下命令创建备份:
docker compose exec -T database pg_dump -U teslamate teslamate > ./teslamate.bck 恢复数据的命令如下:
# 停止teslamate容器 docker compose stop teslamate # 清空现有数据 docker compose exec -T database psql -U teslamate teslamate << . DROP SCHEMA public CASCADE; CREATE SCHEMA public; CREATE EXTENSION cube WITH SCHEMA public; CREATE EXTENSION earthdistance WITH SCHEMA public; . # 恢复数据 docker compose exec -T database psql -U teslamate -d teslamate < teslamate.bck # 重启teslamate容器 docker compose start teslamate 四、数据可视化
TeslaMate集成了Grafana,提供了丰富的可视化仪表盘,帮助用户直观了解车辆数据。
4.1 访问Grafana仪表盘
启动服务后,通过http://your-ip-address:3000访问Grafana,默认用户名和密码均为admin。首次登录后,系统会提示你修改密码。
Grafana中提供了多个预设的仪表盘,包括:
- 总览:grafana/dashboards/overview.json
- 电池健康:grafana/dashboards/battery-health.json
- 充电统计:grafana/dashboards/charging-stats.json
- 行驶统计:grafana/dashboards/drive-stats.json
- 能耗分析:grafana/dashboards/efficiency.json
4.2 自定义仪表盘
如果你对默认仪表盘不满意,可以根据自己的需求进行自定义。Grafana提供了强大的图表编辑功能,可以添加、删除或修改图表,调整时间范围,设置告警等。
五、高级配置
5.1 环境变量配置
TeslaMate支持通过环境变量进行配置,常见的配置项包括:
TZ:时区设置,如Asia/ShanghaiLOG_LEVEL:日志级别,如info、debugCHECK_ORIGIN:是否检查请求来源,默认为trueIMPORT_DIR:数据导入目录,默认为./import
完整的环境变量列表可以参考环境变量文档。
5.2 与Home Assistant集成
TeslaMate可以通过MQTT与Home Assistant集成,实现更强大的自动化控制。首先需要在Home Assistant中配置MQTT传感器,然后创建自动化规则。
配置示例:
# configuration.yaml mqtt: sensor: - name: "Tesla Battery Level" state_topic: "teslamate/cars/1/battery_level" unit_of_measurement: "%" device_class: "battery" - name: "Tesla Charging Status" state_topic: "teslamate/cars/1/plugged_in" device_class: "plug" binary_sensor: - name: "Tesla Locked" state_topic: "teslamate/cars/1/locked" device_class: "lock" 六、更新与维护
6.1 更新TeslaMate
使用Docker Compose可以轻松更新TeslaMate到最新版本:
docker compose pull docker compose up -d 6.2 常见问题解答
6.2.1 车辆无法进入睡眠模式
如果你的车辆是MCU1(2018年3月之前生产的Model S和Model X),需要进行以下设置:
- 显示 -> 节能 -> 开启
- 显示 -> 始终连接 -> 关闭
- 安全与保障 -> 座舱过热保护 -> 关闭
6.2.2 数据缺失
如果未使用Streaming API,可能会导致数据缺失。这是因为车辆在进入睡眠模式前有15分钟的不活动时间,TeslaMate会在3分钟后暂停轮询,期间的活动无法被检测到。
6.2.3 为什么没有显示能耗数据?
Tesla API本身不返回行程的能耗数据,TeslaMate通过充电数据估算能耗。需要至少两次充电会话才能生成第一次估算,每次充电会话应超过10分钟且充电至低于95%的电量。
七、总结
通过本文的介绍,你已经了解了TeslaMate的安装部署、数据导入、可视化分析和高级配置等方面的内容。TeslaMate作为一款强大的开源特斯拉数据监控工具,能够帮助你全面掌握车辆状态,优化驾驶体验。
项目的持续发展离不开社区的支持,如果你有任何问题或建议,可以通过GitHub Issues与开发团队交流。同时,也欢迎你为项目贡献代码或文档,共同完善这个优秀的开源工具。
最后,希望本文能够帮助你更好地使用TeslaMate,享受智能驾驶带来的乐趣!