V 1.5.6 fix: Min/Max-Statistik nutzt echte Tages-Min/Max statt Durchschnitt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -821,39 +821,49 @@ const WeatherDashboard = ({ data, currentData = [], rainData = [], timeRange = '
|
||||
return format(new Date(raw), timeFormat, { locale: de })
|
||||
}
|
||||
|
||||
// Bei aggregierten Daten (7d+) liegen echte Tages-Min/Max in eigenen Feldern;
|
||||
// bei 24h-Rohdaten sind diese Felder nicht vorhanden → Fallback auf den Messwert selbst.
|
||||
const hasAggregated = periodData[0]?.min_temperature != null
|
||||
|
||||
// Temperatur
|
||||
const minTempField = hasAggregated ? 'min_temperature' : 'temperature'
|
||||
const maxTempField = hasAggregated ? 'max_temperature' : 'temperature'
|
||||
const minTempItem = periodData.reduce((min, item) =>
|
||||
item.temperature != null && (min === null || item.temperature < min.temperature) ? item : min, null)
|
||||
item[minTempField] != null && (min === null || item[minTempField] < min[minTempField]) ? item : min, null)
|
||||
const maxTempItem = periodData.reduce((max, item) =>
|
||||
item.temperature != null && (max === null || item.temperature > max.temperature) ? item : max, null)
|
||||
item[maxTempField] != null && (max === null || item[maxTempField] > max[maxTempField]) ? item : max, null)
|
||||
|
||||
// Luftfeuchtigkeit
|
||||
const minHumidityField = hasAggregated ? 'min_humidity' : 'humidity'
|
||||
const maxHumidityField = hasAggregated ? 'max_humidity' : 'humidity'
|
||||
const minHumidityItem = periodData.reduce((min, item) =>
|
||||
item.humidity != null && (min === null || item.humidity < min.humidity) ? item : min, null)
|
||||
item[minHumidityField] != null && (min === null || item[minHumidityField] < min[minHumidityField]) ? item : min, null)
|
||||
const maxHumidityItem = periodData.reduce((max, item) =>
|
||||
item.humidity != null && (max === null || item.humidity > max.humidity) ? item : max, null)
|
||||
item[maxHumidityField] != null && (max === null || item[maxHumidityField] > max[maxHumidityField]) ? item : max, null)
|
||||
|
||||
// Luftdruck
|
||||
const minPressureField = hasAggregated ? 'min_pressure' : 'pressure'
|
||||
const maxPressureField = hasAggregated ? 'max_pressure' : 'pressure'
|
||||
const minPressureItem = periodData.reduce((min, item) =>
|
||||
item.pressure != null && (min === null || item.pressure < min.pressure) ? item : min, null)
|
||||
item[minPressureField] != null && (min === null || item[minPressureField] < min[minPressureField]) ? item : min, null)
|
||||
const maxPressureItem = periodData.reduce((max, item) =>
|
||||
item.pressure != null && (max === null || item.pressure > max.pressure) ? item : max, null)
|
||||
item[maxPressureField] != null && (max === null || item[maxPressureField] > max[maxPressureField]) ? item : max, null)
|
||||
|
||||
// Wind
|
||||
const maxWindGustItem = periodData.reduce((max, item) =>
|
||||
item.wind_gust != null && (max === null || item.wind_gust > max.wind_gust) ? item : max, null)
|
||||
|
||||
return {
|
||||
minTemp: minTempItem?.temperature ?? null,
|
||||
maxTemp: maxTempItem?.temperature ?? null,
|
||||
minTemp: minTempItem?.[minTempField] ?? null,
|
||||
maxTemp: maxTempItem?.[maxTempField] ?? null,
|
||||
minTempTime: itemTime(minTempItem, 'min_temperature_time'),
|
||||
maxTempTime: itemTime(maxTempItem, 'max_temperature_time'),
|
||||
minHumidity: minHumidityItem?.humidity ?? null,
|
||||
maxHumidity: maxHumidityItem?.humidity ?? null,
|
||||
minHumidity: minHumidityItem?.[minHumidityField] ?? null,
|
||||
maxHumidity: maxHumidityItem?.[maxHumidityField] ?? null,
|
||||
minHumidityTime: itemTime(minHumidityItem, 'min_humidity_time'),
|
||||
maxHumidityTime: itemTime(maxHumidityItem, 'max_humidity_time'),
|
||||
minPressure: minPressureItem?.pressure ?? null,
|
||||
maxPressure: maxPressureItem?.pressure ?? null,
|
||||
minPressure: minPressureItem?.[minPressureField] ?? null,
|
||||
maxPressure: maxPressureItem?.[maxPressureField] ?? null,
|
||||
minPressureTime: itemTime(minPressureItem, 'min_pressure_time'),
|
||||
maxPressureTime: itemTime(maxPressureItem, 'max_pressure_time'),
|
||||
maxWindGust: maxWindGustItem?.wind_gust ?? null,
|
||||
|
||||
Reference in New Issue
Block a user