EL Troubleshooting - KnevS/Tesla-Carview GitHub Wiki
Αντιμετώπιση Προβλημάτων
🤖 Αυτή η ελληνική μετάφραση είναι υποστηριζόμενη από AI από το αγγλικό πρωτότυπο. Διορθώσεις ευπρόσδεκτες μέσω GitHub.
🌐 Γλώσσα: EN · DE · FR · ES · TR · EL
Λύσεις στα πιο συνηθισμένα προβλήματα. Ξεκινήστε με την πιο πιθανή αιτία και προχωρήστε προς τα κάτω.
🚫 Δεν μπορώ να φτάσω στην εφαρμογή καθόλου
Έλεγχος: Τρέχει ο διακομιστής;
# Check container status:
docker compose -f /opt/tesla-carview/docker-compose.prod.yml ps
# Should show all containers as "Up":
# tesla-carview-backend Up
# tesla-carview-frontend Up
# tesla-carview-nginx Up
Εάν κάποιο container εμφανίζει "Exit" ή "Restarting":
# View logs for the problem container:
docker compose -f /opt/tesla-carview/docker-compose.prod.yml logs backend
docker compose -f /opt/tesla-carview/docker-compose.prod.yml logs nginx
Επανεκκινήστε τα πάντα:
docker compose -f /opt/tesla-carview/docker-compose.prod.yml up -d
Έλεγχος: Επιλύεται σωστά ο τομέας;
nslookup tesla.yourdomain.com
# Should show your server's IP address
# Or from your browser: visit https://dnschecker.org
Εάν το DNS δεν επιλύεται → περιμένετε 10–30 λεπτά μετά την αλλαγή εγγραφών DNS.
Έλεγχος: Μπλοκάρει το firewall την πρόσβαση;
ufw status
# Ports 80 and 443 must show ALLOW
Εάν λείπουν:
ufw allow 80/tcp
ufw allow 443/tcp
🔴 "502 Bad Gateway" ή "503 Service Unavailable"
Αυτό σημαίνει ότι το nginx τρέχει αλλά το backend δεν αποκρίνεται.
# Check backend:
docker compose -f /opt/tesla-carview/docker-compose.prod.yml logs backend --tail=50
Συνηθισμένη αιτία: το backend κατέρρευσε λόγω σφάλματος εκκίνησης. Συχνά μια μεταβλητή .env που λείπει ή ζήτημα δικαιωμάτων βάσης δεδομένων.
Διορθώστε τα δικαιώματα βάσης δεδομένων:
docker compose -f /opt/tesla-carview/docker-compose.prod.yml down
chown -R 1000:1000 /var/lib/docker/volumes/tesla_data/
docker compose -f /opt/tesla-carview/docker-compose.prod.yml up -d
🔒 Σφάλματα SSL/HTTPS ("Certificate not valid", "NET::ERR_CERT_EXPIRED")
Το πιστοποιητικό Let's Encrypt έχει λήξει ή δεν εκδόθηκε σωστά.
# Check certificate status:
certbot certificates
# Renew manually:
certbot renew --force-renewal
systemctl restart nginx
Εάν το certbot δεν μπορεί να ανανεωθεί (το DNS δεν επιλύεται, η θύρα 80 μπλοκαρισμένη):
- Ελέγξτε ότι η θύρα 80 είναι ανοιχτή στο firewall ΚΑΙ στον router σας (port forwarding)
- Ελέγξτε ότι το DNS του τομέα σας δείχνει στην IP του διακομιστή σας
🚗 Το όχημα δεν εμφανίζει δεδομένα / εμφανίζεται ως "offline"
Tesla API μη συνδεδεμένο
→ Ελέγξτε Admin → System → System Health — η ενότητα "Tesla Token" δείχνει την κατάσταση σύνδεσης.
Εάν έχει λήξει: Admin → System → Reconnect Tesla Account
Το όχημα κοιμάται
Τα οχήματα Tesla κοιμούνται μετά από 15–30 λεπτά αδράνειας. Η εφαρμογή περιμένει να ξυπνήσει το αυτοκίνητο. Μπορείτε να το ξυπνήσετε χειροκίνητα:
- Ανοίξτε την επίσημη εφαρμογή Tesla στο τηλέφωνό σας
- Πατήστε οποιαδήποτε λειτουργία (κλιματισμός, κόρνα) για να ξυπνήσετε το αυτοκίνητο
- Το TeslaView θα πρέπει να ενημερώσει εντός 60 δευτερολέπτων
XP7 VIN (Model Y Juniper) — Το GPS δεν ενημερώνεται
Ορισμένα νεότερα οχήματα δεν επιστρέφουν δεδομένα GPS μέσω του τυπικού REST API. Αυτός είναι περιορισμός της Tesla. Το Fleet Telemetry παρέχει δεδομένα GPS για αυτά τα οχήματα — επικοινωνήστε με Tesla Fleet Telemetry Access εάν το χρειάζεστε.
🔑 "Tesla API returned 403 Forbidden"
Όλες οι κλήσεις Tesla API επιστρέφουν 403; Αυτό συνήθως σημαίνει ότι ο λογαριασμός Tesla Developer σας έχει ανασταλεί ή έχει ζήτημα χρέωσης.
- Συνδεθείτε στο developer.tesla.com
- Ελέγξτε για τυχόν προειδοποιήσεις λογαριασμού, ειδοποιήσεις χρέωσης ή μηνύματα αναστολής
- Συμπληρώστε τυχόν απαιτούμενες πληροφορίες χρέωσης (ακόμα και για χρήση δωρεάν επιπέδου, ενδέχεται να απαιτείται πιστωτική κάρτα)
- Μετά την επίλυση: Admin → System → Reconnect Tesla Account
🧭 Ο οδηγός εγκατάστασης αποτυγχάνει στη δημιουργία διαχειριστή
Σύμπτωμα: Σε μια νέα εγκατάσταση, το βήμα 2 του οδηγού (δημιουργία λογαριασμού διαχειριστή) αποτυγχάνει με Transaction function cannot return a promise. Αφορά εκδόσεις έως και την v3.32.5.
Αιτία & λύση: Ένα σφάλμα στο /api/setup/init (#170) — διορθώθηκε στην v3.32.6. Ενημερώστε στην τελευταία έκδοση και ανοίξτε ξανά τον οδηγό:
cd /opt/tesla-carview
git pull
docker compose -f docker-compose.prod.yml up -d --build
Στη συνέχεια, ο λογαριασμός διαχειριστή μπορεί να δημιουργηθεί ξανά. Οι υπάρχουσες εγκαταστάσεις δεν επηρεάζονται.
🔐 Προβλήματα σύνδεσης
"Invalid username or password" — αλλά είμαι σίγουρος ότι είναι σωστά
- Ελέγξτε το Caps Lock
- Εάν αλλάξατε πρόσφατα κωδικούς πρόσβασης, δοκιμάστε τον παλιό (ο περιηγητής μπορεί να έχει αποθηκεύσει τον παλιό)
- Οι λογαριασμοί διαχειριστή μπορούν να επαναφέρουν κωδικούς χρηστών: Admin → Users → ο λογαριασμός σας → Reset Password
"Account locked"
Μετά από 5 αποτυχημένες προσπάθειες σύνδεσης, ο λογαριασμός κλειδώνεται για 15 λεπτά. Περιμένετε ή ζητήστε από έναν διαχειριστή να τον ξεκλειδώσει.
Οι διαχειριστές μπορούν να ξεκλειδώσουν μέσω:
# In the container:
docker compose -f /opt/tesla-carview/docker-compose.prod.yml exec backend node -e "
const db = require('./src/db/database.js');
db.getDb('YOUR-TENANT-ID').prepare('UPDATE users SET failed_login_attempts=0, locked_until=NULL WHERE username=?').run('USERNAME');
"
Ξεχάσατε τον κωδικό πρόσβασης διαχειριστή
Εάν δεν μπορείτε να συνδεθείτε ως διαχειριστής:
# Get a shell in the backend container:
docker compose -f /opt/tesla-carview/docker-compose.prod.yml exec backend sh
# Reset password (replace values):
node -e "
const bcrypt = require('bcrypt');
const { getDb } = require('./src/db/database.js');
const hash = bcrypt.hashSync('NewPassword123!', 12);
// You need the tenant ID — find it in master.db:
// getDb is called with tenant UUID
"
Ή απλούστερα: επαναφέρετε από ένα backup που κάνατε όταν γνωρίζατε τον κωδικό πρόσβασης.
📱 Οι push ειδοποιήσεις δεν λειτουργούν
Desktop
- Ελέγξτε τα δικαιώματα ειδοποιήσεων του περιηγητή: κάντε κλικ στο εικονίδιο κλειδαριάς στη γραμμή διεύθυνσης → Notifications → Allow
- Ελέγξτε ότι η εφαρμογή χρησιμοποιεί HTTPS (απαιτείται για push)
- Δοκιμάστε: Settings → Push Notifications → Test Notification
iOS (iPhone/iPad)
Οι push ειδοποιήσεις στο iOS λειτουργούν μόνο από το Home Screen shortcut (PWA), όχι από την καρτέλα του περιηγητή.
- Ανοίξτε το TeslaView στο Safari
- Πατήστε Share → "Add to Home Screen"
- Ανοίξτε από το εικονίδιο της Home Screen → οι ειδοποιήσεις τώρα λειτουργούν
🐛 Οι εντολές δεν λειτουργούν (κλιματισμός, κλειδαριές κ.λπ.)
Οι εντολές απαιτούν να έχει συζευχθεί το Virtual Key:
- Έλεγχος: Settings → Virtual Key — η κατάσταση πρέπει να εμφανίζει "Paired"
- Εάν δεν είναι συζευγμένο: ανοίξτε το URL σύζευξης στον περιηγητή του αυτοκινήτου Tesla (όχι στο τηλέφωνό σας)
- Επιβεβαιώστε στην εφαρμογή Tesla στο τηλέφωνό σας
Ελέγξτε επίσης: Admin → System → Virtual Key Status
🗄️ Σφάλματα βάσης δεδομένων ("disk I/O error", "database is locked")
Συνήθως προκαλούνται από αποτυχημένη κάρτα SD στο Raspberry Pi. Ελέγξτε:
# Check filesystem for errors:
dmesg | grep -i "error\|fail\|corrupt"
# Check SD card health:
df -h
Εάν δείτε σφάλματα I/O → η κάρτα SD σας αποτυγχάνει. Δημιουργήστε αμέσως ένα backup και αλλάξτε σε USB SSD: → Raspberry Pi Storage
📋 Προβολή logs
# Backend application logs:
docker compose -f /opt/tesla-carview/docker-compose.prod.yml logs backend --tail=100 -f
# nginx access log:
docker compose -f /opt/tesla-carview/docker-compose.prod.yml logs nginx --tail=50
# System journal (fail2ban, etc.):
journalctl -u fail2ban --since "1 hour ago"
# fail2ban bans:
fail2ban-client status sshd
Οι σελίδες φορτώνουν μισές — βοηθά μόνο η ανανέωση
Τυπικά: ένα στοιχείο μενού είναι κλικαρίσιμο, αλλά η σελίδα μένει κενή ή μισογεμάτη· μετά από F5 υπάρχουν όλα. Ιδιαίτερα συχνό αμέσως μετά από zoom σε χάρτη.
Η αιτία είναι σχεδόν πάντα ένα υπερβολικά αυστηρό όριο ρυθμού στο reverse proxy μπροστά. Ένα zoom στον χάρτη φορτώνει 50–150 πλακίδια μέσω /api/tiles/, μια αλλαγή σελίδας στέλνει 15–26 αιτήματα. Αν μοιράζονται ένα μικρό burst, τα υπόλοιπα παίρνουν HTTP 429 — η εφαρμογή δείχνει τότε για λίγο κάτω δεξιά «ο διακομιστής περιορίζει τα αιτήματα» και, από την v3.52.4, τα επαναλαμβάνει μόνη της.
Έλεγχος (40 παράλληλα αιτήματα πρέπει να επιστρέψουν όλα 200):
for i in $(seq 1 40); do curl -s -o /dev/null -w '%{http_code} ' https://to-domain-sas.com/api/health & done; wait; echo
Από πού ήρθε το 429 το δείχνει η απόκριση: κεφαλίδα x-retry-in → Traefik, σελίδα σφάλματος HTML → nginx (limit_req), ratelimit-limit/ratelimit-remaining → η ίδια η εφαρμογή. Οι συνιστώμενες τιμές και έτοιμα πρότυπα βρίσκονται στο docs/02-deployment.el.md, ενότητα «Λειτουργία πίσω από δικό σας reverse proxy».
Δεν εμφανίζεται ένδειξη περιορισμού και το κλικ σε μια προβολή δεν κάνει τίποτα; Τότε συνήθως η εγκατάσταση ενημερώθηκε ενώ η καρτέλα ήταν ανοιχτή. Η παλιά σελίδα ζητά τμήματα κώδικα (/assets/…) που δεν υπάρχουν πια μετά την ενημέρωση (HTTP 404). Από την v3.57.4 η εφαρμογή το αναγνωρίζει, και στον Firefox και όταν λείπει το CSS, και φορτώνει απευθείας την προβολή που επέλεξες. Οι παλαιότερες εκδόσεις έχαναν το κλικ και χρειαζόταν χειροκίνητο F5.
Ακόμα κολλημένοι;
- Ελέγξτε τα GitHub Issues — κάποιος μπορεί να είχε το ίδιο πρόβλημα
- Ανοίξτε ένα νέο issue με:
- Τι δοκιμάσατε
- Τι συνέβη (μηνύματα σφάλματος, screenshots)
- Τη ρύθμισή σας (μοντέλο Pi, πάροχος VPS, έκδοση λειτουργικού)
- Σχετική έξοδος log (αφαιρέστε κωδικούς πρόσβασης ή μυστικά)