DIY Zoning: Architecture


This is work in progress, that is being done in spare time without using expensive modeling tools. It does not comply to the formal architecture documentation requirements, and probably never will - this page is rather a notepad.

Generous donation of Rational Rose for Unix/Linux will be sincerely appreciated.

Data Flow

Below is a sketch of the data flow diagram:

DZ Data Flow

Certain parts of the system are omitted for brevity:

  • Temperature, pressure and humidity sensors on the supply and return of the HVAC unit. They feed data to the damper controller and allow it to determine whether there's a need to relieve excess static pressure.
  • Control panel which allows to set the thermostat controller setpoint and change the zone properties (shut it off, make it voting or not, change the dump priority etc.)
  • Scheduler which indirectly controls the thermostats.


There are three kinds of sensors (at this time):

  • Temperature - to measure the temperature in the zones, in the return and supply duct of the unit, and optional ambient temperature, as well as HVAC unit refrigerant line temperature;
  • Pressure - to measure the ambient pressure and pressure in the return and supply ducts;
  • Humidity - to measure the humidity in the house (at the return), in the supply stream, and optional ambient humidity.


Two types of actuators are required:

  • Dampers - to control the airflow;
  • Unit controller - to control the operation of the unit itself. This actuator is connected instead of existing single-zone thermostat.


This is a replacement for a conventional thermostat. Each zone gets its own thermostat. Its function is to analyze the current temperature in the controlled zone, compare it to the setpoint (which in turn may be controlled by the scheduler and other things), and report the demand to the zone controller.

Unlike conventional thermostats which produce just the on/off signal, the DZ thermostat issues an analog signal which is a function of deviation between the setpoint and the actual temperature ("error" in control-speak).

Zone Controller

The zone controller analyzes the demand coming from the thermostats and makes decisions about controlling the A/C unit and dampers (indirectly, through damper controller).

Damper Controller

The damper controller controls the opening and closing of the dampers. The reason for existence of this entity is that the damper position may be controlled not only by the zone controller, but also, for example, by the fan override - say, if the fan is requested to be run when the unit is stopped.

HVAC Unit Controller

This is the driver for the hardware unit controller. In particular, it takes care of not doing stupid things to the unit - like switching on only the compressor.


The scheduler is taking care of changing the zone properties according to preset schedule.

Zone properties include:

  • Setpoint - in other words, desired temperature;
  • Whether the zone is shut off - at times, it is desirable to exclude rooms from HVAC control if there's nobody present;
  • Whether the zone is "on hold" - there are irregularities in occupancy, and sometimes it is desirable to just set the temperature to a certain value
  • Whether the zone is "voting" - some zones (sometimes) may not be critical, but still have to be conditioned. If the zone is not voting, temperature going outside of setpoint threshold will not cause the HVAC unit to start, but if some other zone makes
  • What is the zone's "dump priority" - some zones may be declared as being "relief zones", in other words, if the calling zones ask for less airflow than it is reasonably possible (given the ductwork limitations), excess air will be dumped into "dump zones".
  • General "leave" condition - when nobody's home, the house must be conditioned differently.