¿Cómo Instalar TESLAMATE en ORACLE CLOUD?

Hoy vamos a ver un tema técnico, un poco de cacharreo que me gusta. Estuve montando una máquina virtual para poder recopilar información de forma online de un vehículo Tesla.

TESLAMATE con GRAFANA

Si quieres saber como monitorizar tu vehículo Tesla, controlar todos los parámetros disponibles en un TESLA, este software TESLAMATE es una opción muy poderosa para acceder a las lecturas de datos Brutal para tu coche eléctrico de ultima generación. Vamos a utilizar la Nube de ORACLE CLOUD para desplegar una maquina virtual y en ella instalar DOCKER donde instalaremos TESLMATE y GRAFANA que nos va a mostrar la ingente cantidad de datos posibles de consultar.

El tutorial de Instalación de TESLAMATE no esta tengo que reconocer realizado como otros tutoriales que hice en el canal, por ello te pido disculpas pues lo hice con falta de tiempo y sin tener inicialmente la idea de realizar un vídeo ya que últimamente no dispongo de tiempo para dedicar al canal como antes y como me gustaban hacer los videos, pero al menos dejar algo de información para todo aquel que quiera iniciarse o buscar de forma fácil datos, entre el vídeo y la pagina web espero que encuentres datos suficientes para conocer más y también montar si es vuestro interés una infraestructura como esta para tener todos, todos los datos del coche.

Necesario para Instalar TESLAMATE

Necesitas:

Vehículo TESLA. Servidor ONLINE constantemente que se comunique con el coche, ya sea Raspberry Pi, NAS, servicios en la nube o tu propio servidor.

Sistema operativo tipo UBUNTU. DOCKER contenedor.

TESLAMATE GRAFANA ZERO TIER. (parecido a una VPN)

 

Con todo esto podrás montar tu sistema para recopilar datos y saber en todo momento cuanto consumió el coche, los km, las cargas, eficiencia, temperaturas, etc. del coche. Para los que la información es algo interesante no puede ser mejor aplicación, así que a por ello. Cualquier aporte y comentario que ayude a todos será bien vendido disculpar por las partes difusas del vídeo y nos vemos. Saludos.

Teslamate es un programa que permite recopilar información de forma exhaustiva de un vehículo Tesla, el servidor debe mantenerse siempre encendido, siendo capaz de recopilar toda la información del coche usando los datos de la cuenta de Tesla.

Os COMPARTO EL PROCEDIMIENTO QUE Seguí para montar mi servidor TESLAMATE con una cuenta de la nube de Oracle, esta compañía ofrece un Servidor de forma gratuita por siempre, con unas capacidades determinadas.

En la explicación es posible que no esté todo bien detallado, y algo sea un poco lio, pero quiero dejar constancia de este proceso ya que a mí me costó un poco encontrar información en castellano de este proceso, así espero algo pueda servir de ayuda a más gente que realice este proceso, dejando constancia de algunos puntos del proceso, aunque como digo, puede resultar un poco caótico los pasos y la grabación que hice, ya que no fue la mejor, disculparme por ello, lo hago con la mejor intención dado el trabajo que supone ya de por si montar el sistema, al menos dejar constancia de algunos pasos y la herramienta Teslamate.. Con todo esto vamos a por ello, esperando que te sea útil, si alguna observación tienes deja en los comentarios notas aclaratorias para que nos sea útil a todos.

Espero también dejar esto en la página web www.notecpol.com

Esta aplicación se puede instalar en dispositivos Raspberry, en Nas synology según que procesador utilices o en NAS Qnap, o un equipo o servidor propio en tu casa.

Vamos a instalar El servidor con sistema operativo Ubuntu, en el que montaremos el Teslamate y Grafana donde recogeremos toda la información, vinculado a la cuenta de Tesla de tu vehículo.

Espero tus aportes y vamos a por ello.

PASOS

Creamos una cuenta gratuita en cloud.oracle.com te piden tarjeta de crédito pero no cobran nada, también te dan un crédito para funcionalidades Premium.

Crear una Máquina Virtual con sistema operativo UBUNTU.

