Open source stack for IoT Gateways & Smart Devices

kWithin the Eclipse IoT community there are a variety of projects that work to provide the capabilities that an IoT gateway requires. Read on to learn more!

IoT Gateway & Smart Device Stack

The IoT gateway acts as the aggregation point for a group of sensors and actuators to coordinate the connectivity of these devices to each other and to an external network. An IoT gateway can be a physical piece of hardware or functionality that is incorporated into a larger “Thing” that is connected to the network. For example, an industrial machine might act like a gateway, and so might a connected automobile or a home automation appliance.

Integrated IoT Gateway and Smart Devices stacks

Eclipse Kura

Eclipse Kura provides a general purpose middleware and application container for IoT gateway services. An IoT gateway stack based on Eclipse Kura would include the following

  • Operating System – Linux (Ubuntu/Ubuntu Core, Yocto-based linux distribution), Windows.
  • Application Container or Runtime EnvironmentEclipse Equinox or Eclipse Concierge (OSGi Runtime).
  • Communication & Connectivity – Eclipse Kura includes APIs to interface with the gateway I/Os (e.g. Serial, RS-485, BLE, GPIO, etc.) and support for many field protocols that can be used to connect to devices, e.g MODBUS, CAN bus, etc.
  • Network Management – Eclipse Kura provides advanced networking and routing capabilities over a wide-range of interfaces (cellular, Wi-Fi, Ethernet, etc.).
  • Data management & Messaging – Eclipse Kura implements a native MQTT-based messaging solution, that allows application running on the gateway to transparently communicate with a Cloud Platform, without having to deal with the availability of the network interfaces, or how to represent IoT data. Support for additional messaging protocols is available through the built-in Apache Camel message routing engine.
  • Remote management – Eclipse Kura provides a remote management solution based on the MQTT protocol, that allows to monitor the overall health of an IoT gateway, in addition to control (install, update, modify settings) the software it’s running.

Eclipse SmartHome

Eclipse SmartHome provides an IoT gateway platform that is specifically focused on the home automation domain. An Eclipse SmartHome stack would including the following:

  • Operating System – Linux (Ubuntu/Ubuntu Core, Yocto-based linux distribution), Windows or macOS.
  • Application Container or Runtime Environment – Eclipse Equinox or Eclipse Concierge (OSGi Runtimes).
  • Communication & Connectivity – Eclipse SmartHome brings support for many off-the-shelf home automation devices such as Belkin WeMo, LIFX, Philips Hue, Sonos, etc. Eclipse SmartHome focuses on enabling home automation solutions to communicate within an “Intranet of Things” ; therefore offline capabilities are a paramount design goal.
  • Data Management & Messaging – Eclipse SmartHome has an internal event bus, which can be exposed to external systems through e.g. SSE or MQTT. It furthermore provides mechanisms for persisting values in databases and for running local business logic through a rule engine.
  • Remote Management – Eclipse SmartHome supports device onboarding and configuration through its APIs. It furthermore provides an infrastructure to perform firmware update of connected devices.

Eclipse 4diac

Eclipse 4diac provides an industrial-grade open source infrastructure for distributed industrial process measurement and control systems based on the IEC 61499 standard. 4DIAC is ideally suited for Industrie 4.0 and Industrial IoT applications in a manufacturing setting.

The IEC 61499 standard defines a domain specific modeling language for developing distributed industrial control solutions by providing a vendor independent format and for simplifying support for controller to controller communication.