From b88e1450854fc6d48704b117d2fed7a3f02887d7 Mon Sep 17 00:00:00 2001 From: andig Date: Wed, 7 Jun 2023 10:07:38 +0200 Subject: [PATCH] Mqtt: simplify setters --- provider/mqtt/client.go | 4 ++-- server/mqtt.go | 32 ++++++++++++++++---------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/provider/mqtt/client.go b/provider/mqtt/client.go index df4eeace8..c1f59a3ea 100644 --- a/provider/mqtt/client.go +++ b/provider/mqtt/client.go @@ -136,9 +136,9 @@ func (m *Client) Listen(topic string, callback func(string)) { // ListenSetter creates a /set listener that resets the payload after handling func (m *Client) ListenSetter(topic string, callback func(string) error) { - m.Listen(topic, func(payload string) { + m.Listen(topic+"/set", func(payload string) { if err := callback(payload); err != nil { - m.log.ERROR.Printf("set %s: %v", strings.TrimSuffix(topic, "/set"), err) + m.log.ERROR.Printf("set %s: %v", topic, err) } if err := m.Publish(topic, true, ""); err != nil { m.log.ERROR.Printf("clear: %s: %v", topic, err) diff --git a/server/mqtt.go b/server/mqtt.go index dcc35464d..0a337807f 100644 --- a/server/mqtt.go +++ b/server/mqtt.go @@ -118,35 +118,35 @@ func (m *MQTT) publish(topic string, retained bool, payload interface{}) { } func (m *MQTT) listenSetters(topic string, site site.API, lp loadpoint.API) { - m.Handler.ListenSetter(topic+"/mode/set", func(payload string) error { + m.Handler.ListenSetter(topic+"/mode", func(payload string) error { mode, err := api.ChargeModeString(payload) if err == nil { lp.SetMode(mode) } return err }) - m.Handler.ListenSetter(topic+"/minSoc/set", func(payload string) error { + m.Handler.ListenSetter(topic+"/minSoc", func(payload string) error { soc, err := strconv.Atoi(payload) if err == nil { lp.SetMinSoc(soc) } return err }) - m.Handler.ListenSetter(topic+"/targetEnergy/set", func(payload string) error { + m.Handler.ListenSetter(topic+"/targetEnergy", func(payload string) error { val, err := parseFloat(payload) if err == nil { lp.SetTargetEnergy(val) } return err }) - m.Handler.ListenSetter(topic+"/targetSoc/set", func(payload string) error { + m.Handler.ListenSetter(topic+"/targetSoc", func(payload string) error { soc, err := strconv.Atoi(payload) if err == nil { lp.SetTargetSoc(soc) } return err }) - m.Handler.ListenSetter(topic+"/targetTime/set", func(payload string) error { + m.Handler.ListenSetter(topic+"/targetTime", func(payload string) error { val, err := time.Parse(time.RFC3339, payload) if err == nil { err = lp.SetTargetTime(val) @@ -155,28 +155,28 @@ func (m *MQTT) listenSetters(topic string, site site.API, lp loadpoint.API) { } return err }) - m.Handler.ListenSetter(topic+"/minCurrent/set", func(payload string) error { + m.Handler.ListenSetter(topic+"/minCurrent", func(payload string) error { current, err := parseFloat(payload) if err == nil { lp.SetMinCurrent(current) } return err }) - m.Handler.ListenSetter(topic+"/maxCurrent/set", func(payload string) error { + m.Handler.ListenSetter(topic+"/maxCurrent", func(payload string) error { current, err := parseFloat(payload) if err == nil { lp.SetMaxCurrent(current) } return err }) - m.Handler.ListenSetter(topic+"/phases/set", func(payload string) error { + m.Handler.ListenSetter(topic+"/phases", func(payload string) error { phases, err := strconv.Atoi(payload) if err == nil { err = lp.SetPhases(phases) } return err }) - m.Handler.ListenSetter(topic+"/vehicle/set", func(payload string) error { + m.Handler.ListenSetter(topic+"/vehicle", func(payload string) error { vehicle, err := strconv.Atoi(payload) if err == nil { if vehicle > 0 { @@ -191,14 +191,14 @@ func (m *MQTT) listenSetters(topic string, site site.API, lp loadpoint.API) { } return err }) - m.Handler.ListenSetter(topic+"/enableThreshold/set", func(payload string) error { + m.Handler.ListenSetter(topic+"/enableThreshold", func(payload string) error { threshold, err := parseFloat(payload) if err == nil { lp.SetEnableThreshold(threshold) } return err }) - m.Handler.ListenSetter(topic+"/disableThreshold/set", func(payload string) error { + m.Handler.ListenSetter(topic+"/disableThreshold", func(payload string) error { threshold, err := parseFloat(payload) if err == nil { lp.SetDisableThreshold(threshold) @@ -214,7 +214,7 @@ func (m *MQTT) Run(site site.API, in <-chan util.Param) { m.publish(topic, true, "online") // site setters - m.Handler.ListenSetter(m.root+"/site/prioritySoc/set", func(payload string) error { + m.Handler.ListenSetter(m.root+"/site/prioritySoc", func(payload string) error { val, err := parseFloat(payload) if err == nil { err = site.SetPrioritySoc(val) @@ -222,7 +222,7 @@ func (m *MQTT) Run(site site.API, in <-chan util.Param) { return err }) - m.Handler.ListenSetter(m.root+"/site/bufferSoc/set", func(payload string) error { + m.Handler.ListenSetter(m.root+"/site/bufferSoc", func(payload string) error { val, err := parseFloat(payload) if err == nil { err = site.SetBufferSoc(val) @@ -230,7 +230,7 @@ func (m *MQTT) Run(site site.API, in <-chan util.Param) { return err }) - m.Handler.ListenSetter(m.root+"/site/bufferStartSoc/set", func(payload string) error { + m.Handler.ListenSetter(m.root+"/site/bufferStartSoc", func(payload string) error { val, err := parseFloat(payload) if err == nil { err = site.SetBufferStartSoc(val) @@ -238,7 +238,7 @@ func (m *MQTT) Run(site site.API, in <-chan util.Param) { return err }) - m.Handler.ListenSetter(m.root+"/site/residualPower/set", func(payload string) error { + m.Handler.ListenSetter(m.root+"/site/residualPower", func(payload string) error { val, err := parseFloat(payload) if err == nil { err = site.SetResidualPower(val) @@ -246,7 +246,7 @@ func (m *MQTT) Run(site site.API, in <-chan util.Param) { return err }) - m.Handler.ListenSetter(m.root+"/site/smartCostLimit/set", func(payload string) error { + m.Handler.ListenSetter(m.root+"/site/smartCostLimit", func(payload string) error { val, err := parseFloat(payload) if err == nil { err = site.SetSmartCostLimit(val)