Using various intelligent bulding information systems, we strive to make our homes and buldings more comfortable, autonomous and safe. Nowadays, with the ease of use of the devices, energy saving and cost-effectiveness have become the key factors. These requirements, together with energy management, can only be achieved by using intelligent control and status monitoring systems. Numerous systems and standards have been developed for this purpose. There are some that are more widespread, for example the KNX/EIB system, which is one of the most widely used buildingautomation system in Europe.
As the topic of my thesis I chose to create a computer-based visualization and control software of a KNX bus system. In the following chapters I will present the implementation and operation of this web application software. The application was designed and constructed according to the MVC (Model View Controller) principles. Nowadays most modern data management applications use this three-layer architecture. The data storage (model), the rendering (view) and the controller layers are separated, but circularly refer to each other.
The backend layer of the visualization program is written is Java, and the modules are managed by Spring Framework. The backend and frontend layers are connected via REST interfaces. I have decided to use these technologies because they are ideal for web application development. Besides, I have been working with these tool before on an other project. The data storage layer consists of a database, which can be manipulated through JPA by the controller layer. The content of the database is rendered by the view layer in the form of an AngularJS application. The program includes user authentication and multi-level access management.
The communication with the KNX bus system was accomplished by using the Calimero Java API, an open-source inferface for KNX networks. Through the web application’s interface the states of the devices in the system are presented and can be controlled after connecting to the KNX network. The software provides the user with real-time feedback about the status changes. A feature of Calimero is able to detect KNX devices automatically, and an another one allows the monitoring of the network, but these two features need further experimentation and development to be able to use them more reliably.
The implemented program was tested on the KNX network set up at the fourth floor laboratory of the V1 building of BME, where I could make sure, that in the given test environment the created functions can operate reliably and able to fulfill the previously set up requirements. I tested each of the functions individually and I also performed a small penetration test to explore the possible vulnerabilities of the application.