<aside> 💡 本指南需要有一丁点的编程知识,知道什么是终端、什么是命令行。

</aside>

<aside> 💡 本教程使用 Docker 安装 TeslaMate,如果你是在软路由环境,可能需要做一些额外操作如端口映射等,浏览器才能访问。而我的 Mac 电脑常年不关机,因此装在了 Mac 系统下的 Docker 上。

</aside>

<aside> 💡 有点遗憾的是,TeslaMate 不能获取车辆的历史信息,因此你只能查看安装 TeslaMate 后的车辆行驶数据,且 TeslaMate 的服务不能关闭,否则无法记录到相关行驶数据。

</aside>

前言

「TeslaMate」,简单翻译过来就是「特斯拉伴侣」,它是一款开源软件,可以获取车辆上报给特斯拉服务器的数据,然后使用 Grafana 这款 Web 数据可视化仪表盘工具显示出来。

TeslaMate 的仓库:

GitHub - adriankumpf/teslamate: A self-hosted data logger for your Tesla 🚘

TeslaMate 的文档:

Docker install | TeslaMate


特斯拉的工程师们会收集这些数据进行车辆的大数据分析、软件优化、电池充电优化等,而我们个人车主获取这些信息则可以更好的了解自己爱车的一些详细数据,如历史行程、每日行驶里程数、耗电情况、充电效率等。

之所以有这篇博文是因为 TeslaMate 的文档只说了如何安装(很简单),但是并没有告诉你安装完成后如何配置才能看到想要的仪表盘,而网上的一些内容农场靠着 SEO 技巧,排名靠前的也都是复制粘贴官网内容来的,要找到想要的信息是有点困难的,我目前没看到有任何一篇讲从如何安装到成品的文章,所以本文从头讲起。

先上一张成果图(用户可以自定义面板):

TeslaMate 成果图

TeslaMate 成果图

一、安装 Docker

如开头所述,我使用 Docker 进行安装,TeslaMate 的文档要求是安装 Docker 和 Docker Compose(别管是什么,装就完了),而我们只需要安装 Docker Desktop 即可将这二者都装了,Docker Desktop 下载在这里:

Docker Desktop: The #1 Containerization Tool for Developers | Docker

安装后启动,然后随便找个目录(TeslaMate 的全部文件后续都会在这个目录,不要删除),将官方给的 docker-compose.yml 文件放入其中,我这里放到了 ~/Developer/Docker/TeslaMate 下,docker-compose.yml 内容如下:

version: "3"

services:
  teslamate:
    image: teslamate/teslamate:latest
    restart: always
    environment:
      - ENCRYPTION_KEY= #设置 TeslaMate API 加密密码,注意等号后面不要有空格
      - DATABASE_USER=teslamate
      - DATABASE_PASS= #设置安全数据库密码,注意等号后面不要有空格
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
      - MQTT_HOST=mosquitto
    ports:
      - 4000:4000
    volumes:
      - ./import:/opt/app/import
    cap_drop:
      - all

  database:
    image: postgres:15
    restart: always
    environment:
      - POSTGRES_USER=teslamate
      - POSTGRES_PASSWORD= #设置数据库密码,注意等号后面不要有空格
      - POSTGRES_DB=teslamate
    volumes:
      - teslamate-db:/var/lib/postgresql/data

  grafana:
    image: teslamate/grafana:latest
    restart: always
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS= #设置 grafana 的数据库密码,注意等号后面不要有空格
      - 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
    # ports:
    #   - 1883:1883
    volumes:
      - mosquitto-conf:/mosquitto/config
      - mosquitto-data:/mosquitto/data

volumes:
  teslamate-db:
  teslamate-grafana-data:
  mosquitto-conf:
  mosquitto-data:

注意有些服务的密码设置是需要跟另一个服务密码一致的,所以我建议将上述的密码都设置成一样,省的麻烦。另外尤其需要注意的是 = 后面不要有空格。之后打开终端执行(每行复制到终端后按回车):