Keine Flüge angezeigt trotz aktiver Flüge
Was tun wenn das Display "Keine Flüge" zeigt, obwohl Flüge stattfinden sollten
Keine Flüge angezeigt trotz aktiver Flüge
Wenn Ihr Display "Keine Flüge geplant" zeigt, obwohl Flüge stattfinden sollten, gibt es mehrere mögliche Ursachen.
Symptome
Sie sehen eine dieser Anzeigen:
Schnell-Diagnose (3 Minuten)
Test 1: Airport-Code prüfen
Öffnen Sie das Portal:
[CODE_BLOCK]
Login → Settings → Configured Airports
[CODE_BLOCK]
Korrekte IATA-Codes:
Häufige Fehler:
" VIE" oder "VIE "Test 2: Demo-Modus testen
Testen Sie mit Vienna Live-Daten:
[CODE_BLOCK]
https://lobbyflight.com/display/demo
[CODE_BLOCK]
Falls Demo Flüge zeigt:
Falls Demo KEINE Flüge zeigt:
Test 3: API direkt testen
Öffnen Sie in einem neuen Tab:
[CODE_BLOCK]
https://lobbyflight.com/api/flights/ihre-hotel-id?type=departures
[CODE_BLOCK]
Erwartetes Ergebnis (wenn Flüge vorhanden):
[CODE_BLOCK]json
{
"success": true,
"data": [
{
"flight": { "iata": "OS501", "number": "501" },
"airline": { "name": "Austrian Airlines", "iata": "OS" },
"departure": {
"scheduled": "2024-12-04T10:00:00",
"airport": "Vienna",
"iata": "VIE",
"terminal": "3",
"gate": "F10"
},
...
}
],
"airport": "VIE",
"cachedAt": "2024-12-04T09:55:00Z"
}
[CODE_BLOCK]
Falls data: [] (leeres Array):
Ursache 1: Falscher oder ungültiger Airport-Code
Technische Details
Code-Location: /app/api/flights/[hotelId]/route.ts (Zeilen 89-111)
Die API lädt den Airport-Code aus Ihrer Hotel-Config:
[CODE_BLOCK]typescript
const hotel = await db.query.hotels.findFirst({
where: eq(hotels.id, hotelId)
})
const airportCode = hotel.airportCodes[0] // Erster Airport
const flights = await getFlights(airportCode, type)
[CODE_BLOCK]
Wenn Airport-Code falsch:
Schritt-für-Schritt-Lösung
Schritt 1: Aktuellen Airport-Code prüfen
Via Portal:
Schritt 2: IATA-Code verifizieren
Suchen Sie auf Wikipedia oder IATA-Datenbank:
[CODE_BLOCK]
https://en.wikipedia.org/wiki/List_of_airports_by_IATA_code
[CODE_BLOCK]
Beispiele richtiger Codes:
| Stadt | IATA | Flughafen |
| ------- | ------ | ----------- |
| Vienna | VIE | Vienna International Airport |
|---|---|---|
| Munich | MUC | Munich Airport |
| Frankfurt | FRA | Frankfurt Airport |
| Zurich | ZRH | Zurich Airport |
| Berlin | BER | Berlin Brandenburg |
| Hamburg | HAM | Hamburg Airport |
| Salzburg | SZG | Salzburg Airport |
Schritt 3: Code korrigieren
Falls falsch:
Ursache 2: AviationStack API filtert alle Flüge heraus
Technische Details
Code-Location: /lib/aviationstack.ts (Zeilen 148-221)
LobbyFlight filtert automatisch:
Filter-Logik:
[CODE_BLOCK]typescript
// Cargo-Airlines ausfiltern
const cargoAirlines = ['UPS Airlines', 'FedEx', 'DHL', 'Cargolux']
const isCargoFlight = cargoAirlines.includes(flight.airline?.name)
// Private/Charter ausfiltern
const isPrivateFlight = !flight.airline || flight.airline.name === null
// Zeit-Filter (Departures)
const scheduledTime = new Date(flight.departure.scheduled)
const currentTime = new Date()
const maxTime = new Date(currentTime.getTime() + 24 * 60 * 60 * 1000) // +24h
if (scheduledTime < currentTime.getTime() - 4 * 60 * 60 * 1000) return false // -4h
if (scheduledTime > maxTime) return false // +24h
[CODE_BLOCK]
Symptome
"Filtered out cargo/private flight: [Airline]"Lösung
Schritt 1: Console-Logs prüfen
Öffnen Sie DevTools (F12) → Console
Suchen Sie nach:
[CODE_BLOCK]
Filtered out cargo/private flight: UPS Airlines (5X) - 5X274
Filtered out cargo/private flight: FedEx (FX) - FX
AviationStack: After filtering, 0 flights remain
[CODE_BLOCK]
Falls viele Flüge gefiltert:
Schritt 2: Alternative Airport wählen
Kleine Cargo-Airports (vermeiden):
Große Passenger-Airports (empfohlen):
Schritt 3: Zeitfenster prüfen
Aktuelles Zeit-Fenster:
Falls aktuell 3:00 Uhr nachts:
Ursache 3: AviationStack API gibt keine Daten zurück
Technische Details
Code-Location: /lib/aviationstack.ts (Zeilen 50-130)
API-Request:
[CODE_BLOCK]
GET https://api.aviationstack.com/v1/flights
?access_key=YOUR_KEY
&dep_iata=VIE
&limit=100
[CODE_BLOCK]
Mögliche API-Probleme:
data: []Symptome
"AviationStack API error: 401""error": { "code": "invalid_access_key" }"pagination": { "total": 0 }Schritt-für-Schritt-Lösung
Schritt 1: API-Key prüfen
Für Administratoren:
[CODE_BLOCK]bash
Environment Variable prüfen:
echo $AVIATIONSTACK_API_KEY
Sollte ausgeben: alphanumerischer String (32+ Zeichen)
z.B.: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
[CODE_BLOCK]
Falls leer oder falsch:
.env.local setzen:[CODE_BLOCK]
AVIATIONSTACK_API_KEY=ihr_echter_key_hier
[CODE_BLOCK]
Schritt 2: API-Quota prüfen
AviationStack Free Plan:
Quota berechnen:
[CODE_BLOCK]
1 Hotel × 12 Requests/Stunde (5min Refresh) × 24h × 30 Tage = 8,640 Requests/Monat
→ Free Plan reicht NICHT!
[CODE_BLOCK]
Prüfen Sie Quota:
Falls Quota überschritten:
Schritt 3: Test-Request senden
Mit curl direkt testen:
[CODE_BLOCK]bash
curl "https://api.aviationstack.com/v1/flights?access_key=IHR_KEY&dep_iata=VIE&limit=1"
[CODE_BLOCK]
Erwartetes Ergebnis:
[CODE_BLOCK]json
{
"pagination": { "limit": 1, "total": 100 },
"data": [ { "flight_date": "2024-12-04", ... } ]
}
[CODE_BLOCK]
Falls Error:
[CODE_BLOCK]json
{
"error": {
"code": "invalid_access_key",
"message": "You have not supplied a valid API Access Key."
}
}
[CODE_BLOCK]
→ API-Key ungültig, siehe Schritt 1
Schritt 4: Alternative API-Endpoint
Falls dep_iata keine Daten gibt, testen Sie:
[CODE_BLOCK]bash
Arrivals statt Departures:
curl "https://api.aviationstack.com/v1/flights?access_key=KEY&arr_iata=VIE&limit=1"
[CODE_BLOCK]
Ursache 4: Cache zeigt veraltete leere Daten
Technische Details
Code-Location: /lib/aviationstack.ts (Zeilen 36-48)
Flights werden gecached:
[CODE_BLOCK]typescript
const cacheKey = flights:${airport}:${type} // z.B. "flights:VIE:departures"
const CACHE_TTL = 300 // 5 Minuten (300 Sekunden)
// Prüfe Cache:
const cached = await kv.get(cacheKey)
if (cached && Date.now() - cached.timestamp < CACHE_TTL * 1000) {
return cached.data // Gibt gecachte Daten zurück
}
[CODE_BLOCK]
Problem: Wenn API einmal [] zurückgab, wird das für 5 Minuten gecached.
Symptome
"cachedAt": "2024-12-04T09:55:00Z""[Cache] Hit: flights:VIE:departures"Lösung
Cache leeren via API:
Für Administratoren (Server-Zugriff):
[CODE_BLOCK]bash
Redis KV Cache leeren:
redis-cli DEL flights:VIE:departures
redis-cli DEL flights:VIE:arrivals
Oder alle Flight-Caches:
redis-cli KEYS "flights:*" | xargs redis-cli DEL
[CODE_BLOCK]
Oder: Warten:
Oder: Server neu starten:
[CODE_BLOCK]bash
Vercel Deployment neu starten:
vercel --prod --force
[CODE_BLOCK]
Ursache 5: Zeitzone-Probleme (Flüge außerhalb Zeitfenster)
Technische Details
Code-Location: /lib/aviationstack.ts (Zeilen 97-106)
Flights werden nach Zeit gefiltert:
[CODE_BLOCK]typescript
const now = new Date()
const minTime = new Date(now.getTime() - 4 * 60 * 60 * 1000) // -4h
const maxTime = new Date(now.getTime() + 24 * 60 * 60 * 1000) // +24h
const scheduledTime = new Date(flight.departure.scheduled)
if (scheduledTime < minTime || scheduledTime > maxTime) {
return false // Flight außerhalb Fenster, wird nicht angezeigt
}
[CODE_BLOCK]
Problem: Server-Zeitzone ≠ Display-Zeitzone
Symptome
"Current time: 2024-12-04T12:00:00Z" (UTC!)Lösung
Schritt 1: Server-Zeit prüfen
[CODE_BLOCK]bash
Auf dem Server:
date
Sollte ausgeben: aktuelle Zeit in UTC oder Server-Zeitzone
Zeitzone prüfen:
timedatectl
[CODE_BLOCK]
Schritt 2: Browser-Zeit prüfen
Im Display-Browser, Console:
[CODE_BLOCK]javascript
console.log(new Date().toString())
// Ergebnis: "Wed Dec 04 2024 13:00:00 GMT+0100 (CET)"
console.log(new Date().toISOString())
// Ergebnis: "2024-12-04T12:00:00.000Z" (UTC)
[CODE_BLOCK]
Schritt 3: System-Zeit synchronisieren
Auf Android-Display:
[CODE_BLOCK]
Einstellungen → System → Datum & Uhrzeit
→ "Automatisches Datum & Uhrzeit" aktivieren (NTP)
→ Zeitzone: "Europa/Wien" oder passend wählen
[CODE_BLOCK]
Workaround: Demo-Daten nutzen
Falls Problem persistiert, temporär:
[CODE_BLOCK]
https://lobbyflight.com/display/demo
[CODE_BLOCK]
Zeigt: Vienna (VIE) Live-Flüge - garantiert verfügbar
Einschränkungen:
Prävention
Best Practices
1. Große Passenger-Airports nutzen:
2. API-Quota monitoren:
3. Cache-Strategie verstehen:
4. Zeitzone korrekt setzen:
Verwandte Artikel
Debug-Checkliste
Wenn keine Flüge angezeigt werden, prüfen Sie in dieser Reihenfolge: