Docker Domotique

TeslaMate : intégrer sa Tesla dans son homelab et Home Assistant

· 05/05/2026 · Mis à jour le 12/05/2026 · 5 min de lecture
Teslamate

L’application Tesla officielle est bien faite. Mais elle est limitée : pas d’historique de trajet exploitable, pas d’alertes personnalisées, pas d’intégration avec le reste de la maison. TeslaMate règle tous ces problèmes en récupérant les données de la Tesla via l’API officielle et en les stockant localement.

En bref — TeslaMate récupère les données de ta Tesla via l’API officielle : trajets, historique de charges, consommation, géofencing. Tous les états sont publiés en MQTT pour des automatisations Home Assistant. Dashboards Grafana préconfigurés inclus. Self-hosted en Docker sur Proxmox.

Voici comment j’ai intégré TeslaMate dans mon homelab pour des automatisations Home Assistant basées sur la voiture.

[SCREENSHOT: TeslaMate — dashboard Grafana avec les métriques de la Tesla : charge batterie, trajets récents, consommation]

Ce que fait TeslaMate

  • Logging des trajets : chaque trajet est enregistré avec la route, la durée, la consommation, la vitesse max
  • Historique de charge : quand, où, combien de kWh, le coût estimé
  • Géofencing : définir des zones (Maison, Travail, Superchargeur) pour des automatisations
  • Publication MQTT : tous les états de la voiture publiés en temps réel sur un broker MQTT
  • Dashboards Grafana : visualisations préconfigurées de toutes les métriques

Architecture

TeslaMate utilise plusieurs services. La stack complète :

  • TeslaMate : l’application principale (Elixir)
  • PostgreSQL : stockage des données
  • Mosquitto : broker MQTT (partagé avec Zigbee2MQTT si tu veux)
  • Grafana : outil open source de dashboards — TeslaMate fournit des dashboards préconfigurés

Installation via Dockge

services:
  teslamate:
    image: teslamate/teslamate:latest
    container_name: teslamate
    restart: unless-stopped
    ports:
      - "4000:4000"
    environment:
      - ENCRYPTION_KEY=[À COMPLÉTER: générer avec openssl rand -hex 32]
      - DATABASE_URL=ecto://teslamate:motdepasse@database/teslamate
      - MQTT_HOST=192.168.1.10    # IP de ton broker Mosquitto
      - TZ=Europe/Paris
    depends_on:
      - database

  database:
    image: postgres:15
    container_name: teslamate_db
    restart: unless-stopped
    environment:
      - POSTGRES_USER=teslamate
      - POSTGRES_PASSWORD=motdepasse
      - POSTGRES_DB=teslamate
    volumes:
      - postgres_data:/var/lib/postgresql/data

  grafana:
    image: teslamate/grafana:latest
    container_name: teslamate_grafana
    restart: unless-stopped
    ports:
      - "3100:3000"
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS=motdepasse
      - DATABASE_HOST=database
      - DATABASE_NAME=teslamate

volumes:
  postgres_data:
[SCREENSHOT: TeslaMate — interface web avec l’état actuel de la voiture : localisation, batterie, état de charge]

Configuration initiale

Accès à http://<IP>:4000. TeslaMate te demande de te connecter à ton compte Tesla pour obtenir un token d’API. Depuis 2023, Tesla utilise un processus OAuth sur son site — TeslaMate gère ça depuis son interface web.

Une fois connecté, TeslaMate commence immédiatement à logger les données de la voiture. Les trajets passés ne sont pas récupérables, mais tout ce qui se passe à partir de maintenant est enregistré.

Intégration Home Assistant via MQTT

C’est la partie la plus utile pour l’automatisation. TeslaMate publie l’état de la voiture sur MQTT :

teslamate/cars/1/state           → asleep, online, charging, driving
teslamate/cars/1/battery_level   → 85
teslamate/cars/1/geofence        → Home, Work, ...
teslamate/cars/1/plugged_in      → true/false
teslamate/cars/1/charge_port_door_open → true/false

Dans Home Assistant, avec l’intégration MQTT active, ces topics deviennent des entités via le fichier configuration.yaml :

