# TeslaLogger: a self-hosted data logger for your own car

> TeslaLogger is a self-hosted data logger for Tesla Model S, 3, X, Y and Cybertruck cars, and the Lucid AIR, running on a Raspberry Pi, in Docker or on a Synology NAS, with a MariaDB database, a Grafana dashboard and a web admin panel. It gives you a full history of your vehicle at the cost of putting your account tokens on a device you own, and its default credentials are the first thing you have to change.

**bassmaster187/TeslaLogger** — TeslaLogger is a self hosted data logger for your Tesla Model S/3/X/Y. Actually it supports RaspberryPi 3B, 3B+, 4B, Docker and Synology NAS.

- Repository: https://github.com/bassmaster187/TeslaLogger
- Website: https://www.teslalogger.de
- Stars: 640 · Forks: 180
- Language: C#
- License: GPL-3.0
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/bassmaster187-teslalogger

## A logger you run, not a service you subscribe to

TeslaLogger is a self hosted data logger for your Tesla Model S, 3, X and Y, and the repository also documents an install for the Cybertruck and the Lucid AIR. The problem it solves is the one every owner of a connected car eventually runs into. The manufacturer's app shows you the current state of the vehicle, and the manufacturer keeps the history, and you have no way to ask questions of your own data over time. How much did the battery degrade, when did it charge fastest, what does a vampire drain look like across a month, which firmware versions have been installed. A logger answers those questions by polling the car and writing every reading to a database you control, so the data outlives any particular app or account. The audience is a technically confident owner who already runs a Raspberry Pi or a NAS at home, or a small fleet operator, since the repository also carries fleet oriented features such as points of interest and fleet statistics.

## Four containers: logger, database, Grafana and a webserver

The compose file is the clearest description of the architecture. The teslalogger service is built from the docker/teslalogger directory and mounts the web interface, the binaries, the Grafana dashboards, the Grafana plugins and a named temporary volume, and it maps container port 5000 to host port 5010. The database service is mariadb:10.4.7, and it mounts the schema file into the container's init directory so the tables are created on first start, along with a volume for the data directory and the.env file for its environment. The grafana service is grafana/grafana:10.0.1, with the dashboards and plugins mounted, a datasource configuration and a dashboard provisioning file, and it publishes port 3000. A fourth service, the webserver, serves the PHP admin interface with its own php.ini mounted. So the shape is a poller writing to MariaDB, a PHP front end for administration, and Grafana reading the same database for the charts. The timestamps in all three services are pinned to Europe/Berlin in the compose file, which is a small detail that matters when you compare curves across services.

## Tokens, invoices and not sharing your password

Authentication is the sensitive part, and the project is unusually deliberate about it. The README asks you to enter an access token and a refresh token rather than a password, and it points at three ways to obtain them: the official Tesla Fleet API with the permission documented in the repository, an iOS app, and an Android app. The project also offers a link to Abetterrouteplanner, described as a way to set up a link from TeslaLogger so you avoid giving your Tesla credentials to a third party, with the second benefit being to minimise the possibility of the car being prevented from going to sleep when more than one service is using your credentials. That is the real argument for a self-hosted logger, since every service that authenticates against the car with the same account is another contender for the vehicle's single session. Another service the logger runs for you is the Supercharger invoice download, with the invoices placed in a subfolder of the teslalogger directory on the Raspberry Pi or under the bin directory in the Docker layout.

## The Raspberry Pi setup in five minutes

The configuration section assumes a Raspberry Pi on your network. You connect it to the router with a network cable, turn it on, and within two or three minutes it appears on the network. From there everything is done through a browser on the machine itself. The token entry page is served from the admin directory of the device, and the settings and language page sits next to it, sometimes reachable through the .local hostname instead of the plain one. The admin panel itself lives under the same admin path, the customisable dashboard has its own page with its own documentation, and the Grafana instance is on port 3000. For advanced users there is SSH access with the username pi and a documented password, and the details of adding and managing your own points of interest, that is the geofence data, live in a separate document in the repository. For a Docker or Synology installation the README points to a dedicated setup document, and the project also sells ready made Raspberry Pi units with the software already installed.

## Grafana is the front end, and its defaults are open

