Catégories
Logiciel Technologie Tesla

Comment configurer TeslaMate avec Docker

Dans cet article, je vais vous expliquer étape par étape comment installer et configurer TeslaMate sur votre Instance Vultr Cloud. De la sélection de la configuration de votre VM à l’installation et la configuration de l’outil sur votre machine virtuelle. Vous cherchez un guide sur BuyVM ? Cliquez ici.

Dans ce tutoriel, j’utilise Vultr parce qu’ils ont un moyen idéal de configurer un serveur Docker avec leur image prédéfinie et de démarrer très rapidement. J’aime aussi le fait que si vous n’êtes pas satisfait de TeslaMate, vous pouvez facilement détruire l’instance en nuage et continuer votre journée. Cependant, voyez jusqu’où vous pouvez aller avec les 100 $ de crédits gratuits(vous devez utiliser les crédits dans les 30 jours) !

| graydonschwartz.com

Caractéristiques de TeslaMate :

  • Rapports de conduite et de charge
  • Rapport d’efficacité de conduite
  • Consommation d’énergie (nette / brute)
  • Énergie de charge ajoutée par rapport à l’énergie utilisée
  • Drainage des vampires
  • Projection de l’autonomie à 100% (dégradation de la batterie)
  • Statistiques de charge
  • Statistiques du moteur
  • Historique des mises à jour installées
  • Voir quand votre voiture était en ligne ou endormie
  • Carte de conduite à vie
  • Adresses visitées

Vérifiez AUSSI l’état de votre voiture(y compris le niveau de la batterie) sans la réveiller !

Nous suivrons les instructions avancées des développeurs car nous utiliserons une instance en nuage, mais vous pourriez aussi l’installer sur un Rasberry Pi ou un ordinateur supplémentaire que vous avez sous la main. Je préfère cependant cette option avec Vultr car elle est facile à reproduire pour n’importe qui.

Déployer une nouvelle instance

vultrplus20200413 | graydonschwartz.com
Passez la souris sur le signe plus (+) et cliquez sur Déployer un nouveau serveur

Choisissez Serveur: Cloud Compute

vultrchooseservercloudcompute20200413 | graydonschwartz.com
Comment configurer TeslaMate avec Docker 25


Emplacement du serveur: Chicago (j’ai choisi Chicago mais vous pouvez choisir ce qui vous convient le mieux) :

  • Atlanta, États-Unis
  • New York (NJ), États-Unis
  • Chicago, États-Unis
  • Dallas, États-Unis
  • Los Angeles, États-Unis
  • Miami, É.-U
  • Seattle, USA
  • Silicon Valley, USA
  • Toronto, CANADA
  • Amsterdam, Pays-Bas
  • Paris, France
  • Francfort, Allemagne
  • Londres, Royaume-Uni
  • Tokyo, Japon
  • Singapour, Singapour
  • Sydney, Australie

Type de serveur: Application : Docker: Sur CentOS 7 x64 19.03.4-ce

vultrservertypeappdocker20200413 | graydonschwartz.com
Comment configurer TeslaMate avec Docker 26

Taille du serveur: 25 GB SSD
$5.00/mo OU $0.007/h1
CPU1024MB
Mémoire*1000GB
Bande passante


vultrserversize20200413 | graydonschwartz.com
Comment configurer TeslaMate avec Docker 27

*Note : Docker requiert un plan avec au moins 768MB de mémoire

Cliquez sur Déployer maintenant !

vultrdeploynow20200413 | graydonschwartz.com
Comment configurer TeslaMate avec Docker 28

Cliquez sur Produits !

vultrproducts20200413 | graydonschwartz.com
Comment configurer TeslaMate avec Docker 29
vultryourproducts20200413 | graydonschwartz.com
Comment configurer TeslaMate avec Docker 30

Informations sur le serveur

vultrserverinfodocker20200413 | graydonschwartz.com
Comment configurer TeslaMate avec Docker 31

Téléchargez PuTTY

Entrez l’adresse IP et cliquez sur Ouvrir !

