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 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:
- Vorto DSL – a readable, developer‑friendly language for defining abstract device models, even accessible to non‑developers.
- Metamodel – specifies relationships between entities such as Information Models, Function Blocks, and Datatypes.
- Code Generators – transform DSL and metamodel definitions into ready‑to‑use source code for your chosen IoT platform.
- Vorto Repository – a cloud‑based store that manages, shares, and distributes Information Models and Function Blocks for reuse.
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.

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.

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.

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