Aller au contenu
bobjouy

[App Tierce] Teslamate : datalogger local et gratuit

Messages recommandés

Le 03/10/2022 à 03:55, jpp59 a dit :

Ah ok, moi j'ai pris les standard E2 instance a base de Arm(4 core, 24GB de ram, 200GB de disque). Elle sont jamais coupées et sont en Always free.
Et franchement leur proc Arm est bien puissant, rien a voir avec les Atom des kimsufi ou autres...


 

Je crois que les standard E2 ne sont plus proposés.

Seulement les A1 en always free.

Partager ce message


Lien à poster
Partager sur d’autres sites

Le 07/10/2022 à 09:21, Fender a dit :

OK j'avais jamais vu le passage au milieu des trucs d'install vu que j'avais un autre type d'install :lol:

Sinon, les blocs verts en haut des sujets ne sont pas là uniquement pour décorer. 🙂

221564713_Capturedecran2022-10-07a09_41_53.thumb.png.c01e406799ac7a3802abfd8db1a2aaba.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Pour ceux qui ont installé un Teslamate avant de prendre possession du véhicule, comment ça s’est passé ? Le jour de la livraison les données commencent à remonter ? Ou il y a une quelconque action à réaliser

Partager ce message


Lien à poster
Partager sur d’autres sites

Le 13/10/2022 à 20:03, tino_ale a dit :

Pour ceux qui ont installé un Teslamate avant de prendre possession du véhicule, comment ça s’est passé ? Le jour de la livraison les données commencent à remonter ? Ou il y a une quelconque action à réaliser

Il faut attendre que la voiture soit visible dans l'application et une fois que c'est le cas, relancer TeslaMate.
J'ai la Tesla d'un pote qui est apparue dans mon TeslaMate une fois que je l'avais relancé (il m'avait partagé sa clé via un lien)

Partager ce message


Lien à poster
Partager sur d’autres sites

Le 17/10/2022 à 13:59, Bart a dit :

Et j'imagine qu'elle doit faire un bruit d'enfer pour pomper la batterie...

Mais pour la science, j'aimerais bien avoir un témoignage !

Si on veut limiter l'impact écologique, il faudrait mettre la Tesla dans une pièce nécessitant du chauffage, de sorte que la chaleur dégagée puisse servir à quelque chose.

Partager ce message


Lien à poster
Partager sur d’autres sites

Le 17/10/2022 à 18:24, cybervince a dit :

Si on veut limiter l'impact écologique, il faudrait mettre la Tesla dans une pièce nécessitant du chauffage, de sorte que la chaleur dégagée puisse servir à quelque chose.

ou plus simplement rouler jusqu'à un SOC assez bas, ce qui fait aussi gagner sur le temps de test

Partager ce message


Lien à poster
Partager sur d’autres sites

C’est quand même super intéressant. A ma connaissance la première voiture électrique qui pourrait offrir une solution de mesure de capacité un minimum « normée » sans outillage d’atelier. J’espère que ça va s’enrichir et se démocratiser.
 

N’oublions pas que la quasi totalité des constructeurs ont une politique d’opacité totale sur la capacité restante, rendant les garanties de dégradation des packs fictives.

Partager ce message


Lien à poster
Partager sur d’autres sites

Prudence, personne ne sait exactement ce que fait ce test et quel résultat ça donne.

C’est dingue qu’une fonction aussi geek et intéressante (vu le nombre de mecs qui se farcissent des thèses imbuvables sur les chimies de batteries) n’ait pas été encore testée (à ma connaissance) quand le moindre changement de vis fait l’objet de blabla YouTube …

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

j'utilise teslamate depuis pas mal de temps, il tourne sous docker. pas de soucis.

 

En revanche, je souhaiterais modifier des valeurs car suite à une erreur de saisie d'un tarif tout mon tableau est faux ...

 

avez vous une idée du comment ? ;)  j'ai essayé dans les Géorepérages de la supprimer et de la refaire mais ça ne change rien.

 

merci par avance

 

image.thumb.png.ad260833063e214f15ff4c1855da8973.png

Modifié par cognotte

Partager ce message


Lien à poster
Partager sur d’autres sites

tu veux dire que si tu changes le tarif depuis les infos du point de recharge géographique, ça ne répercute pas sur les charges précédentes ? il me semblait pourtant que c'était fait pour...

 

du coup, je ne vois pas d'autre alternative que te connecter à la base postgresql directement pour faire les changements nécessaires.

Partager ce message


Lien à poster
Partager sur d’autres sites

en fait, il me semble qu'il y a un requêteur dans grafana (en mode SQL pur donc)

