From e03fc535b359fb088b6026c249971dca09d9cb64 Mon Sep 17 00:00:00 2001 From: andig Date: Sat, 8 Feb 2025 15:17:16 +0100 Subject: [PATCH] chore: remove delta cache (#18677) --- cmd/root.go | 1 + core/site.go | 23 +++++------------------ 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/cmd/root.go b/cmd/root.go index e453aed3f..50db75ad1 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -206,6 +206,7 @@ func runRoot(cmd *cobra.Command, args []string) { // eliminate duplicate values dedupe := pipe.NewDeduplicator(30*time.Minute, keys.VehicleSoc, keys.VehicleRange, keys.VehicleOdometer, + keys.TariffGrid, keys.TariffFeedIn, keys.TariffCo2, keys.ChargedEnergy, keys.ChargeRemainingEnergy) go influx.Run(site, dedupe.Pipe( pipe.NewDropper(append(ignoreLogs, ignoreEmpty)...).Pipe(tee.Attach()), diff --git a/core/site.go b/core/site.go index deec3d416..27a6ff869 100644 --- a/core/site.go +++ b/core/site.go @@ -104,8 +104,6 @@ type Site struct { batteryPower float64 // Battery power (charge negative, discharge positive) batterySoc float64 // Battery soc batteryMode api.BatteryMode // Battery mode (runtime only, not persisted) - - publishCache map[string]any // store last published values to avoid unnecessary republishing } // MetersConfig contains the site's meter configuration @@ -244,9 +242,8 @@ func (site *Site) Boot(log *util.Logger, loadpoints []*Loadpoint, tariffs *tarif // NewSite creates a Site with sane defaults func NewSite() *Site { lp := &Site{ - log: util.NewLogger("site"), - publishCache: make(map[string]any), - Voltage: 230, // V + log: util.NewLogger("site"), + Voltage: 230, // V } return lp @@ -420,16 +417,6 @@ func (site *Site) publish(key string, val interface{}) { site.uiChan <- util.Param{Key: key, Val: val} } -// publishDelta deduplicates messages before publishing -func (site *Site) publishDelta(key string, val interface{}) { - if v, ok := site.publishCache[key]; ok && v == val { - return - } - - site.publishCache[key] = val - site.publish(key, val) -} - func (site *Site) collectMeters(key string, meters []api.Meter) []measurement { var wg sync.WaitGroup mm := make([]measurement, len(meters)) @@ -795,13 +782,13 @@ func (site *Site) publishTariffs(greenShareHome float64, greenShareLoadpoints fl site.publish(keys.GreenShareLoadpoints, greenShareLoadpoints) if gridPrice, err := site.tariffs.CurrentGridPrice(); err == nil { - site.publishDelta(keys.TariffGrid, gridPrice) + site.publish(keys.TariffGrid, gridPrice) } if feedInPrice, err := site.tariffs.CurrentFeedInPrice(); err == nil { - site.publishDelta(keys.TariffFeedIn, feedInPrice) + site.publish(keys.TariffFeedIn, feedInPrice) } if co2, err := site.tariffs.CurrentCo2(); err == nil { - site.publishDelta(keys.TariffCo2, co2) + site.publish(keys.TariffCo2, co2) } if price := site.effectivePrice(greenShareHome); price != nil { site.publish(keys.TariffPriceHome, price)