What is OpenDevice ?
"OpenDevice is a set of tools and APIs to build solutions for the Internet of Things"
It is an open source platform to facilitate communication between software and hardware locally or in cloud through rest, mqtt and websocket.
If your project does not need to communicate with an external software the OpenDevice will not serve for you!.
The OpenDevice APIs enables you to prototype interactive connected products quickly and easily.
It is designed to be modular, flexible, configurable and extensible.
Our libraries make integrating with OpenDevice API more easy, letting you write code for your devices, applications, and services with easy integration.
All libraries are Open Source and hosted on Github, so that you can use, contribute, and request features on them freely.
The "OpenDevice" is a open-source platform written in java (but not limited to it), which to develop cost effective solutions for the "Internet of Things" in an extremely easy way.
Philosophy
The philosophy of OpenDevice is making abstraction of communication between software and hardware with the least possible effort
We are working to have the minimal code in device (hardware), we want to reach zero lines of code. But in a way that can also be flexible.
This allows you to focus on your project and innovation, leave obscure details of communication protocols and specifications with OpenDevice, you will make a major step towards the success of your project.
Overview
- Communication Overview
- Architecture Overview
Communication Overview

Communication is real-time and event-based.
You not need consult the information, she comes to you when some data is available. This model is achieved thanks to new technologies like WebSockets. This makes it much easier when programming ..
Architecture Overview

Components
Middleware
The middleware is the central part of the platform and is composed with a set of servers that make the abstraction of communication protocols used between the components of hardware and software. It’s possible to control an Arduino or similar using any high-level programming language through the REST API for example.
The middleware can run both locally and in the cloud and is compatible with any operating system that can run java (windows, linux, mac, and possibly a tabllet running android)
Client APIs
APIs used to connect with the Middleware (or directly with the hardware) using protocols like Rest and WebSocket, some examples are: JavaScript API, Java API, Android API.
They make your life very easy by abstracting low-level details. You can communicate directly with the device without using the middleware using the binary protocol and with the help of the library opendevice-connection-stream (for USB, Bluetooth, Ethernet, Wifi)
See the tutorials and samles for how to use these libraries to control devices.
Firmware / Hardware
This component/library is used in the arduino (and similars) and has various facilities for working with sensors and actuators in some cases avoiding manual programming.
Also implements the binary communication protocol with Middleware or another device.
Technology

Get Started with OpenDevice
Now, let’s setup and use the OpenDevice!
Tutorials
Step-by-step tutorials are structured to help you with everything from hardware and apis.
Most of the examples and tutorials are in JAVA, but do not worry, you can program only with HTML / JavaScript (or other languages) if you wish, using the middleware and the cloud api.
Supported Devices
Here is a list where the firmware / C ++ library was tested.
Please help us to test on other platforms!
https://github.com/OpenDevice/OpenDevice/wiki/Supported-Devices
Integrations and Plugins
Sources
The OpenDevice is available on GitHub and includes the complete stack to build solutions for the "Internet of Things"
License
Copyright (c) 2013-2014 CriativaSoft.
Free use of this software is granted under the terms of the Eclipse Public License v1.0. See the LICENSE file for details.
Contributing
In the spirit of free software, everyone is encouraged to help improve this project.
Here are some ways you can contribute: using beta versions, reporting bugs, writing documentation, writing code…
Are you using the library? Let us know and add your project to Wiki: Projects Using OpenDevice
Submitting an Issue
We use the GitHub issue tracker associated with this project to track bugs and features.
Before submitting a bug report or feature request, check to make sure it hasn’t already been submitted.
Submitting a Pull Request
When performing any fix or implement a new feature feel free to make a pull request, so you need to create a fork of the repository.