Improve configuration error messages
This commit is contained in:
parent
a271b55c97
commit
38bb8cb7ab
4 changed files with 27 additions and 4 deletions
|
|
@ -19,6 +19,17 @@ func NewConfigurableFromConfig(log *util.Logger, other map[string]interface{}) a
|
|||
cc := struct{ Status, Enable, Enabled, MaxCurrent provider.Config }{}
|
||||
util.DecodeOther(log, other, &cc)
|
||||
|
||||
for k, v := range map[string]string{
|
||||
"status": cc.Status.Type,
|
||||
"enable": cc.Enable.Type,
|
||||
"enabled": cc.Enabled.Type,
|
||||
"maxcurrent": cc.MaxCurrent.Type,
|
||||
} {
|
||||
if v == "" {
|
||||
log.FATAL.Fatalf("default charger config: %s required", k)
|
||||
}
|
||||
}
|
||||
|
||||
charger := NewConfigurable(
|
||||
provider.NewStringGetterFromConfig(log, cc.Status),
|
||||
provider.NewBoolGetterFromConfig(log, cc.Enabled),
|
||||
|
|
|
|||
|
|
@ -20,6 +20,12 @@ func NewConfigurableFromConfig(log *util.Logger, other map[string]interface{}) a
|
|||
}{}
|
||||
util.DecodeOther(log, other, &cc)
|
||||
|
||||
for k, v := range map[string]string{"power": cc.Power.Type} {
|
||||
if v == "" {
|
||||
log.FATAL.Fatalf("default meter config: %s required", k)
|
||||
}
|
||||
}
|
||||
|
||||
m := NewConfigurable(provider.NewFloatGetterFromConfig(log, cc.Power))
|
||||
|
||||
// decorate Meter with MeterEnergy
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ func NewFloatGetterFromConfig(log *util.Logger, config Config) (res func() (floa
|
|||
case "modbus":
|
||||
res = NewModbusFromConfig(log, config.Other).FloatGetter
|
||||
default:
|
||||
log.FATAL.Fatalf("invalid provider type %s", config.Type)
|
||||
log.FATAL.Fatal("invalid plugin type:", config.Type)
|
||||
}
|
||||
|
||||
return
|
||||
|
|
@ -106,7 +106,7 @@ func NewIntGetterFromConfig(log *util.Logger, config Config) (res func() (int64,
|
|||
case "modbus":
|
||||
res = NewModbusFromConfig(log, config.Other).IntGetter
|
||||
default:
|
||||
log.FATAL.Fatalf("invalid provider type %s", config.Type)
|
||||
log.FATAL.Fatal("invalid plugin type:", config.Type)
|
||||
}
|
||||
|
||||
return
|
||||
|
|
@ -131,7 +131,7 @@ func NewStringGetterFromConfig(log *util.Logger, config Config) (res func() (str
|
|||
case "combined", "openwb":
|
||||
res = openWBStatusFromConfig(log, config.Other)
|
||||
default:
|
||||
log.FATAL.Fatalf("invalid provider type %s", config.Type)
|
||||
log.FATAL.Fatal("invalid plugin type:", config.Type)
|
||||
}
|
||||
|
||||
return
|
||||
|
|
@ -154,7 +154,7 @@ func NewBoolGetterFromConfig(log *util.Logger, config Config) (res func() (bool,
|
|||
res = NewCached(log, res, pc.Cache).BoolGetter()
|
||||
}
|
||||
default:
|
||||
log.FATAL.Fatalf("invalid provider type %s", config.Type)
|
||||
log.FATAL.Fatal("invalid plugin type:", config.Type)
|
||||
}
|
||||
|
||||
return
|
||||
|
|
|
|||
|
|
@ -39,6 +39,12 @@ func NewConfigurableFromConfig(log *util.Logger, other map[string]interface{}) a
|
|||
}{}
|
||||
util.DecodeOther(log, other, &cc)
|
||||
|
||||
for k, v := range map[string]string{"charge": cc.Charge.Type} {
|
||||
if v == "" {
|
||||
log.FATAL.Fatalf("default vehicle config: %s required", k)
|
||||
}
|
||||
}
|
||||
|
||||
getter := provider.NewFloatGetterFromConfig(log, cc.Charge)
|
||||
if cc.Cache > 0 {
|
||||
getter = provider.NewCached(log, getter, cc.Cache).FloatGetter()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue