Installer TeslaMate sur un NAS Synology en 5 minutes

Le week-end dernier, j’ai aidé un utilisateur du Forum de NAS à installer TeslaMate sur son Synology. Vous allez voir, c’est relativement simple, cependant il y a quelques petites subtilités. C’est pour cette raison que je vous propose aujourd’hui ce guide.

TeslaMate Synology - Installer TeslaMate sur un NAS Synology en 5 minutes

TeslaMate et NAS Synology

TeslaMate est comme un carnet de bord numérique gratuit et open source que vous pouvez installer sur un NAS, un Raspberry Pi, etc. L’application fonctionne en interrogeant l’API de Tesla et en enregistrant les données renvoyées dans une base de données. L’application permet d’offrir des visualisations détaillées et de nombreuses statistiques sur l’utilisation de la voiture électrique. L’outil est très apprécié pour ses nombreuses informations sur l’état de la voiture, l’historique de charge, des trajets, etc.

Installer Container Manager

Tout d’abord, vous devez avoir le paquet Container Manager (docker) installé. Cela se passe par le Centre de Paquets. Ensuite, depuis File Station, déplacez vous dans le dossier docker et créez un nouveau dossier TeslaMate. Déplacez vous dans ce nouveau dossier et créez 5 sous-dossiers : import, teslamate-db, teslamate-grafana-data, mosquitto-conf et mosquitto-data.

Synology Filestation TeslaMate

Au niveau du dossier TeslaMate, faites un clic-droit puis choisissez Propriétés. Allez sur l’onglet Permission et cliquez sur le bouton Créer. En face de Utilisateur ou groupe, vous sélectionnerez SYSTEM et dans la section Permission, vous cochez les cases Lire et Écrire.

ajout system - Installer TeslaMate sur un NAS Synology en 5 minutes

Ensuite, vous cliquez sur le bouton Effectuer

autorisation SYSTEM

Une fois de retour sur l’onglet Permission, cochez la case en bas « Appliquer à ce dossier, ces sous-dossiers et fichiers » et cliquez sur le bouton Sauvegarder. Toujours à la racine de TeslaMate, vous déposez ce fichier compose.yaml dont voici le contenu :

services:
  teslamate:
    image: teslamate/teslamate:latest
    restart: always
    environment:
      - ENCRYPTION_KEY=aZ3Rt4yu$ #remplacer pour chiffrer les jetons de l'API Tesla
      - DATABASE_USER=teslamate
      - DATABASE_PASS=q$3eRt+uY #remplacer avec votre propre mot de passe
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
      - MQTT_HOST=mosquitto
      - TM_TZ=Europe/Paris
    ports:
      - 4075:4000
    volumes:
      - ./import:/opt/app/import
    cap_drop:
      - all

  database:
    image: postgres:15
    restart: always
    environment:
      - POSTGRES_USER=teslamate
      - POSTGRES_PASSWORD=q$3eRt+uY #remplacer avec votre propre mot de passe
      - POSTGRES_DB=teslamate
    volumes:
      - ./teslamate-db:/var/lib/postgresql/data

  grafana:
    image: teslamate/grafana:latest
    restart: always
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS=q$3eRt+uY #remplacer avec votre propre mot de passe
      - 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

Rentrons un peu dans le détail… Pour faire fonctionner, TeslaMate a besoin de 3 autres applications (container) :

  • Grafana : pour les tableaux de bord et graphiques ;
  • PostgreSQL : pour stocker les données en local sur le NAS ;
  • Mosquitto : serveur de messagerie MQTT (Message Queuing Telemetry Transport).

TeslaMate utilise par défaut le port 4000, mais ici j’ai fait le choix d’utiliser le port 4075. Pour la base de données, nous utiliserons le dossier teslamate-db avec le nom d’utilisateur teslamate avec le mot de passe q$3eRt+uY.

Ouvrez Container Manager et allez sur le menu de gauche Projet, puis appuyez sur le bouton Créer. Donnez un nom à votre projet (ici : teslamate) et sélectionnez le répertoire TeslaMate contenant le fichier compose.yaml fraichement téléchargé. Le système détecte automatiquement la présence du fichier, cliquez sur le bouton OK. Vous devriez avoir quelque chose de ce style :

teslamate container manager - Installer TeslaMate sur un NAS Synology en 5 minutes

Il ne reste plus qu’à cliquer sur le bouton Suivant, puis encore Suivant et enfin le bouton Effectué. Maintenant, on patiente…

terminal teslamate - Installer TeslaMate sur un NAS Synology en 5 minutes

C’est terminé, vous pouvez appuyer le bouton Fermer.

Accéder à TeslaMate

Ouvrez un nouvel onglet dans votre navigateur et tapez dans la barre d’adresse de votre navigateur :

  • http://AdresseIPduNAS:4075
  • http://NomduNAS:4075

La mire ci-dessous devrait apparaitre :

