En este artículo voy a guiarte paso a paso sobre cómo instalar y configurar TeslaMate en su instancia de Vultr Cloud. Desde la selección de la configuración de su VM hasta la instalación y configuración de la herramienta en su máquina virtual. ¿Busca una guía sobre BuyVM? Guía de BuyVM.
En este tutorial, utilizo Vultr porque tienen una forma ideal de configurar un servidor Docker con su imagen preestablecida y empezar muy rápidamente. También me gusta que si no estás contento con TeslaMate puedes destruir fácilmente la instancia en la nube y seguir con tu día. Sin embargo, ver hasta qué punto se puede tomar con el $100 en créditos gratuitos (debe utilizar los créditos en un plazo de 30 días)!
Implante fácilmente servidores en la nube, bare metal y almacenamiento en todo el mundo.
- Computación en la nube, metal desnudo, nube dedicada, Kubernetes
- Recibe $100 para probar la plataforma Vultr.
Características de TeslaMate:
- Informes de conducción y cobro
- Informe sobre la eficiencia de la conducción
- Consumo de energía (neto / bruto)
- Carga de energía añadida frente a la energía utilizada
- Drenaje de Vampiros
- Alcance proyectado del 100% (degradación de la batería)
- Estadísticas de carga
- Estadísticas de conducción
- Historial de actualizaciones instaladas
- Vea cuando su coche estaba conectado o dormido
- Mapa de conducción de toda la vida
- Direcciones visitadas
También puede comprobar el estado de su coche (incluido el nivel de la batería) sin despertar a tu coche.
Vamos a seguir las instrucciones avanzadas de los desarrolladores debido al hecho de que vamos a utilizar una instancia en la nube, alternativamente, usted podría instalar esto en una Rasberry Pi o un ordenador extra que tenía por ahí. Sin embargo, me gusta esta opción con Vultr debido a que es fácil de reproducir para casi todo el mundo.
Despliegue de la nueva instancia
Elija el servidor: Computación en la nube
Ubicación del servidor: Chicago (yo he seleccionado Chicago, pero puedes seleccionar lo que más te convenga):
- Atlanta, Estados Unidos
- Nueva York (NJ), Estados Unidos
- Chicago, Estados Unidos
- Dallas, Estados Unidos
- Los Ángeles, Estados Unidos
- Miami, Estados Unidos
- Seattle, EE.UU.
- Silicon Valley, Estados Unidos
- Toronto, CANADÁ
- Amsterdam, Países Bajos
- París, Francia
- Frankfurt, Alemania
- Londres, Reino Unido
- Tokio, Japón
- Singapur, Singapur
- Sydney, Australia
Tipo de servidor: Aplicación: Docker: En CentOS 7 x64 19.03.4-ce
Tamaño del servidor: 25 GB SSD
$5,00/mes O $0,007/h
1 CPU
1024MB Memoria*
1000 GB Ancho de banda
*Nota: Docker requiere un plan con al menos 768MB de memoria.
Haga clic en ¡Despliegue ahora!
Haga clic en Productos
Información del servidor
Descargar PuTTY
Introduzca la dirección IP y haga clic en ¡Abierto!
GUÍA: Instalación avanzada 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
Configuración - docker-compose.yml
versión: "3"
servicios:
teslamate:
imagen: teslamate/teslamate:latest
reinicio: siempre
depende_de:
- base de datos
entorno:
- DATABASE_USER=${TM_DB_USER}
- DATABASE_PASS=${TM_DB_PASS}
- DATABASE_NAME=${TM_DB_NAME}
- DATABASE_HOST=base de datos
- MQTT_HOST=mosquitto
- VIRTUAL_HOST=${FQDN_TM}
- CHECK_ORIGIN=true
- TZ=${TM_TZ}
volúmenes:
- ./import:/opt/app/import
etiquetas:
- "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:
- todos
base de datos:
image: postgres:13
reinicio: siempre
entorno:
- POSTGRES_USER=${TM_DB_USER}
- POSTGRES_PASSWORD=${TM_DB_PASS}
- POSTGRES_DB=${TM_DB_NAME}
volúmenes:
- teslamate-db:/var/lib/postgresql/data
grafana:
image: teslamate/grafana:latest
reinicio: siempre
entorno:
- DATABASE_USER=${TM_DB_USER}
- DATABASE_PASS=${TM_DB_PASS}
- DATABASE_NAME=${TM_DB_NAME}
- DATABASE_HOST=base de datos
- 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=%(protocolo)s://%(dominio)s/grafana
- GF_SERVER_SERVE_FROM_SUB_PATH=true
volúmenes:
- teslamate-grafana-data:/var/lib/grafana
etiquetas:
- "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
reinicio: siempre
comando: mosquitto -c /mosquitto-no-auth.conf
puertos:
- 127.0.0.1:1883:1883
volúmenes:
- mosquitto-conf:/mosquitto/config
- mosquitto-data:/mosquitto/data
proxy:
imagen: traefik:v2.4
reinicio: siempre
comando:
- "--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"
puertos:
- 80:80
- 443:443
volúmenes:
- ./.htpasswd:/auth/.htpasswd
- ./acme/:/etc/acme/
- /var/run/docker.sock:/var/run/docker.sock:ro
volúmenes:
teslamate-db:
teslamate-grafana-data:
mosquitto-conf:
mosquitto-data:
Configuración - .env
TM_DB_USER=teslamate
TM_DB_PASS=secreto
TM_DB_NAME=teslamate
GRAFANA_USER=admin
GRAFANA_PW=admin
FQDN_TM=teslamate.example.com
TM_TZ=Europa/Berlín
LETSENCRYPT_EMAIL=yourperson@example.com
Configuración - .htpasswd
Según la documentación de TeslaMate. Le recomiendo que utilice esta herramienta para crear su archivo .htpasswd:
http://www.htaccesstools.com/htpasswd-generator/
Ingrese su deseo nombre de usuario, contraseña y seleccione Bcrypt (Apache v2.4 en adelante)
En el siguiente ejemplo, he introducido nombre de usuario y contraseña para estos campos:
Ejemplo:
mi:$2y$10$as5PEnYaoGEx2ebCFjdK0e9PBshAsvzIeAKijwNgeMSC9oJkDNo2.
Ahora copie y pegue esta información en su archivo .htpasswd.
vi .htpasswd (o su editor de texto favorito)
Asegúrese de configurar su contraseña antes de iniciar el Teslamate con Docker.
docker-compose up
Nota: Es posible que tenga que ejecutar este comando dos veces para que funcione.
Configuración del DNS
Tendrá que apuntar teslamate.example.com + grafana.exampe.com (su subdominio) a la dirección IP que le proporcionó Vultr cuando creó su servidor virtual. Para ello, póngase en contacto con su proveedor de servicios de Internet o acceda a su panel de control para gestionar sus registros DNS y añadir estas entradas.
Cómo iniciar sesión en TeslaMate
- Abrir la interfaz web https://teslamate.example.com
Inicie sesión con los datos que introdujo en el archivo .htpasswd y, a continuación, se le pedirá que inicie sesión con su cuenta de Tesla. - Inicia sesión con tu cuenta de Tesla
- Los cuadros de mando de Grafana están disponibles en: https://grafana.example.com.
- Introduzca el nombre de usuario y la contraseña:admin:admin primero y se le pedirá que cambie la contraseña en su primer acceso.
He gastado $0,01 o 1 céntimo para probar Teslamate. $0.02 para completar el tutorial 🙂 .
Puedes cambiar de Celcius a Fahrenheit y de Kilómetros a Millas en los ajustes.
Este es el aspecto de la pantalla de inicio. También verás un mapa con un pin sobre la ubicación de tu vehículo Tesla.
Fui a una sesión de carga en el enchufe normal de 12a más cercano para mostrar cómo es una sesión de carga con TeslaMate. Una interfaz limpia 🙂 .
Actualización del 10 de marzo de 2020
TeslaMate lanzó una actualización a la v1.17.1 hace unos 16 días.
- Añadir Tablero de viaje: Este panel se ha creado para visualizar los viajes más largos. Ofrece una visión general de todos los trayectos y cargas que se han registrado durante un periodo de varias horas o días.
- Página de lanzamiento de TeslaMate
Estoy muy emocionada por probar este nuevo Tablero de viaje añadido en la nueva versión. Esto será súper útil para los viajes por carretera de Tesla, por supuesto 🙂 .
Esta es la documentación que he utilizado para construir partes de este tutorial:
https://docs.teslamate.org/docs/guides/traefik
https://docs.teslamate.org/docs/guides/portainer
Actualización del 21 de marzo de 2020
Cómo utilizar la nueva función de viaje aparte de Teslamate:
- Abrir la interfaz web https://teslamate.example.com
- Cuadros de mando => Pulse o haga clic en "Viaje“
- Pulse o haga clic en "Hoy hasta ahora”
- Seleccione la preselección de "Últimos 5 minutos", hasta llegar a "Últimos 5 años" o la selección de un rango de fechas personalizado.
Espero que esta guía de configuración te haya resultado útil 🙂 .