Fix meter access error during config dump
This commit is contained in:
parent
148c7b357e
commit
2fc5291707
2 changed files with 29 additions and 4 deletions
|
|
@ -76,6 +76,10 @@ type ConfigProvider struct {
|
|||
visited map[string]bool
|
||||
}
|
||||
|
||||
func (cp *ConfigProvider) resetVisitors() {
|
||||
cp.visited = nil
|
||||
}
|
||||
|
||||
// Meter provides meters by name
|
||||
func (cp *ConfigProvider) Meter(name string) api.Meter {
|
||||
if meter, ok := cp.meters[name]; ok {
|
||||
|
|
|
|||
29
cmd/dump.go
29
cmd/dump.go
|
|
@ -46,14 +46,35 @@ func runDump(cmd *cobra.Command, args []string) {
|
|||
d.Header("config", "=")
|
||||
fmt.Println("")
|
||||
|
||||
// allow duplicate requests to meters
|
||||
cp.resetVisitors()
|
||||
|
||||
if name := site.Meters.GridMeterRef; name != "" {
|
||||
d.DumpWithHeader(fmt.Sprintf("grid: %s", name), cp.Meter(name))
|
||||
}
|
||||
if name := site.Meters.PVMeterRef; name != "" {
|
||||
d.DumpWithHeader(fmt.Sprintf("pv: %s", name), cp.Meter(name))
|
||||
|
||||
if len(site.Meters.PVMetersRef) == 0 {
|
||||
if name := site.Meters.PVMeterRef; name != "" {
|
||||
d.DumpWithHeader(fmt.Sprintf("pv: %s", name), cp.Meter(name))
|
||||
}
|
||||
} else {
|
||||
for id, name := range site.Meters.PVMetersRef {
|
||||
if name != "" {
|
||||
d.DumpWithHeader(fmt.Sprintf("pv %d: %s", id, name), cp.Meter(name))
|
||||
}
|
||||
}
|
||||
}
|
||||
if name := site.Meters.BatteryMeterRef; name != "" {
|
||||
d.DumpWithHeader(fmt.Sprintf("battery: %s", name), cp.Meter(name))
|
||||
|
||||
if len(site.Meters.BatteryMetersRef) == 0 {
|
||||
if name := site.Meters.BatteryMeterRef; name != "" {
|
||||
d.DumpWithHeader(fmt.Sprintf("battery: %s", name), cp.Meter(name))
|
||||
}
|
||||
} else {
|
||||
for id, name := range site.Meters.BatteryMetersRef {
|
||||
if name != "" {
|
||||
d.DumpWithHeader(fmt.Sprintf("Battery %d: %s", id, name), cp.Meter(name))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for id, lpI := range site.LoadPoints() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue