Building automation systems (BASs) and open-source software are two areas of interest for me, so I’d like to share some thoughts on how they intersect, at least from the exposure I’ve had to them. Open-source software projects are those characterized as having very permissive licenses and public and collaborative development practices. In many cases, but not always, the software is available free of cost. This is certainly an over-simplification, but it provides some background.
The vast majority of software tools related to BASs are not available via open-source software, and there are some reasons for that I could speculate on. However, here and there, overlaps exist. One that comes to mind quickly for me is Project Haystack. As described on the Project Haystack website, this collective is focused on “semantic modeling solutions for data related to smart devices, including building equipment systems, automation and control devices, [and] sensors and sensing devices,” and since they are taking an open-source approach to standards development, this is a collaborative, community-driven effort. The software tools derived from Project Haystack are integral to a wide range of product offerings from a growing list of manufacturers. Product offerings range from energy-saving valve actuators to front-end software suites.
Some BAS manufacturing companies maintain open-source software repositories. Examples are Tridium and Automated Logic Corp. Some BAS manufacturers’ software tools are meant to be extensible by authorized representatives (i.e., BAS contractors), and repositories like these are meant to show best practices for extending the software and also to help in giving an idea of what’s feasible. I can still remember years ago at a vendor’s conference when a portion of the vendor’s API was made available to extend, and their showcase was using accelerometer data stream on a smartphone to control a little robot across the room over the Wi-Fi network. It didn’t immediately get my creative juices flowing about what could be done with a building’s environmental systems, but I was certainly impressed. In another vein, last year, the Building Efficiency Targeting Tool for Energy Retrofits (BETTER) software tool was released to the public by Johnson Controls and Lawrence Berkeley National Laboratory as an open-source project.
There are also cases to be found where software vendors in adjacent product spaces to BASs have open-source software repositories and communities built around these. One such example is Distributed Systems Architecture (DSA), which is closely related to the DGLogik organization, responsible for the DGLux5 software product.
Another overlap that is probably easier to find is the case where an open-source software project has a feature set that includes a client connection to a BAS. One that comes to mind quickly is “Volttron,” a data acquisition and historian/analysis suite originally developed by Pacific Northwest National Laboratories. This software suite includes communication using BACnet/IP. Another example is “PyHaystack,” a client implementation of Project Haystack in the Python programming language. And still another example is NodeRED and, more specifically, the BACnet/IP client for the project.
One thing worth considering about the use of open-source software for BAS implementations is what the risk profile looks like. On occasion, I enjoy reading this popular comic xkcd.com, and while the content is usually somewhat technical, it’s awfully funny. One of the comics I remember pretty well helps the reader visualize “all modern digital infrastructure,” like a tower of block pieces, and how it depends on an open-source software library that a software developer has been thanklessly maintaining since 2003. My personal opinion is that this is likely to be closer to the truth than you or I realize.
It’s not exactly the same thing, but I do recall an issue from a few years ago whereby a BAS suite was leveraging public weather data, and this turned into a heap of problems all at once. The software suite used data from the U.S. National Weather Service that arrived in the form of “web services” and had been using it successfully for years. There was a planned change to the service, and at that point, it began issuing redirects for devices that requested the data at the old web address. Unfortunately, the software suite incorrectly interpreted the redirects, and the BAS installed on various sites would enter a repeatedly looping reboot problem that was very hard to troubleshoot and very frustrating for building owners. Within a day or two, a patch was available, but if this had been an open-source software project that was responsible for the weather service client, the patches may have taken a different path to being delivered.
Another case of open-source software being in use for BAS was that of a collection of very useful extensions to a popular brand’s software suite. The BAS software suite introduced the ability, and then later the effective requirement, of having extension code cryptographically signed. The security feature here is meant to ensure malicious code is not introduced to be a part of the BAS. However, since it was community-driven and not sponsored in any way, this very useful library did not have the means to afford a code-signing certificate and the associated fees. After a few months, a well-aligned software vendor took over responsibility for releasing the library with cryptographic signing, and all was well again.
One interesting aspect as it relates to open-source software is that there are still concepts of competition, and how markets with competing products recognize benefits as they relate to continuous improvements of features. This sort of thing happens as competing manufacturers introduce their own takes on each other’s innovations, and, ultimately, building owners benefit. Case in point, there are a handful of extremely popular user-interface libraries riding an upward curve of adoption – React, Vue, and Svelte. These libraries are developed and iterated on in an open-source context, accepting contributions by the communities around them. Further, their road maps and feature sets are influenced heavily by one another to the benefit of the software developers that use them and, ultimately, to the end-users of the websites they are used to build. Similarly, as BAS vendors iterate on features and release their own responses to each other’s features, the contracting organizations that install these systems and building owners and occupants stand to benefit.
The projects and resources I’ve mentioned in this article are by no means exhaustive, and I would love to hear about similar projects that you have made use of or been exposed to in some way.