Zones – Project Haystack


OverviewOccupancyHVACAir QualityLighting


This chapter provides the details for modeling zones and their associated sensors and setpoints. See the Spaces chapter for an introduction to how zones are modeled as a subtype of space.


Determining and controlling occupancy is one of the most critical aspects of building automation. Haystack defines several occupancy related tags and points:

  • occupied sp: setpoint true when occupied, false when unoccupied
  • occupied sensor: boolean sensor true when occupied, false when unoccupied
  • occupancy sensor: people counter that measures number of occupants
  • occ: marker tag is used on points for occupancy modes
  • unocc: marker tag is used on points for occupancy modes
  • occupants: the people who occupy a space

The primary tag used for the occupied/unoccupied state is the occupied tag. In most cases, the occupied setpoint is a schedule that determines occupancy based on the time of day and day of the week. We might also use a sensor like a motion sensor to determine occupancy. More sophisticated sensors can actually count the number of people in a space; in which case, we use the occupancy tag. As a general rule: points with the occupied tag should have a Bool kind; points with the occupancy tag should have a Number kind.

The occ and unocc tags are used in cases when we need to distinguish modes. For example, if we have two different temperature setpoints based on the occupancy mode, then we distinguish them as occ temp sp and unocc temp sp.


The hvac-zone-space conjunct models an HVAC zone for the conditioning of space comfort and air quality. The hvacZonePoints def enumerates the common points used for HVAC control of a space.

The sensor and setpoints associated with temperature control include:

Whenever possible, there should be one effective temperature setpoint that takes all the various modes into account. This provides the simplest model to perform analysis of HVAC operations. However in some cases a thermostat will provide two effective setpoints - one for cooling and one for heating. In this case, there must also be a hvacMode point to determine which one is the true effective setpoint. That setup should look like this:

In addition, we might also find the following points:

All the points above must also be tagged with zone, air, and point.

Air Quality

It is also common in an HVAC zone to also measure and control air quality. We model the typical air quality points using the airQualityZonePoints def which includes:

All the points above must also be tagged with zone, air, and point.


The lighting-zone-space conjuct models lighting zones. The lightingZonePoints def enumerates the typical points used for lighting measurement and control including: