There are numerous good solutions from KNX manufactures to connect KNX to higher-level IoT systems already today. The internet side of these products is however not standardized or is created to match specific use cases.
As announced in 2016, as a first step towards standardizing the internet side of such KNX IoT gateways, KNX Association published the KNX web services specifications to allow aligning gateways to the existing web services protocols oBIX, OPC/UA, and BACnet web services.
Adding advantages from KNX to loT
As a second step in the KNX IoT project, KNX now wishes to make the key KNX advantages of interoperability, reliability, and extendibility also available on the IoT level. To demonstrate the goals, a demonstrator was created with Qt technology.
Qt KNX module
Qt KNX implements the client side of a connection between a client and a KNXnet/IP server. This connection enables sending messages to the KNX bus and controlling the functionalities of the KNX devices. The Qt KNX module is currently available as a Technology Preview as part of Qt for Automation add-ons.
For the new KNX IoT solution, it is crucial that all device types can seamlessly tap into the communication. The demonstrator includes a representation of all possible involved device types. The goal is to explain the advantages of each type towards the overall solution.
The demonstrated devices include:
- KNX devices on twisted pair and radio frequency.
- NXP development boards with Thread group network stack, integrated with the KNX application layer
- RaspberryPi devices representing capable devices and cloud server
- A Linux desktop
The setup underlines the key points of the KNX IoT solution:
- Semantic interoperability
- A distributed solution containing both Classic and IoT device/services
- Integration of KNX Classic devices
- Integration of Fairhair group network devices based on Thread as example for constrained field bus level network
- High availability and eventual consistency, demonstrating how the distributed solution copes with device and network failures
- Data is synchronized in real-time. Light color can be changed by any of the components, change is visible on all others
- The system still works when disabling components, demonstration of how parts recover
- The system works when the internet connection is down, requests for color changes can still be made from all sides (execution will not be immediate on all sides, but as soon as the broken link in the network is restored)
- Show data-driven messages
- Show semantic model
- Show integration with Google drive
The Qt framework was chosen to easily create this setup for several reasons:
- Single codebase usable for RaspberryPi graphical solution + Android + Linux desktop
- Low effort to create a visually appealing interface, including animations and high framerate for smooth animations and movements within the frontend.
- Network libraries giving a better abstraction for networking
- Qt is also used for the authentication against the Google API
- Qt KNX is used to connect to KNXnet/IP to interact with the devices on Twisted pair and radio frequency
The KNX IoT solution will lower the barrier to access KNX as part of the Internet of Things. The aim is to reduce the knowledge required and open the current KNX ecosystem to non-KNX IT specialists through ‘out-of-the-box’ operation, while still allowing advanced configuration and adaption by specialists.
The KNX IoT solution is defined in partnership with key KNX manufacturers and standardization bodies (like Fairhair and the Thread group). KNX is also working on proofs of concept to validate the solutions. Qt makes it possible to concentrate on the key points and keep the code clear from system-specific implementations in these proofs of concepts.
Leveraging standards ensures that the value of KNX products is increased and long-term support can be guaranteed in a constantly changing IoT world. KNX has the advantage of a large KNX install base, which allows drawing on a wealth of experience that will help successfully extending the KNX integration into the Internet of Things.