Files
2026-06-09 18:40:21 +02:00

144 lines
5.8 KiB
Markdown

---
title: TeslaMate
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, tracking, tesla, elixir, vehicle]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Vehicle+Tracking, https://github.com/teslamate-org/teslamate]
---
# 🚗 TeslaMate
> Logger de données Tesla puissant et open source : chaque trajet, charge, parking et update est historisé dans une base PostgreSQL et visualisable via Grafana.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | [docs.teslamate.org](https://docs.teslamate.org) |
| **GitHub** | [teslamate-org/teslamate](https://github.com/teslamate-org/teslamate) |
| **License** | MIT |
| **Langage principal** | Elixir (Phoenix) |
| **Étoiles GitHub** | 935 ⭐ |
| **Dernière MAJ** | 2026-05-30 |
| **Catégorie** | [[cat-tracking]] |
## Description
**TeslaMate** est un **logger de données pour véhicules Tesla** écrit en **Elixir/Phoenix**. Il s'authentifie avec votre compte Tesla (token d'application) et collecte en continu les données de votre (vos) voiture(s) : position GPS, niveau de batterie, vitesse, consommation, température, statut des portes, état de charge, mises à jour OTA, software releases, etc. Le tout est stocké en **PostgreSQL** puis exposé en **Grafana** avec une vingtaine de dashboards prêts à l'emploi.
L'objectif est de garder un **historique complet** de la vie de votre Tesla, ce que l'app mobile Tesla ne fait que partiellement. TeslaMate permet ainsi de détecter une **dégradation de batterie** sur le long terme, de connaître le **coût réel** (€ / kWh) de chaque charge, de revoir ses **trajets sur une carte**, d'exporter au format GPX, ou d'identifier des **comportements anormaux**.
Le projet est **MIT**, mature, multi-voitures (avec gestion multi-utilisateurs possible), et dispose d'une **communauté Discord** très active. Il est compatible avec Tesla API v3 et s'auto-heberge parfaitement sur un petit serveur (2 vCPU, 2 Go de RAM suffisent).
## Installation
### Via Docker (recommandé)
```yaml
version: "3.8"
services:
teslamate:
image: teslamate/teslamate:latest
container_name: teslamate
restart: unless-stopped
ports:
- "4000:4000"
environment:
- DATABASE_USER=teslamate
- DATABASE_PASSWORD=changez_moi
- DATABASE_NAME=teslamate
- DATABASE_HOST=db
- MQTT_HOST=mosquitto
- VIRTUAL_HOST=teslamate.local
- TZ=Europe/Paris
depends_on:
- db
- mosquitto
db:
image: postgres:16-alpine
container_name: teslamate-db
restart: unless-stopped
environment:
POSTGRES_USER: teslamate
POSTGRES_PASSWORD: changez_moi
POSTGRES_DB: teslamate
volumes:
- teslamate_db:/var/lib/postgresql/data
mosquitto:
image: eclipse-mosquitto:2
container_name: teslamate-mqtt
restart: unless-stopped
command: mosquitto -c /mosquitto-no-auth.conf
volumes:
- mosquitto_data:/mosquitto/data
grafana:
image: teslamate/grafana:latest
container_name: teslamate-grafana
restart: unless-stopped
ports:
- "3000:3000"
environment:
- DATABASE_USER=teslamate
- DATABASE_PASSWORD=changez_moi
- DATABASE_NAME=teslamate
- DATABASE_HOST=db
depends_on:
- db
volumes:
teslamate_db:
mosquitto_data:
```
### Installation manuelle
1. Installer Elixir 1.15+ et Node 18+ via `asdf` ou le gestionnaire système
2. Cloner : `git clone https://github.com/teslamate-org/teslamate.git && cd teslamate`
3. Copier `.env.example` vers `.env` et remplir les variables
4. Lancer : `mix deps.get && mix ecto.create && mix ecto.migrate && mix phx.server`
5. Installer Grafana séparément et importer les **dashboards** depuis le dossier `grafana-dashboards/`
6. Authentifier votre Tesla depuis l'UI web (port 4000 par défaut)
## Configuration
- Lancer l'**authentification Tesla** via OAuth (le projet supporte MFA/TOTP)
- Configurer le **fuseau horaire** dans la variable `TZ`
- Activer l'**export MQTT** pour relier TeslaMate à Home Assistant via le topic
- Personnaliser les **unités** (km vs miles, °C vs °F)
- Définir une **adresse de résidence** pour calculer les coûts par trajet
- Importer les **dashboards Grafana** depuis le dépôt officiel (URL JSON)
- Configurer les **alertes Telegram** (via webhook) en cas de charge/décharge inattendue
## Alternatives
### Open source
- **TeslaLogger** (Java) — alternative plus ancienne, base MySQL
- **TeslaFi** (version open source) — clones communautaires
- **TeslaBleHttpProxy** — proxy BLE pour nouveaux modèles
- **Scratch maison** via `TeslaPy` — script Python, pas d'UI
### Propriétaires
- **TeslaFi** — service cloud commercial historique (récemment fermé)
- **TeslaScope** — dashboard payant, plus de visualisations
- **Stats for Tesla** — app mobile premium
- **TeslaMate Cloud** — hébergé clé en main par des tiers
## Sécurité
- Utiliser un **token Tesla dédié** avec 2FA activé sur le compte
- **Ne pas exposer** le port Grafana publiquement, garder en LAN ou derrière VPN (WireGuard)
- Activer **HTTPS** avec Traefik devant l'UI Phoenix (Let's Encrypt)
- Sauvegarder régulièrement le volume **teslamate_db** (dump PostgreSQL)
- Changer le **mot de passe Grafana** par défaut (admin/admin)
- Surveiller l'**espace disque** (les positions GPS s'accumulent vite)
- Mettre à jour régulièrement l'image (alertes Diun / Watchtower)
## Ressources
- [Site officiel](https://docs.teslamate.org)
- [Documentation complète](https://docs.teslamate.org/docs/installation)
- [Discord communautaire](https://discord.gg/teslamate)
- [Démarrage rapide](https://docs.teslamate.org/docs/getting_started)
- [Tableau des dashboards Grafana](https://github.com/teslamate-org/teslamate/tree/main/grafana-dashboards)
## Pages Liées
- [[cat-tracking]]
- [[recettes-docker-compose]]
- [[cat-vehicle-tracking]]