Recursive group membership found

Same here

I also have some recursive groups reported. That is a surprise but I have to check if it could be true or just a wrong detection.

At me surely checked: wrong detection!

All groups? Can you please send the complete item-configuration (either the .json or all .items files) to github@klug.nrw so I can analyze what’s going on?

I can send copy of some examples:

Group gAll
Group gHistoryCh                                                                                (gAll)
Group:Number:MIN         gDieselpreise          "Diesel[%.3f €]"                <oil>           (gAll, gHistoryCh)
Group:Number:MIN         gDieselpreise_Road     "Diesel (inkl. Road)[%.3f €]"   <oil>           (gAll, gHistoryCh)
Group:Number:MIN         gDieselMin             "Diesel Min. [%.3f €/l]"        <oil>           (gAll)                   // Dieselpreise aktuell Minimum
Group:Number:AVG         gDieselAvg             "Diesel Avg. [%.3f €/l]"        <oil>           (gAll)                   // Dieselpreise aktuell Minimum
Group:Number:MAX         gDieselMax             "Diesel Max. [%.3f €/l]"        <oil>           (gAll)                   // Dieselpreise aktuell Minimum

Log shows gAll is recursive. As you see gAll is a group is in no other group.

I didn’t checked if really all groups had been in (I have got a lot of them), but first view in log looks like all in there.

Example from log

2023-12-30 12:24:20.618 [ERROR] [s.internal.SemanticsMetadataProvider] - Recursive group membership found: gDieselpreise is both, a direct or indirect parent and a child of gAll.
2023-12-30 12:24:20.618 [ERROR] [s.internal.SemanticsMetadataProvider] - Recursive group membership found: gDieselpreise_Road is both, a direct or indirect parent and a child of gAll.

What could be seen: gHistory is child of gAll and gDiesepreise are grandchild of gAll via gHistoryCh. But that is no recursion.

The other item groups only in gAll are not in log.

Maybe the wording is a bit misleading there. gDieselpreise is a member of gAll and also a member of gHistoryCh, which is also a member of gAll. So gDieselpreise is a member of gAll twice, which is not allowed.

Why do you need gAll at all?

Why it is not allowed to be in two or two times in a group? Until last version it newer had been a problem.

Just examples for the need: a group of switches for light in a room and the floor level and the full house…

Then you can address a group switching all needed lights. Of course could be build strict hierarchical with the light house group contains the groups for levels, which contains the groups per room.

But I recognized, rules asking for members of a group only addresses the first level, so you would rewrite all rules with foreach and if group inside additional foreach and this per hierarchical level.

That is a very general change…

I agree, there are several instances where it is logical to have a group be a member of a group twice with one being via an intermediate group. I have a couple such arrangements in my setup. I have simply been ignoring this error for quite some time as it appears to have no actual impact on the function of my system.

1 Like

This will allow the scenario that we want, whilst still preventing an infinite recursion caused by looping membership structure