GUIDE : Installation avancée de Docker (Traefik, Let’s Encrypt, HTTPS, HTTP Basic Auth

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Configuration – docker-compose.yml

version: "3"

services:
  teslamate:
    image: teslamate/teslamate:latest
    restart: always
    depends_on:
      - database
    environment:
      - DATABASE_USER=${TM_DB_USER}
      - DATABASE_PASS=${TM_DB_PASS}
      - DATABASE_NAME=${TM_DB_NAME}
      - DATABASE_HOST=database
      - MQTT_HOST=mosquitto
      - VIRTUAL_HOST=${FQDN_TM}
      - CHECK_ORIGIN=true
      - TZ=${TM_TZ}
    volumes:
      - ./import:/opt/app/import
    labels:
      - "traefik.enable=true"
      - "traefik.port=4000"
      - "traefik.http.middlewares.redirect.redirectscheme.scheme=https"
      - "traefik.http.middlewares.teslamate-auth.basicauth.realm=teslamate"
      - "traefik.http.middlewares.teslamate-auth.basicauth.usersfile=/auth/.htpasswd"
      - "traefik.http.routers.teslamate-insecure.rule=Host(`${FQDN_TM}`)"
      - "traefik.http.routers.teslamate-insecure.middlewares=redirect"
      - "traefik.http.routers.teslamate-ws.rule=Host(`${FQDN_TM}`) && Path(`/live/websocket`)"
      - "traefik.http.routers.teslamate-ws.entrypoints=websecure"
      - "traefik.http.routers.teslamate-ws.tls"
      - "traefik.http.routers.teslamate.rule=Host(`${FQDN_TM}`)"
      - "traefik.http.routers.teslamate.middlewares=teslamate-auth"
      - "traefik.http.routers.teslamate.entrypoints=websecure"
      - "traefik.http.routers.teslamate.tls.certresolver=tmhttpchallenge"
    cap_drop:
      - all

  database:
    image: postgres:13
    restart: always
    environment:
      - POSTGRES_USER=${TM_DB_USER}
      - POSTGRES_PASSWORD=${TM_DB_PASS}
      - POSTGRES_DB=${TM_DB_NAME}
    volumes:
      - teslamate-db:/var/lib/postgresql/data

  grafana:
    image: teslamate/grafana:latest
    restart: always
    environment:
      - DATABASE_USER=${TM_DB_USER}
      - DATABASE_PASS=${TM_DB_PASS}
      - DATABASE_NAME=${TM_DB_NAME}
      - DATABASE_HOST=database
      - GRAFANA_PASSWD=${GRAFANA_PW}
      - GF_SECURITY_ADMIN_USER=${GRAFANA_USER}
      - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PW}
      - GF_AUTH_ANONYMOUS_ENABLED=false
      - GF_SERVER_DOMAIN=${FQDN_TM}
      - GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s/grafana
      - GF_SERVER_SERVE_FROM_SUB_PATH=true

    volumes:
      - teslamate-grafana-data:/var/lib/grafana
    labels:
      - "traefik.enable=true"
      - "traefik.port=3000"
      - "traefik.http.middlewares.redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.grafana-insecure.rule=Host(`${FQDN_TM}`)"
      - "traefik.http.routers.grafana-insecure.middlewares=redirect"
      - "traefik.http.routers.grafana.rule=Path(`/grafana`) || PathPrefix(`/grafana/`)"
      - "traefik.http.routers.grafana.entrypoints=websecure"
      - "traefik.http.routers.grafana.tls.certresolver=tmhttpchallenge"

  mosquitto:
    image: eclipse-mosquitto:2
    restart: always
    command: mosquitto -c /mosquitto-no-auth.conf
    ports:
      - 127.0.0.1:1883:1883
    volumes:
      - mosquitto-conf:/mosquitto/config
      - mosquitto-data:/mosquitto/data

  proxy:
    image: traefik:v2.4
    restart: always
    command:
      - "--global.sendAnonymousUsage=false"
      - "--providers.docker"
      - "--providers.docker.exposedByDefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.tmhttpchallenge.acme.httpchallenge=true"
      - "--certificatesresolvers.tmhttpchallenge.acme.httpchallenge.entrypoint=web"
      - "--certificatesresolvers.tmhttpchallenge.acme.email=${LETSENCRYPT_EMAIL}"
      - "--certificatesresolvers.tmhttpchallenge.acme.storage=/etc/acme/acme.json"
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./.htpasswd:/auth/.htpasswd
      - ./acme/:/etc/acme/
      - /var/run/docker.sock:/var/run/docker.sock:ro

volumes:
  teslamate-db:
  teslamate-grafana-data:
  mosquitto-conf:
  mosquitto-data:

Configuration – .env

TM_DB_USER=teslamate
TM_DB_PASS=secret
TM_DB_NAME=teslamate

GRAFANA_USER=admin
GRAFANA_PW=admin

FQDN_TM=teslamate.example.com

TM_TZ=Europe/Berlin

LETSENCRYPT_EMAIL=yourperson@example.com

Configuration – .htpasswd

Conformément à la documentation de TeslaMate. Je vous recommande d’utiliser cet outil pour créer votre fichier .htpasswd
http://www.htaccesstools.com/htpasswd-generator/
Entrez votre nom d’utilisateur, votre mot de passe et sélectionnez Bcrypt (Apache v2.4 et plus).
Dans l’exemple ci-dessous, j’ai entré le nom d’utilisateur et le mot de passe dans ces champs :

Exemple :

my:$2y$10$as5PEnYaoGEx2ebCFjdK0e9PBshAsvzIeAKijwNgeMSC9oJkDNo2.

Maintenant, copiez et collez ces informations dans votre fichier .htpasswd.

vi .htpasswd (ou votre éditeur de texte préféré)

Assurez-vous de configurer votre mot de passe avant de démarrer le Teslamate avec Docker !

docker-compose up

