Fixes historian service for accumulated vars

This commit is contained in:
litoral05
2026-05-29 17:04:23 +01:00
parent 8138ecc1d2
commit 109b226448
2 changed files with 8 additions and 4 deletions
@@ -178,7 +178,8 @@ public class HistorianService {
return normalized.contains("radiacao") return normalized.contains("radiacao")
|| normalized.contains("radiação") || normalized.contains("radiação")
|| normalized.contains("radiation"); || normalized.contains("radiation")
|| normalized.equals("climate.sensor_16");
} }
private double integrateWhPerSquareMeter(List<HistorianSample> samples) { private double integrateWhPerSquareMeter(List<HistorianSample> samples) {
@@ -197,7 +198,9 @@ public class HistorianService {
double previousValue = previous.getNumericValue(); double previousValue = previous.getNumericValue();
double currentValue = current.getNumericValue(); double currentValue = current.getNumericValue();
double averageWm2 = (previousValue + currentValue) / 2.0; if (previousValue < 0 || currentValue < 0 || previousValue > 1400 || currentValue > 1400) {
continue;
}
double elapsedHours = double elapsedHours =
java.time.Duration.between( java.time.Duration.between(
@@ -205,16 +208,16 @@ public class HistorianService {
current.getSampledAt() current.getSampledAt()
).toMillis() / 1000.0 / 60.0 / 60.0; ).toMillis() / 1000.0 / 60.0 / 60.0;
if (elapsedHours <= 0) { if (elapsedHours <= 0 || elapsedHours > 0.25) {
continue; continue;
} }
double averageWm2 = (previousValue + currentValue) / 2.0;
total += averageWm2 * elapsedHours; total += averageWm2 * elapsedHours;
} }
return total; return total;
} }
private Instant bucketStart(Instant instant, String bucket) { private Instant bucketStart(Instant instant, String bucket) {
java.time.ZonedDateTime date = instant.atZone(java.time.ZoneId.of("Europe/Lisbon")); java.time.ZonedDateTime date = instant.atZone(java.time.ZoneId.of("Europe/Lisbon"));
@@ -39,6 +39,7 @@ public class MeteoModuleService {
return name.contains("exterior") return name.contains("exterior")
|| name.contains("vento") || name.contains("vento")
|| name.contains("radiacao") || name.contains("radiacao")
|| name.contains("co")
|| name.contains("chuva"); || name.contains("chuva");
} }