From 0e62646cd8978dc316c3e3e9ecaa8f36d70b4341 Mon Sep 17 00:00:00 2001 From: andig Date: Tue, 14 Jul 2026 18:42:36 +0200 Subject: [PATCH] Fix instantiating meters referenced only by circuits (#31788) --- cmd/refs.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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 +}