Remarque : vous devrez peut-être exécuter cette commande deux fois pour qu’elle fonctionne.



Configuration du DNS

Vous devrez faire pointer teslamate.example.com + grafana.exampe.com (votre sous-domaine) vers l’adresse IP qui vous a été fournie par Vultr lorsque vous avez créé votre serveur virtuel. Pour ce faire, contactez votre hébergeur ou connectez-vous à votre panneau de contrôle pour gérer vos enregistrements DNS et faire ajouter ces entrées.

Connexion à TeslaMate

  1. Ouvrez l’interface web https://teslamate.example.com
    Connectez-vous avec les détails que vous avez saisis dans le fichier .htpasswd, puis vous serez invité à vous connecter avec votre compte Tesla.
  2. Connectez-vous avec votre compte Tesla
  3. Lestableaux de bord Grafana sont disponibles à l’adresse suivante: https://grafana.example.com.
  4. Saisissez d’abord username:password:admin:admin et vous serez invité à changer le mot de passe lors de votre première connexion.

J’ai dépensé 0,01 $ ou 1 penny pour tester Teslamate. 0,02 $ pour terminer le tutoriel. 🙂

vultrdockercloudinstance | graydonschwartz.com
Panneau de contrôle Vultr

Vous pouvez passer de Celcius à Fahrenheit et de Kilomètres à Miles dans les paramètres.

teslamatehomescreenfeb212020 | graydonschwartz.com
Écran d’accueil du TeslaMate

Voici à quoi ressemble l’écran d’accueil. Vous verrez également une carte avec une épingle sur l’emplacement de votre véhicule Tesla.

teslamatehomescreencharging1kwfeb212020 | graydonschwartz.com
5 mi/hr | 12A | 3kW

Je suis allé faire une session de charge à la prise 12A la plus proche pour montrer à quoi ressemble une session de charge avec TeslaMate. Interface propre ! 🙂

teslamatehomescreencharging3kwfeb212020 | graydonschwartz.com
13 mi/hr | 16A | 3kW
teslamatecharginggraph3kwfeb212020 | graydonschwartz.com
13 mi/h | 16A | 3kW

Mise à jour du 10 mars 2020

TeslaMate a publié une mise à jour vers la v1.17.1 il y a environ 16 jours

  • Ajout du tableau de bord Trip: Ce tableau de bord a été construit pour visualiser les longs trajets. Il offre un aperçu de tous les trajets et charges qui ont été enregistrés sur une période de plusieurs heures ou jours
  • Page de lancement du TeslaMate

Je suis impatient de tester le nouveau tableau de bord des trajets ajouté dans la nouvelle version. Il sera très utile pour les voyages en voiture de Tesla, bien sûr 🙂

C’est la documentation que j’ai utilisée pour construire des parties de ce tutoriel :
https://docs.teslamate.org/docs/guides/traefik
https://docs.teslamate.org/docs/guides/portainer

Mise à jour du 21 mars 2020

Comment utiliser la nouvelle fonctionnalité de voyage en dehors de Teslamate :

  1. Ouvrez l’interface web https://teslamate.example.com
  2. Tableaux de bord => Tapez ou cliquez sur « Voyage »
  3. Tapez ou cliquez sur« Aujourd’hui jusqu’à présent »
  4. Sélectionnez un préréglage de« 5 dernières minutes« , jusqu’à« 5 dernières années » ou une sélection de plage de dates personnalisée.
teslamatehomescreenmarch212020 | graydonschwartz.com
Écran d’accueil du TeslaMate
teslamatehomescreenmarch212020 1 | graydonschwartz.com
Tapez ou cliquez sur« Tableaux de bord »
teslamatehomescreenmarch212020 2 | graydonschwartz.com
Tapez ou cliquez sur« Trajet« 
teslamatehomescreenmarch212020 3 | graydonschwartz.com
Sélectionnez un préréglage de« 5 dernières minutes« , jusqu’à« 5 dernières années » ou une sélection de plage de dates personnalisée.
teslamatetriplast1yearmarch212020 | graydonschwartz.com
TeslaMate > Exemple de trajet
teslamatehomescreenmarch212020 4 | graydonschwartz.com
TeslaMate > Exemple de trajet (gros plan)

J’espère que ce guide de configuration vous a été utile 🙂

| graydonschwartz.com

Special Thanks

TESMAT at Tesla Supercharger

TESMAT

TESMAT could be the right mattress for your next Supercharger nap, car camping trip, or the perfect gift for your favorite Tesla Model 3/Y owner. You can use my coupon code to save on your purchase.

Learn more:

Luminar AI

Luminar AI

Use the button below and feel free to use the discount code (GRAYDON) to give yourself a 50% discount at checkout on Luminar:

I may earn a small commission for my endorsement, recommendation, testimonials and / or links to products or services linked above. Your purchase supports me in bringing you more photographs, travel guides, and more trips around the world.

Par Graydon Schwartz

Pour en savoir plus sur Graydon, consultez la page A propos de Me.