chore: simplify topics

This commit is contained in:
andig 2024-11-09 10:42:23 +01:00
parent 9887fec26a
commit e451464d3d

View file

@ -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
}
}