Custom 6 zone thermostat build

Saw this and thought others would find it interesting.

1 Like

I was thinking about doing something with 24v motorized dampers and sensors in each room that will report to a virtual thermostat.

When I upgrade to variable speed heater and condenser then the speed will be dependent on how many zones are active

I think the author had a cool idea, however he didn’t do (or didn’t cover) any failure scenarios and that seems concerning.

I would have expected failure plans for

Pi locking up

Thermostat not reporting values (hardware failure)

What happens to state in reboot

Invalid values, too high or too low

I think all of those are a good start, sure there are others.


Very nice writeup :slight_smile:

I've been considering a multizone system for some time now. For me the hardware is trivial but I've not worked through a good control scenario and as @rob121 stated failure modes are not to be taken lightly.

I currently have a similar setup with 3 zones. I've too have noticed many "short cycles" and it annoys the ..... out of me. In addition I have one zone that has a significant lag due to the thermostat being in the hall and all the heating baseboards being in the bedrooms.

I would like to add some intelligence to the system using outside air temp and recent / current heating requirement. A type of intelligent anticipation.

The original Honeywell Round Mercury thermostat had an excellent anticipating mechanism. The load current would heat up the bimetal strip resulting in the thermostat going off before the actual air was at temp. This compensates for the baseboards being still hot and continue to heat the air after the thermostat has shut down the water flow.

With the shift to electronic thermostats this anticipatory effect has been for the most part replaced with a PWM system. The PWM is often defined as "cycles per hour" and the thermostat controls the on time of each cycle.

My goal (when I've worked on it) is to intelligently control the PWM of each Zone and sync them so the operation is not random. Perhaps the sync rule will change with the outside temperature or that last hour or so.

Anyway I still need a lot of work to fully understand how to design the system operation.

Please let us know how you fare in the long run. It might motivate me to start this project up again.

1 Like

I use Hubitat to control my HVAC. A new release of my software will be coming soon. I want to use the system in my own house a little longer before I release the software.

My software includes features to deal with several type of failures. To me, dealing with failures means going into an acceptable state in which the system neither turns off indefinitely or stays on continuously. Room to room temperature variation will increase when things fail.

To deal with a total failure of Hubitat or total loss of communication with thermostats and actuators, one thermostat is wired to the furnace in parallel with the relays. If no signal is received for a period of time, dampers are set to go to open and commands from the relays stop commanding the equipment to on. Therefore, the system operates as an unzoned system.

To deal with occasional missed messages, a function runs every 30 minutes which polls the thermostats and checks for consistency. If anything is inconsistent, it puts it into a consistent state. Therefore, if a message is missed, the system will go into a proper state within 30 minutes. Temperatures may stray a little farther than normal from setpoints during that time, but not way out of bounds.

To deal with a thermostat going offline due to batteries going dead or some other reason, the system treats any thermostat that hasn't reported anything for three hours as not issuing any heating or cooling commands. That zone will get colder or warmer than setpoint, but heat flow between rooms will prevent it from getting super cold or warm. (Much better than having the system run continuously if the thermostat was calling for heating or cooling at the time if stopped reporting.)

There is a virtual status device that is updated frequently with information about the state of the system. Users can use this device to trigger notifications using rule machine. For example, you can get a notification if a thermostat is offline, so you notice before family members start complaining.