Tesla API Token Alma ve TeslaMate Entegrasyon Rehberi
TeslaMate; Tesla aracınızın tüm sürüş, şarj, batarya sağlığı, uyku ve konum verilerini kendi yerel veritabanınızda (PostgreSQL) toplayıp Grafana ile görselleştiren en kapsamlı açık kaynaklı telemetri platformudur.
Tesla'nın güvenlik ve API mimarisindeki güncellemeler (Fleet API vs. Owner API) nedeniyle token alma süreci karmaşıklaşabilir. Bu rehber; bireysel araç sahipleri için doğru token üretimini, sık karşılaşılan "Tokens are invalid" hatasının çözümünü ve TeslaMate entegrasyonunu adım adım açıklar.
🔑 1. Hayati Ayrım: Owner API ve Fleet API Farkı
Tesla API ekosisteminde iki temel erişim yöntemi vardır: - Fleet API: Filolar, kurumsal geliştiriciler ve ticari işletmeler için tasarlanmıştır. Karmaşık geliştirici hesabı ve sertifika altyapısı gerektirir. - Owner API: Bireysel araç sahiplerinin resmi Tesla mobil uygulaması üzerinden araca eriştiği doğrudan OAuth2 protokolüdür.
[!important] Kritik Teşhis: "Tokens are invalid" Hatası TeslaMate'in dahili token yenileme mekanizması bireysel araçlar için
Owner API(client_id="ownerapi") protokolünü kullanır. Eğer üçüncü taraf web servislerinden (Fleet API tabanlı) token üretip TeslaMate'e yapıştırırsanız, sistemPOST https://auth.tesla.com/oauth2/v3/nts/token -> 404hatası verir. Çözüm: Bireysel hesaplar için doğrudantesla_autharacı kullanılmalıdır.
🛠️ 2. tesla_auth ile Güvenli Token Üretimi
Adrian Kumpf tarafından geliştirilen açık kaynaklı tesla_auth aracı, kimlik bilgilerinizi üçüncü taraf web sitelerine göndermeden doğrudan kendi bilgisayarınızdan resmi Tesla OAuth sunucusuyla konuşarak güvenli Access Token ve Refresh Token üretir.
Linux (Arch, CachyOS, Ubuntu) Üzerinde Çalıştırma:
# Klasör oluşturun ve son sürümü indirin
mkdir -p ~/tesla_auth && cd ~/tesla_auth
curl -LO https://github.com/adriankumpf/tesla_auth/releases/latest/download/tesla_auth-x86_64-unknown-linux-gnu.tar.xz
tar -xf tesla_auth-x86_64-unknown-linux-gnu.tar.xz
cd tesla_auth-x86_64-unknown-linux-gnu
chmod +x tesla_auth
./tesla_auth
[!tip] "libxdo.so.3: cannot open shared object file" Hatası Çözümü Eğer modern Linux dağıtımlarında
libxdo.so.3bulunamadı hatası alırsanız, sisteminizdeki mevcut kütüphaneye sembolik link vererek sorunu saniyeler içinde çözebilirsiniz:
Program çalıştığında tarayıcı tabanlı bir pencere açılır. Tesla hesabınızla (e-posta, şifre ve 2FA) oturum açtığınızda terminal ekranınıza iki kritik değer basılır:
1. Access Token (eyJhbGciOi...): Anlık veri çekme yetkisi.
2. Refresh Token (EU_... veya eyJhbGciOi...): Süresi bittikçe yeni token alma yetkisi.
🐳 3. TeslaMate ve Grafana Yapılandırması
Home Assistant OS Eklentisi veya bağımsız Docker Compose üzerinde TeslaMate'in yapılandırılması:
Gerekli Servis Parametreleri:
database_user: teslamate
database_pass: <GUCLU_VERITABANI_SIFRESI>
database_name: teslamate
database_host: teslamate-db
database_port: 5432
database_ssl: false
# Otomatik Grafana Panosu İçe Aktarımı:
grafana_import_dashboards: true
grafana_host: teslamate-grafana
grafana_port: 3000
grafana_user: admin
grafana_pass: <GRAFANA_SIFRESI>
disable_mqtt: true
timezone: Europe/Istanbul
encryption_key: <RASTGELE_32_KARAKTER_GUVENLIK_ANAHTARI>
[!success] Otomatik Dashboard Kurulumu
grafana_import_dashboards: trueparametresi sayesinde TeslaMate, Grafana konteynerine dahili ağdan bağlanarak tüm sürüş, şarj ve batarya sağlığı panellerini otomatik olarak kurar. Elle JSON import etmenize gerek kalmaz.
⚠️ 4. Grafana "Origin not allowed" Hatası Çözümü
Grafana 11+ sürümlerinde güvenlik nedeniyle tarayıcı Origin header doğrulaması yapılır. Home Assistant Ingress veya ters vekil (Reverse Proxy) üzerinden Grafana'ya girerken bu hatayı alırsanız:
Grafana yapılandırmasına veya Docker ortam değişkenlerine (environment) şu değişkeni ekleyin:
🔒 5. Güvenlik ve Temizlik Kontrolü
Token işlemi bittikten sonra: 1. Tesla Account → Güvenlik → Üçüncü Taraf Uygulamaları menüsüne gidin. 2. Artık kullanmadığınız veya geçersiz token üretmiş eski üçüncü taraf test izinlerini kaldırın. 3. TeslaMate sunucunuzu açın; ilk sürüş veya şarj başladığında tüm telemetri verilerinin saniye saniye Grafana'ya işlendiğini görebilirsiniz.