An Introduction to Haystack for Facility Managers (Part 1)

This is part one of a two part series that introduces Haystack for newbies and facility managers.

One of the most revolutionary changes is happening now in the Building Automation Systems (BAS) industry and J2 Innovations is proud to have been a part of it. There is a step change in how projects are engineered and configured through the implementation and use of tagging and data modeling.

What is Haystack?

Project Haystack is “an open source initiative to streamline working with data from the Internet of Things.” (IoT). The Haystack community, which consists of professionals throughout the buildings industry, is developing data standards, models, and services that make it far easier to connect, program, understand, and operate building systems and equipment. The goal is to make it easier to work with the huge amounts of data being generated by smart devices. Although the world is getting smarter and more connected, information still exists in “islands” – separate systems that cannot easily exchange information. Customers want to leverage this “Big Data”, but find it too difficult. What’s needed are bridges between the islands: that’s where tagging and data modeling comes in. A data model is a standard way of organizing data that allows both humans and machines to easily interpret and act on data from many disparate sources. Project Haystack provides an open data model that streamlines the analysis and control of building systems and equipment.

Why Does Interoperability Matter?

In the context of computing, interoperability is the ability of systems or software to exchange and make use of information. If two computer systems are not interoperable, they cannot accomplish tasks without human intervention. Putting people “in the loop” to perform data exchange and control actions is time consuming and expensive. We would much rather the computers work it out themselves with machine-to-machine (M2M) communication. This is just as true for building automation systems (BAS) as it is for the rest of the IoT and the Internet in general.

There are three pillars of interoperability needed for data acquisition and control systems to successfully interact: technical, informational, and organizational. Project Haystack impacts each of these in a holistic way. First, let’s examine these areas of interoperability. Then, we’ll dig into how Haystack addresses them.

Graphic: Marjorie Schott, NREL

Technical Interoperability

Technical interoperability is the ability of devices and systems to exchange data and control signals. It includes the hardware, software, and communication standards necessary to send and receive messages. Imagine you need to write a letter to someone else. You can think of technical interoperability as using a common alphabet and writing conventions.

In the building automation space, we have made good progress in the technical aspect of interoperability with the implementation and adoption of standardized open protocols (BACnet, Modbus, LonWorks, etc.), but they have only gotten us so far.

Open protocols have clearly helped multiple device manufacturers interoperate at the control and supervisory level. But it has been difficult for both supervisory and management level applications to programmatically bind to the data. Many BAS vendors offer both their own proprietary communication standards as well as a pathway to an open standard. Enter Project Haystack. Through Haystack’s well-defined software application program interface (API), it is easier for applications to seamlessly connect to device and control level information. Project Haystack is open (no licensing fees), so anyone can adopt it. In addition, Haystack allows us to embed useful information about the data being transmitted… which brings us to Informational Interoperability.

Informational Interoperability

Not only do devices and systems need to transmit and receive data, but they also need to understand it. Informational interoperability allows computer systems to interpret and act on the data they receive by examining metadata (information about the data) that accompanies each data stream. Continuing our analogy, think about informational interoperability as using a common grammar and language, where both parties agree on the meaning of the words on the paper.

In a traditional BAS, connected devices share an alphabet (the communication protocol) but have no concept of a shared language. Therefore, it falls on the BAS programmer to supply all of the informational interoperability required to make things work by painstakingly connecting one data stream to another and linking data to multiple applications. In our industry, we’ve also made some progress in the informational aspects of interoperability with the standardization efforts of working groups such as Energy Star, oBIX, and SEP2. Unfortunately, these standards still suffer from the labor-intensive mapping of data and are not always flexible enough to accommodate the configurations found in real building systems.

Through the use of Project Haystack tags and data models (we’ll describe these in more detail below), lower level device data can be more easily mapped to informational models - often times automatically through the use of software tools and templates (like FIN Stack). Project Haystack is flexible (you can use as little or as much of it as you want and need) and extensible (you can easily add your own “dictionary” to the standard one to accommodate your own specific use cases). Once all the devices in a system “speak Haystack,” they can easily interpret and understand the data being exchanged.

Organizational Interoperability

