From: Jacob Laursen Date: Sun, 7 Jan 2024 10:30:20 +0000 (+0100) Subject: Reduce redundant persistence of tariffs (#16222) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=75dcdd29672d01770c221e68a03226e75e2afe1b;p=openhab-addons.git Reduce redundant persistence of tariffs (#16222) Signed-off-by: Jacob Laursen --- diff --git a/bundles/org.openhab.binding.energidataservice/src/main/java/org/openhab/binding/energidataservice/internal/handler/EnergiDataServiceHandler.java b/bundles/org.openhab.binding.energidataservice/src/main/java/org/openhab/binding/energidataservice/internal/handler/EnergiDataServiceHandler.java index ee3534aa7a..b34c8c08e3 100644 --- a/bundles/org.openhab.binding.energidataservice/src/main/java/org/openhab/binding/energidataservice/internal/handler/EnergiDataServiceHandler.java +++ b/bundles/org.openhab.binding.energidataservice/src/main/java/org/openhab/binding/energidataservice/internal/handler/EnergiDataServiceHandler.java @@ -381,6 +381,7 @@ public class EnergiDataServiceHandler extends BaseThingHandler { private void updateTimeSeries() { TimeSeries spotPriceTimeSeries = new TimeSeries(REPLACE); Map datahubTimeSeriesMap = new HashMap<>(); + Map 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); } } }