Utilizar imagen para máquina, CANONICAL UBUNTU.

Imprescindible generar y descargar la Clave pública y privada para conectar mediante SSH a nuestro servidor.

Descargamos y guardamos SSH KEY pública y privada.

Ejecutamos la creación de la Máquina virtual. Dura unos minutos el proceso de creación y rápidamente disponemos del servidor online.

Nos facilitara la IP y resto de parámetros de la máquina que podremos necesitar después.

Una vez creado vamos a configurar el acceso SSH a la máquina.

Usaremos PUTTY para conectarnos a la maquina creada, Verificar la versión de Putty.

Os dejo los enlaces en la página web con las versiones y los programas necesarios descargar para usar y atentos especialmente a las versiones que usemos.

IMPORTANTE para instalar Teslamate en una instancia de Oracle.

  1. Aseguraos que estáis usando la última versión de Putty (es la 0.76)
  2. La clave privada que os da Oracle para entrar no os vale en Putty, os dará un error. Hay que convertirla a .ppk con PuttyGen para luego meterla en PUTTY.

¿Cómo Instalar TESLAMATE en ORACLE CLOUD?

A mí me daba error por usar una versión de PuTTy inferior a la indicada en pantalla y la cual no me permitía conectar al servidor, esto me hizo perder mucho tiempo.

https://www.putty.org/

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

putty.exe (the SSH and Telnet client itself)

64-bit x86: putty.exe (or by FTP) (signature)

64-bit Arm: putty.exe (or by FTP) (signature)

32-bit x86: putty.exe (or by FTP) (signature)

Instalar Teslamate

Una vez montada la máquina, virtual, descargadas las claves SSH, cambiadas al formato de Putty y utilizando la IP del servidor para el puerto 22 podremos cargar la Clave y conectar al Servidor para instalar Docker que es el siguiente paso.

si te pide usuario la primera vez que conectas seria «ubuntu»

Instalación de DOCKER para después instalar Teslamate

Voy a realizar algunas acciones para actualizar antes el sistema, antes de realizar la instalación de DOCKER y TESLAMATE.

Seguir estas indicaciones para instalar DOCKER antes de nada.

https://docs.teslamate.org/docs/installation/docker/

1 Creamos el archivo llamado docker-compose.yml y ese fichero que guardamos si queremos en el vamos a pegar el siguiente contenido que es lo que tendremos que pasar al servidor:

Sudo nano docker-compose.yml

presiona control + x para salir, Y para guardar, Enter para guardar el archivo

docker-compose.yml

version: '3'
services:
  teslamate:
    image: teslamate/teslamate:latest
    restart: unless-stopped
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS=guinda # change this to whatever you like
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=db
      - MQTT_HOST=mosquitto
      - VIRTUAL_HOST=X.X.X.X # if you're going to access the UI from another machine replace
                               # "localhost" with the hostname / IP address of the Docker Droplet.
      - TZ=Europe/Madrid       # (optional) replace to use local time in debug logs. See "Configuration".
    ports:
      - 4000:4000
    cap_drop:
      - all

  db:
    image: postgres:11
    restart: unless-stopped
    environment:
      - POSTGRES_USER=teslamate
      - POSTGRES_PASSWORD=secret # change this to whatever you like
    volumes:
      - teslamate-db:/var/lib/postgresql/data

  grafana:
    image: teslamate/grafana:latest
    restart: unless-stopped
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS=secret # change this to whatever you like
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=db
    ports:
      - 3000:3000
    volumes:
      - teslamate-grafana-data:/var/lib/grafana

  mosquitto:
    image: eclipse-mosquitto:1.6
    restart: unless-stopped
    ports:
      - 1883:1883
    volumes:
      - mosquitto-conf:/mosquitto/config
      - mosquitto-data:/mosquitto/data

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

version: «3»

services:
  teslamate:
    image: teslamate/teslamate:latest
    restart: always
    environment:
      – DATABASE_USER=teslamate
      – DATABASE_PASS=secret
      – DATABASE_NAME=teslamate
      – DATABASE_HOST=database
      – MQTT_HOST=mosquitto
    ports:
      – 4000:4000
    volumes:

