Group solar forecasts by hour (#9728)

This commit is contained in:
Bram Kragten 2021-08-09 17:56:25 +02:00 committed by GitHub
parent 9ca64f9789
commit dbcf1cb907
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -276,21 +276,26 @@ export class HuiEnergySolarGraphCard
// Process solar forecast data.
if (forecasts && source.config_entry_solar_forecast) {
let forecastsData: Record<string, number> | undefined;
const forecastsData: Record<string, number> | undefined = {};
source.config_entry_solar_forecast.forEach((configEntryId) => {
if (!forecastsData) {
forecastsData = forecasts![configEntryId]?.wh_hours;
return;
}
if (!forecasts![configEntryId]) {
return;
}
Object.entries(forecasts![configEntryId].wh_hours).forEach(
([date, value]) => {
if (date in forecastsData!) {
forecastsData![date] += value;
const dateObj = new Date(date);
if (
dateObj < energyData.start ||
(energyData.end && dateObj > energyData.end)
) {
return;
}
dateObj.setMinutes(0, 0, 0);
const time = dateObj.getTime();
if (time in forecastsData) {
forecastsData[time] += value;
} else {
forecastsData![date] = value;
forecastsData[time] = value;
}
}
);
@ -298,16 +303,9 @@ export class HuiEnergySolarGraphCard
if (forecastsData) {
const solarForecastData: ScatterDataPoint[] = [];
for (const [date, value] of Object.entries(forecastsData)) {
const dateObj = new Date(date);
if (
dateObj < energyData.start ||
(energyData.end && dateObj > energyData.end)
) {
continue;
}
for (const [time, value] of Object.entries(forecastsData)) {
solarForecastData.push({
x: dateObj.getTime(),
x: Number(time),
y: value / 1000,
});
}