Catégories
Logiciel Technologie Tesla

Comment configurer TeslaMate avec Docker

Dans cet article, je vais vous expliquer pas à pas comment installer et paramétrer TeslaMate sur votre Vultr Instance de cloud computing. 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 because they have an ideal way of setting up a docker server with their preset image and getting started very quickly. I also like if you aren’t happy with TeslaMate you can easily destroy the cloud instance and go on with your day. However, see how far you can take it with the $100 en crédits gratuits (doit utiliser les crédits dans les 30 jours)!

| graydonschwartz.com

Caractéristiques du TeslaMate :

  • Rapports de conduite et de charge
  • Rapport sur l'efficacité de la conduite
  • Consommation d'énergie (nette / brute)
  • Chargement de l'énergie ajoutée par rapport à l'énergie utilisée
  • Vampire Drain
  • Portée projetée du 100% (dégradation de la batterie)
  • Statistiques de charge
  • Statistiques d'entraînement
  • Historique des mises à jour installées
  • Voir quand votre voiture était en ligne ou endormie
  • Carte routière de la vie
  • Adresses visitées

Vérifiez AUSSI le statut de votre voiture (inc. niveau de la batterie) sans réveiller votre voiture !

Nous suivrons les instructions avancées des développeurs, car nous utiliserons une instance en nuage. Vous pourriez aussi l'installer sur un Rasberry Pi ou un ordinateur supplémentaire que vous avez sous la main. J'aime cependant cette option avec Vultr parce qu'il est facile à reproduire pour n'importe qui.

Déployer une nouvelle instance

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

Choisir le serveur: Cloud Compute

vultrchooseservercloudcompute20200413 | graydonschwartz.com
How to Setup TeslaMate with Docker 23


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, États-Unis
  • Seattle, États-Unis
  • Silicon Valley, États-Unis
  • 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
How to Setup TeslaMate with Docker 24

Taille du serveur: 25 GB SSD
$5.00/mois OU $0.007/h
1 CPU
1024MB Mémoire*
1000GB Bande passante

vultrserversize20200413 | graydonschwartz.com
Comment configurer TeslaMate avec Docker 25

*Note : Docker nécessite un plan avec au moins 768MB de mémoire.

Cliquez sur Déployez maintenant !

vultrdeploynow20200413 | graydonschwartz.com
Comment configurer TeslaMate avec Docker 26

Cliquez sur Produits !

vultrproducts20200413 | graydonschwartz.com
Comment configurer TeslaMate avec Docker 27
vultryourproducts20200413 | graydonschwartz.com
Comment configurer TeslaMate avec Docker 28

Informations sur le serveur

vultrserverinfodocker20200413 | graydonschwartz.com
Comment configurer TeslaMate avec Docker 29

Télécharger PuTTY

Entrez l'adresse IP
et cliquez sur Ouvrez !

GUIDE: Advanced Docker install (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/
Saisissez votre nom d'utilisateur, mot de passe et sélectionnez Bcrypt (à partir de Apache v2.4)
Dans l'exemple ci-dessous, j'ai saisi nom d'utilisateur et mot de passe pour ces champs :

Exemple :

mon:$2y$10$as5PEnYaoGEx2ebCFjdK0e9PBshAsvzIeAKijwNgeMSC9oJkDNo2.

Copiez et collez maintenant 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 commencer le Teslamate avec Docker !

docker-compose up

Note : Il se peut que vous deviez 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.

Se connecter à TeslaMate

  1. Ouvrir 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. Les tableaux de bord Grafana sont disponibles à l'adresse suivante: https://grafana.example.com.
  4. Entrez le nom d'utilisateur et le mot de passe :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 le Teslamate. $0.02 pour compléter 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 indiquant l'emplacement de votre véhicule Tesla.

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

Je suis allé faire une session de charge à la prise régulière 12a la plus proche pour montrer à quoi ressemble une session de charge avec TeslaMate. Une interface propre ! 🙂

teslamatehomescreenching3kwfeb212020 | graydonschwartz.com
13 mi/hr | 16A | 3kW
teslamatecharginggraph3kwfeb212020 | graydonschwartz.com
13 mi/hr | 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.

  • Ajouter Tableau de bord du voyage: Ce tableau de bord a été construit pour visualiser des trajets plus longs. Il donne un aperçu de tous les trajets et de toutes les 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 ce nouveau Tableau de bord du voyage ajouté dans la nouvelle version. Cela sera super utile pour les voyages sur route de Tesla bien sûr ! 🙂 .

C'est la documentation que j'ai utilisée pour construire certaines 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 fonction de voyage à part de Teslamate :

  1. Ouvrir 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 la présélection dans "5 dernières minutes", jusqu'à "5 dernières années"ou sélection d'une plage de dates personnalisée.
teslamatehomescreenmarch212020 | graydonschwartz.com
Écran d'accueil du TeslaMate
teslamatehomescreenmarch212020 1 | graydonschwartz.com
Tapez ou passez la souris sur "Tableaux de bord
teslamatehomescreenmarch212020 2 | graydonschwartz.com
Tapez ou cliquez sur "Voyage
teslamatehomescreenmarch212020 3 | graydonschwartz.com
Sélectionnez la présélection dans "5 dernières minutes", jusqu'à "5 dernières années"ou sélection d'une plage de dates personnalisée.
teslamatetriplast1yearmarch212020 | graydonschwartz.com
TeslaMate > Exemple de voyage
teslamatehomescreenmarch212020 4 | graydonschwartz.com
TeslaMate > Exemple de voyage (gros plan)

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

| graydonschwartz.com

Par Graydon Schwartz

Pour en savoir plus sur Graydon, consultez le site À propos de moi page.

Laisser un commentaire

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