Homeassistent Switch: fix remaining power usages (part 2) (#23671)

This commit is contained in:
andig 2025-09-18 09:37:08 +02:00 • committed by GitHub
parent f83244038f
commit c0ab963b3a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 2 additions and 38 deletions

View file

@ -41,8 +41,6 @@ func NewHomeAssistantSwitchFromConfig(other map[string]interface{}) (api.Charger
return NewHomeAssistantSwitch(cc.embed, cc.BaseURL, cc.Token, cc.SwitchEntity, cc.PowerEntity, cc.StandbyPower)
}
//go:generate go tool decorate -f decorateHomeAssistantSwitch -b *HomeAssistantSwitch -r api.Charger -t "api.Meter,CurrentPower,func() (float64, error)"
func NewHomeAssistantSwitch(embed embed, baseURL, token, switchEntity, powerEntity string, standbypower float64) (api.Charger, error) {
c := &HomeAssistantSwitch{
baseURL: strings.TrimSuffix(baseURL, "/"),
@ -55,6 +53,7 @@ func NewHomeAssistantSwitch(embed embed, baseURL, token, switchEntity, powerEnti
return nil, errors.New("missing switch entity")
}
// standbypower < 0 ensures that currentPower is never used by the switch socket if not present
if powerEntity == "" && standbypower >= 0 {
return nil, errors.New("missing either power or negative standbypower")
}
@ -68,7 +67,7 @@ func NewHomeAssistantSwitch(embed embed, baseURL, token, switchEntity, powerEnti
Base: c.Helper.Client.Transport,
}
return decorateHomeAssistantSwitch(c, c.currentPower), nil
return c, nil
}
// Enabled implements the api.Charger interface

View file

@ -1,35 +0,0 @@
package charger
// Code generated by github.com/evcc-io/evcc/cmd/tools/decorate.go. DO NOT EDIT.
import (
"github.com/evcc-io/evcc/api"
)
func decorateHomeAssistantSwitch(base *HomeAssistantSwitch, meter func() (float64, error)) api.Charger {
switch {
case meter == nil:
return base
case meter != nil:
return &struct {
*HomeAssistantSwitch
api.Meter
}{
HomeAssistantSwitch: base,
Meter: &decorateHomeAssistantSwitchMeterImpl{
meter: meter,
},
}
}
return nil
}
type decorateHomeAssistantSwitchMeterImpl struct {
meter func() (float64, error)
}
func (impl *decorateHomeAssistantSwitchMeterImpl) CurrentPower() (float64, error) {
return impl.meter()
}