====== Teslamate ======
Skvělý logger na vlastním server dat pro auta značky Tesla.
===== Instalace =====
Jako inspiraci lze použít video:
{{youtube>93Dng-SwukE?}}
Instaluji pomocí dockeru a na začátek je potřeba dobře zabezpečit. Pomocí stránky https://randomkeygen.com/ jsem si vygeneroval token na zakryptování Tesla API tokenu.
Takto vypadá můj //docker-compose.yml//:
version: "3.3" # Nastavení verze Docker Compose
services:
teslamate:
container_name: teslamate
image: teslamate/teslamate:latest
restart: always
environment:
- ENCRYPTION_KEY=****** #replace with a secure key to encrypt your Tesla API tokens f.ex. randomkeygen.com
- DATABASE_USER=*******
- DATABASE_PASS=******* #insert your secure database password!
- DATABASE_NAME=*******
- DATABASE_HOST=database
- MQTT_HOST=*******
- MQTT_PORT=8883
- MQTT_USERNAME=*******
- MQTT_PASSWORD=*******
- MQTT_TLS=true
- MQTT_TLS_ACCEPT_INVALID_CERTS=true
- TZ=Europe/Prague
ports:
- 4000:4000
volumes:
- ./import:/opt/app/import
cap_drop:
- all
database:
container_name: postgres
image: postgres:17
restart: always
environment:
- POSTGRES_USER=*******
- POSTGRES_PASSWORD=******* #insert your secure database password!
- POSTGRES_DB=*******
- TZ=Europe/Prague
volumes:
- teslamate-db:/var/lib/postgresql/data
grafana:
container_name: grafana-teslamate
image: teslamate/grafana:latest
restart: always
environment:
- DATABASE_USER=*******
- DATABASE_PASS=******* #insert your secure database password!
- DATABASE_NAME=*******
- DATABASE_HOST=database
- TZ=Europe/Prague
ports:
- 3001:3000
volumes:
- teslamate-grafana-data:/var/lib/grafana
volumes:
teslamate-db:
teslamate-grafana-data:
Samozřejmě je nutné nahradit hvězdičky vlastními hesly, uživatelskými jmény atp. Další možnosti nastavení Environment Variables pro Teslamate je v [[https://docs.teslamate.org/docs/configuration/environment_variables|dokumentaci]].
Jakmile budu řešit zabezpečení, tak bude dobré zprovoznit v dockeru **traefik proxy** dle [[https://docs.teslamate.org/docs/guides/traefik|návodu]].
Ještě pro úplnost doplňuji, že databáze je uložena mimo kontejner v dockeru a je v cestě: **/var/lib/docker/volumes**
==== Získání Tesla tokenu ====
K získání Tesla tokenu jsem použil tento nástroj: https://github.com/fredli74/fetch-tesla-token
Nainstaloval jsem si ho lokálně a spustil ve složce pomocí příkazu:
npm run start
Postup je takový, že zadám url: http://localhost:15198
Tam běží stránka, kde je popsaný postup. Kliknu na URL, přihlásím se k Tesla účtu a zkopíruji URL zpátky do stránky Tesla token fetcher. Následně pak získám Access Token a Refresh Token potřebný pro přihlášení Teslamate.
==== Záloha a obnova databáze ====
Návod vychází z [[https://docs.teslamate.org/docs/maintenance/backup_restore|této dokumentace]] a je potřeba opět nastavit správná uživatelské jméno a databázi.
Záloha databáze:
docker compose exec -T database pg_dump -U teslamate teslamate > ./teslamate.bck
Obnova databáze:
# Stop the teslamate container to avoid write conflicts
docker compose stop teslamate
# Drop existing data and reinitialize (Don't forget to replace first teslamate if using different TM_DB_USER)
docker compose exec -T database psql -U teslamate teslamate << .
DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
CREATE EXTENSION cube WITH SCHEMA public;
CREATE EXTENSION earthdistance WITH SCHEMA public;
.
# Restore
docker compose exec -T database psql -U teslamate -d teslamate < teslamate.bck
# Restart the teslamate container
docker compose start teslamate
==== Upgrade na novou verzi ====
Předem určitě zálohovat databázi a poté spustit příkazy:
docker compose stop
docker compose pull
docker compose up -d