144 lines
5.8 KiB
Markdown
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]]
|