When working in an IoT environment we have to ensure connected devices can seamlessly communicate with cloud platforms, regardless of the different manufacturer, technologies, and systems.
In the past, developers have built IoT solutions that were specifically designed for a limited set of devices that had the same API. When changing the device type or switching device manufacturers the device integration required time-consuming refactoring to work with the new device.
So the question is, how can we find out which devices have the type of functionality we want and how can we avoid tight coupling between a specific device so it is easier to switch to a similar device without too much refactoring?
Vorto provides an abstraction layer called the Vorto Information Model, and a domain specific language (DSL) which describes all the meta-information, like properties and functions, of a connected device. By adding a layer of abstraction, we create a consistent interface that allows us to use different types of devices with similar functionality.
The Vorto project is built on four main components:
-
Vorto Language (DSL): The Vorto language is a readable and easily understood domain-specific language that was specifically designed to be usable even by non-developers. It is used to create the abstract models of different devices. Read more
-
Metamodel: The metamodel is used to define the relationship between the different entities like Information Models, Function Blocks, and Datatypes.
-
Code Generators: Based on the DSL and metamodels, the code generators provide a sophisticated but simple way to create source code for a convenient integration of the defined IoT devices with an IoT solution platform.
-
Vorto Repository: The repository is used to store, manage, and distribute the created Information Models and Function Blocks for re-use.
For a more in depth introduction into the concepts, feel free to read the blog post about Eclipse Vorto.
-
Create and Manage your namespaces to get ready for describing devices.
-
Describe your first device in 5 minutes using the Vorto Web Editor
You can also describe new devices using the Vorto Eclipse IDE
-
Provision your device to create a new digital twin inside Bosch IoT Things - (9min video)
-
Integrate your device using Python / Java / Arduino - (10min video)
-
Visualize your sensor data using the Vorto Dashboard - (7min video)
You can also use the Bosch IoT Things SwaggerUI to validate your data if you're using the Bosch IoT Suite.
If you want to see the full process of creating, integrating and visualizing sensor data for a new device, feel free to watch the webcast IoT Demo Day Part I: Vorto for Asset Communication Package (33min). A Webinar with an introduction into Vorto and a simple use case can be watched here Webinar: Semantic Modelling in Action - Eclipse Vorto (55min).
- Vortolang 1.0
- Describe a TI SensorTag
- Describe a device in 5 minutes
- Reference Vorto Models files from your custom DSL with Eclipse Xtext
- Create and Manage your Namespaces
- Manage Collaborators
- Importing your models
- Releasing your models
- Creating a new version of your model
- Publishing Models
- Release States
- Official Generators/Plugins
- Integrate Vorto with AWS Kinesis for anomaly detection
- Developing Vorto Generator Plugins for a Code Generation toolchain
- Parse Vorto DSL files with Java
- Map arbitrary device payload to Vorto compliant data structures
- A. Edelmann, T. Grossmann: IoT Demo Day Part I: Vorto for Asset Communication Package (33min)
- J. Feinauer, K. Olotu: Webinar: Semantic Modelling in Action - Eclipse Vorto (55min)
In case you're having difficulties or facing any issues, feel free to create a new question on StackOverflow and we'll answer it as soon as possible!
Please make sure to use eclipse-vorto
as one of the tags.