teslamate docker ok - Installer TeslaMate sur un NAS Synology en 5 minutes
Si vous utilisez la fonction pare-feu (firewall) sur votre NAS Synology, pensez à ajouter une règle pour le port 4075 😉 Pour récupérer les jetons, il faudra passer par un outil tiers (le lien est sous le bouton Connexion).

Enfin pour terminer, allez dans Réglages (en haut à droite) puis tout en bas de la page vous saisirez l’adresse de Grafana dans le champs Tableaux de bord :

  • http://AdresseIPduNAS:3000
  • http://NomduNAS:3000

le mot de passe par défaut est admin.

Voila, c’est terminé !

      1. Petite question sur openmediavault j’ai actuellement docker installé. La procédure et elle la même ?

  1. Merci pour cet article intéressant !

    Ce serait possible de le compléter avec la méthode pour l’upgrade en cas de nouvelle version disponible des différents composants ? Merci !

  2. merci pour ton tuto mais chez moi le grafana n’a pas demarré et j’ai pas le tableau de bord . dans reglage / tableau de bord j’ai aucune url . est ce que c’est normal ? merci

  3. Bonjour,

    J’ai suivi le tutoriel et vous remercie d’avoir pris la peine de le faire. Très clair. Je ne pense pas avoir manqué quoi que ce soit, lorsque je lance l’adresse de mon synology et pointe sur le port 4075, j’obtiens une page:

     »
    La connexion a été réinitialisée

    La connexion avec le serveur a été réinitialisée pendant le chargement de la page.

    Le site est peut-être temporairement indisponible ou surchargé. Réessayez plus tard ;
    Si vous n’arrivez à naviguer sur aucun site, vérifiez la connexion au réseau de votre ordinateur ;
    Si votre ordinateur ou votre réseau est protégé par un pare-feu ou un proxy, assurez-vous que Firefox est autorisé à accéder au Web. »

    Lorsque je fais de même sur le port 3000, je suis sur une invite de saisie d’identifiants grafana.

    J’ai dans le doute désactivé mon pare-feu en me disant que j’avais mal configuré ce dernier sur les exceptions, mais cela ne change rien. Toujours le même message sur la page d’accès lorsque je pointe sur le port 4075.

    Avez-vous une idée de la source potentielle de mon problème ?

    Cordialement

  4. Je me permets de faire une mise à jour suite à mon commentaire précédent. Il semble que le problème venait de mon navigateur (Mozilla Firefox) puisqu’en entrant la même adresse: adresse du synology:4075 sur Edge j’ai pu accéder à l’invite de saisie d’identifiants de TeslaMate

  5. Juste pour info ,

    Pour se connecter à Grafana c’est « admin »(pour l’identifiant et le MP) et non l’identifiant du NAS.

  6. Bonjour, merci beaucoup pour le tuto qui fonctionne parfaitement.
    J’ai une question bonus, savez-vous comment intégrer sur une telle installation un backup de teslamate? J’ai réussi à faire le backup sur mon raspi et j’ai bien le fichier teslamate.bck comme indiqué dans la doc officielle mais impossible de le restaurer sur le NAS. J’ai essayé d’activer telnet et ssh et de faire comme indiqué dans la doc mais ca ne fonctionne pas, il m’indique ne pas trouver le fichier teslamate.bck et je n’ai aucune idée d’ou je dois le placer (j’ai essayé à la racine du dossier docker et du dossier teslamate sans succès).
    Pour la doc j’ai suivi les instructions de cette page
    https://docs.teslamate.org/docs/maintenance/backup...

    merci d’avance si vous prenez le temps de me répondre et sinon merci dans tous les cas pour le tuto

    1. Je n’ai pas testé, mais tu devrais essayer:
      docker cp teslamate.bck teslamate-database-1:/tmp/teslamate.bck

      Ici, je suppose que ton est teslamate-database-1, sinon change le par ton nom.

      Avant le restore, tu devrais arrêter temporairement le container teslamate (juste le container, pas toute la stack/projet) pour éviter des écritures durant la restauration.
      docker-compose stop teslamate

      Ensuite tu procèdes avec le restore:
      docker exec -i teslamate-database-1 psql -U teslamate -d teslamate -f /tmp/teslamate.bck

      Et tu redémarres le container teslamate:
      docker-compose start teslamate

  7. Super guide, merci!

    Seul petit problème, avec la dernière version de TeslaMate (2.0.0), il faut mettre a jour PostgreSQL à la version 17. Une fois que c’est fait, postgres tombe dans une boucle d’arrêt / démarrage. Selon les logs de docker-compose la structure de données est incompatible avec la version 17.

    FATAL: database files are incompatible with server
    DETAIL: The data directory was initialized by PostgreSQL version 15, which is not compatible with this version 17.4 (Debian 17.4-1.pgdg120+2).

    Devrais-je simplement détruire le répertoire ./teslamate-db et le recréer (après avoir fait une sauvegarde de la BD)?

    Merci

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.