Keine Flüge angezeigt trotz aktiver Flüge

Was tun wenn das Display "Keine Flüge" zeigt, obwohl Flüge stattfinden sollten

10 min readLast updated: 1/15/20240

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:

  • ✈️ Leeres Flug-Board mit Flugzeug-Icon
  • 📝 "No flights scheduled" Nachricht
  • 🔄 "Check back later" Untertitel
  • ⏰ Alte Flug-Zeiten (von gestern)
  • 🔢 Nur 1-2 Flüge statt 20+
  • 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:

  • VIE = Vienna International Airport
  • MUC = Munich Airport
  • FRA = Frankfurt Airport
  • ZRH = Zurich Airport
  • Häufige Fehler:

  • VIC statt VIE (falsch!)
  • VIENNA statt VIE (zu lang!)
  • vie (Kleinschreibung funktioniert, aber vermeiden)
  • ❌ Leerzeichen: " 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:

  • ✅ AviationStack API funktioniert
  • ✅ System ist OK
  • ❌ Problem ist Ihr Airport-Code oder Config
  • Falls Demo KEINE Flüge zeigt:

  • ❌ Systemweites Problem
  • API könnte down sein
  • → Prüfen Sie AviationStack Status
  • 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):

  • → API gibt keine Flüge zurück
  • Siehe Lösungen unten
  • 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:

  • AviationStack API gibt keine Flüge zurück
  • Oder: HTTP 400 "Invalid airport code"
  • Schritt-für-Schritt-Lösung

    Schritt 1: Aktuellen Airport-Code prüfen

    Via Portal:

  • Login → Settings
  • Sektion "Airports"
  • Notieren Sie den Code (z.B. "VIE")
  • 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:

    StadtIATAFlughafen
    ------------------------
    ViennaVIEVienna International Airport
    MunichMUCMunich Airport
    FrankfurtFRAFrankfurt Airport
    ZurichZRHZurich Airport
    BerlinBERBerlin Brandenburg
    HamburgHAMHamburg Airport
    SalzburgSZGSalzburg Airport

    Schritt 3: Code korrigieren

    Falls falsch:

  • Portal → SettingsAirports
  • Löschen Sie falschen Code
  • Fügen Sie korrekten Code hinzu (z.B. "VIE")
  • Save Settings
  • Warten Sie 5 Minuten (Cache)
  • Display neu laden
  • Ursache 2: AviationStack API filtert alle Flüge heraus

    Technische Details

    Code-Location: /lib/aviationstack.ts (Zeilen 148-221)

    LobbyFlight filtert automatisch:

  • ✈️ Nur Commercial Passenger Flights (keine Cargo)
  • ⏰ Nur Today + 24h (Departures) bzw. Last 4h + 24h (Arrivals)
  • 🚫 Keine Private Jets (null airline name)
  • 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

  • Console-Log: "Filtered out cargo/private flight: [Airline]"
  • API gibt 100 Flüge, Display zeigt 0
  • Nur Cargo-Flüge am Airport (seltener kleiner Airport)
  • 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:

  • → Airport hat hauptsächlich Cargo-Traffic
  • → Verwenden Sie größeren Passenger-Airport in der Nähe
  • Schritt 2: Alternative Airport wählen

    Kleine Cargo-Airports (vermeiden):

  • ❌ Leipzig/Halle (LEJ) - hauptsächlich DHL Cargo
  • ❌ Cologne Bonn (CGN) - viel Cargo-Traffic
  • Große Passenger-Airports (empfohlen):

  • ✅ Vienna (VIE) - 50+ Passagier-Flüge/Stunde
  • ✅ Munich (MUC) - 100+ Passagier-Flüge/Stunde
  • ✅ Frankfurt (FRA) - 150+ Passagier-Flüge/Stunde
  • Schritt 3: Zeitfenster prüfen

    Aktuelles Zeit-Fenster:

  • Departures: Jetzt bis +24 Stunden
  • Arrivals: -4 Stunden bis +24 Stunden
  • Falls aktuell 3:00 Uhr nachts:

  • Wenige Flüge normal (Night curfew an manchen Airports)
  • Warten Sie bis 6:00 Uhr morgens
  • 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:

  • Invalid API Key → HTTP 401
  • Rate Limit Exceeded → HTTP 429
  • No data for airport → HTTP 200 but data: []
  • API Down → HTTP 500 oder Timeout
  • Symptome

  • Console-Error: "AviationStack API error: 401"
  • API-Response: "error": { "code": "invalid_access_key" }
  • Oder: "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:

  • Login zu AviationStack: https://aviationstack.com
  • Dashboard → API Access Key kopieren
  • In .env.local setzen:
  • [CODE_BLOCK]

    AVIATIONSTACK_API_KEY=ihr_echter_key_hier

    [CODE_BLOCK]

  • Server neu starten
  • Schritt 2: API-Quota prüfen

    AviationStack Free Plan:

  • 📊 100 Requests/Monat
  • 🔄 Refresh alle 5 Minuten
  • ⚠️ Quota schnell erreicht!
  • 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:

  • Login zu AviationStack Dashboard
  • Usage Tab
  • Aktueller Monat: X von 100 Requests verwendet
  • Falls Quota überschritten:

  • Upgrade zu Standard Plan ($49/Monat, 10,000 Requests)
  • Oder: Cache-Zeit erhöhen (nicht empfohlen, Daten veraltet)
  • 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

  • API-Response enthält: "cachedAt": "2024-12-04T09:55:00Z"
  • Console-Log: "[Cache] Hit: flights:VIE:departures"
  • Timestamp ist alt (> 5 Minuten her)
  • Daten aktualisieren sich nicht
  • 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:

  • Cache läuft nach 5 Minuten automatisch ab
  • Nächster Request holt frische Daten
  • 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

  • Flüge "verschwinden" zu bestimmten Tageszeiten
  • Nur Flüge von "gestern" angezeigt
  • Console-Log: "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:

  • Nicht Ihr Hotel-Logo
  • Nicht Ihre konfigurierten Airports
  • Nur für Tests/Debugging
  • Prävention

    Best Practices

    1. Große Passenger-Airports nutzen:

  • VIE, MUC, FRA, ZRH = garantiert viele Flüge
  • Vermeiden Sie reine Cargo-Airports
  • 2. API-Quota monitoren:

  • Wöchentlich AviationStack Dashboard prüfen
  • Alert einrichten bei 80% Quota
  • 3. Cache-Strategie verstehen:

  • 5 Minuten Cache = normale Verzögerung
  • Nicht panisch Cache leeren
  • 4. Zeitzone korrekt setzen:

  • Android-Display auf Auto-Time (NTP)
  • Server-Zeitzone dokumentieren
  • Verwandte Artikel

  • API-Setup: "AviationStack API Key konfigurieren"
  • Cache: "Cache-Verwaltung & Troubleshooting"
  • Airports: "Unterstützte Flughäfen & IATA-Codes"
  • Zeit: "Zeitzone & Zeit-Synchronisation"
  • Debug-Checkliste

    Wenn keine Flüge angezeigt werden, prüfen Sie in dieser Reihenfolge:

  • [ ] Airport-Code korrekt? (VIE, nicht VIC)
  • [ ] Demo-Modus funktioniert? (/display/demo)
  • [ ] API direkt gibt Daten? (/api/flights/[id])
  • [ ] Console zeigt Errors?
  • [ ] Filtered viele Cargo-Flüge?
  • [ ] API-Key gültig & Quota nicht überschritten?
  • [ ] Cache älter als 5 Minuten?
  • [ ] Zeitzone korrekt?
  • [ ] Uhrzeit aktuell (3 Uhr nachts = wenige Flüge)?
  • [ ] Support kontaktiert mit Debug-Infos?
  • Was this article helpful?