sinon, les alternatives c'est ajouter un client web postgre dans ton docker-compose, ou sinon, juste faire la modif (je l'ai pas en tête, mais ça se trouve facilement sur le net) pour ouvrir un port externe dans ton conteneur postgre pour y connecter pgadmin/dbeaver/autreclientbdd qui serait installé sur un poste de ton réseau local.

Partager ce message


Lien à poster
Partager sur d’autres sites

bonjour,

 

j'ai fait les modifications dans la bases via cloudbeaver que j'ai monté dans un autre container ça fonctionne nickel.

 

je vais essayé de faire d'autres tests mais il faut que je trouve d'autres charger...

 

bonne journée

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut !

pour suivre ma dégradation batterie, j’ai modifié la variable autonomie max à la valeur 439 (prop LFP), mais les graphiques ne semblent pas vouloir se mettre à jour… problème connu ?

a plus !

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai le même problème.

Quand tu changes la valeur de la variable, as tu coché la case "Save current variable values as dashboard default"?

Je viens de le faire et pour l'instant ça semble bien garder cette valeur.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut !

je crois bien que j’ai coché l’option, j’ai touché un peu à tout 😇
j’ai fait un trajet et ça y est ça s’est mis à jour ! Soit c’est un délai de prise en compte soit c’est qu’il faut faire un trajet…

maintenant j’oscille autour de 0% de dégradation.

 

image.thumb.png.3b0ac95aa6d249468bdec79644fd58ac.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Le 01/10/2019 à 17:53, bobjouy a dit :

Bonjour à tous, voici un tutoriel détaillé concernant Teslamate, et plus particulièrement son installation, configuration pas à pas et éventuellement restauration de données, totalement gratuit sur le cloud Oracle.

 

Une ancienne version de ce tutoriel avait déjà été faite par mes soins, et il y avait plusieurs problèmes et choses qui pouvaient être améliorées aisément.

 

Tout d'abord, sachez qu'il n'y a pas besoin de connaissances particulières pour pouvoir utiliser et configurer Teslamate, pour qu'il soit accessible depuis partout, et de manière sécurisée.

 

En suivant ce tutoriel pas à pas je vous garantie que si vous prenez 30 minutes de votre temps vous bénéficierez à ce jour du meilleur outil de suivi de votre Tesla sans aucun problème.

 

Notez que cela s'applique aussi pour ceux qui souhaitent améliorer leur environnement et migrer, peu importe d'où, vers le Cloud Oracle et restaurer leur données.

 

Voici les grands chapitres de ce tutoriel

  1. Prérequis : création de compte Oracle et déploiement d'une instance
  2. Réservation d'un nom de domaine personnalisé, génération du .htaccess pour l'accès sécurisé à Teslamate
  3. Installation de tous les outils nécessaires pour Teslamate sur la machine virtuelle Oracle
  4. Déploiement de Teslamate, et c'est fini
  5. Optionnel : restauration de données, utilisation de Portainer, sauvegarde périodique vers un serveur, utilisation de Watchtower pour les mises à jour automatiques

 

 

Création de compte Oracle et déploiement d'une instance

Pour ceux qui avaient suivi l'ancien tutoriel, vous aurez déjà un compte Oracle et pourrez passer à la suite.

Pour les nouveaux, voici la marche à suivre :

 

  1. Se créer un compte https://signup.cloud.oracle.com/
  2. Dans le mail de vérification, cliquer pour continuer à se créer un compte, rentrer les informations de paiement (vous ne serez pas débité)
  3. Une fois les informations saisies, bien se rappeler du "Nom de compte cloud" qui vous servira à vous connecter
  4. Connectez-vous avec votre compte sur https://cloud.oracle.com/, puis patientez environ 15 minutes
  5. Rendez-vous sur https://cloud.oracle.com/compute/instances/create (l'intérêt d'attendre 15 minutes à l'étape précédente est que parfois ceci n'est pas disponible immédiatement après la création du compte)

Pour la suite, je mets des captures et je commente quand ce n'est pas explicite.

 

1627511002_TeslamateOracle1.thumb.png.c718d95fa943d914b5ad43a26661d977.png

Donner un nom (name) puis vérifier "Always Free Eligible" et Linux 7.9

Descendre et cliquer sur "Save Private Key" puis sur "Create"

2117742719_TeslamateOracle2.thumb.png.8b495a0b4a43271a15d8458192aee0b5.png

 

Cette fenêtre ci-dessous apparait avec le statut "provisioning". Patienter.

238303053_TeslamateOracle3.thumb.png.001a183c8091fb1cdaf9b1789a77c37c.png

 

Une fois le statut passé à "Running", noter la "Public IP Address", puis cliquer sur "Edit" dans Network Security Groups

