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 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 ? Guide BuyVM.

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 la fonction $100 en crédits gratuits (doit utiliser les crédits dans les 30 jours)!

$100 en crédits gratuits
Nous percevons une commission si vous effectuez un achat, sans frais supplémentaires pour vous.

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 | Graydon Schwartz
Passez la souris sur le (+) plus et cliquez sur Déployer un nouveau serveur

Choisir le serveur: Cloud Compute

vultrchooseservercloudcompute20200413 | Graydon Schwartz
Comment configurer TeslaMate avec Docker 24


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 | Graydon Schwartz
Comment configurer TeslaMate avec Docker 25

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

vultrserversize20200413 | Graydon Schwartz
Comment configurer TeslaMate avec Docker 26

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

Cliquez sur Déployez maintenant !

vultrdeploynow20200413 | Graydon Schwartz
Comment configurer TeslaMate avec Docker 27

Cliquez sur Produits !

vultrproducts20200413 | Graydon Schwartz
Comment configurer TeslaMate avec Docker 28
vultryourproducts20200413 | Graydon Schwartz
Comment configurer TeslaMate avec Docker 29

Informations sur le serveur

vultrserverinfodocker20200413 | Graydon Schwartz
Comment configurer TeslaMate avec Docker 30

Télécharger PuTTY

Entrez l'adresse IP
et cliquez sur Ouvrez !

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
    dépend_on :
      - base de données
    environnement :
      - UTILISATEUR_BASE=${TM_DB_USER}
      - DATABASE_PASS=${TM_DB_PASS}
      - NOM_DE_LA_BASE=${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.rouers.teslamate-insecure.middlewares=redirect"
      - "traefik.http.routeurs.teslamate-ws.rule=Host(`${FQDN_TM}`) && Path(`/live/websocket`)"
      - "traefik.http.routers.teslamate-ws.entrypoints=websecure"
      - "traefik.http.routeurs.teslamate-ws.tls"
      - "traefik.http.routeurs.teslamate.rule=Host(`${FQDN_TM}`)"
      - "traefik.http.routeurs.teslamate.middlewares=teslamate-auth"
      - "traefik.http.routeurs.teslamate.entrypoints=websecure"
      - "traefik.http.routeurs.teslamate.tls.certresolver=tmhttpchallenge"
    cap_drop :
      - tous

  base de données :
    image : postgres:13
    restart : always
    environnement :
      - 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
    redémarrage : toujours
    environnement :
      - DATABASE_USER=${TM_DB_USER}
      - MOT DE PASSE=${TM_DB_PASS}
      - NOM_DE_LA_BASE=${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=%(protocole)s://%(domaine)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.routeurs.grafana-insecure.rule=Host(`${FQDN_TM}`)"
      - "traefik.http.routeurs.grafana-insecure.middlewares=redirect"
      - "traefik.http.routeurs.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
    commande : 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
    commande :
      - "--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"
      - "--certificatsresolvers.tmhttpchallenge.acme.email=${LETSENCRYPT_EMAIL}"
      - "--certificatsresolvers.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 | Graydon Schwartz
Panneau de contrôle Vultr

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

teslamatehomescreenfeb212020 | Graydon Schwartz
É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.

teslamatehomescreencharging1kwfeb212020 | Graydon Schwartz
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 | Graydon Schwartz
13 mi/hr | 16A | 3kW
teslamatecharginggraph3kwfeb212020 | Graydon Schwartz
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 | Graydon Schwartz
Écran d'accueil du TeslaMate
teslamatehomescreenmarch212020 1 | Graydon Schwartz
Tapez ou passez la souris sur "Tableaux de bord
teslamatehomescreenmarch212020 2 | Graydon Schwartz
Tapez ou cliquez sur "Voyage
teslamatehomescreenmarch212020 3 | Graydon Schwartz
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 | Graydon Schwartz
TeslaMate > Exemple de voyage
teslamatehomescreenmarch212020 4 | Graydon Schwartz
TeslaMate > Exemple de voyage (gros plan)

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

| Graydon Schwartz

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.

Partager à...