Skvělý logger na vlastním server dat pro auta značky Tesla.
Jako inspiraci lze použít video:
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 dokumentaci.
Jakmile budu řešit zabezpečení, tak bude dobré zprovoznit v dockeru traefik proxy dle 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
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.
Návod vychází z 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
Předem určitě zálohovat databázi a poté spustit příkazy:
docker compose stop
docker compose pull
docker compose up -d