Wetter zeigt falsche Stadt oder falsche Einheiten

Was tun wenn das Weather Widget die falsche Stadt anzeigt oder Fahrenheit statt Celsius verwendet

8 min readLast updated: 1/15/20240

Wetter zeigt falsche Stadt oder falsche Einheiten

Symptome

  • ⚠️ Wetter-Widget zeigt Wetter von anderer Stadt (z.B. München statt Wien)
  • ⚠️ Temperatur in Fahrenheit (°F) statt Celsius (°C)
  • ⚠️ Windgeschwindigkeit in mph statt km/h
  • ⚠️ Wetter-Icon passt nicht zum aktuellen Wetter vor Ort
  • ⚠️ Niederschlag/Schnee wird angezeigt, aber draußen ist sonnig
  • Schnell-Checks (2 Minuten)

    1. OpenWeather Test direkt

    Testen Sie die API-Koordinaten direkt:

    [CODE_BLOCK]bash

    Beispiel für VIE (Vienna Airport):

    https://api.openweathermap.org/data/2.5/weather?lat=48.1103&lon=16.5697&units=metric&appid=IHR_API_KEY

    Prüfen Sie in der Response:

    - "name": "Schwechat" (korrekt für VIE)

    - "sys.country": "AT"

    - "coord.lat": 48.1103

    - "coord.lon": 16.5697

    [CODE_BLOCK]

    2. Hotel-Konfiguration prüfen

    [CODE_BLOCK]bash

    Im Portal:

    Hotel-Portal → Einstellungen → Flughäfen

    Ist der korrekte Flughafen ausgewählt?

    VIE = Vienna International

    MUC = Munich Airport

    FRA = Frankfurt Airport

    [CODE_BLOCK]

    3. Einheiten-System prüfen

    Browser Console auf Display öffnen (F12):

    [CODE_BLOCK]javascript

    // Prüfen welche Units aktuell verwendet werden:

    fetch('/api/weather/VIE?units=metric')

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

    .then(data => console.log('Units:', data.units || 'metric'))

    [CODE_BLOCK]

    Ursache 1: Falsche Flughafen-Koordinaten im Code

    Code-Location: /lib/weather.ts (Zeilen 5-17)

    Die Koordinaten für jeden Flughafen sind im Code hart-kodiert:

    [CODE_BLOCK]typescript

    const AIRPORT_COORDS: Record = {

    VIE: { lat: 48.1103, lon: 16.5697 }, // Wien-Schwechat

    MUC: { lat: 48.3538, lon: 11.7861 }, // München

    FRA: { lat: 50.0379, lon: 8.5622 }, // Frankfurt

    ZRH: { lat: 47.4647, lon: 8.5492 }, // Zürich

    // ...weitere Flughäfen

    }

    [CODE_BLOCK]

    Problem: Wenn Ihr Flughafen nicht in dieser Liste ist, wird null zurückgegeben und das Wetter-Widget erscheint nicht.

    Prüfen:

  • Browser-Konsole öffnen (F12)
  • Nach Fehlermeldung suchen:
  • [CODE_BLOCK]

    Weather data not available - Airport coordinates missing

    [CODE_BLOCK]

    Schritt-für-Schritt-Lösung

    Option A: Ihr Flughafen ist in der Liste

  • Koordinaten verifizieren bei Google Maps:
  • - Suchen Sie Ihren Flughafen auf Google Maps

    - Rechtsklick → "Was ist hier?"

    - Notieren Sie Lat/Lon (z.B. "48.1103, 16.5697")

  • Vergleichen mit Code:
  • - Wenn abweichend: Support kontaktieren

    - Koordinaten sollten auf 4 Nachkommastellen genau sein

    Option B: Ihr Flughafen ist NICHT in der Liste

    Kontaktieren Sie Support mit folgenden Daten:

    [CODE_BLOCK]

    Flughafen: [Name]

    IATA-Code: [z.B. SZG]

    Google Maps Koordinaten: [lat, lon]

    Screenshot vom Display

    [CODE_BLOCK]

    Support wird die Koordinaten zum Code hinzufügen.

    Ursache 2: Falsche Einheiten (Fahrenheit statt Celsius)

    Code-Location: /lib/db/schema.ts (Zeilen 67-68)

    Im Hotel-Schema ist die Einheit gespeichert:

    [CODE_BLOCK]typescript

    export const hotels = pgTable('hotels', {

    // ...

    weatherUnits: varchar('weather_units', { length: 10 })

    .notNull()

    .default('metric'), // 'metric' = Celsius, 'imperial' = Fahrenheit

    })

    [CODE_BLOCK]

    Standard: 'metric' (Celsius, km/h, mm)

    Alternative: 'imperial' (Fahrenheit, mph, inches)

    Schritt-für-Schritt-Lösung

    1. Über Portal ändern (wenn implementiert):

    [CODE_BLOCK]

    Hotel-Portal → Einstellungen → Wetter

    → Einheiten-System: Metrisch (°C, km/h)

    → Speichern

    [CODE_BLOCK]

    2. Via Datenbank (Admin):

    [CODE_BLOCK]sql

    -- Aktuellen Wert prüfen:

    SELECT name, weather_units

    FROM hotels

    WHERE id = 'IHRE_HOTEL_ID';

    -- Auf metrisch ändern:

    UPDATE hotels

    SET weather_units = 'metric',

    updated_at = NOW()

    WHERE id = 'IHRE_HOTEL_ID';

    [CODE_BLOCK]

    3. Display-Reload:

    Nach Änderung Display neu laden (Ctrl+R oder automatisch nach 5 Min).

    Ursache 3: OpenWeather API gibt falsche Stadt zurück

    Code-Location: /app/api/weather/[airportCode]/route.ts (Zeilen 19-23)

    Die API wird mit Koordinaten aufgerufen:

    [CODE_BLOCK]typescript

    const currentRes = await fetch(

    ${BASE_URL}/weather?lat=${coords.lat}&lon=${coords.lon}&units=${units}&appid=${API_KEY},

    { next: { revalidate: 1800 } } // Cache 30 min

    )

    [CODE_BLOCK]

    Problem: OpenWeather kann bei ungenauen Koordinaten die nächste größere Stadt zurückgeben.

    Beispiel:

  • Koordinaten von VIE: 48.1103, 16.5697
  • OpenWeather Response: "name": "Schwechat" ✅ (korrekt)
  • Ungenaue Koordinaten: 48.11, 16.57
  • OpenWeather Response: "name": "Wien" ⚠️ (nahe, aber nicht genau)
  • Schritt-für-Schritt-Lösung

    1. API Response prüfen:

    [CODE_BLOCK]bash

    Browser Console (F12) auf Display:

    fetch('/api/weather/VIE')

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

    .then(data => console.log(data))

    Achten auf:

    - coord.lat / coord.lon (sollten exakt mit AIRPORT_COORDS übereinstimmen)

    - name (Stadtname - sollte Flughafen oder nahe Stadt sein)

    [CODE_BLOCK]

    2. Koordinaten präzisieren:

    Falls ungenau, Support bitten die Koordinaten auf 4 Dezimalstellen zu korrigieren:

    [CODE_BLOCK]typescript

    // Vorher (zu ungenau):

    VIE: { lat: 48.11, lon: 16.57 }

    // Nachher (präzise):

    VIE: { lat: 48.1103, lon: 16.5697 }

    [CODE_BLOCK]

    3. Cache löschen nach Änderung:

    [CODE_BLOCK]javascript

    // Browser Console:

    caches.keys().then(names => {

    names.forEach(name => {

    if (name.includes('weather')) {

    caches.delete(name)

    console.log('Deleted cache:', name)

    }

    })

    })

    // Dann Seite neu laden

    location.reload()

    [CODE_BLOCK]

    Ursache 4: Mehrere Flughäfen - Falscher wird angezeigt

    Code-Location: /components/display/WeatherWidget.tsx (Zeilen 13-14)

    Das Wetter-Widget wird für den ersten Flughafen in der Liste angezeigt:

    [CODE_BLOCK]typescript

    {config.weatherEnabled && (

    airportCode={config.airports[0]} // ← Immer der ERSTE!

    units={config.weatherUnits}

    />

    )}

    [CODE_BLOCK]

    Problem: Wenn Sie mehrere Flughäfen haben (z.B. VIE, MUC, FRA), wird immer das Wetter vom ersten angezeigt.

    Beispiel:

  • Konfigurierte Flughäfen: ["MUC", "VIE", "FRA"]
  • Angezeigtes Wetter: München (MUC) - auch wenn gerade Wiener Flüge gezeigt werden!
  • Schritt-für-Schritt-Lösung

    1. Flughafen-Reihenfolge ändern:

    [CODE_BLOCK]

    Hotel-Portal → Einstellungen → Flughäfen

    Aktuell: [MUC, VIE, FRA]

    → Verschieben: [VIE, MUC, FRA]

    → Speichern

    [CODE_BLOCK]

    Jetzt zeigt das Wetter Wien statt München.

    2. Nur relevanten Flughafen für Wetter:

    Falls Sie mehrere Flughäfen für Flüge zeigen, aber Wetter nur von Ihrem Standort:

    [CODE_BLOCK]

    Ihr Hotel: Wien

    Flüge anzeigen: VIE + MUC

    Wetter soll zeigen: Wien

    → Reihenfolge: [VIE, MUC] ✅

    [CODE_BLOCK]

    3. Feature-Request: Wetter pro Flughafen:

    Aktuell nicht implementiert, aber Sie können Support bitten:

  • Wetter-Widget pro Tab (Departures VIE → Wetter VIE, Arrivals MUC → Wetter MUC)
  • Oder: Wetter basierend auf aktuell angezeigten Flügen
  • Debugging-Tools

    1. OpenWeather API Tester (Online)

    [CODE_BLOCK]

    https://openweathermap.org/api

    → "API call" Beispiele:

    → Ihre Koordinaten eingeben

    → Response prüfen

    [CODE_BLOCK]

    2. Browser Console Weather Check

    [CODE_BLOCK]javascript

    // Alle Weather-API-Calls loggen:

    const originalFetch = window.fetch

    window.fetch = function(...args) {

    if (args[0].includes('/api/weather/')) {

    console.log('Weather API Call:', args[0])

    }

    return originalFetch.apply(this, args)

    }

    // 5 Minuten warten und Logs prüfen

    [CODE_BLOCK]

    3. Koordinaten-Vergleich

    [CODE_BLOCK]javascript

    // Code-Koordinaten:

    fetch('/api/config/HOTEL_ID')

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

    .then(config => {

    console.log('Configured airport:', config.airports[0])

    })

    // Dann in /lib/weather.ts nachsehen:

    // AIRPORT_COORDS[config.airports[0]]

    // Mit Google Maps vergleichen

    [CODE_BLOCK]

    Prävention

    Best Practices

    1. Koordinaten-Präzision:

  • Immer 4 Dezimalstellen verwenden
  • Quelle: Google Maps (Rechtsklick → "Was ist hier?")
  • Doppelt prüfen vor Code-Änderung
  • 2. Einheiten konsistent:

  • Europa: 'metric' (Celsius, km/h)
  • USA: 'imperial' (Fahrenheit, mph)
  • In Datenbank und Code gleich
  • 3. API-Key-Limits überwachen:

    OpenWeather Free Tier: 1000 calls/day

    [CODE_BLOCK]

    Caching: 30 Minuten (wie im Code)

    → Calls pro Display: 48/Tag

    → Max. Displays mit Free Tier: ~20

    [CODE_BLOCK]

    Bei mehr Displays → OpenWeather Startup Plan upgraden.

    4. Flughafen-Reihenfolge dokumentieren:

    [CODE_BLOCK]

    Setup-Dokumentation:

    Hotel: Grand Hotel Vienna

    Standort: 1010 Wien

    Nächster Flughafen: VIE (15km)

    Flug-Display:

  • VIE (primär) ← Wetter von hier
  • MUC (sekundär)
  • Wetter-Widget zeigt: Wien-Schwechat (VIE)

    [CODE_BLOCK]

    5. Cache-Strategie:

    [CODE_BLOCK]typescript

    // Aktuell: 30 Min Cache

    { next: { revalidate: 1800 } }

    // Bei Problemen: Cache verkürzen auf 10 Min

    { next: { revalidate: 600 } }

    [CODE_BLOCK]

    Erweiterte Fehlersuche

    Szenario 1: Widget zeigt gar kein Wetter

    Mögliche Ursachen:

  • Flughafen-Code nicht in AIRPORT_COORDS
  • OpenWeather API-Key ungültig
  • Subscription-Plan erlaubt kein Wetter-Widget (Basic Plan)
  • Lösung:

    [CODE_BLOCK]javascript

    // Console Check:

    fetch('/api/weather/VIE')

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

    .then(data => {

    if (data.error) {

    console.error('Weather Error:', data.error)

    // "Weather data not available" = Koordinaten fehlen

    // "Unauthorized" = API-Key Problem

    }

    })

    [CODE_BLOCK]

    Szenario 2: Wetter zeigt alte Daten

    Cache nicht aktualisiert:

    [CODE_BLOCK]typescript

    // /app/api/weather/[airportCode]/route.ts

    // Cache: 30 Minuten

    // Wenn Wetter älter als 30 Min:

    // → Server-Cache löschen (Vercel KV)

    [CODE_BLOCK]

    Lösung via Vercel Dashboard:

  • Vercel Dashboard → Storage → KV
  • Key suchen: weather:VIE
  • Delete
  • Display neu laden
  • Szenario 3: Icon passt nicht zum Wetter

    OpenWeather Icon-Codes:

    [CODE_BLOCK]

    01d = Clear sky (Tag)

    01n = Clear sky (Nacht)

    02d = Few clouds

    03d = Scattered clouds

    04d = Broken clouds

    09d = Shower rain

    10d = Rain

    11d = Thunderstorm

    13d = Snow

    50d = Mist

    [CODE_BLOCK]

    Prüfen:

    [CODE_BLOCK]javascript

    fetch('/api/weather/VIE')

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

    .then(data => {

    console.log('Icon:', data.icon)

    console.log('Description:', data.description)

    console.log('Expected:', 'Vergleichen mit Fenster nach draußen schauen')

    })

    [CODE_BLOCK]

    Falls Icon falsch: OpenWeather liefert falsche Daten → Koordinaten prüfen.

    Support kontaktieren

    Falls nichts funktioniert, sammeln Sie diese Daten:

    [CODE_BLOCK]

    === Wetter-Widget Fehlerbericht ===

    Hotel-ID: _________________

    Flughafen-Codes: _________________

    Problem: [ ] Falsche Stadt [ ] Falsche Einheiten [ ] Kein Wetter

    Erwartetes Wetter: _________________

    Angezeigtes Wetter: _________________

    Browser Console Errors (F12):

    _________________________________

    Screenshot: (anhängen)

    Google Maps Koordinaten Ihres Flughafens:

    Lat: _______________

    Lon: _______________

    [CODE_BLOCK]

    Support-Email: support@rifadigital.com

    Verwandte Artikel

  • Setup: "Wetter-Widget konfigurieren"
  • Display: "Display lädt nicht"
  • API: "OpenWeather API-Key einrichten"
  • Pläne: "Subscription-Pläne vergleichen"
  • Debug-Checkliste

  • [ ] Koordinaten in AIRPORT_COORDS vorhanden?
  • [ ] Koordinaten präzise (4 Dezimalstellen)?
  • [ ] Google Maps Vergleich durchgeführt?
  • [ ] Einheiten 'metric' in Datenbank?
  • [ ] API-Key OpenWeather gültig?
  • [ ] Browser Console keine Errors?
  • [ ] Cache gelöscht nach Änderung?
  • [ ] Flughafen-Reihenfolge korrekt?
  • [ ] Subscription-Plan erlaubt Wetter (Pro/Premium)?
  • [ ] Support kontaktiert mit allen Daten?
  • Was this article helpful?