175759804_TeslamateOracle4.thumb.png.dc7cd35138b4c895f2848880f912dd86.png

 

La fenêtre ci-dessous s'affiche. Cliquer sur "Default Security List for vcn-XXXXXXXXXXXXX"

1992511866_TeslamateOracle5.thumb.png.4aea0f37380270b05720867857b0ae56.png

La fenêtre ci-dessous s'affiche. Cliquer sur "Add Ingress Rules"

67072250_TeslamateOracle6.thumb.png.5bd38b2b6d81b1968a99f040fba8e517.png

La fenêtre ci-dessous s'affiche. Saisir les informations suivantes : source CIDR 0.0.0.0/0. Cliquer sur "Add Ingress Rules". Notez qu'il y a sans doute moyen de n'ouvrir que certains ports et non pas tous, mais pour des raisons de simplification, utilisez cette règle, vous ne serez ainsi jamais embêtés.

image.thumb.png.314e08d6ccf118ee79ef1dcf7f34cdfc.png

Désormais, noter le chemin où vous avez sauvegardé les clés SSH plus haut. Ouvrez un Terminal (macOS/Linux) pour modifier les permissions du fichier 

1293756335_TeslamateOracle9.thumb.png.d8199e001393eb41a878f033f577952f.png

La commande est :

chmod 400 /Users/bob/Downloads/ssh-key-2021-07-22.key 

si le fichier est dans /Users/bob/Downloads/ssh-key-2021-07-22.key, sinon mettez votre chemin à la place.

Sous Windows, je n'ai pas encore testé mais j'ai vu ceci pour faire un chmod 400 : https://gist.github.com/jaskiratr/cfacb332bfdff2f63f535db7efb6df93

Sinon en Powershell ça se fait comme sur cette vidéo.

Une fois ceci fait, on va pouvoir se connecter en SSH à la VM Oracle. Reprenez l'IP (Public IP Address) de la VM que vous avez noté au départ, et connectez-vous à l'aide de la clé privée. La commande est : 

ssh -i /Users/bob/Downloads/ssh-key-2021-07-22.key [email protected]

Avec bien entendu le chemin où vous avez enregistré la clé.

Un message va vous être affiché comme quoi il faut valider la connexion en tapant "yes".

The authenticity of host '152.70.55.253 (152.70.55.253)' can't be established.
ECDSA key fingerprint is SHA256:aQKtHEld+qBwBXePEvY/YUD/sUsvLE2DNMW3JJVClDY.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '152.70.55.253' (ECDSA) to the list of known hosts.
[opc@teslamatetest ~]$ 

Une fois validé, vous êtes connectés sur la VM. Bravo à vous.

 

Réservation d'un nom de domaine personnalisé, génération du .htaccess pour l'accès sécurisé à Teslamate

 

La seconde étape consiste à faire le nécessaire pour accéder à Teslamate et Grafana de manière sécurisée, en HTTPS, et avec un nom de domaine personnalisé pour ne pas avoir à retenir une adresse IP.

J'ai choisi pour ce guide d'utiliser les services de no-ip (gratuit et très facile).

Rendez-vous sur https://www.noip.com/sign-up et créez vous un compte, validez l'inscription via le mail reçu, puis connectez-vous et allez sur https://my.noip.com/dynamic-dns.

Ici, cliquez sur "Create Hostname", et remplissez les champs nécessaires comme ci-dessous :

image.thumb.png.d4f2c30261de4dd46c504b49e888b5cf.png

Dans "Hostname", saisissez l'adresse que vous souhaitez utiliser pour vous connecter à Teslamate et Grafana, dans mon exemple je choisis teslamate-autopropre, et en domain je laisse par défaut ddns.net. Ainsi mes adresses seront respectivement : https://teslamate-autopropre.ddns.net pour Teslamate et https://teslamate-autopropre.ddns.net/grafana pour Grafana.

 

Ensuite, rendez-vous sur https://hostingcanada.org/htpasswd-generator/ pour définir un nom d'utilisateur et mot de passe qui vous servira à vous connecter à Teslamate.

Saisissez le nom d'utilisateur de votre choix dans le champ "Username", et le mot de passe que vous utiliserez dans "Password".

Ensuite, dans "Mode", choisissez Bcrypt, et cliquez sur "Create .htpasswd file" :

image.thumb.png.447ece67c17f7c51b9e44c62781e4af6.png

Vous remarquerez alors qu'au-dessus de "Username" est apparu une chaîne de caractère, dans mon exemple il s'agit de : 

autopropre:$2y$10$RLV1ZbYX8N/oPENMhxYhse82jd7IasrV8YziHqF1Ct8Ikq8qhTUcq

