Kategorien
Software Technologie Tesla

Wie TeslaMate mit Docker eingerichtet wird

In diesem Artikel werde ich Sie Schritt für Schritt durch die Installation und Einrichtung von TeslaMate auf Ihrer Vultr Cloud-Instanz. Von der Auswahl Ihrer VM-Konfiguration bis zur Installation und Konfiguration des Tools auf Ihrer virtuellen Maschine. Suchen Sie eine Anleitung zu BuyVM? BuyVM-Leitfaden.

In diesem Lernprogramm verwende ich Vultr weil sie eine ideale Möglichkeit haben, einen Docker-Server mit ihrem voreingestellten Image einzurichten und sehr schnell loszulegen. Mir gefällt auch, dass man, wenn man mit TeslaMate nicht zufrieden ist, die Cloud-Instanz einfach zerstören und mit seinem Tag weitermachen kann. Wie auch immer, schauen Sie, wie weit Sie es bringen können mit dem $100 in kostenlosen Credits (muss Guthaben innerhalb von 30 Tagen verwenden)!

$100 in kostenlosen Credits
SSD VPS-Server, Cloud-Server und Cloud-Hosting von Vultr
$3,50/Monat

Einfache Bereitstellung von Cloud-Servern, Bare Metal und Speicher weltweit.

  • Cloud Compute, Bare Metal, Dedizierte Cloud, Kubernetes
  • Sie erhalten $100, um die Vultr-Plattform zu testen.
Wir erhalten eine Provision, wenn Sie einen Kauf tätigen, ohne dass Ihnen dadurch zusätzliche Kosten entstehen.

TeslaMate Merkmale:

  • Fahr- und Ladeberichte
  • Bericht über die Effizienz des Fahrens
  • Energieverbrauch (netto / brutto)
  • Aufladung Hinzugefügte Energie vs. verbrauchte Energie
  • Vampir-Drainage
  • Voraussichtliche Reichweite des 100% (Batterieverschleiß)
  • Auflade-Statistiken
  • Antriebsstatistiken
  • Historie der installierten Updates
  • Sehen Sie, wann Ihr Auto online war oder schlief
  • Lifetime Driving Map
  • Besuchte Adressen

ALSO überprüfen Sie den Status Ihres Fahrzeugs (inkl. Batteriestand), ohne Ihr Auto aufzuwecken!

Wir werden den erweiterten Anweisungen der Entwickler folgen, da wir eine Cloud-Instanz verwenden werden. Alternativ könnten Sie dies auch auf einem Rasberry Pi oder einem anderen Computer installieren, den Sie herumliegen haben. Ich mag jedoch diese Option mit Vultr weil sie für jedermann leicht zu reproduzieren sind.

Neue Instanz bereitstellen

vultrplus20200413 | Graydon Schwartz
Maus über das (+) plus Zeichen und klicken Sie auf Neuen Server bereitstellen

Server auswählen: Cloud Compute

vultrchooseservercloudcompute20200413 | Graydon Schwartz
Wie wird TeslaMate mit Docker 24 eingerichtet?


Server-Standort: Chicago (ich habe Chicago gewählt, aber Sie können wählen, was für Sie am besten ist):

  • Atlanta, USA
  • New York (NJ), USA
  • Chicago, USA
  • Dallas, USA
  • Los Angeles, USA
  • Miami, USA
  • Seattle, USA
  • Silicon Valley, USA
  • Toronto, KANADA
  • Amsterdam, Niederlande
  • Paris, Frankreich
  • Frankfurt, Deutschland
  • London, UK
  • Tokio, Japan
  • Singapur, Singapur
  • Sydney, Australien

Server-Typ: Anwendung: Docker: Auf CentOS 7 x64 19.03.4-ce

vultrservertypeappdocker20200413 | Graydon Schwartz
Wie wird TeslaMate mit Docker 25 eingerichtet?

Server Größe: 25 GB SSD
$5.00/mo ODER $0.007/h
1 CPU
1024MB Speicher*
1000GB Bandbreite

vultrserversize20200413 | Graydon Schwartz
Wie wird TeslaMate mit Docker 26 eingerichtet?

