Wetter zeigt falsche Stadt oder falsche Einheiten
Was tun wenn das Weather Widget die falsche Stadt anzeigt oder Fahrenheit statt Celsius verwendet
Wetter zeigt falsche Stadt oder falsche Einheiten
Symptome
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:
[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
- Suchen Sie Ihren Flughafen auf Google Maps
- Rechtsklick → "Was ist hier?"
- Notieren Sie Lat/Lon (z.B. "48.1103, 16.5697")
- 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:
"name": "Schwechat" ✅ (korrekt)"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:
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:
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:
2. Einheiten konsistent:
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:
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:
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:
weather:VIESzenario 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