Copiez cette chaîne de caractère quelque part où vous pourrez aisément la trouver, elle vous servira plus tard.

 

Installation de tous les outils nécessaires pour Teslamate sur la machine virtuelle Oracle

 

Revenez alors sur votre machine virtuelle Oracle, où vous êtes connectés à la fin de l'étape 1.

Saisissez les commandes suivantes (copier/coller focntionne) : 

sudo su -

sudo yum install -y yum-utils
 sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

 

Ensuite, il faut éditer un fichier pour y ajouter quelques lignes. Pour ce faire, saisissez : 

sudo vi /etc/yum.repos.d/docker-ce.repo

 

Pour passer en mode insertion taper sur la lettre "i".

Ceci s'affiche

image.thumb.png.bc6380fa6fcaeea0021bd611f1e5589b.png

Collez alors le texte ci-dessous en haut du fichier :

[centos-extras]
name=Centos extras - $basearch
baseurl=http://mirror.centos.org/centos/7/extras/x86_64
enabled=1
gpgcheck=1
gpgkey=http://centos.org/keys/RPM-GPG-KEY-CentOS-7

Vérifiez qu'il est bien affiché comme ceci (s'il est collé sans saut de ligne par exemple, vous pouvez en ajouter un en déplaçant votre curseur en fin d'une ligne et en appuyant sur entrée).


Appuyez sur la touche "échap" pour quitter le mode insertion, puis saisir ":wq" pour quitter et sauvegarder les changements (deux points, puis touche "w" puis touche "q", puis entrée)
 

Vous devriez être revenus ici : 

image.thumb.png.d6cf1e8fe3fc7da4ffd3f462c95efee4.png

 

Saisissez alors

sudo yum install docker-ce docker-ce-cli containerd.io

 

Et répondez "y" chaque fois que demandé, pour confirmer les installations diverses. Cela prend quelques minutes, et une fois que tout est fait, saisissez : 

sudo systemctl start docker

Pour installer enfin docker-compose, saisissez :

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

sudo chmod +x /usr/local/bin/docker-compose

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

 

Ensuite, il va falloir créer deux fichiers : .env et .htaccess. Dans un premier temps, créeons le .env.

Il se base sur cette forme

TM_DB_USER=teslamate
TM_DB_PASS=secret
TM_DB_NAME=teslamate
GRAFANA_USER=admin
GRAFANA_PW=admin
FQDN_TM=teslamate-autopropre.ddns.net
TM_TZ=Europe/Paris
[email protected]

La ligne que vous aurez à adapter selon votre configuration est celle qui commence par "FQDN_TM".

Copiez ces lignes dans un bloc-notes, et à la place de "teslamate-autopropre.ddns.net", vous mettrez votre nom de domaine personnalisé que vous avez obtenu à la première étape de ce tutoriel.

Vous pouvez également changer l'adresse e-mail pour en mettre une vous appartenant.

Dans votre terminal de la VM Oracle, saisissez : 

vi .env

Tapez sur "i" pour passer en mode insertion, et collez les lignes dont nous venons tout juste de parler.

Vous aurez alors quelque chose comme cela

image.png.5d0a857cdbfa1b7a28878b76dece9d4b.png

Appuyez sur la touche "échap" pour quitter le mode insertion, puis saisir ":wq" pour quitter et sauvegarder les changements (deux points, puis touche "w" puis touche "q", puis entrée)

 

Nous créons alors deux dossiers utiles pour la suite.

Saisissez

mkdir /etc/acme
mkdir /auth

Et ensuite, reprenez la chaîne de caractères mise de côté à la fin de la première étape à l'aide de https://hostingcanada.org/htpasswd-generator/, qui dans mon cas était : 

autopropre:$2y$10$RLV1ZbYX8N/oPENMhxYhse82jd7IasrV8YziHqF1Ct8Ikq8qhTUcq

Nous allons la coller dans un fichier .htaccess.

Pour ce faire, saisissez

vi /auth/.htpasswd

Et collez la chaîne de caractères, comme d'habitude, en tapant "i" pour passer en mode insertion avant de coller, puis appuyez sur la touche "échap" pour quitter le mode insertion, puis saisir ":wq" pour quitter et sauvegarder les changements (deux points, puis touche "w" puis touche "q", puis entrée)

Pour vérifier que votre fichier est correct, saisissez de nouveau : 

vi /auth/.htpasswd

Et vérifiez que ceci s'affiche (avec votre chaîne de caractères) : 

image.thumb.png.9e4112412b48f71155d291725f64fa45.png

 

