IoTSyS is an integration middleware for the Internet of Things. It provides a communication stack for embedded devices based on IPv6, Web services and oBIX to provide interoperable interfaces for smart objects. Using 6LoWPAN for constrained wireless networks and the Constrained Application Protocol together with Efficient XML Interchange an efficient stack is provided allowing using interoperable Web technologies in the field of sensor and actuator networks and systems while remaining nearly as efficient regarding transmission message sizes as existing automation systems. The IoTSyS middleware aims providing a gateway concept for existing sensor and actuator systems found in nowadays home and building automation systems, a stack which can be deployed directly on embedded 6LoWPAN devices and further addresses security, discovery and scalability issues.
IoTSyS was started within the frame of the FP7 IoT6 European research project and is hosted and further maintained by the Automation Systems Group at the Vienna University of Technology. It is also supported through the Internet Foundation Austria within the NetIdee open source grants and further developed within the project Secure and Semantic Web of Automation (SeWoA, FFG 840206).
Demo - Videos
General project overview.
Heterogeneous device interaction between EnOcean, KNX, BACnet components and a RFID tag reader.
Complex HVAC process. The IoTSyS gateway uses logic blocks to realize a HVAC process that combines BACnet controlled devices (chiller, boiler, fans, valves) with an EnOcean window contact sensor a KNX room control unit and W-MBus smart meter.
Alarming scenarios - a 6LoWPAN sensor is used to detect a freefall and to raise an alarm on a KNX text display with accustic signal. Furthermore, a weather data connector is combined with an EnOcean window contact sensor to raise an alarm if a storm is approaching and a open window is detected.
Demonstration of 6LoWPAN peer to peer interaction based on CoAP/oBIX with IPv6 multicasting. 6LoWPAN LEDs are switched through a 6LoWPAN push button without the need of the gateway for process data exchange.
Project overview and open source license
IoTSyS consists of multiple projects that are currently evolving and act as proof of concept prototypes within several research projects of the Automation Systems Group at the Vienna University of Technology.
IoTSyS consists of multiple projects that are partly based on existing open source libraries with different licenses.
The oBIX gateway including the OSGI oBIX server, the protocol bindings (HTTP, CoAP, SOAP) and common oBIX objects are made open source based on the liberal new BSD license. The gateway by itself is completely independet from technology specific connectors and runs as OSGI application within an OSGI container.
The connectors to home and building automation technologies are based on existing open source libraries and are wrapped in protocol bundles using OSGI. These bundles remain the open source license of the library, but can be deployed within an OSGI environment.
The gateway and the protocol bundle projects are separate applications. However, within an OSGI environment they can work together.
- IoTSyS-Gateway: OSGI based oBIX server, HTTP Server, CoAP Server, RESTful Web service endpoint, SOAP Web service endpoint
- IoTSyS-oBIX: Extendend and modified oBIX toolkit
- IoTSyS-Common: Interfaces and API to interact with the oBIX server, common oBIX object types
- IoTSyS-WMBus: connector for Wireless M-Bus and technology specific oBIX object implementation, provided as OSGI bundle
- IoTSyS-Calimero: OSGI library wrapper of Calimero
- IoTSyS-KNX: OSGI bundle wrapper for Calimero, including IoTSyS specific bundle activator and technology specific oBIX object implementation
- IoTSyS-BACnet4J: OSGI library wrapper of BACnet4J
- IoTSyS-BACnet: OSGI bundle wrapper for BACnet4J, including IoTSyS specific bundle activator and technology specific oBIX object implementation
- IoTSyS-Encoding-JSON: OSGI library wrapper
User and developer guide
Check the user user and developer guide to find out:
- How to setup the project environment?
- How to run the gateway?
- How to access the gateway using different oBIX bindings (HTTP, CoAP, SOAP)
- How to add your own technology adapter?
- Juergen Weidinger: KNX protocol bundle, IoTSyS Gateway
- Ralph Hoch: Wireless M-Bus protocol bundle
- Isolde Carsasco de Cantú: Logo
- Esad Hajdarevic: Obelix UI
- Robert Horvath: IoTSyS Gateway, oBIX 1.1 implementation (GSoC 2013 student)
- Thomas Hofer: XACML Module
- Stefan Suzcsich: Weather Forecast module
- Nam Giang: DNS, mDNS, DNS-SD Module (GSoC 2013 student)
- Clemens Pühringer: Appscale CoAP/OBIX API
- Jürgen Schober: Wired MBus connector
Parts of the project are used as proof of concept implementation within the PhD thesis An integration middleware for the Internet of Things.