Building Automation
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.