]> git.basschouten.com Git - openhab-addons.git/commitdiff
Reduce redundant persistence of tariffs (#16222)
authorJacob Laursen <jacob-github@vindvejr.dk>
Sun, 7 Jan 2024 10:30:20 +0000 (11:30 +0100)
committerGitHub <noreply@github.com>
Sun, 7 Jan 2024 10:30:20 +0000 (11:30 +0100)
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
bundles/org.openhab.binding.energidataservice/src/main/java/org/openhab/binding/energidataservice/internal/handler/EnergiDataServiceHandler.java

index ee3534aa7a51d411677ed19d710d5b2b41b385b9..b34c8c08e364441476f758a1484ecf16d0580a79 100644 (file)
@@ -381,6 +381,7 @@ public class EnergiDataServiceHandler extends BaseThingHandler {
     private void updateTimeSeries() {
         TimeSeries spotPriceTimeSeries = new TimeSeries(REPLACE);
         Map<DatahubTariff, TimeSeries> datahubTimeSeriesMap = new HashMap<>();
+        Map<DatahubTariff, BigDecimal> datahubPreviousTariff = new HashMap<>();
         for (DatahubTariff datahubTariff : DatahubTariff.values()) {
             datahubTimeSeriesMap.put(datahubTariff, new TimeSeries(REPLACE));
         }
@@ -401,8 +402,14 @@ public class EnergiDataServiceHandler extends BaseThingHandler {
                 }
                 BigDecimal tariff = cacheManager.getTariff(datahubTariff, hourStart);
                 if (tariff != null) {
+                    BigDecimal previousTariff = datahubPreviousTariff.get(datahubTariff);
+                    if (previousTariff != null && tariff.equals(previousTariff)) {
+                        // Skip redundant states.
+                        continue;
+                    }
                     TimeSeries timeSeries = entry.getValue();
                     timeSeries.add(hourStart, getEnergyPrice(tariff, CURRENCY_DKK));
+                    datahubPreviousTariff.put(datahubTariff, tariff);
                 }
             }
         }