The final step in interoperability is implementing common policies, procedures, and practices that ensure the long-term viability of your smart building. Some of these practices are automated, but most require people too. Continuing our analogy, you can think of organizational interoperability as similar to the societal norms and protocols, which help guide us when deciding on specific actions to take on the various parts of a written letter.

Building owners implement effective O&M for systems and equipment using best practices such as the Federal Energy Management Program's Operations and Maintenance (FEMP O&M) Best Practices Guide. Similarly, ISO 50001 supports organizations in all sectors to use energy more efficiently, through the development of an energy management and information system (EIMS). Using energy efficiently helps organizations save money as well as helping to conserve resources and tackle climate change.

Because organizational interoperability is primarily about people, technical standards like Project Haystack can’t do all the work themselves. However, Haystack still contributes in important ways. First, organizations can leverage the informational aspects of Haystack’s data model to define standards for commissioning equipment, creating control programs, performing analytics, and the like. Second, members of the Haystack Community, working through the Project Haystack forums and the Haystack Connect conference, are contributing information about effective strategies and best practices for leveraging the Haystack standard to operate buildings more efficiently and cost-effectively.

How Haystack Works

Project Haystack is built around tags: snippets of information that document attributes of any entity that we wish to describe. Tags work together within a data model to describe systems of places and things in a logical, replicable way that is easily understood by both humans and machines.


The social media applications we use everyday are great examples of how tagging works. On Twitter, adding specific hashtags to a tweet allows you to join searchable conversations. On Facebook, tagging someone in an image, causes the application to automatically process the image so that it will magically show up in multiple places: in your photo library, your friend’s photo library, on your friend’s wall, and in the news feed.

In facilities, we use tags for the same reasons: to organize information (like on Twitter) and to get applications to work automatically (like on Facebook).

Using a collection of tags, we can represent a device by listing its attributes. For example, a thermostat is modeled using the tags “zone” “air” “temp” and “sensor”. Each of these tags has a specific meaning that contributes useful information, or context, about the thermostat being modeled:

  • “zone” = Associated with a conditioned zone of a building
  • “air” = Point associated with the measurement or control of air
  • “temp” = Temperature, typically measured in °C or °F
  • “sensor” = Classifies a point as an input (analog or binary) or a sensor

The payoff of tagging is that applications can automatically utilize this information independent of the point name, the protocol, or the manufacturer of the device.

Data Modeling

For effective human understanding and M2M communication, all parties using tags to capture information must agree on common tag definitions and data conventions. Together, these definitions and conventions create a common data model. In Project Haystack, the data model consists of standard tag types, tag definitions, and conventions for expressing relationships. Through the use of a data model, Project Haystack can easily represent large systems, such as air handlers, chillers, boilers, and variable air volume systems.

Project Haystack provides formal definitions for a wide range of tags. These common definitions, or tag dictionary, ensure that everyone using the standard agrees on what tags mean. For instance, in Haystack “temp” means temperature, not temporary. Most tags are markers: words or short phrases that mark an intrinsic characteristic of an entity. Other tags have values. For instance, the “unit” tag has a string value that describes the units associated with numeric point data. In addition to these definitions, Project Haystack provides documentation for how to tag specific kinds of systems and equipment, such as the air handler depicted.


Project Haystack also defines reference, or ref, tags that describe relationships between various entities. The primary hierarchy in Haystack is one of “site” (facility), “equip” (equipment), and “point” (data point, such as a sensor or actuator). Relationship tags such as “siteRef” and “equipRef” connect these entities so that software can understand how they are interconnected.

Data modeling in this way makes it easier for comparisons, analysis, and visualization to happen at the supervisory and management level. These applications can now programmatically bind to the model because of the use of tags. For more information on the Haystack data model, visit

Application Programming Interface

The Haystack API allows software applications and devices to communicate using an open protocol that is designed around exchanging Haystack tags. (For those of you who are developers: the API is a simple REST mechanism to exchange Haystack-tagged data over HTTP or HTTPS.) Manufacturers use the Haystack API to connect their applications with device data programmatically using operations built into the API. This enables a wide variety of functionality, features, and a vibrant community of interconnecting things. When two devices speak Haystack, you can connect them together and they “just work.”

Stay tuned for Part 2 where we show you what Haystack can do using real examples.