Fix instantiating meters referenced only by circuits (#31788)

This commit is contained in:
andig 2026-07-14 18:42:36 +02:00 • committed by GitHub
parent 5246b84f94
commit 0e62646cd8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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
}