Skip to content
briksoftware edited this page Apr 27, 2014 · 7 revisions

Introduction

OSNP (Open Sensor Network Protocol) is a protocol stack enabling creation of sensor networks and home automation systems.

This stack defines the application layer which is transport agnostic and device type independent and a collection of transport protocols which can be wired or wireless. Currently we are working on a transport protocol based on IEEE 802.15.4. This repository contains a C implementation of this transport protocol which is being developed using PIC18 as development target, but should be pretty much platform-agnostic. We are still at a very early stage

Goals

In short: Open Source + Open Hardware + Open Specifications

More in details: The ultimate goal is to provide a flexible and open standard which anybody can use to create smart devices and applications interacting with them. The protocol won't be patent encumbered and the specifications are here, available to read freely without filling any form or other formalities.

The protocol is meant for hobbyists or companies who want to realize a remote controlled device without having to build the entire infrastructure and having to write yet another custom protocol. Project Uzel provides an extensible application server which takes care of managing devices (discovery, pairing, un-pairing, security, etc) and provides a plugin interface to develop your own application. It is an important part of the OSNP ecosystem.

The development of the protocol itself is a community effort, and proposal of new transport protocols, additions to the application layer protocol, etc are very welcome.

High level architecture

The high-level network architecture is basically a star-network, where the hub controls all associated devices and has the ability to discover new ones. Devices never speak to each other, only with this hub, which knows what to do with them and how to communicate with them. The devices can be anything ranging from sensors (temperature, moisture, etc) to remote-controlled switches, control panels, water pumps, HVAC.

For this hub to be useful, it should of course act as an application server with virtual appliances controlling one or more devices according to their functionality. Virtual appliances could be anything from plant irrigation systems (controlling water pumps in relation to time, moisture sensors, temperature sensors, etc) to HVAC control systems.

We are developing such a hub with project Uzel.

The important thing is that all OSNP.compatible devices have a specific device type (and can be composed of sub-devices if they provide functions from more than one category) and they must communicate using exactly the same way, so an appliance using temperature sensors can work with any OSNP-compatible temperature sensor, regardless of the manufacturer.

To achieve this level of interoperability the application level protocol is very flexible and allows devices to declare their capabilities in case they implement only a subset of what is specified for a specific category. It also is very robust in relation to addition of new features because being based on ASN.1 (BER-TLV) encoding it does not rely on fixed field sequences or even fixed length fields.

The specifications for each device type will also be published here and any addition proposed by the community will be evaluated and added.

Clone this wiki locally