Despues creamos el .env

sudo nano .env

TM_DB_USER=teslamate
TM_DB_PASS=secret
TM_DB_NAME=teslamate

GRAFANA_USER=admin
GRAFANA_PW=admin

FQDN_GRAFANA=grafana.ejemplo .com
FQDN_TM=teslamato.ejemplo .com

TM_TZ= Europa/Berlín

LETSENCRYPT_EMAIL= tupersona@ejemplo.com

Una vez pegado y personalizado, presiona control + x para salir, Y para guardar, Enter para guardar el archivo

Comandos Teslamate

Instalación Docker:

sudo apt install docker-compose -y

sudo docker-compose up -d

 

Asegurémonos de tener docker-composer instalado ejecutando el siguiente comando:

apt install docker-compose-y

sudo apt install docker-compose

sudo snap install docker

sudo apt-get install -y python3 python3-pip

sudo apt-get remove python-configparser

sudo pip3 -v install docker-compose

Reinicio del contenedor

service docker restart

Reinicio de la maquina

sudo reboot

 

Parar Teslamate

docker-compose stop teslamate

Iniciar Teslamate

docker-compose start teslamate

 

 

docker-compose ps

docker-compose up -d mosquitto

docker-compose up -d database

docker-compose up -d grafana

docker-compose up -d teslamate

ps -ef | grep docker

 

sudo docker-compose down

docker-compose down

docker-compose up –d

 

sudo apt-get update
ejecutar apt-get update Una vez que la actualización funcione bien, ejecute apt-get install docker.io

 

Zero Tier instalacion

sudo zerotier-cli join XXX (network id)

Con el ide autorizas al servidor en tu panel de Zero Tier para habilitar su acceso.

sudo apt install zerotier-one
curl -s https://install.zerotier.com/ | sudo bash sudo zerotier-cli join tu_Network_ID

Log

docker-compose logs teslamate

Programa para bajar o subir ficheros al servidor. IMPORTANTE: te bajas las copias en modo BINARIO

https://winscp.net/eng/download.php

 

ENLACES de INTERES y Muchas Gracias a José Antonio por su ayuda

satheesh

Github Teslamate

Graydonschawartz

Club Tesla Foro

TSLASPOT

https://ugeek.github.io/blog/post/2020-04-09-zerotier-funcionamiento-e-instalacion-por-docker-o-repositorios.html

Tethla

 

 

INSTALACIÓN TESLAMATE EN PLATAFORMA ORACLE CLOUD

INSTALACION Teslamate. A partir de la maquina creada en Oracle, y acceso con Putty (01/03/2022 con Guillermo)

Actualización sistema Ubuntu.

sudo apt-get update

Lanzamos

sudo apt-get upgrade

y le damos a Y

Siguientes comandos.

curl -sSL https://get.docker.com | sh

Después

sudo usermod -aG docker Ubuntu   (este commando aña al usuario ubuntu al grupo docker)

Después para reiniciar.

sudo reboot

Se desconecta de Putty, y vuelvo a conectarme con Putty

 

Instalamos Dependencias (una detrás de otra)

sudo apt-get install -y libffi-dev libssl-dev

sudo apt-get install -y python3 python3-pip

sudo apt-get remove python-configparser

 

Instalamos Docker

sudo pip3 -v install docker-compose

 

Probamos la instalación.

docker run hello-world   (debería ir todo bien)

 

Lanzamos para crear carpeta

mkdir teslamate

cd teslamate (entrar en la carpeta)

Creamos fichero de configuración

nano docker-compose.yml

Copiamos la configuración y ponemos contraseña en el campo password a partir del =

version: «3»

 

services:

teslamate:

image: teslamate/teslamate:latest

restart: always

environment:

– ENCRYPTION_KEY= #insert a secure key to encrypt your Tesla API tokens

– DATABASE_USER=teslamate

– DATABASE_PASS= #insert your secure database password!

– DATABASE_NAME=teslamate

– DATABASE_HOST=database

– MQTT_HOST=mosquitto

ports:

– 4000:4000

volumes:

– ./import:/opt/app/import

cap_drop:

– all

 

