Description

The IoTSyS integration middleware provides a Web service interface to access heterogeneous building automation technologies and smart meters (e.g. KNX, BACnet, ZigBee, Wireless M-Bus, or EnOcean).

The IoTSyS gateway is a server that provides a Web-based user interface to graphically define device interactions and complex processes using a set of basic logic or arithmetic building blocks, which are available as distinct, hard-coded elements. However, there is often the need for individual logic blocks or even complex controller components (e.g. PID controller) to realize specific functionality.

Therefore, a rule engine should be implemented within this project to enable the creation of personalized logic blocks. Input parameters (e.g. sensor values) and output parameters (e.g. controller set points) specify the interfaces of these custom blocks. In the Web interface, the functionality of blocks can be edited at runtime by means of a suitable, existing scripting language like JavaScript. The created rules and blocks are persistently stored on the IoTSyS gateway, where an appropriate framework is needed to interpret and execute the specified functionality at runtime. In the end, own rules and logic blocks can be specified in the context of IoTSyS to realize complex as well as individual building automation processes without buying expensive and highly specialized hardware.

Benefit for the Student

Dive into latest technologies and emerging protocols for the Internet of Things/Web of Things. Gain hands-on experience in Java-based and Web-based software development.

Benefit for the Project

The expressiveness of currently available, hard-coded logic blocks and virtual blocks is limited. Thus, a rule engine to define additional blocks is highly beneficial to address distinct needs of IoTSyS users.

Requirements

Strong skills in Java-based software development and Web-based scripting languages like JavaScript are required.

Mentors

Daniel Schachinger, Andreas Fernbach

More information

https://github.com/mjung85/iotsys (IoTSyS)
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino (Rhino)