If your regulator valves close completely when target temp is reached, this should work:
- Set target temp for each room.
- Implement 2-step control using min(current_temps[]) and max(current_temps[])
So basically:
- if any room is below set_temp - X degrees, turn on
- if any room is above set_temp + Y degrees, turn off
Log and plot the temperatures, you should see some kind of sawtooth wave that flattens at the peaks due to the valves closing. Adjust the X/Y values to start/stop heating earlier or later to reduce the temperature variance.