TeslaMate 保姆级部署教程:15 分钟搭好你的特斯拉私有数据看板
【免费下载链接】teslamateA self-hosted data logger for your Tesla 🚘 [main maintainer=@JakobLichterfeld]项目地址: https://gitcode.com/GitHub_Trending/te/teslamate
你的车辆数据都躺在特斯拉服务器上。今天的电量你看得见,但上个月的能耗和里程,官方应用给不出细节。TeslaMate 是用 Elixir 写的自托管数据记录器,把你的车辆数据持续写入自己的 PostgreSQL 数据库,用 Grafana 画成曲线和图表,再用 MQTT 把状态同步给智能家居设备。这篇指南带你 15 分钟把它部署起来。
它到底能帮你干什么:5 个真实使用场景
- 回放一次驾驶:记录每段路线、车速和电量变化,能逐分钟回看上周通勤的速度曲线
- 能耗算账:每趟实际消耗多少千瓦时都留了痕,能画出过去 30 天的能耗曲线
- 充电成本分析:每次充进多少电、花多少钱自动算好,家庭充电和超充谁更划算一目了然
- 电池健康跟踪:对比初始容量和当前可用容量,直接给出电池衰减程度
- 在线状态查询:记录车辆何时在线、驾驶或休眠,任意一天车在哪都能查到
部署前检查清单:动手前先把这几样备好
- 运行环境:一台 Linux 机器,装好 Docker 和 Docker Compose。Docker 可以理解为把应用装进独立"集装箱"运行的工具,不污染宿主机;Compose 则是一个文件描述多个容器、一条命令一起启动
- 内存:至少 1GB,推荐 2GB 以上;低于 1GB 大概率装不起来
- 磁盘:预留 10GB 以上,PostgreSQL 的数据会随驾驶历史持续增长
- 网络:需要稳定的外网出口,应用要定期和特斯拉服务器对话拉取数据
- 设备:24 小时在线,断一天就缺一天数据
- 车辆凭据:一个特斯拉账号,并用 Tesla Auth 这类工具生成 access token 和 refresh token(相当于让 TeslaMate 代你查车的钥匙)
Docker 部署全过程:把四个容器从 0 拉起
四个服务写进一份配置文件
先认识四个角色:TeslaMate负责采集数据,PostgreSQL是数据落盘的关系型数据库,Grafana是把数据画成图表的可视化工具,MQTT可以理解为设备间的广播频道,车每次状态变化就发一条消息。
在任意空目录新建docker-compose.yml,先写入下面的 TeslaMate 服务片段:
services: teslamate: image: teslamate/teslamate:latest restart: always environment: - ENCRYPTION_KEY=<32位随机字符串> # 加密车辆token的密钥,必须改掉 - DATABASE_USER=teslamate - DATABASE_PASS=<你的密码> # 三处共用,必须一致 - DATABASE_NAME=teslamate - DATABASE_HOST=database - MQTT_HOST=mosquitto ports: - "4000:4000"其余三个服务(database / grafana / mosquitto)按同样方式补进文件,完整写法见安装文档。写完用docker compose config跑一下,不报错就说明结构没问题。
拉起容器并确认它们活着
在配置文件所在目录执行下面命令,把四个容器放到后台启动:
docker compose up -d # 后台启动全部容器 docker compose ps # 查看运行状态首次运行要下载镜像,网速正常约 3 分钟。ps输出里四行状态都是Up,就说明容器都活着。
填入车辆 token,让它开始记录
浏览器打开http://localhost:4000进入登录页,把之前拿到的 access token 和 refresh token 粘进去,保存后 TeslaMate 就会连上你的车开始记录数据。
装完先验证:端口、默认账号、数据写入
- TeslaMate 控制台:访问
http://localhost:4000,出现登录页说明主服务起来了 - Grafana 看板:访问
http://localhost:3000,用默认账号admin、密码admin登录,系统会强制你改一个自己的密码 - 数据在写入:跑下面这条命令查定位记录数,开过车之后数字应该变大
docker compose exec database psql -U teslamate -c "SELECT count(*) FROM positions"另外记得在 TeslaMate 的 Settings → URLs 里填上 Web App 和 Dashboards 两个地址,两个界面之间的跳转链接才通。
跑起来之后看什么:3 张看板截图讲解
这是 TeslaMate 的网页控制台,车辆状态、电量、软件版本都在这里,顶部能看到车辆在线与否。对你意味着什么:不用打开官方应用,电脑浏览器里就能查车。
这张图是一次行程的全程记录:路线、速度曲线和电量变化叠加在一起。对你意味着什么:逐段回看一次驾驶是怎么开的,哪个路口速度冲高、哪段路电掉得快。
这张图对比初始容量和当前可用容量,直接给出电池衰减程度。对你意味着什么:将来卖车或置换时,这条曲线比任何口头描述都有说服力。
踩坑自查:4 个高频故障的排查方法 ⚠️
| 症状 | 可能原因 | 一条命令的修复 |
|---|---|---|
| 容器起不来,提示端口被占用 | 4000 或 3000 端口被别的程序占了 | sudo lsof -i :4000查出占用进程,换个端口或停掉它 |
| 页面能打开,但没有任何车辆数据 | token 没填或已过期 | 用 Tesla Auth 重新生成 token,回登录页重新粘贴 |
| Grafana 看板空白 | Grafana 的DATABASE_HOST、DATABASE_PASS没对上 | docker compose config核对变量后docker compose up -d重建 |
| 容器反复自动重启 | 内存不足,被系统杀掉 | free -h查看可用内存,低于 1GB 就换台机器 |
部署完成后,车就开始替你记录了。下一步可以把它接到 Home Assistant,用车的状态触发智能家居自动化。
【免费下载链接】teslamateA self-hosted data logger for your Tesla 🚘 [main maintainer=@JakobLichterfeld]项目地址: https://gitcode.com/GitHub_Trending/te/teslamate
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考