diff --git a/src/main/java/com/litoralregas/backend/historian/HistorianService.java b/src/main/java/com/litoralregas/backend/historian/HistorianService.java index b7815fe..2c13d59 100644 --- a/src/main/java/com/litoralregas/backend/historian/HistorianService.java +++ b/src/main/java/com/litoralregas/backend/historian/HistorianService.java @@ -178,7 +178,8 @@ public class HistorianService { return normalized.contains("radiacao") || normalized.contains("radiação") - || normalized.contains("radiation"); + || normalized.contains("radiation") + || normalized.equals("climate.sensor_16"); } private double integrateWhPerSquareMeter(List samples) { @@ -197,7 +198,9 @@ public class HistorianService { double previousValue = previous.getNumericValue(); double currentValue = current.getNumericValue(); - double averageWm2 = (previousValue + currentValue) / 2.0; + if (previousValue < 0 || currentValue < 0 || previousValue > 1400 || currentValue > 1400) { + continue; + } double elapsedHours = java.time.Duration.between( @@ -205,16 +208,16 @@ public class HistorianService { current.getSampledAt() ).toMillis() / 1000.0 / 60.0 / 60.0; - if (elapsedHours <= 0) { + if (elapsedHours <= 0 || elapsedHours > 0.25) { continue; } + double averageWm2 = (previousValue + currentValue) / 2.0; total += averageWm2 * elapsedHours; } return total; } - private Instant bucketStart(Instant instant, String bucket) { java.time.ZonedDateTime date = instant.atZone(java.time.ZoneId.of("Europe/Lisbon")); diff --git a/src/main/java/com/litoralregas/backend/modules/meteo/MeteoModuleService.java b/src/main/java/com/litoralregas/backend/modules/meteo/MeteoModuleService.java index 684875e..f462704 100644 --- a/src/main/java/com/litoralregas/backend/modules/meteo/MeteoModuleService.java +++ b/src/main/java/com/litoralregas/backend/modules/meteo/MeteoModuleService.java @@ -39,6 +39,7 @@ public class MeteoModuleService { return name.contains("exterior") || name.contains("vento") || name.contains("radiacao") + || name.contains("co") || name.contains("chuva"); }