Improve configuration error messages
This commit is contained in:
parent
446936d44e
commit
a0f2a35f35
6 changed files with 30 additions and 29 deletions
|
|
@ -39,26 +39,25 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Charger, error
|
|||
}
|
||||
|
||||
status, err := provider.NewStringGetterFromConfig(cc.Status)
|
||||
|
||||
var enabled func() (bool, error)
|
||||
if err == nil {
|
||||
enabled, err = provider.NewBoolGetterFromConfig(cc.Enabled)
|
||||
}
|
||||
|
||||
var enable func(bool) error
|
||||
if err == nil {
|
||||
enable, err = provider.NewBoolSetterFromConfig("enable", cc.Enable)
|
||||
}
|
||||
|
||||
var maxcurrent func(int64) error
|
||||
if err == nil {
|
||||
maxcurrent, err = provider.NewIntSetterFromConfig("maxcurrent", cc.MaxCurrent)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
enabled, err := provider.NewBoolGetterFromConfig(cc.Enabled)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("enabled: %w", err)
|
||||
}
|
||||
|
||||
enable, err := provider.NewBoolSetterFromConfig("enable", cc.Enable)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("enable: %w", err)
|
||||
}
|
||||
|
||||
maxcurrent, err := provider.NewIntSetterFromConfig("maxcurrent", cc.MaxCurrent)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("maxcurrent: %w", err)
|
||||
}
|
||||
|
||||
return NewConfigurable(status, enabled, enable, maxcurrent)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Meter, error)
|
|||
|
||||
power, err := provider.NewFloatGetterFromConfig(cc.Power)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("power: %w", err)
|
||||
}
|
||||
|
||||
m, _ := NewConfigurable(power)
|
||||
|
|
@ -45,7 +45,7 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Meter, error)
|
|||
if cc.Energy != nil {
|
||||
m.totalEnergyG, err = provider.NewFloatGetterFromConfig(*cc.Energy)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("energy: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -55,10 +55,10 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Meter, error)
|
|||
return nil, errors.New("need 3 currents")
|
||||
}
|
||||
|
||||
for _, cc := range cc.Currents {
|
||||
for idx, cc := range cc.Currents {
|
||||
c, err := provider.NewFloatGetterFromConfig(cc)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("currents[%d]: %w", idx, err)
|
||||
}
|
||||
|
||||
m.currentsG = append(m.currentsG, c)
|
||||
|
|
@ -69,7 +69,7 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Meter, error)
|
|||
if cc.SoC != nil {
|
||||
m.batterySoCG, err = provider.NewFloatGetterFromConfig(*cc.SoC)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("battery: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package provider
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/andig/evcc/util"
|
||||
)
|
||||
|
||||
|
|
@ -20,10 +22,10 @@ func NewCalcFromConfig(other map[string]interface{}) (func() (float64, error), e
|
|||
|
||||
o := &calcProvider{}
|
||||
|
||||
for _, cc := range cc.Add {
|
||||
for idx, cc := range cc.Add {
|
||||
f, err := NewFloatGetterFromConfig(cc)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("add[%d]: %w", idx, err)
|
||||
}
|
||||
o.add = append(o.add, f)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ func NewHTTPProviderFromConfig(other map[string]interface{}) (*HTTP, error) {
|
|||
// handle basic auth
|
||||
if cc.Auth.Type != "" {
|
||||
if err := NewAuth(log, cc.Auth, p.headers); err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("http auth: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -83,7 +83,7 @@ func NewHTTPProviderFromConfig(other map[string]interface{}) (*HTTP, error) {
|
|||
if cc.Jq != "" {
|
||||
op, err := gojq.Parse(cc.Jq)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("invalid jq query: %s", p.jq)
|
||||
return nil, fmt.Errorf("invalid jq query '%s': %w", p.jq, err)
|
||||
}
|
||||
|
||||
p.jq = op
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ func NewSocketProviderFromConfig(other map[string]interface{}) (*Socket, error)
|
|||
// handle basic auth
|
||||
if cc.Auth.Type != "" {
|
||||
if err := NewAuth(log, cc.Auth, p.headers); err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("socket auth: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Vehicle, error
|
|||
|
||||
getter, err := provider.NewFloatGetterFromConfig(cc.Charge)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("charge: %w", err)
|
||||
}
|
||||
|
||||
if cc.Cache > 0 {
|
||||
|
|
@ -78,7 +78,7 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Vehicle, error
|
|||
if cc.Status != nil {
|
||||
v.statusG, err = provider.NewStringGetterFromConfig(*cc.Status)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("status: %w", err)
|
||||
}
|
||||
status = v.status
|
||||
}
|
||||
|
|
@ -88,7 +88,7 @@ func NewConfigurableFromConfig(other map[string]interface{}) (api.Vehicle, error
|
|||
if cc.Range != nil {
|
||||
v.rangeG, err = provider.NewIntGetterFromConfig(*cc.Range)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("range: %w", err)
|
||||
}
|
||||
rng = v.rng
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue