From e451464d3dcf18469c023e9e9265c2e349ee9630 Mon Sep 17 00:00:00 2001 From: andig Date: Sat, 9 Nov 2024 10:42:23 +0100 Subject: [PATCH] chore: simplify topics --- server/mqtt.go | 54 +++++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/server/mqtt.go b/server/mqtt.go index a676c71b9..27063b0ee 100644 --- a/server/mqtt.go +++ b/server/mqtt.go @@ -173,19 +173,19 @@ func (m *MQTT) Listen(site site.API) error { func (m *MQTT) listenSiteSetters(topic string, site site.API) error { for _, s := range []setter{ - {"/bufferSoc", floatSetter(site.SetBufferSoc)}, - {"/bufferStartSoc", floatSetter(site.SetBufferStartSoc)}, - {"/batteryDischargeControl", boolSetter(site.SetBatteryDischargeControl)}, - {"/prioritySoc", floatSetter(site.SetPrioritySoc)}, - {"/residualPower", floatSetter(site.SetResidualPower)}, - {"/smartCostLimit", floatPtrSetter(pass(func(limit *float64) { + {"bufferSoc", floatSetter(site.SetBufferSoc)}, + {"bufferStartSoc", floatSetter(site.SetBufferStartSoc)}, + {"batteryDischargeControl", boolSetter(site.SetBatteryDischargeControl)}, + {"prioritySoc", floatSetter(site.SetPrioritySoc)}, + {"residualPower", floatSetter(site.SetResidualPower)}, + {"smartCostLimit", floatPtrSetter(pass(func(limit *float64) { for _, lp := range site.Loadpoints() { lp.SetSmartCostLimit(limit) } }))}, - {"/batteryGridChargeLimit", floatPtrSetter(pass(site.SetBatteryGridChargeLimit))}, + {"batteryGridChargeLimit", floatPtrSetter(pass(site.SetBatteryGridChargeLimit))}, } { - if err := m.Handler.ListenSetter(topic+s.topic, s.fun); err != nil { + if err := m.Handler.ListenSetter(topic+"/"+s.topic, s.fun); err != nil { return err } } @@ -195,19 +195,19 @@ func (m *MQTT) listenSiteSetters(topic string, site site.API) error { func (m *MQTT) listenLoadpointSetters(topic string, site site.API, lp loadpoint.API) error { for _, s := range []setter{ - {"/mode", setterFunc(api.ChargeModeString, pass(lp.SetMode))}, - {"/phases", intSetter(lp.SetPhases)}, - {"/limitSoc", intSetter(pass(lp.SetLimitSoc))}, - {"/minCurrent", floatSetter(lp.SetMinCurrent)}, - {"/maxCurrent", floatSetter(lp.SetMaxCurrent)}, - {"/limitEnergy", floatSetter(pass(lp.SetLimitEnergy))}, - {"/enableThreshold", floatSetter(pass(lp.SetEnableThreshold))}, - {"/disableThreshold", floatSetter(pass(lp.SetDisableThreshold))}, - {"/enableDelay", durationSetter(pass(lp.SetEnableDelay))}, - {"/disableDelay", durationSetter(pass(lp.SetDisableDelay))}, - {"/smartCostLimit", floatPtrSetter(pass(lp.SetSmartCostLimit))}, - {"/batteryBoost", boolSetter(lp.SetBatteryBoost)}, - {"/planEnergy", func(payload string) error { + {"mode", setterFunc(api.ChargeModeString, pass(lp.SetMode))}, + {"phases", intSetter(lp.SetPhases)}, + {"limitSoc", intSetter(pass(lp.SetLimitSoc))}, + {"minCurrent", floatSetter(lp.SetMinCurrent)}, + {"maxCurrent", floatSetter(lp.SetMaxCurrent)}, + {"limitEnergy", floatSetter(pass(lp.SetLimitEnergy))}, + {"enableThreshold", floatSetter(pass(lp.SetEnableThreshold))}, + {"disableThreshold", floatSetter(pass(lp.SetDisableThreshold))}, + {"enableDelay", durationSetter(pass(lp.SetEnableDelay))}, + {"disableDelay", durationSetter(pass(lp.SetDisableDelay))}, + {"smartCostLimit", floatPtrSetter(pass(lp.SetSmartCostLimit))}, + {"batteryBoost", boolSetter(lp.SetBatteryBoost)}, + {"planEnergy", func(payload string) error { var plan struct { Time time.Time `json:"time"` Value float64 `json:"value"` @@ -218,7 +218,7 @@ func (m *MQTT) listenLoadpointSetters(topic string, site site.API, lp loadpoint. } return err }}, - {"/vehicle", func(payload string) error { + {"vehicle", func(payload string) error { // https://github.com/evcc-io/evcc/issues/11184 empty payload is swallowed by listener if payload == "-" { lp.SetVehicle(nil) @@ -231,7 +231,7 @@ func (m *MQTT) listenLoadpointSetters(topic string, site site.API, lp loadpoint. return err }}, } { - if err := m.Handler.ListenSetter(topic+s.topic, s.fun); err != nil { + if err := m.Handler.ListenSetter(topic+"/"+s.topic, s.fun); err != nil { return err } } @@ -241,9 +241,9 @@ func (m *MQTT) listenLoadpointSetters(topic string, site site.API, lp loadpoint. func (m *MQTT) listenVehicleSetters(topic string, v vehicle.API) error { for _, s := range []setter{ - {topic + "/limitSoc", intSetter(pass(v.SetLimitSoc))}, - {topic + "/minSoc", intSetter(pass(v.SetMinSoc))}, - {topic + "/planSoc", func(payload string) error { + {"limitSoc", intSetter(pass(v.SetLimitSoc))}, + {"minSoc", intSetter(pass(v.SetMinSoc))}, + {"planSoc", func(payload string) error { var plan struct { Time time.Time `json:"time"` Value int `json:"value"` @@ -255,7 +255,7 @@ func (m *MQTT) listenVehicleSetters(topic string, v vehicle.API) error { return err }}, } { - if err := m.Handler.ListenSetter(s.topic, s.fun); err != nil { + if err := m.Handler.ListenSetter(topic+"/"+s.topic, s.fun); err != nil { return err } }