The Grafana service is where the data becomes readable, and the compose file shows how opinionated that setup is. The admin password is set through the environment as a fixed value, and the plugin allowlist names three unsigned plugins, a discrete panel, a track map panel and a TeslaLogger timeline panel. The dashboards themselves are mounted from the repository, and a datasource configuration file is provisioned so the charts know where to read from. The documentation then tells you the credentials to use, admin with the password teslalogger, and the SSH section gives the username pi with the same password. This is the point in the article where an opinionated note is warranted. Those defaults are convenient for a device on a home network that nobody else can reach, and they are a poor idea the moment the box is exposed, and the compose file publishes the database port 3306 and the logger port 5010 on the host. If you deploy this, change the passwords first, and keep the database port off the host if you do not need it.

## Fleet statistics, imports and the wider feature set

The project is not only a private database. Fleet statistics can be used by anyone without a TeslaLogger of their own, and the public pages offer degradation statistics, charging speed statistics, a firmware tracker and a map of fast chargings by TeslaLogger users. To compare your own degradation and charging curves against the fleet, though, you do need a TeslaLogger. That makes the logger a two-way relationship, you contribute to the aggregate and you consume it. There are also import paths for data you already have, with a TeslaFi import and a Teslamate import, plus a KML import directory in the repository, which matters for people who previously ran one of those and do not want to lose history. The repository layout shows how much sits around the core logger, with an MQTT client, an OSM map generator, an update component, a log file area, a unit test project, a Docusaurus documentation site, and a set of small files named after the vehicle events they detect, such as door, frunk, trunk, window and unlocked states, which are the trigger recordings for the notification features.

## Versions, languages and the shape of the code

The project is written in C# with a.NET Core desktop build workflow, and the release tags show a recent burst followed by a quiet patch. The three most recent releases are V1.63.0 and V1.60.1, both dated 2025-02-26, and 1.59.3 from 2024-07-30, so the numbering is not strictly linear in the tag list even though the versions are. The last push to the master branch was on 2026-10-22, so work continues on the branch even though the newest tag is from February 2025, which is a combination worth keeping in mind before you pin a version. The user interface is translated into eleven languages, English, German, Danish, Spanish, Chinese, French, Italian, Norwegian, Dutch, Portuguese and Russian, through a Weblate project, and the project asks contributors to coordinate with them before starting a translation so that two people do not work on the same language at once. The licence is GPL-3.0, with the LICENSE file at the repository root, and the project site is teslalogger.de, which also hosts the German manual and the purchase pages for the prebuilt Raspberry Pi images.

## Conclusion

TeslaLogger suits an owner who wants long term vehicle data, degradation and charging curves, and an open dashboard they control, and who is prepared to run a small server on their own network. It is the wrong tool if you only need a trip log for a month, and it is the wrong tool if the machine will be reachable from the internet, because the documented defaults are the username admin and the password teslalogger for Grafana, and the username pi for SSH. Before you start it, change the Grafana admin password and the SSH password, decide whether to use the official Tesla Fleet API permission instead of a third party token app, and check the version you are running, since the newest release tag is from February 2025 while the branch is still receiving pushes.

## FAQ

### What does TeslaLogger record and which cars does it support?

It is a self hosted data logger for the Tesla Model S, 3, X and Y, and the repository also documents support for the Cybertruck and the Lucid AIR. It can be run on a Raspberry Pi 3B, 3B+ or 4B, in Docker, or on a Synology NAS.

### How do I get the access and refresh tokens TeslaLogger needs?

The README points at three options: the official Tesla Fleet API using the permission documented in the repository, an iOS app, and an Android app. You then enter the access token and refresh token on the password page of the device's admin interface.

### Where are the dashboards and what are the default credentials?

The Grafana instance is served on port 3000 with the username admin and the password teslalogger, the web admin panel is under the admin path, and the customisable dashboard has its own page. The SSH section documents the username pi with the same password, so change these before the device is reachable by anything but you.

### Can I bring in data from another logger, and can others see my data?

There are import paths for TeslaFi data, Teslamate data and KML files. Separately, fleet statistics pages for degradation, charging speed, firmware and a map of fast chargings are public and usable without a TeslaLogger, though comparing your own curves with the fleet requires one.

## Sources

- [bassmaster187/TeslaLogger on GitHub](https://github.com/bassmaster187/TeslaLogger)
- [License: GPL-3.0](https://github.com/bassmaster187/TeslaLogger/blob/master/LICENSE)
- [Project website](https://www.teslalogger.de)
- [README](https://github.com/bassmaster187/TeslaLogger/blob/master/README.md)
- [Releases](https://github.com/bassmaster187/TeslaLogger/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/bassmaster187-teslalogger
