Display friert ein oder aktualisiert nicht automatisch

Lösungen wenn das Display nicht mehr aktualisiert oder eingefroren ist

10 min readLast updated: 1/15/20240

Display friert ein oder aktualisiert nicht automatisch

Wenn Ihr Display einfriert oder sich nicht automatisch aktualisiert, gibt es mehrere mögliche Ursachen.

Symptome

  • ⏰ "Last updated" Timestamp ändert sich nicht
  • 📅 Flug-Zeiten werden nicht aktualisiert (alte Daten)
  • 🔄 Manueller Refresh-Button dreht sich endlos
  • 🟠 Offline-Indikator erscheint (orange Badge)
  • 🖥️ Display reagiert nicht auf Interaktion
  • 💤 Bildschirm geht in Power-Saving Modus
  • Schnell-Checks (2 Minuten)

    Check 1: Internet-Verbindung prüfen

    Sichtbare Anzeichen:

  • Orange "Offline Mode" Badge rechts oben
  • "Showing cached data" Nachricht
  • WifiOff Icon neben Uhrzeit
  • Test:

    [CODE_BLOCK]bash

    Auf Display-Gerät:

    ping google.com

    Erwartung: 0% packet loss

    [CODE_BLOCK]

    Falls Verbindung fehlt:

  • WLAN neu verbinden
  • Ethernet-Kabel prüfen
  • Router neu starten
  • → Siehe Artikel "Netzwerk-Konfiguration"
  • Check 2: Letztes Update prüfen

    Wo zu finden:

  • Footer unten rechts: "Last updated: HH:MM:SS"
  • Normal:

  • Update alle 5 Minuten (Basic Plan)
  • Update alle 2 Minuten (Pro Plan)
  • Update alle 1 Minute (Premium Plan)
  • Problem:

  • Timestamp älter als 10 Minuten
  • Timestamp ändert sich nicht mehr
  • Check 3: Hard Refresh

    Einfachster Fix:

    [CODE_BLOCK]

    Strg + Shift + R (Windows/Linux)

    Cmd + Shift + R (Mac)

    [CODE_BLOCK]

    Oder auf Android:

    [CODE_BLOCK]

    Chrome Menü (⋮) → Einstellungen → Datenschutz

    → Browserdaten löschen → Cache → Löschen

    → Zurück → Seite neu laden

    [CODE_BLOCK]

    Ursache 1: Netzwerk-Verbindung instabil/unterbrochen

    Technische Details

    Code-Location: /components/display/FlightBoard.tsx (Zeilen 49-57)

    Display verwendet SWR für Auto-Refresh:

    [CODE_BLOCK]typescript

    const { data, error, isLoading } = useSWR(

    /api/flights/${hotelId}?type=${type},

    fetcher,

    {

    refreshInterval: refreshInterval * 1000, // z.B. 300000ms = 5min

    revalidateOnFocus: false,

    dedupingInterval: 60000,

    }

    )

    [CODE_BLOCK]

    Bei Netzwerk-Fehler:

  • SWR stoppt Auto-Refresh
  • Zeigt gecachte Daten
  • Error-State wird gesetzt
  • Symptome

  • Console-Error: "Failed to fetch"
  • Network Tab: Requests mit Status "failed" (rot)
  • Offline-Indikator erscheint
  • Timestamp friert ein
  • Schritt-für-Schritt-Lösung

    Schritt 1: Verbindung verifizieren

    Browser Console (F12):

    [CODE_BLOCK]javascript

    // Test Fetch:

    fetch('/api/health')

    .then(r => r.ok ? 'OK' : 'ERROR')

    .then(console.log)

    .catch(e => console.error('Network error:', e))

    [CODE_BLOCK]

    Erwartetes Ergebnis: "OK"

    Falls ERROR: Netzwerkproblem

    Schritt 2: WiFi-Signal prüfen

    Auf Android-Display:

    [CODE_BLOCK]

    Einstellungen → Netzwerk & Internet → WLAN

    → Aktuelles Netzwerk → Signal-Stärke prüfen

    [CODE_BLOCK]

    Signal-Stärke:

  • Exzellent: -30 bis -50 dBm
  • Gut: -50 bis -60 dBm
  • Fair: -60 bis -70 dBm
  • Schwach: -70 bis -80 dBm
  • Sehr schwach: < -80 dBm
  • Falls schwaches Signal:

  • Display näher zum Router
  • WLAN-Repeater installieren
  • Ethernet-Kabel verwenden (empfohlen!)
  • Schritt 3: DNS-Server prüfen

    [CODE_BLOCK]bash

    Auf Display-Gerät:

    nslookup lobbyflight.com

    Sollte ausgeben:

    Server: 8.8.8.8

    Address: 8.8.8.8#53

    Name: lobbyflight.com

    Address: [IP-Adresse]

    [CODE_BLOCK]

    Falls Timeout:

  • DNS-Server ändern zu Google DNS:
  • - Primary: 8.8.8.8

    - Secondary: 8.8.4.4

    Schritt 4: Firewall/Proxy prüfen

    Firewalls können LobbyFlight blockieren:

  • Port 443 (HTTPS) muss offen sein
  • lobbyflight.com muss whitelisted sein
  • Test:

    [CODE_BLOCK]bash

    telnet lobbyflight.com 443

    Sollte verbinden

    [CODE_BLOCK]

    Falls blockiert:

  • IT-Admin kontaktieren
  • Whitelist hinzufügen
  • Proxy-Einstellungen überprüfen
  • Ursache 2: Service Worker Cache-Probleme

    Technische Details

    Code-Location: /public/sw.js (Service Worker)

    Service Worker cached aggressiv:

    [CODE_BLOCK]javascript

    const CACHE_NAME = 'flight-display-v1'

    const RUNTIME_CACHE = 'runtime-cache-v1'

    // Fetch event - network first, fallback to cache

    self.addEventListener('fetch', (event) => {

    event.respondWith(

    fetch(request)

    .then(response => {

    caches.open(RUNTIME_CACHE).then(cache => {

    cache.put(request, response.clone())

    })

    return response

    })

    .catch(() => caches.match(request)) // Fallback zu Cache

    )

    })

    [CODE_BLOCK]

    Problem: Alter Cache wird nicht aktualisiert trotz neuer Daten

    Symptome

  • Gleiche Flüge seit Stunden
  • Timestamp ändert sich, aber Daten nicht
  • Console-Log: "Serving from cache"
  • Inkonsistente Anzeige (manchmal neu, manchmal alt)
  • Lösung

    Service Worker deaktivieren:

    Chrome DevTools (F12):

  • Application Tab
  • Service Workers (linke Sidebar)
  • Finden Sie "lobbyflight.com"
  • Klicken Sie Unregister
  • Reload Seite (F5)
  • Oder via Console:

    [CODE_BLOCK]javascript

    navigator.serviceWorker.getRegistrations().then(regs => {

    regs.forEach(reg => reg.unregister())

    console.log('Service Workers removed')

    location.reload(true)

    })

    [CODE_BLOCK]

    Auf Android ohne DevTools:

    [CODE_BLOCK]

    Chrome → Einstellungen (⋮) → Datenschutz & Sicherheit

    → Browserdaten löschen

    → Erweitert auswählen

    → Ankreuzen: "Cookies und Websitedaten"

    → Zeitraum: "Gesamte Zeit"

    → "Daten löschen"

    → Chrome App komplett schließen (Multitasking → wegwischen)

    → Chrome neu öffnen → Display-URL

    [CODE_BLOCK]

    Ursache 3: Browser Power-Saving / Sleep Mode

    Technische Details

    Android-Geräte haben aggressives Power-Management:

  • Display schaltet ab nach Inaktivität
  • JavaScript-Execution wird pausiert
  • Network-Requests werden gestoppt
  • SWR-Refresh pausiert
  • Problem: Display wacht auf, aber Daten sind alt

    Symptome

  • Display war schwarz (Screen off)
  • Nach "Aufwachen": alte Daten
  • Keine Auto-Updates mehr
  • Timestamp friert ein bei letzter Zeit vor Sleep
  • Lösung

    Schritt 1: Screen Always-On aktivieren

    Android-Einstellungen:

    [CODE_BLOCK]

    Einstellungen → Display → Erweitert

    → "Bildschirm-Timeout" = "Nie"

    Oder:

    → "Stay Awake" aktivieren (Developer Options)

    [CODE_BLOCK]

    Entwickler-Optionen aktivieren:

    [CODE_BLOCK]

    Einstellungen → Über das Tablet

    → "Build-Nummer" 7x antippen

    → Zurück → Entwickleroptionen

    → "Stay awake" aktivieren (bleibt an bei USB-Ladung)

    [CODE_BLOCK]

    Schritt 2: Chrome Power-Saving deaktivieren

    Chrome-Flags:

    [CODE_BLOCK]

    chrome://flags

    → Suche: "power"

    → "Enable Power Saver Mode" = Disabled

    → Relaunch

    [CODE_BLOCK]

    Schritt 3: Battery Optimization ausschließen

    [CODE_BLOCK]

    Einstellungen → Apps → Chrome

    → Battery → Battery optimization

    → Chrome auswählen → "Don't optimize"

    [CODE_BLOCK]

    Schritt 4: Fully Kiosk Browser verwenden (empfohlen!)

    Fully Kiosk Browser hat besseres Power-Management:

    [CODE_BLOCK]

    Play Store → "Fully Kiosk Browser" installieren

    → App öffnen → Display-URL eingeben

    → Settings → Screensaver = Disabled

    → Settings → Keep Screen On = Enabled

    → Settings → Reload on Wake = Enabled

    [CODE_BLOCK]

    Ursache 4: SWR Refresh-Interval fehlerhaft

    Technische Details

    Code-Location: /components/display/FlightBoard.tsx (Zeilen 49-57)

    Refresh-Interval basiert auf Hotel-Config:

    [CODE_BLOCK]typescript

    const { data } = useSWR(

    apiUrl,

    fetcher,

    {

    refreshInterval: refreshInterval * 1000

    // refreshInterval kommt von Hotel-Config

    // Basic: 300s = 5 Minuten

    // Pro: 120s = 2 Minuten

    // Premium: 60s = 1 Minute

    }

    )

    [CODE_BLOCK]

    Falls Config fehlerhaft:

  • refreshInterval = 0 → Kein Auto-Refresh!
  • refreshInterval = null → Error
  • Sehr hoher Wert → Selten Updates
  • Symptome

  • Updates extrem selten (> 10 Minuten)
  • Oder: gar keine Updates
  • Console zeigt: refreshInterval: 0
  • Lösung

    Config prüfen:

    [CODE_BLOCK]javascript

    // In Browser Console:

    fetch('/api/config/ihre-hotel-id')

    .then(r => r.json())

    .then(c => console.log('Refresh Interval:', c.config.refreshInterval))

    // Sollte ausgeben:

    // Basic: 300

    // Pro: 120

    // Premium: 60

    [CODE_BLOCK]

    Falls falsch:

  • Portal → Settings → Refresh Interval prüfen
  • Oder: Admin soll DB korrigieren:
  • [CODE_BLOCK]sql

    UPDATE hotels

    SET refresh_interval = 300

    WHERE id = 'hotel-id';

    [CODE_BLOCK]

    Ursache 5: JavaScript Errors verhindern Refresh

    Technische Details

    Uncaught JavaScript Errors können SWR stoppen:

    [CODE_BLOCK]javascript

    // Wenn dieser Code fehlschlägt:

    const data = someUndefinedVar.property // TypeError!

    // → SWR-Hook kann stoppen

    [CODE_BLOCK]

    Symptome

  • Console-Error: "TypeError: Cannot read property 'X' of undefined"
  • Red error screen kurz sichtbar
  • Display friert danach ein
  • Keine weiteren Updates
  • Lösung

    Schritt 1: Console Errors prüfen

    DevTools (F12) → Console → Filter nur "Errors"

    Häufige Errors:

    [CODE_BLOCK]

    TypeError: Cannot read property 'name' of undefined

    → Flight-Daten haben unerwartete Struktur

    ReferenceError: regeneratorRuntime is not defined

    → Alte Chrome-Version, Update nötig

    ChunkLoadError: Loading chunk X failed

    → Service Worker Problem, siehe Ursache 2

    [CODE_BLOCK]

    Schritt 2: Chrome updaten

    [CODE_BLOCK]

    Android: Play Store → Chrome → Update

    [CODE_BLOCK]

    Mindest-Version: Chrome 90+

    Schritt 3: Error Boundary triggert

    Falls Error persistiert:

  • Kontaktieren Sie Support
  • Mit Screenshot der Console-Errors
  • Erwähnen Sie letzte Aktion vor Freeze
  • Ursache 6: API-Timeout oder Rate Limiting

    Technische Details

    Code-Location: /app/api/flights/[hotelId]/route.ts

    API-Requests können timeout:

    [CODE_BLOCK]typescript

    export const config = {

    runtime: 'edge',

    maxDuration: 30 // 30 Sekunden max

    }

    [CODE_BLOCK]

    Timeout wenn:

  • AviationStack API antwortet nicht
  • Datenbank-Query langsam (> 30s)
  • Netzwerk-Latenz sehr hoch
  • Symptome

  • Console-Error: "Request timeout after 30000ms"
  • Network Tab: Request dauert 30s dann "failed"
  • Danach: keine weiteren Updates mehr
  • Lösung

    Schritt 1: API-Response-Zeit testen

    [CODE_BLOCK]bash

    Mit curl:

    time curl "https://lobbyflight.com/api/flights/hotel-id?type=departures"

    Sollte < 5 Sekunden sein

    [CODE_BLOCK]

    Falls > 10 Sekunden:

  • AviationStack API könnte langsam sein
  • Oder: Datenbank-Verbindung langsam
  • → Support kontaktieren
  • Schritt 2: Cache-Status prüfen

    Schnelle Responses (< 1s) bedeuten Cache-Hit:

    [CODE_BLOCK]json

    {

    "cachedAt": "2024-12-04T10:00:00Z",

    "data": [...]

    }

    [CODE_BLOCK]

    Langsame Responses (5-10s) bedeuten API-Fetch.

    Schritt 3: AviationStack Status prüfen

    [CODE_BLOCK]

    https://status.aviationstack.com

    [CODE_BLOCK]

    Falls "Degraded Performance" oder "Outage":

  • → Warten bis behoben
  • → Display zeigt gecachte Daten
  • Advanced Troubleshooting

    Browser DevTools Network Analysis

    Network Tab öffnen (F12):

  • Reload Display (Ctrl+R)
  • Warten 5-10 Minuten
  • Prüfen: Neue Requests erscheinen?
  • Erwartete Requests (alle 5 Minuten):

    [CODE_BLOCK]

    GET /api/flights/hotel-id?type=departures

    GET /api/weather/VIE?units=metric

    [CODE_BLOCK]

    Falls keine neuen Requests:

  • → SWR Refresh funktioniert nicht
  • → Siehe Ursache 4 oder 5
  • Falls Requests mit Error:

  • Status 500: Server-Error, Support kontaktieren
  • Status 429: Rate Limit, siehe Ursache 6
  • Failed (rot): Netzwerk-Problem, siehe Ursache 1
  • Logs sammeln für Support

    Browser Console exportieren:

    [CODE_BLOCK]javascript

    // Alle Console-Logs speichern:

    const logs = []

    const originalLog = console.log

    console.log = function(...args) {

    logs.push(args.join(' '))

    originalLog.apply(console, args)

    }

    // Nach 5 Minuten warten, dann:

    const blob = new Blob([logs.join('\n')], {type: 'text/plain'})

    const link = document.createElement('a')

    link.download = 'display-logs.txt'

    link.href = URL.createObjectURL(blob)

    link.click()

    [CODE_BLOCK]

    Network HAR exportieren:

  • DevTools → Network Tab
  • Rechtsklick in Request-Liste
  • "Save all as HAR with content"
  • Datei an Support senden
  • Prävention

    Best Practices

    1. Ethernet statt WiFi:

  • Stabiler als WLAN
  • Keine Signal-Schwankungen
  • Empfohlen für Kiosk-Displays
  • 2. UPS (Unterbrechungsfreie Stromversorgung):

  • Verhindert Display-Restart bei Stromausfall
  • Display läuft durch kurze Unterbrechungen
  • 3. Monitoring einrichten:

  • Uptime-Monitor (z.B. UptimeRobot)
  • Alert bei > 5 Minuten Downtime
  • Email an IT-Team
  • 4. Regelmäßige Restarts:

  • Wöchentlicher Neustart (z.B. Sonntag 3:00 Uhr)
  • Löscht Cache & Speicher
  • Via Smart Plug mit Timer
  • 5. Fully Kiosk Browser:

  • Besseres Power-Management
  • Auto-Reload bei Crash
  • Remote-Management möglich
  • 6. Display-Standort:

  • Nahe am Router (WLAN)
  • Oder: Ethernet-Anschluss verfügbar
  • Keine Metallwände dazwischen
  • Verwandte Artikel

  • Netzwerk: "Netzwerk-Konfiguration & Troubleshooting"
  • Kiosk: "Fully Kiosk Browser Setup"
  • Cache: "Browser-Cache & Service Worker Management"
  • Power: "Android Power-Management für Displays"
  • Debug-Checkliste

  • [ ] Internet verbunden? (Ping-Test)
  • [ ] Offline-Indikator sichtbar?
  • [ ] Last updated ändert sich?
  • [ ] Service Worker deregistered?
  • [ ] Chrome aktuell (90+)?
  • [ ] Power-Saving deaktiviert?
  • [ ] Battery Optimization ausgeschlossen?
  • [ ] Refresh Interval korrekt (300/120/60)?
  • [ ] Console Errors vorhanden?
  • [ ] Network Requests erfolgreich?
  • [ ] Support kontaktiert mit Logs?
  • Was this article helpful?