database:

image: postgres:13

restart: always

environment:

– POSTGRES_USER=teslamate

– POSTGRES_PASSWORD= #insert your secure database password!

– POSTGRES_DB=teslamate

volumes:

– teslamate-db:/var/lib/postgresql/data

 

grafana:

image: teslamate/grafana:latest

restart: always

environment:

– DATABASE_USER=teslamate

– DATABASE_PASS= #insert your secure database password!

– DATABASE_NAME=teslamate

– DATABASE_HOST=database

ports:

– 3000:3000

volumes:

– teslamate-grafana-data:/var/lib/grafana

 

mosquitto:

image: eclipse-mosquitto:2

restart: always

command: mosquitto -c /mosquitto-no-auth.conf

# ports:

#   – 1883:1883

volumes:

– mosquitto-conf:/mosquitto/config

– mosquitto-data:/mosquitto/data

 

volumes:

teslamate-db:

teslamate-grafana-data:

mosquitto-conf:

mosquitto-data:

 

DESPUES CONTROL + O  cerramos con control + X

 

 

Consultar el fichero docker compose

cat docker-compose.yml

LEVANTAMOS TODO

docker-compose up –d

 

Instalación ZERO TIER

curl -s https://install.zerotier.com | sudo bash

Comando con el ID de tu red de Zero Tier (tienes que darte de alta y tener cuenta y red de ZeroTier Creada)

sudo zerotier-cli join IDXXXXXXXXX

 

 

BACKUP

Usando el de Carlos:

https://github.com/carloscuezva/teslamate-maintenance/blob/main/backupTeslaMate.sh

mkdir scripts

cd scripts

nano backupTeslamate.sh (Nos sale el editor y copiamos esto de abajo ATENTO se debe modificar datos.)

PATH_COMPOSE sustituyo HOME por /home/ubuntu/teslamate

PATH_BACKUP /home/ubuntu/teslamate/Backup

Cambio a 30 dias de backup en vez de 15

Donde pone xargs rm los sustituyo por xargs –no-run-if-empty rm (para cuando tiene que buscar los antiguos en este caso no va a encontrar lo que le dice el comando que si no encuentra nada, no ejecute el borrado)

Se puede hacer copia cada dia y hora.

En Filename donde pone «%Y%m%d» lo cambio por «%Y%m%d%H%M»

Falta modificar la filename poniendo fecha y hora

—————————————————————-

#!/bin/bash
#
# Description: Script para hacer backup de la base de datos de TeslaMate
#
# Author: Carlos Cuezva
# Created: 23/04/2021
# Last update: 22/09/2021
 
PATH_COMPOSE=/home/ubuntu/teslamate/
PATH_BACKUP=/home/ubuntu/teslamate/Backup
 
echo -e ‘\n—- Comenzando el backup —-\n’
 
cd $PATH_COMPOSE
FILENAME=`date +»%Y%m%d»`_teslamate.bck
docker-compose exec -T database pg_dump -U teslamate teslamate > $PATH_BACKUP/$FILENAME
 
cd $PATH_BACKUP
gzip -9 -f $FILENAME
 
FILESIZE=`du -h «$FILENAME.gz» | cut -f1`
echo -e «\nLa copia de seguridad tiene un tamaño de $FILESIZE\n»
 
echo -e «\nQuitando copias de seguridad con más de 30 días de antigüedad\n»
find $PATH_BACKUP -type f -name ‘*_teslamate.bck.gz’ -mtime +30 | xargs rm xargs –no-run-if-empty rm
 
echo -e ‘\n—- Finalizado el backup —-\n’

 

 

Crear carpeta de Backups

CD para volver a Teslamate

mkdir Backup  (para crear la carpeta de Backup)

Volvemos a buscar al Scripts

cd scripts

sudo chmod +X backupTeslamate.sh  (para darle permisos de ejecución)

Comando para hacer el BACKUP

bash backupTeslamate.sh  (estando dentro de la carpeta scripts)

 

cd ..

pwd

cd teslamate

Listar archivos ll

cd /home/ubuntu/scripts

Lanzar Backup

bash backupTeslamate.sh