Thermostates - grouping in a room by multi-channel linking?

Tags: #<Tag:0x00007f746152aa30>

I’m trying to find the optimum solution for setting up synchronized radiator thermostates (Max! via Homegear-Binding). E.g. a room contains 4 radiator thermostates and a wallmounted thermostate and all should act synchronized, setting heating mode and temperature on one of them should act on all others.

My first attempt was with groups; however, I got the impression that this is not efficient (e.g. the sitemap display often does not display the current setting of the group - something which a often observe in OpenHAB btw).

My current attempt is with multi channel linking. The corresponding documentation is somehow confusing (“Commands and Updates from and to these Items will be combined, and can be used in interesting ways.”). The “interesting ways” are not very profoundly explained, however.

I get the impression that the correct way is to multi-channel link all corresponding channels into one item, e.g. the following line to set all temperatures in unison:

Number:Temperature	thermo_set_WZ	"Set temperature [%.1f °C]"		{channel="homematic:HG-BC-TC-C-WM-4:0a42935a:KEQ0500439:1#SET_TEMPERATURE"[profile="follow"],channel="homematic:HG-BC-RT-TRX-CyG-3:0a42935a:LEQ0153779:1#SET_TEMPERATURE"[profile="follow"],channel="homematic:HG-BC-RT-TRX-CyN:0a42935a:MEQ0684629:1#SET_TEMPERATURE"[profile="follow"],channel="homematic:HG-BC-RT-TRX-CyN:0a42935a:MEQ0684581:1#SET_TEMPERATURE"[profile="follow"],channel="homematic:HG-BC-RT-TRX-CyN:0a42935a:MEQ0684513:1#SET_TEMPERATURE"[profile="follow"] }	

This does not really work, however.

So what is the right way to get the intended behaviour by multi channel linking?

My first thought is indeed groups, eq

Group:Number:Temperature:AVG.  gThermo_set  "Set temperature whole room %.1f °C]
Number:Temperature	thermo_set_WZ	"Set temperature [%.1f °C]"	(gTermo_set)   {channel="homematic:HG-BC-TC-C-WM-4:0a42935a:KEQ0500439:1#SET_TEMPERATURE"
Number:Temperature	thermo_set_WZ2	"Set temperature [%.1f °C]"	(gTermo_set)  channel="homematic:HG-BC-RT-TRX-CyG-3:0a42935a:LEQ0153779:1#SET_TEMPERATURE"

etc etc
The group while give you an average setting, but if you change it, it suppose to change all the members to the same settings.

Otherwise, you’re solution has mistakes/typos. I’ven’t test it, but I think this is the right notation:

Number:Temperature	thermo_set_WZ	"Set temperature [%.1f °C]"		{channel="homematic:HG-BC-TC-C-WM-4:0a42935a:KEQ0500439:1#SET_TEMPERATURE, homematic:HG-BC-RT-TRX-CyG-3:0a42935a:LEQ0153779:1#SET_TEMPERATURE, homematic:HG-BC-RT-TRX-CyN:0a42935a:MEQ0684629:1#SET_TEMPERATURE, homematic:HG-BC-RT-TRX-CyN:0a42935a:MEQ0684581:1#SET_TEMPERATURE, homematic:HG-BC-RT-TRX-CyN:0a42935a:MEQ0684513:1#SET_TEMPERATURE"}

The main disadvantaged of this solution is that if multiple channels are updated, you don’t know what the outcome is.

The disadvantages of a group:

  • in sync only if operated via openHAB, but if operated “manually” directly on one of the devices, I would have to write a rule.
  • IMHO the group state seems to be UNDEF for most of the time, even everything member item looks to be in sync

You did remove the “[profile=“follow”]” part from the item definition? I must admit I do not understand the docs concerning multichannel linking, especially concerning the profiles :frowning:

I do not understand the docs either concerning the profiles. But by reading this and some information in the community I can the de solution I gave you. For me, it works :smile:

Maybe the profiles are meant to link different items. Anyone who can explain this to us? :thinking:

My favorite explanation in this section is:

“The first example shows a symbiosis of the network health Binding and the Wake-on-LAN Binding to interact with a PC.”

Nothing more. You can only guess what this multichannel linked item can do, and why it does this.

No trolling intended, read this with a :wink: .

I’ll give it a try without the follow-profiles.

I don’t know if the follow profile works with more than two channels. And it’s is somewhat unidirectional meaning the second channel will follow the first but the first doesn’t follow the second. This is to avoid infinite loops.

The typical already is indeed to use a Group.

Do not mistake refresh issues with the UI for problems with Groups in general. If you look in events.log you will see the Group’s state changing within milliseconds.

If the Group is for controlling the members and all members are supposed to be in sync all the time, don’t use any aggregation function at all.

Group:Number:Temperature gThermo_set

Correct, you will have to write a rule.

This is not correct. Though if you don’t set the Group to something, without an aggregation function the Group will not have a state. But in the Rule, trigger on Member of changes and in the triggeringItem’s state is different from the Group’s current state issue a command to the Group and all the rest of the members will be command to the same state.

OK, I’ll go back to groups. Thanks for the hints.