diff --git a/cmd/refs.go b/cmd/refs.go index 4857b5cc3..07361642f 100644 --- a/cmd/refs.go +++ b/cmd/refs.go @@ -29,6 +29,11 @@ func collectRefs(conf globalconfig.All) error { return err } + // circuits + if err := collectCircuitRefs(conf.Circuits); err != nil { + return err + } + // loadpoints if err := collectLoadpointRefs(slices.Values(conf.Loadpoints)); err != nil { return err @@ -131,3 +136,20 @@ func collectLoadpointRefs(named iter.Seq[config.Named]) error { return nil } + +func collectCircuitRefs(circuits []config.Named) error { + for _, cc := range circuits { + var refs struct { + MeterRef string `mapstructure:"meter"` // Circuit meter reference + Other map[string]any `mapstructure:",remain"` + } + + if err := util.DecodeOther(cc.Other, &refs); err != nil { + return err + } + + references.meter = append(references.meter, refs.MeterRef) + } + + return nil +}