Pour quitter, saisissez "q!" et entrée (lettre q, point d'exclamation, et touche entrée).
 

Ensuite, nous allons créer le fichier qui servira à déployer Teslamate, Grafana et tout ce qui est utile, et la bonne nouvelle c'est que pour cela, vous n'avez qu'à faire un copier-coller de ceci

version: "3"

services:
  teslamate:
    image: teslamate/teslamate:latest
    container_name: teslamate
    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
    container_name: database
    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
    container_name: grafana
    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=Host(`${FQDN_TM}`) && (Path(`/grafana`) || PathPrefix(`/grafana/`))"
      - "traefik.http.routers.grafana.entrypoints=websecure"
      - "traefik.http.routers.grafana.tls.certresolver=tmhttpchallenge"

  mosquitto:
    image: eclipse-mosquitto:2
    container_name: mosquitto
    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
    container_name: traefik
    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:
      - /auth/.htpasswd:/auth/.htpasswd
      - /etc/acme/:/etc/acme/
      - /var/run/docker.sock:/var/run/docker.sock:ro

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

 

Copiez donc le contenu détaillé ci-dessus, et saisissez sur la VM Oracle

vi docker-compose.yml

Puis, comme vous en avez désormais l'habitude, tapez sur "i" pour passer en mode insertion, et collez le tout. 

Appuyez sur la touche "échap" pour quitter le mode insertion, puis saisir ":wq" pour quitter et sauvegarder les changements (deux points, puis touche "w" puis touche "q", puis entrée).

Pour vérifier que votre fichier est correct, saisissez de nouveau : 

vi docker-compose.yml

Vous devriez alors voir ceci : 

image.thumb.png.fd55aabf4a69c6748e47eaa2246f92d7.png

Saisissez alors :q! pour quitter.

 

Déploiement de Teslamate, et c'est fini

Il ne reste qu'à lancer Teslamate, à l'aide d'une seule commande à coller : 

sudo docker-compose up -d

Vous verrez alors tout ceci s'afficher : 

image.png.c326d475f84032063b06ec8009048623.png

 

Grafana sera accessible immédiatement à l'adresse https://[votre nom de domaine personnalisé]/grafana, avec comme nom d'utilisateur et comme mot de passe : admin. Ils seront à modifier suite à la première connexion.

 

Après quelques minutes tout au plus, Teslamate sera aussi accessible à l'adresse https://[votre nom de domaine personnalisé].

 

Vous aurez une fenêtre comme ceci qui s'affiche : 

image.png

 

Où il vous faudra saisir votre nom d'utilisateur et mot de passe renseignés au début de ce tutoriel lors de la création du .htaccess (via https://hostingcanada.org/htpasswd-generator/).

 

Une fois saisis, en cliquant sur "Connexion", Teslamate vous invitera à saisir vos identifiants Tesla (ou des jetons).

 

Pour ceux qui veulent utiliser des jetons, l'application Android de @denouche est parfaite pour ça.

 

Ainsi s'achève ce tutoriel pour l'immense majorité d'entre vous, vous aurez donc, au terme de ce qu'il vient de se passer : 

  • Teslamate opérationnel, gratuitement, accessible depuis l'internet
  • Accès sécurisé via nom d'utilisateur et mot de passe pour Teslamate et Grafana
  • Nom de domaine personnalisé pour accéder à Teslamate et Grafana
  • La fierté d'avoir réussi à faire tout ça par vous même alors que vous ne vous en croyiez pas capable

 

Pour ceux qui veulent aller un petit peu plus loin, la suite de ce tutoriel va vous proposer : 

  1. Ajouter des dashboards en français, et avec des détails et choses intéressantes
  2. Restaurer les données depuis un ancien Teslamate pour ne pas perdre votre historique
  3. Paramétrer une sauvegarde périodique vers un serveur FTP
  4. Mettre à jour automatiquement Teslamate avec Watchtower
  5. Gérer ces conteneurs via Portainer 

 

Ajouts de dashboards en français et customisés

Cette étape est extrêmement simple et je recommande à tous de le faire, vous aurez ainsi des dashboards différents, utiles et, n'ayons pas peur des mots, indispensables (comme je les ai créé vous comprendrez que je les trouve super...).

 

Sur Grafana, en étant connecté en tant qu'admin, passez le curseur sur l'icône de gauche en forme de "+", et cliquez sur import. (ou bien, plus simple, https://(votre nom de domaine)/grafana/dashboard/import).

Ceci s'affiche

image.thumb.png.360a2ecc50b01f3f348f10c5a5b88018.png

 

Vous utiliserez l'option Upload JSON File.

Les dashboards sont disponibles dans le message épinglé en haut de la page.

cliquez sur "Upload JSON File", puis donnez votre fichier JSON (un à la fois).

Vérifiez que le dossier correspond à ce que vous souhaitez, et que la source (là où il y a le petit éléphant) est bien Teslamate. Cliquez alors sur "Import".

 

Et voilà, vous aurez par exemple ce dashboard "Résumé" : 

image.thumb.png.e302f46b30161f8a24944910b6c7a184.png

Ou encore le fameux "Trajets" qui permet de filtrer pour comparer des trajets similaires

image.thumb.png.5a35d92269b77abf484b30ed3381168a.png

 

Restaurer les données depuis un ancien Teslamate pour ne pas perdre votre historique

Nous allons maintenant voir comment récupérer les données d'une ancienne instance Teslamate, par exemple pour passer de l'ancien tutoriel à ce nouveau, et ainsi avoir tous les accès de manière sécurisée.

 

C'est relativement simple et rapide, et cela consiste en trois étapes

  1. Arrêt de l'ancien Teslamate, puis sauvegarde.
  2. Envoi de la sauvegarde sur un serveur où l'on peut la récupérer depuis la nouvelle instance de Teslamate.
  3. Restauration des données.

 

Connectez-vous à votre ancienne instance de Teslamate, qu'elle soit sur votre NAS, une VM Oracle, ou tout autre endroit.

Suivez alors le guide de Teslamate : https://docs.teslamate.org/docs/maintenance/backup_restore/ pour faire une sauvegarde.

Saisissez la commande suivante : 

sudo docker-compose exec -T database pg_dump -U teslamate teslamate > /backuplocation/teslamate.bck

En remplaçant "backuplocation" par le chemin où se trouvera votre sauvegarde.

Une fois ceci fait, vous pouvez arrêter Teslamate pour ne pas qu'il y ait de conflits

sudo docker-compose stop teslamate

 

Il faut alors pousser la sauvegarde vers un serveur FTP par exemple, depuis lequel vous pourrez la récupérer sur la nouvelle instance Teslamate.

Je pars du principe que vous avez déjà un serveur FTP accessible à l'adresse "votreserveur" et où vous disposez d'un utilisateur "user" avec le mot de passe "pass" ayant les droits d'accès à ce serveur.

Sur le Teslamate où vous venez de faire la sauvegarde, il faudra saisir : 

sudo curl -s --disable-epsv -v -T"/backuplocation/teslamate.bck" -u"user:pass" "ftp://votreserveur/chemin/"

En adaptant la commande à votre environnement

  • /backuplocation/teslamate.bck à remplacer avec le chemin là où vous avez fait la sauvegarde
  • user:pass à remplacer par l'utilisateur et le mot de passe pour votre serveur ftp
  • votreserveur/chemin/ à remplacer par l'IP ou l'URL de votre serveur FTP et le chemin où vous déposez la sauvegarde

Une fois ceci fait, il faut vous reconnecter sur le "nouveau" Teslamate, pour récupérer la sauvegarde et la restaurer.

 

Pour la récupérer, c'est assez simple, saisissez

sudo curl -u user:pass 'ftp://votreserveur/chemin/teslamate.bck' --output teslamate.bck

En adaptant la commande à votre environnement

  • user:pass à remplacer par l'utilisateur et le mot de passe pour votre serveur ftp
  • votreserveur/chemin/teslamate.bck à remplacer par l'IP ou l'URL de votre serveur FTP et le chemin où vous récupérez la sauvegarde déposée à l'étape précédente

Pour vérifier que vous avez bien le fichier, saisissez :

sudo ls -l

Et vous verrez par exemple : 

-rw-r--r--. 1 root root 447946900 Jan 14 12:48 teslamate.bck

Qui correspond à un fichier teslamate.bck de 447.9 Mo.

 

C'est parfait, vous êtes prêts pour restaurer.

 

Pour ce faire, commencez par arrêtez teslamate : 

sudo docker-compose stop teslamate

Puis saisissez tout ceci d'un seul coup : 

sudo docker-compose exec -T database psql -U teslamate << .
drop schema public cascade;
create schema public;
create extension cube;
create extension earthdistance;
CREATE OR REPLACE FUNCTION public.ll_to_earth(float8, float8)
    RETURNS public.earth
    LANGUAGE SQL
    IMMUTABLE STRICT
    PARALLEL SAFE
    AS 'SELECT public.cube(public.cube(public.cube(public.earth()*cos(radians(\$1))*cos(radians(\$2))),public.earth()*cos(radians(\$1))*sin(radians(\$2))),public.earth()*sin(radians(\$1)))::public.earth';
.

Avec le "." à la fin, et appuyez sur entrée. Une fois que vous avez de nouveau la main, il ne reste qu'à restaurer à l'aide de la commande

sudo docker-compose exec -T database psql -U teslamate -d teslamate < teslamate.bck

La restauration prend quelques minutes, et une fois que vous avez de nouveau la main, saisissez : 

sudo docker-compose start teslamate

Afin de redémarrer Teslamate.

Et voilà, c'est fini, vous avez récupéré toutes vos données.

 

Paramétrer une sauvegarde périodique vers un serveur FTP

 

Ceci est assez utile, simple et sécurisant si vous avez à disposition un serveur FTP chez vous. De cette manière, si un jour votre Teslamate ne fonctionne plus, ou bien que vous souhaitez migrer vers un autre environnement en toute simplicité et sans perte de données, vous aurez des sauvegardes régulières vous permettant de le faire.

 

L'idée est de créer un script s'exécutant de manière périodique, envoyant une sauvegarde de Teslamate compressée (taux de réduction de l'ordre de un pour huit d'après mes quelques tests) pour ne pas prendre trop de place.

 

Pour ce faire, copiez de côté dans un bloc note ce script : 

#!/bin/bash

SERVER="votreserveurftp"         
USERNAME="user"   
PASSWORD="pass"              

TIMESTAMP=`/bin/date +%Y-%m-%d-%H%M`
BACKUPFILEDIR="teslamate_backup_$TIMESTAMP.tar.gz"

cd /home/root/
sudo docker-compose exec -T database pg_dump -U teslamate teslamate > /home/root/teslamate.bck


    sudo tar -zcvf /tmp/$BACKUPFILEDIR /home/root/

    sudo curl -s --disable-epsv -v -T"/tmp/$BACKUPFILEDIR" -u"$USERNAME:$PASSWORD" "ftp://$SERVER/"

    /bin/rm /tmp/$BACKUPFILEDIR
    /bin/rm /home/root/teslamate.bck
          

Et modifiez les paramètres en fonction de votre installation : 

  • votreserveurftp : adresse ou URL de votre serveur FTP (avec le chemin, par exemple ce sera monserveurftp.com/teslamate/sauvegarde, si vous le stocker dans /teslamate/sauvegarde)
  • user : nom d'utilisateur du serveur FTP
  • pass : mot de passe pour l'utilisateur du serveur FTP

Une fois que tout est modifié pour coller à votre environnement, copiez tout ça et mettez le par exemple dans /home/backup.sh en saisissant : 

vi home/backup.sh

Puis en tapant "i" pour passer en mode insertion, et en collant le tout.

Appuyez sur échap pour quitter le mode insertion.

Quittez en sauvegardant en saisissant "!wq".

Pour tester que cela est bien fonctionnel, saisissez dans le terminal : 

sh /home/backup.sh

Après quelques instants, vous voyez que tout est correct : 

sh /home/backup.sh
tar: Removing leading `/' from member names
/home/opc/backup/
/home/opc/backup/teslamate.bck
* About to connect() to port 21 (#0)
*   Trying ...
* Connected to  port 21 (#0)
< 220 FTP server ready.
> USER user
< 331 Password required for user.
> PASS pass
< 230 User user logged in.
> PWD
< 257 "/" is current directory.
* Entry path is '/'
> CWD teslamate-backup
* ftp_perform ends with SECONDARY: 0
< 250 CWD command successful.
> CWD user
< 250 CWD command successful.
> PASV
* Connect data stream passively
< 227 Entering Passive Mode ()
*   Trying ...
* Connecting to  () port 
* Connected to 21 (#0)
> TYPE I
< 200 Type set to I.
> STOR teslamate_backup_2022-01-15-1253.tar.gz
< 150 Opening BINARY mode data connection for 'teslamate_backup_2022-01-15-1253.tar.gz'.
} [data not shown]
* We are completely uploaded and fine
* Remembering we are in dir "teslamate-backup/"
< 226 Transfer complete.
* Connection #0 to host thugerie.synology.me left intact
/home/backup.sh: line 27: /root: Is a directory

Tout est OK, nous pouvons alors ajouter ceci dans une tâche périodique.

Saisissez : 

crontab -e

pour ouvrir la crontab, et ajoutez par exemple cette ligne (tapez "i" pour passer en mode insertion) 

0 2 * * * sudo sh /home/backup.sh

Pour exécuter le script de sauvegarde tous les jours à 02:00.

 

C'est terminé.

 

 Mettre à jour automatiquement Teslamate avec Watchtower
 

Pour pouvoir mettre à jour automatiquement Teslamate, vous pouvez installer Watchtower, qui est un conteneur qui va surveiller périodiquement les autres conteneurs présents, et les mettre à jour quand une nouvelle version est disponible. Si cela est très pratique, quelques exemples récents montrent que l'on peut avoir une déconvenue, donc choisissez cela en connaissance de cause.

 

Pour installer watchtower, rien de plus simple.

Utilisez le contenu suivant

watchtower:
    image: containrrr/watchtower:latest
    container_name: watchtower
    restart: always
    volumes:
      - '/var/run/docker.sock:/var/run/docker.sock'
    environment:
      - TZ=Europe/Paris
      - WATCHTOWER_LIFECYCLE_HOOKS=1 # Enable pre/post-update scripts
      - WATCHTOWER_CLEANUP=true
      - WATCHTOWER_SCHEDULE=0 30 3 * * *

Que vous pourrez coller dans un docker-compose.yml (soit un nouveau à créer dans un nouveau dossier, soit celui de Teslamate si vous souhaitez), comme toujours par exemple à l'aide de cette commande

sudo vi docker-compose.yml

Puis en appuyant sur "i" pour passer en mode insertion, et en collant ces lignes.

Une fois ceci fait, saisissez : 

sudo docker-compose up -d

Et voilà, tous les jours à 03:30:00 watchtower ira vérifier les conteneurs, et les mettra à jour au besoin. De cette manière vous aurez toujours Teslamate à jour. Pour modifier la périodicité à votre convenance, vous n'avez qu'à changer la dernière ligne 

      - WATCHTOWER_SCHEDULE=0 30 3 * * *

Avec le premier item qui est les secondes, le deuxième les minutes, le troisième les heures, le quatrième le jour, etc. * signifie "tous", donc par exemple 03:30:00 tous les jours.

Gérer ces conteneurs via Portainer 

 

Portainer est une interface graphique permettant de gérer des conteneurs aisément, et d'en voir notamment les logs très facilement, ce qui peut s'avérer utile dans bien des cas.

 

Pour déployer Portainer, il suffit de lancer cette commande

docker run -d -p 8000:8000 -p 9000:9000 -p 9443:9443 \
    --name=portainer --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v portainer_data:/data \
    cr.portainer.io/portainer/portainer-ce:2.9.3

Vous aurez alors Portainer qui sera utilisable sur un navigateur web, en y accédant via https://(votre IP ou nom de domaine personnalisé):9443.

 

Depuis cette interface web, une fois que vous vous serez connecté, vous verrez l'ensemble des conteneurs actuellement en route : 

image.thumb.png.b4344d47404da1d4e4759f4843bac8de.png

 

L'avantage, est que par exemple s'il vous faut redémarrer un conteneur, ou consulter les logs, ceci se fait en un clic : 

image.thumb.png.10ee1f32eaabc07c758a1835ec9ef544.png

 

Notez que si vous avez déjà Portainer qui tourne ailleurs, et que vous souhaitez uniquement ajouter vos nouveaux conteneurs déployés sur le cloud Oracle à votre environnement existant, il vous suffit de déployer "portainer-agent" uniquement, via cette commande

docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes cr.portainer.io/portainer/agent:2.9.3

Et ensuite pour ajouter à votre Portainer déjà existant, il suffit d'aller dans "Environments", puis en ajouter un : 

image.thumb.png.c65b241725b38ddd12cd14271af8f1c9.png 

En lui donnant un nom et l'URL où il est joignable (IP ou adresse).

Immense merci pour ce pas à pas, même avec aucune compréhension mais un peu de débrouillardise on arrive à suivre les étapes !

 

Mais je me croyais sur la bonne voie avant d'avoir un message bloquant, si l'un de vous a une idée ?

On doit saisir :

 

mkdir /etc/acme
mkdir /auth

 

Mais ça me donne ça :

[opc@teslamate ~]$ mkdir /etc/acme

mkdir: cannot create directory '/etc/acme': Permission denied

[opc@teslamate ~]$ mkdir /auth

mkdir: cannot create directory '/auth': Permission denied

[opc@teslamate ~]$

Partager ce message


Lien à poster
Partager sur d’autres sites





×
×
  • Créer...
Automobile Propre

Automobile Propre est un site d'information communautaire qui est dédié à tout ce qui concerne l'automobile et l'environnement. Les thématiques les plus populaires de notre blog auto sont la voiture électrique et les hybrides, mais nous abordons également la voiture GNV / GPL, les auto à l'hydrogène, les apects politiques et environnementaux liés à l'automobile. Les internautes sont invités à réagir aux articles du blog dans les commentaires, mais également dans les différents forums qui sont mis à leur dispositon. Le plus populaire d'entre eux est certainement le forum voiture électrique qui centralise les discussions relatives à l'arrivée de ces nouveaux véhicules. Un lexique centralise les définitions des principaux mots techniques utilisés sur le blog, tandis qu'une base de données des voitures (commercialisées ou non) recense les voitures électriques et hybrides.