By Eamonn Ryan derived from a SAIRAC Johannesburg Centre TechTalk on 12 February

In the February SAIRC Johannesburg Centre TechTalk presented by Robert Fox, SAIRAC national president with over 31 years of experience, he discusses the critical differences between open-source and proprietary solutions for HVAC systems. As a senior cost and design estimator at Club Refrigeration, Fox has extensive insight into both the challenges and benefits associated with each system. This is Part 3 of a ten-part series.

Robert Fox, SAIRAC national president.

Robert Fox, SAIRAC national president. © RACA Journal

… continued from Part 2.

Fox highlights the significance of these protocols, particularly BACnet, which allows devices from different manufacturers to work together seamlessly. This reduces the need for replacing existing systems when expanding or upgrading an HVAC installation. BACnet is available in different versions, including:

  • BACnet MSTP: The older version of BACnet that operates over serial connections and is slower and less secure.
  • BACnet IP: A newer, more secure and faster version of BACnet that operates over TCP/IP and UDP protocols. This version allows for more scalable networks and remote control capabilities.

Programming HVAC systems with Python

Moving from communication protocols to programming, Fox emphasises the role of programming languages in the development of HVAC control systems. He introduces Python as a more accessible and versatile alternative for HVAC professionals.

Python, an interpreted, object-oriented, high-level programming language, has become popular for rapid application development due to its simple syntax, modularity and cross-platform compatibility. It allows users to create front-end interfaces, perform data analytics and even develop machine learning algorithms. Python’s use is particularly advantageous for developing web-based applications or conducting data-driven analysis in HVAC systems.

Fox describes Python as an excellent tool for integrating IoT devices, building automation systems and developing solutions that require custom logic. Its simplicity makes it an ideal language for those new to programming, and its vast library ecosystem adds to its appeal.

Once Python is learned, the next step for professionals is to communicate with HVAC controllers. If the controller supports BACnet, Python can be used to interface with the device using the library called BAC0.

BAC0 is a Python library designed for interacting with BACnet networks. It allows users to send commands to BACnet devices, read data from them and control devices remotely. This open-source library is based on an underlying Python package called Backpipes, created by Joel Bender. BAC0, developed by Christian Twinblade, was initially designed as a tool for testing and documenting BACnet controllers, as testing in the field can be prohibitively expensive and impractical.

Fox explains that BAC0 provides a user-friendly way to test and interact with devices on the BACnet network, making it easier for developers and engineers to integrate HVAC systems into broader automation networks. It is particularly useful for ensuring that controllers work as expected before deployment.

In addition to BAC0, Fox introduces YABE (Yet Another BACnet Explorer), another useful tool for exploring and monitoring BACnet networks. YABE offers a graphical interface that allows users to browse and interact with devices, helping to visualise the network and better understand the structure of the BACnet devices and the data they expose.

Continued in Part 4…