From e0c69d0940d0899909519d98fc94ef1df22af228 Mon Sep 17 00:00:00 2001 From: pierrepetersmeier <155652256+pierrepetersmeier@users.noreply.github.com> Date: Sun, 9 Feb 2025 13:43:05 +0100 Subject: [PATCH 1/7] Typo in dirIrradiance. --- .../weather/WeatherSourceWrapper.scala | 33 +++++-------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala b/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala index 6ccc0942bd..fcba422b0f 100644 --- a/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala +++ b/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala @@ -7,45 +7,28 @@ package edu.ie3.simona.service.weather import com.typesafe.scalalogging.LazyLogging -import edu.ie3.datamodel.io.connectors.{ - CouchbaseConnector, - InfluxDbConnector, - SqlConnector, -} -import edu.ie3.datamodel.io.factory.timeseries.{ - CosmoTimeBasedWeatherValueFactory, - IconTimeBasedWeatherValueFactory, -} +import edu.ie3.datamodel.io.connectors.{CouchbaseConnector, InfluxDbConnector, SqlConnector} +import edu.ie3.datamodel.io.factory.timeseries.{CosmoTimeBasedWeatherValueFactory, IconTimeBasedWeatherValueFactory} import edu.ie3.datamodel.io.naming.FileNamingStrategy import edu.ie3.datamodel.io.source.couchbase.CouchbaseWeatherSource import edu.ie3.datamodel.io.source.csv.CsvWeatherSource import edu.ie3.datamodel.io.source.influxdb.InfluxDbWeatherSource import edu.ie3.datamodel.io.source.sql.SqlWeatherSource -import edu.ie3.datamodel.io.source.{ - IdCoordinateSource, - WeatherSource => PsdmWeatherSource, -} +import edu.ie3.datamodel.io.source.{IdCoordinateSource, WeatherSource => PsdmWeatherSource} import edu.ie3.simona.config.SimonaConfig import edu.ie3.simona.config.SimonaConfig.BaseCsvParams -import edu.ie3.simona.config.SimonaConfig.Simona.Input.Weather.Datasource.{ - CouchbaseParams, - InfluxDb1xParams, - SqlParams, -} +import edu.ie3.simona.config.SimonaConfig.Simona.Input.Weather.Datasource.{CouchbaseParams, InfluxDb1xParams, SqlParams} import edu.ie3.simona.exceptions.InitializationException import edu.ie3.simona.ontology.messages.services.WeatherMessage import edu.ie3.simona.ontology.messages.services.WeatherMessage.WeatherData -import edu.ie3.simona.service.weather.WeatherSource.{ - EMPTY_WEATHER_DATA, - WeatherScheme, - toWeatherData, -} +import edu.ie3.simona.service.weather.WeatherSource.{EMPTY_WEATHER_DATA, WeatherScheme, toWeatherData} import edu.ie3.simona.service.weather.WeatherSourceWrapper.WeightSum import edu.ie3.simona.service.weather.{WeatherSource => SimonaWeatherSource} import edu.ie3.simona.util.TickUtil import edu.ie3.simona.util.TickUtil.TickLong import edu.ie3.util.DoubleUtils.ImplicitDouble import edu.ie3.util.interval.ClosedInterval +import edu.ie3.util.scala.quantities.WattsPerSquareMeter import tech.units.indriya.ComparableQuantity import java.nio.file.Paths @@ -141,7 +124,7 @@ private[weather] final case class WeatherSourceWrapper private ( (averagedWeather.diffIrr + nonEmptyDiffIrr * weight, weight) } - val (dirIrradience, dirIrrWeight) = currentWeather.dirIrr match { + val (dirIrradiance, dirIrrWeight) = currentWeather.dirIrr match { case EMPTY_WEATHER_DATA.`dirIrr` => logger.warn(s"Direct solar irradiance not available at $point.") (averagedWeather.dirIrr, 0d) @@ -166,7 +149,7 @@ private[weather] final case class WeatherSourceWrapper private ( } ( - WeatherData(diffIrradiance, dirIrradience, temperature, windVelocity), + WeatherData(diffIrradiance, dirIrradiance, temperature, windVelocity), currentWeightSum.add( diffIrrWeight, dirIrrWeight, From 39c86f505dc1eda4b5d90e22a50a5b34b5df99ef Mon Sep 17 00:00:00 2001 From: pierrepetersmeier <155652256+pierrepetersmeier@users.noreply.github.com> Date: Sun, 9 Feb 2025 14:58:39 +0100 Subject: [PATCH 2/7] Improve logging for missing direct solar irradiance data in WeatherSourceWrapper at night. --- CHANGELOG.md | 1 + .../weather/WeatherSourceWrapper.scala | 34 +++++++++++++++---- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c2443db6ff..0ebc58955e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -165,6 +165,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed SonarQube quality gate using the right link for PRs or Branches [#1061](https://github.com/ie3-institute/simona/issues/1061) - Fixed ignored EM strategy [#1091](https://github.com/ie3-institute/simona/issues/1091) - EM should output flex option results even if it has no parent [#1112](https://github.com/ie3-institute/simona/issues/1112) +- Improve logging for missing direct solar irradiance data in WeatherSourceWrapper at night. [#984](https://github.com/ie3-institute/simona/issues/984) ## [3.0.0] - 2023-08-07 diff --git a/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala b/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala index fcba422b0f..87db452835 100644 --- a/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala +++ b/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala @@ -7,21 +7,39 @@ package edu.ie3.simona.service.weather import com.typesafe.scalalogging.LazyLogging -import edu.ie3.datamodel.io.connectors.{CouchbaseConnector, InfluxDbConnector, SqlConnector} -import edu.ie3.datamodel.io.factory.timeseries.{CosmoTimeBasedWeatherValueFactory, IconTimeBasedWeatherValueFactory} +import edu.ie3.datamodel.io.connectors.{ + CouchbaseConnector, + InfluxDbConnector, + SqlConnector, +} +import edu.ie3.datamodel.io.factory.timeseries.{ + CosmoTimeBasedWeatherValueFactory, + IconTimeBasedWeatherValueFactory, +} import edu.ie3.datamodel.io.naming.FileNamingStrategy import edu.ie3.datamodel.io.source.couchbase.CouchbaseWeatherSource import edu.ie3.datamodel.io.source.csv.CsvWeatherSource import edu.ie3.datamodel.io.source.influxdb.InfluxDbWeatherSource import edu.ie3.datamodel.io.source.sql.SqlWeatherSource -import edu.ie3.datamodel.io.source.{IdCoordinateSource, WeatherSource => PsdmWeatherSource} +import edu.ie3.datamodel.io.source.{ + IdCoordinateSource, + WeatherSource => PsdmWeatherSource, +} import edu.ie3.simona.config.SimonaConfig import edu.ie3.simona.config.SimonaConfig.BaseCsvParams -import edu.ie3.simona.config.SimonaConfig.Simona.Input.Weather.Datasource.{CouchbaseParams, InfluxDb1xParams, SqlParams} +import edu.ie3.simona.config.SimonaConfig.Simona.Input.Weather.Datasource.{ + CouchbaseParams, + InfluxDb1xParams, + SqlParams, +} import edu.ie3.simona.exceptions.InitializationException import edu.ie3.simona.ontology.messages.services.WeatherMessage import edu.ie3.simona.ontology.messages.services.WeatherMessage.WeatherData -import edu.ie3.simona.service.weather.WeatherSource.{EMPTY_WEATHER_DATA, WeatherScheme, toWeatherData} +import edu.ie3.simona.service.weather.WeatherSource.{ + EMPTY_WEATHER_DATA, + WeatherScheme, + toWeatherData, +} import edu.ie3.simona.service.weather.WeatherSourceWrapper.WeightSum import edu.ie3.simona.service.weather.{WeatherSource => SimonaWeatherSource} import edu.ie3.simona.util.TickUtil @@ -125,9 +143,11 @@ private[weather] final case class WeatherSourceWrapper private ( } val (dirIrradiance, dirIrrWeight) = currentWeather.dirIrr match { - case EMPTY_WEATHER_DATA.`dirIrr` => - logger.warn(s"Direct solar irradiance not available at $point.") + case _ if currentWeather.dirIrr eq EMPTY_WEATHER_DATA.dirIrr => + logger.warn(s"Direct solar irradiance data is missing at $point.") (averagedWeather.dirIrr, 0d) + case WattsPerSquareMeter(0d) => + (averagedWeather.dirIrr, weight) case nonEmptyDirIrr => (averagedWeather.dirIrr + nonEmptyDirIrr * weight, weight) } From 393b93da9a2949a58cd20e74a0fee42444be52d3 Mon Sep 17 00:00:00 2001 From: pierrepetersmeier <155652256+pierrepetersmeier@users.noreply.github.com> Date: Sun, 23 Feb 2025 12:49:34 +0100 Subject: [PATCH 3/7] Improve logging for missing direct solar irradiance data in WeatherSourceWrapper at night. --- .../ie3/simona/service/weather/WeatherSourceWrapperSpec.scala | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/scala/edu/ie3/simona/service/weather/WeatherSourceWrapperSpec.scala b/src/test/scala/edu/ie3/simona/service/weather/WeatherSourceWrapperSpec.scala index 3c937e0976..6eba3c12d2 100644 --- a/src/test/scala/edu/ie3/simona/service/weather/WeatherSourceWrapperSpec.scala +++ b/src/test/scala/edu/ie3/simona/service/weather/WeatherSourceWrapperSpec.scala @@ -424,5 +424,4 @@ object WeatherSourceWrapperSpec { (weightedWeather, weightSum) } - } From c8bd6a54a7276696833858415097dc6673fa0014 Mon Sep 17 00:00:00 2001 From: pierrepetersmeier <155652256+pierrepetersmeier@users.noreply.github.com> Date: Mon, 3 Mar 2025 14:57:21 +0100 Subject: [PATCH 4/7] Fix Changelog.md, fmt --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 77859f0f17..cf88db05d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -199,6 +199,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improve logging for missing direct solar irradiance data in WeatherSourceWrapper at night. [#984](https://github.com/ie3-institute/simona/issues/984) - Fix handling of states in `ParticipantModelShell` [#1228](https://github.com/ie3-institute/simona/issues/1228) - Fix input data handling in `ParticipantModel` [#1237](https://github.com/ie3-institute/simona/issues/1237) +- Reduce log spamming during night time due to missing direct solar irradiance data [#984](https://github.com/ie3-institute/simona/issues/984) ### Removed - Removed `SimonaListerner` and related code [#1205](https://github.com/ie3-institute/simona/issues/1205) From 2c3525afbed7765751b311e71866a4a64200bf20 Mon Sep 17 00:00:00 2001 From: pierrepetersmeier <155652256+pierrepetersmeier@users.noreply.github.com> Date: Mon, 3 Mar 2025 14:58:49 +0100 Subject: [PATCH 5/7] Fix Changelog.md --- CHANGELOG.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cf88db05d7..2c93ffc5e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -196,9 +196,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fix test timeouts for all tests [#1222](https://github.com/ie3-institute/simona/issues/1222) - Fix handling of states in `ParticipantModelShell` [#1228](https://github.com/ie3-institute/simona/issues/1228) - Fix input data handling in `ParticipantModel` [#1237](https://github.com/ie3-institute/simona/issues/1237) -- Improve logging for missing direct solar irradiance data in WeatherSourceWrapper at night. [#984](https://github.com/ie3-institute/simona/issues/984) -- Fix handling of states in `ParticipantModelShell` [#1228](https://github.com/ie3-institute/simona/issues/1228) -- Fix input data handling in `ParticipantModel` [#1237](https://github.com/ie3-institute/simona/issues/1237) - Reduce log spamming during night time due to missing direct solar irradiance data [#984](https://github.com/ie3-institute/simona/issues/984) ### Removed From c938b7a9c2d24cdc9a4c277b6deb799b88a68421 Mon Sep 17 00:00:00 2001 From: pierrepetersmeier <155652256+pierrepetersmeier@users.noreply.github.com> Date: Wed, 5 Mar 2025 10:45:07 +0100 Subject: [PATCH 6/7] Replace `eq` with value-based equality to improve functional programming style. --- .../service/weather/WeatherSourceWrapper.scala | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala b/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala index 87db452835..a2750bbe0d 100644 --- a/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala +++ b/src/main/scala/edu/ie3/simona/service/weather/WeatherSourceWrapper.scala @@ -47,6 +47,8 @@ import edu.ie3.simona.util.TickUtil.TickLong import edu.ie3.util.DoubleUtils.ImplicitDouble import edu.ie3.util.interval.ClosedInterval import edu.ie3.util.scala.quantities.WattsPerSquareMeter +import squants.motion.MetersPerSecond +import squants.thermal.Kelvin import tech.units.indriya.ComparableQuantity import java.nio.file.Paths @@ -142,13 +144,20 @@ private[weather] final case class WeatherSourceWrapper private ( (averagedWeather.diffIrr + nonEmptyDiffIrr * weight, weight) } - val (dirIrradiance, dirIrrWeight) = currentWeather.dirIrr match { - case _ if currentWeather.dirIrr eq EMPTY_WEATHER_DATA.dirIrr => + val (dirIrradiance, dirIrrWeight) = currentWeather match { + case WeatherData( + WattsPerSquareMeter(0d), + WattsPerSquareMeter(0d), + Kelvin(0d), + MetersPerSecond(0d), + ) => logger.warn(s"Direct solar irradiance data is missing at $point.") (averagedWeather.dirIrr, 0d) - case WattsPerSquareMeter(0d) => + + case WeatherData(WattsPerSquareMeter(0d), _, _, _) => (averagedWeather.dirIrr, weight) - case nonEmptyDirIrr => + + case WeatherData(nonEmptyDirIrr, _, _, _) => (averagedWeather.dirIrr + nonEmptyDirIrr * weight, weight) } From 410aa8e2b848a1132b3de787b816488cb29e33a4 Mon Sep 17 00:00:00 2001 From: pierrepetersmeier <155652256+pierrepetersmeier@users.noreply.github.com> Date: Wed, 5 Mar 2025 10:55:39 +0100 Subject: [PATCH 7/7] fmt --- .../ie3/simona/service/weather/WeatherSourceWrapperSpec.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/scala/edu/ie3/simona/service/weather/WeatherSourceWrapperSpec.scala b/src/test/scala/edu/ie3/simona/service/weather/WeatherSourceWrapperSpec.scala index 6eba3c12d2..3c937e0976 100644 --- a/src/test/scala/edu/ie3/simona/service/weather/WeatherSourceWrapperSpec.scala +++ b/src/test/scala/edu/ie3/simona/service/weather/WeatherSourceWrapperSpec.scala @@ -424,4 +424,5 @@ object WeatherSourceWrapperSpec { (weightedWeather, weightSum) } + }