*Hinweis: Docker erfordert einen Plan mit mindestens 768 MB Speicher.

Klicken Sie auf Jetzt einführen!

vultrdeploynow20200413 | Graydon Schwartz
Wie wird TeslaMate mit Docker 27 eingerichtet?

Klicken Sie auf Produkte!

vultrproducts20200413 | Graydon Schwartz
Einrichtung von TeslaMate mit Docker 28
vultryourproducts20200413 | Graydon Schwartz
Einrichtung von TeslaMate mit Docker 29

Server-Informationen

vultrserverinfodocker20200413 | Graydon Schwartz
Wie wird TeslaMate mit Docker 30 eingerichtet?

Herunterladen PuTTY

Eingabe der IP-Adresse
und klicken Sie auf Aufmachen!

GUIDE: Erweiterte Docker-Installation (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

Einrichtung - docker-compose.yml

Version: "3"

Dienstleistungen:
  teslamate:
    Bild: teslamate/teslamate:latest
    neustart: immer
    hängt_an:
      - Datenbank
    Umgebung:
      - DATABASE_USER=${TM_DB_USER}
      - DATENBANK_PASS=${TM_DB_PASS}
      - DATENBANK_NAME=${TM_DB_NAME}
      - DATABASE_HOST=Datenbank
      - 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

  datenbank:
    image: postgres:13
    restart: immer
    Umgebung:
      - 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
    Neustart: immer
    Umgebung:
      - DATABASE_USER=${TM_DB_USER}
      - DATENBANK_PASS=${TM_DB_PASS}
      - DATENBANK_NAME=${TM_DB_NAME}
      - DATABASE_HOST=Datenbank
      - 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=%(Protokoll)s://%(Domäne)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
    Neustart: immer
    Befehl: 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
    Neustart: immer
    Befehl:
      - "--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:

Einrichtung - .env

TM_DB_USER=teslamate
TM_DB_PASS=geheim
TM_DB_NAME=teslamate

GRAFANA_USER=admin
GRAFANA_PW=admin

FQDN_TM=teslamate.beispiel.com

TM_TZ=Europa/Berlin

LETSENCRYPT_EMAIL=yourperson@example.com

Einrichtung - .htpasswd

Wie in der Dokumentation zu TeslaMate beschrieben. Ich empfehle Ihnen, dieses Tool zu verwenden, um Ihre .htpasswd-Datei zu erstellen:
http://www.htaccesstools.com/htpasswd-generator/
Geben Sie Ihr gewünschtes Nutzername, Passwort und Bcrypt auswählen (ab Apache v2.4)
In dem folgenden Beispiel habe ich Folgendes eingegeben Nutzername und Passwort für diese Felder:

Beispiel:

my:$2y$10$as5PEnYaoGEx2ebCFjdK0e9PBshAsvzIeAKijwNgeMSC9oJkDNo2.

Kopieren Sie nun diese Informationen und fügen Sie sie in Ihre .htpasswd-Datei ein.

vi .htpasswd (oder Ihr bevorzugter Texteditor)

Stellen Sie sicher, dass Sie Ihr Passwort einrichten, bevor Sie das Teslamate mit Docker starten!

docker-compose aufwärts

Hinweis: Möglicherweise müssen Sie diesen Befehl zweimal ausführen, damit er funktioniert.



DNS-Einrichtung

Sie müssen teslamate.example.com + grafana.exampe.com (Ihre Subdomain) auf die IP-Adresse verweisen, die Sie von Vultr erhalten haben, als Sie Ihren virtuellen Server eingerichtet haben. Wenden Sie sich dazu an Ihren Webhost oder loggen Sie sich in Ihr Kontrollpanel ein, um Ihre DNS-Einträge zu verwalten und diese Einträge hinzufügen zu lassen.

Anmeldung bei TeslaMate

  1. Öffnen Sie die Weboberfläche https://teslamate.example.com
    Melden Sie sich mit den Daten an, die Sie in die .htpasswd-Datei eingegeben haben. Anschließend werden Sie aufgefordert, sich mit Ihrem Tesla-Konto anzumelden.
  2. Melden Sie sich mit Ihrem Tesla-Konto an
  3. Die Grafana Dashboards sind verfügbar unter: https://grafana.example.com.
  4. Geben Sie Benutzernamen und Passwort ein:admin:admin und Sie werden bei Ihrer ersten Anmeldung aufgefordert, das Passwort zu ändern.

Ich habe $0.01 oder 1 Penny ausgegeben, um Teslamate zu testen. $0.02 um das Tutorial abzuschließen. 🙂

vultrdockercloudinstance | Graydon Schwartz
Vultr-Kontrollzentrum

Sie können in den Einstellungen von Celcius auf Fahrenheit und von Kilometern auf Meilen umschalten.

teslamatehomescreenfeb212020 | Graydon Schwartz
TeslaMate-Startbildschirm

So sieht der Startbildschirm aus. Sie sehen auch eine Karte mit einer Stecknadel, die den Standort Ihres Tesla-Fahrzeugs anzeigt.

teslamatehomescreencharging1kwfeb212020 | Graydon Schwartz
5 mi/hr | 12A | 3kW

Ich habe eine Ladesitzung an der nächstgelegenen regulären 12-A-Steckdose durchgeführt, um zu zeigen, wie eine Ladesitzung mit dem TeslaMate aussieht. Saubere Schnittstelle! 🙂

teslamatehomescreencharging3kwfeb212020 | Graydon Schwartz
13 mi/hr | 16A | 3kW
teslamatecharginggraph3kwfeb212020 | Graydon Schwartz
13 mi/hr | 16A | 3kW

10. März 2020 Aktualisierung

TeslaMate hat vor etwa 16 Tagen ein Update auf v1.17.1 veröffentlicht.

  • hinzufügen Reise-Dashboard: Dieses Dashboard wurde entwickelt, um längere Fahrten zu visualisieren. Es bietet einen Überblick über alle Fahrten und Gebühren, die über einen Zeitraum von mehreren Stunden oder Tagen aufgezeichnet wurden.
  • TeslaMate Freigabeseite

Ich freue mich darauf, dieses neue Produkt zu testen Reise-Dashboard in der neuen Version hinzugefügt. Das wird für Tesla-Roadtrips natürlich super hilfreich sein 🙂 .

Dies ist die Dokumentation, die ich zur Erstellung von Teilen dieses Tutorials verwendet habe:
https://docs.teslamate.org/docs/guides/traefik
https://docs.teslamate.org/docs/guides/portainer

21. März 2020 Aktualisierung

Wie Sie die neue Reisefunktion von Teslamate nutzen können:

  1. Öffnen Sie die Weboberfläche https://teslamate.example.com
  2. Dashboards => Tippen oder klicken Sie auf "Reise
  3. Tippen oder klicken Sie auf "Heute bis jetzt
  4. Wählen Sie eine Voreinstellung aus "Letzte 5 Minuten", bis hin zu "Letzte 5 Jahre"oder benutzerdefinierte Auswahl des Datumsbereichs.
teslamatehomescreenmarch212020 | Graydon Schwartz
TeslaMate-Startbildschirm
teslamatehomescreenmarch212020 1 | Graydon Schwartz
Tippen Sie auf oder mit der Maus über "Dashboards
teslamatehomescreenmarch212020 2 | Graydon Schwartz
Tippen oder klicken Sie auf "Reise
teslamatehomescreenmarch212020 3 | Graydon Schwartz
Wählen Sie eine Voreinstellung aus "Letzte 5 Minuten", bis hin zu "Letzte 5 Jahre"oder benutzerdefinierte Auswahl des Datumsbereichs.
teslamatetriplast1yearmarch212020 | Graydon Schwartz
TeslaMate > Reisebeispiel
teslamatehomescreenmarch212020 4 | Graydon Schwartz
TeslaMate > Auslösebeispiel (Nahaufnahme)

Ich hoffe, Sie fanden diese Anleitung hilfreich 🙂 .

| Graydon Schwartz

Von Graydon Schwartz

Mehr über Graydon erfahren Sie auf der Website Über mich Seite.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Teilen mit...