在树莓派上部署Teslamate

Tesla官方app内容比较简单,没有行程数据、电量消耗等数据,车主其实都很在意这些数据,我平时就用TezLab应用了解这些数据,感觉还不错。这两天了解到还有个TeslaMate应用可以呈现这些数据,刚好手上有台刷了RetroPie当怀旧游戏机但一直吃灰很多年的Raspberry Pi 3 Model B,于是打算折腾下,在树莓派上部署TeslaMate。

3B的内存是1G,刚好达到了TeslaMate的要求,所以接下去就是在树莓派上安装Docker就行了。网上搜了一些教程,都是两三年前的方法,有些代码已经过时没用了,所以我就跟着官方的方法走下去。

第一步:下载Raspberry Pi Imager

官网下载地址:https://www.raspberrypi.com/software/,给树莓派SD卡刷系统用的。

第二步:给树莓派SD卡刷系统

把SD卡链接电脑,用Raspberry Pi Imager给树莓派SD卡刷系统。


因为我是3B,所以选的系统是64位更适配

在高级设置中开启SSH服务,username和密码自己设,设置完后点烧录。

第三步:给树莓派安装Docker

把烧录完后的SD卡插到树莓派上,通电通网,树莓派和电脑要在同一局域网内。可以在路由器后台找到树莓派的IP地址,也可以通过软件找,Windows用Advanced IP Scanner,Mac用LanScan。然后通过SSH链接树莓派,Windows用putty,Mac用terminal,以Mac为例,终端中输入:

ssh 你的树莓派用户名@树莓派的IP地址

树莓派用户名就是上面的Username。

这里如果遇到这类提示:

ECDSA host key for 树莓派IP地址 has changed and you have requested strict checking

输入ssh-keygen -R 树莓派IP地址解决。

进入树莓派后台,接下去就是按照Teslamate要求安装Docker和Docker Compose。

Docker树莓派的OS requirements页面中:

This installation instruction refers to the 32-bit (armhf) version of Raspberry Pi OS. If you’re using the 64-bit (arm64) version, follow the instructions for Debian.

由于上面的树莓派系统安装的是64位,所以要按照Debian的流程操作。

Set up Docker’s Apt repository

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
sudo apt-get update

Install the Docker packages

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin`

安装确认

sudo docker run hello-world

安装成功的话,会有这么一段话:

Hello from Docker!
This message shows that your installation appears to be working correctly.

第四步:安装Docker Compose

其实实测第三步做完之后已经有compose了,不过还是按照官方再来一次。

sudo apt-get update
sudo apt-get install docker-compose-plugin

验证安装 sudo docker compose version,会显示 Docker Compose version v2.21.0,这样就显示compose也安装完成了。

第五步:编写docker-compose.yml文件

安装TeslaMate要求,编写docker-compose.yml文件。在terminal中输入nano docker-compose.yml就能新建一个yml文件了,然后填入以下内容。

version: "3"

services:
  teslamate:
    image: teslamate/teslamate:latest
    restart: always
    environment:
      - ENCRYPTION_KEY=#insert a secure key to encrypt your Tesla API tokens
      - DATABASE_USER=teslamate
      - DATABASE_PASS=#insert your secure database password!
      - 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=#insert your secure database password!
      - POSTGRES_DB=teslamate
    volumes:
      - teslamate-db:/var/lib/postgresql/data

  grafana:
    image: teslamate/grafana:latest
    restart: always
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS=#insert your secure database 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
    # ports:
    #   - 1883:1883
    volumes:
      - mosquitto-conf:/mosquitto/config
      - mosquitto-data:/mosquitto/data

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

有四个#insert的字段,设置成你要的密码,另外注意这里等号后面有个空格,把空格删除。填入完成后键盘按 ctrl+字母O,然后按ctrl+x退出编辑界面。

最后docker compose up -d启动docker

第六步:登录TeslaMate

1、打开网页:http://树莓派的IP地址:4000
2、用你的tesla账号登录,然后还要用到tesla token,可以用这几个app获得。
3、Grafana面板网址:http://树莓派的IP地址:3000,默认用户名和密码都是admin。

到此为止,TeslaMate已经搭建完成并成功访问。树莓派要一直通电运行才能收取记录数据。

参考:
1、Instalar TESLAMATE en Raspberry Pi 3 o 4. Actualizado Dic. 2022
2、TeslaMate Docs
3、Docker Docs
4、Installing Docker and Docker Compose on the Raspberry Pi in 5 Simple Steps(有些不适用了)