====== 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