Display friert ein oder aktualisiert nicht automatisch
Lösungen wenn das Display nicht mehr aktualisiert oder eingefroren ist
Display friert ein oder aktualisiert nicht automatisch
Wenn Ihr Display einfriert oder sich nicht automatisch aktualisiert, gibt es mehrere mögliche Ursachen.
Symptome
Schnell-Checks (2 Minuten)
Check 1: Internet-Verbindung prüfen
Sichtbare Anzeichen:
Test:
[CODE_BLOCK]bash
Auf Display-Gerät:
ping google.com
Erwartung: 0% packet loss
[CODE_BLOCK]
Falls Verbindung fehlt:
Check 2: Letztes Update prüfen
Wo zu finden:
Normal:
Problem:
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:
Symptome
"Failed to fetch"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:
Falls schwaches Signal:
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:
- Primary: 8.8.8.8
- Secondary: 8.8.4.4
Schritt 4: Firewall/Proxy prüfen
Firewalls können LobbyFlight blockieren:
Test:
[CODE_BLOCK]bash
telnet lobbyflight.com 443
Sollte verbinden
[CODE_BLOCK]
Falls blockiert:
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
Lösung
Service Worker deaktivieren:
Chrome DevTools (F12):
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:
Problem: Display wacht auf, aber Daten sind alt
Symptome
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 → ErrorSymptome
refreshInterval: 0Lö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:
[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
"TypeError: Cannot read property 'X' of undefined"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:
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:
Symptome
"Request timeout after 30000ms"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:
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":
Advanced Troubleshooting
Browser DevTools Network Analysis
Network Tab öffnen (F12):
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:
Falls Requests mit Error:
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:
Prävention
Best Practices
1. Ethernet statt WiFi:
2. UPS (Unterbrechungsfreie Stromversorgung):
3. Monitoring einrichten:
4. Regelmäßige Restarts:
5. Fully Kiosk Browser:
6. Display-Standort: