Industrial manufacturing
Industrial Internet of Things | Industrial materials | Equipment Maintenance and Repair | Industrial programming |
home  MfgRobots >> Industrial manufacturing >  >> Industrial Internet of Things >> Internet of Things Technology

Eclipse Vorto: Empowering Seamless IoT Device Integration

Alexander Edelmann

Hi, I’m Alexander Edelmann, a software engineer at Robert Bosch since 2006, based in Singapore. My passion lies in IoT and the open standards that enable devices to talk to one another across diverse platforms. I actively contribute to the Eclipse IoT Vorto project, which supplies cloud‑based tools for a unified description of IoT devices and their integration into any platform that follows open IoT standards. When I’m not coding, I enjoy Asian cuisine, tennis, and exploring new places.

Why Device Integration Matters

Smart factories and connected homes are revolutionizing cost, efficiency, safety, and convenience. Yet, the sheer volume of device and sensor manufacturers introduces a key challenge: ensuring that every device can communicate seamlessly with cloud platforms, regardless of brand or technology. Historically, developers built custom solutions for a limited set of devices sharing the same API. Switching device types or vendors demanded painful refactoring.

Imagine an agricultural operation tracking tractors, plows, and other equipment. You need to monitor not only location but also temperature, acceleration, and battery health. How do you choose devices that fit your needs and avoid rigid coupling that forces costly redesigns?

Introducing Eclipse Vorto

Eclipse Vorto: Empowering Seamless IoT Device Integration

Eclipse Vorto provides an abstraction layer called the Vorto Information Model and a domain‑specific language (DSL) that captures all meta‑information—properties, functions, and relationships—of a connected device. By defining devices in a platform‑agnostic way, Vorto creates a consistent interface that unites disparate hardware with similar functionality.

The project consists of four core components:

Eclipse Vorto is fully open source, maintained by the Eclipse IoT Working Group under Bosch’s stewardship.

Eclipse Vorto in Practice

Consider a large farm tracking the use of harvesters, tractors, and other assets. By integrating location, temperature, humidity, and battery data, operators can implement predictive maintenance and anti‑theft measures. The Bosch Asset Tracing Solution (TRACI) exemplifies this capability.

Eclipse Vorto: Empowering Seamless IoT Device Integration

Creating a digital twin of the TRACI device starts with reusable building blocks. For instance, a Battery Function Block describes the battery state as a percentage between 0 and 100. This block can be reused across many devices.

namespace org.eclipse.vorto
version 1.0.0
displayname "Battery"
description "Functionblock for Battery"
category peripheral
using org.eclipse.vorto.Voltage ; 1.0.0

functionblock Battery extends org.eclipse.vorto.Voltage {
    status {
        mandatory remainingCapacity as float <MIN 0, MAX 100>
    }
}

To further abstract the numeric value, we create a Datatype for percentages:

namespace org.eclipse.vorto.types
version 1.0.0
displayname "Percentage"
description "Datatype for Percentage"
category units

entity Percentage {
    mandatory value as float <MIN 0, MAX 100>
}

This Datatype is then incorporated into the Battery block, eliminating concrete implementation details.

namespace org.eclipse.vorto
version 1.0.0
displayname "Battery"
description "Functionblock for Battery"
category peripheral
using org.eclipse.vorto.types.Percentage ; 1.0.0
using org.eclipse.vorto.Voltage ; 1.0.0

functionblock Battery extends org.eclipse.vorto.Voltage {
    status {
        mandatory remainingCapacity as Percentage
    }
}

Repeating this pattern for temperature, GPS, acceleration, and connectivity modules yields a comprehensive Information Model that can be fed into Vorto’s code generators to produce integration stubs.

namespace com.bosch.ps
version 1.0.0
displayname "Traci"
description "Information Model for Traci"

using org.eclipse.vorto.Geolocation; 1.0.0
using org.eclipse.vorto.Acceleration; 1.0.0
using org.eclipse.vorto.MagneticStrength; 1.0.0
using org.eclipse.vorto.Temperature; 1.0.0
using org.eclipse.vorto.Battery; 1.0.0
using org.eclipse.vorto.Connectivity; 1.0.0

infomodel Traci {
    functionblocks {
        battery as Battery
        location as Geolocation
        acceleration as Acceleration
        temperature as Temperature
        magneticStrength as MagneticStrength
        bluetoothConnectivity as Connectivity
        lorawanConnectivity as Connectivity
    }
}

Suppose a different manufacturer releases a device with similar features. By reusing the same Function Blocks and Datatypes, you can define a new Information Model without rewriting integration logic.

namespace com.nimbelink.nl
version 1.0.0
displayname "NLAT2VS"
description "Information Model for NLAT2VS"

using org.eclipse.vorto.Geolocation; 1.0.0
using org.eclipse.vorto.Battery; 1.0.0
using org.eclipse.vorto.Connectivity; 1.0.0
using org.eclipse.vorto.Temperature; 1.0.0
using org.eclipse.vorto.Humidity; 1.0.0
using org.eclipse.vorto.Acceleration; 1.0.0

infomodel NLAT2VS {
    functionblocks {
        battery as Battery
        acceleration as Acceleration
        location as Geolocation
        temperature as Temperature
        humidity as Humidity
        wifiConnectivity as Connectivity
        cellularConnectivity as Connectivity
    }
}

The shared Function Blocks mean the new device can be integrated with minimal effort, showcasing Vorto’s power to decouple device evolution from application logic.

Who Benefits from Eclipse Vorto?

Device Manufacturers

Vorto enables manufacturers to publish platform‑independent Information Models, cutting the need for multiple target‑specific implementations. This flexibility saves time and cost while ensuring interoperability across ecosystems. The decoupling of protocol layers from device controllers allows continuous device evolution without breaking existing integrations.

Eclipse Vorto: Empowering Seamless IoT Device Integration

IoT Platforms

Platforms can drastically reduce integration overhead by using Vorto’s code generators for partial or full source code creation. The Vorto Repository serves as a runtime source of device capabilities via JSON schemas, facilitating dynamic discovery, validation, and connector bootstrapping.

Solution Developers

Developers tackling heterogeneous device APIs can rely on Vorto’s generic code stubs and reusable models to shorten development cycles and avoid vendor lock‑in.

Eclipse Vorto: Empowering Seamless IoT Device Integration

The Future of IoT with Eclipse Vorto

By standardizing device interfaces and ensuring interoperability, Eclipse Vorto can reshape how manufacturers, platform operators, and developers collaborate. It reduces development effort, eases integration, and addresses the scalability challenges inherent to IoT ecosystems.

Explore the project on GitHub—give it a star and dive into the tutorials for device creation, integration, and visualization.

Internet of Things Technology

  1. Synchronizing Device Payloads with Eclipse Vorto: A Practical Guide
  2. 5 Key Wireless Standards Powering IoT Connectivity
  3. Smart Data: Navigating the Next Frontier of IoT and Big Data
  4. Why Wi‑Fi‑Enabled IoT Devices Pose a Growing Security Threat
  5. How Narrowband Technologies Power the IoT Revolution
  6. Could Enterprises Become the Next MVNOs? Unlocking IoT Revenue for Operators
  7. Unconfigured IoT Devices: The Hidden Threat to Your Smart Home
  8. Embedded Hardware Hacking for IoT Devices: Tools, Techniques, and Business Implications
  9. Why Direct Device Connectivity Is the Next Milestone in Industrial IoT
  10. Software Testing for IoT Devices: Key Challenges & Solutions