mqtt:
  sensor:
    - name: "Tesla Battery Level"
      state_topic: "teslamate/cars/1/battery_level"
      unit_of_measurement: "%"
      device_class: battery

    - name: "Tesla State"
      state_topic: "teslamate/cars/1/state"

    - name: "Tesla Geofence"
      state_topic: "teslamate/cars/1/geofence"

Automatisations basées sur la Tesla

Notification charge terminée

alias: "Tesla - Charge terminée"
trigger:
  - platform: mqtt
    topic: teslamate/cars/1/state
    payload: online
condition:
  - condition: template
    value_template: "{{ trigger.payload_json == 'online' }}"
  - condition: numeric_state
    entity_id: sensor.tesla_battery_level
    above: 95
action:
  - service: notify.telegram
    data:
      message: "Tesla chargée à {{ states('sensor.tesla_battery_level') }}%"

Volets automatiques à l’arrivée

alias: "Tesla - Arrivée maison"
trigger:
  - platform: mqtt
    topic: teslamate/cars/1/geofence
    payload: "Home"
action:
  - delay: "00:02:00"
  - service: script.volets_ouvrir_salon_cuisine
  - service: scene.turn_on
    target:
      entity_id: scene.salon_accueil

Le topic geofence est plus fiable que le device_tracker GPS natif pour les automatisations d’arrivée — TeslaMate filtre les faux positifs mieux que HA par défaut.

[SCREENSHOT: Grafana — dashboard TeslaMate avec les statistiques d’efficacité, l’historique des charges et la carte des trajets]

Les dashboards Grafana

TeslaMate installe automatiquement des dashboards Grafana préconfigurés. Tu as immédiatement accès à :

  • Résumé des trajets (distance, consommation, efficacité)
  • Historique de charge (durée, kWh ajoutés, coût)
  • Carte des trajets avec visualisation géographique
  • État de la batterie dans le temps
  • Comparaison de consommation par météo

Accès Grafana : http://<IP>:3100. Login par défaut : admin/admin.

Consommation du setup

La stack TeslaMate consomme ~300 Mo de RAM au total (TeslaMate + PostgreSQL + Grafana). Ça tourne sur le nœud 2 de mon cluster sans impact perceptible.

💡 Le petit truc en plus

Définis une zone « Travail » dans TeslaMate en plus de « Maison ». TeslaMate calcule automatiquement les statistiques par destination — trajets domicile-travail, consommation spécifique, durée moyenne. C’est aussi utile pour les automatisations HA : tu peux déclencher des actions différentes selon que la voiture arrive au travail ou à la maison. Par exemple : ne pas ouvrir les volets si la voiture arrive mais pas à la maison (quelqu’un d’autre conduit la voiture).

👉 Pour aller plus loin : mes automatisations Home Assistant, Zigbee2MQTT pour les autres appareils, et le setup homelab complet.

TeslaMate : la Tesla dans ton homelab

TeslaMate transforme la Tesla en source de données exploitable. Ce n’est pas juste un logger de trajets — c’est un tableau de bord qui permet de comprendre et d’optimiser son usage.

Si tu as Home Assistant, les entités MQTT TeslaMate s’intègrent parfaitement pour des automatisations : notifications de charge, arrivée à la maison, alerte batterie faible.

FAQ

TeslaMate provoque-t-il du vampire drain sur la batterie ?

TeslaMate peut réveiller la voiture pour récupérer les données. En mode « sleep », il attend que la voiture se réveille naturellement. Sur ma Model 3, je mesure environ 1 % de perte par jour — similaire à l’app officielle Tesla.

L’utilisation de TeslaMate annule-t-elle la garantie Tesla ?

Non. TeslaMate utilise l’API officielle Tesla, la même que l’application mobile. Aucune modification du véhicule n’est nécessaire.

Peut-on utiliser TeslaMate sans Home Assistant ?

Oui, TeslaMate fonctionne de manière autonome avec ses dashboards Grafana. L’intégration Home Assistant via MQTT est optionnelle mais apporte les automatisations (ex : lancer la charge quand l’électricité est moins chère).

Vous avez aimé cet article ?

Rejoignez la newsletter : nouveaux articles & contenu exclusif directement par mail, sans pubs.

Je m'abonne

Pour aller plus loin