Updated 2016-02-13 16:48:24 by escargo

For the past few months, I have been looking into the field of the Internet of Things. The result is a so-called context manager (or context engine), that acts as a hub between sensors, actuators and also external cloud services. The context engines tries to provide more than the a current snapshot and history of your data, it also attempts to provide a context to the sensors that are being placed in a home. The context manager will be able to answer questions such as "give me all the lamps that are in that room/floor/house?". Pushing and retrieving data to and from the context manager and therefore the context is done via a simple REST/JSON API. Incoming data can trigger any number of further web calls whenever some conditions are met, thus making it possible to send the data to remote services. In addition, the context manager builds upon the concept of conduits, that are logical entities able to drive in and out data from and to specific external cloud services. There are conduits for cosm, for Twitter, for other remote context engines, for google calendar and for UPnP remote devices and services (see SSDP).

The code is available from my newly started Google code project where I have tried to gather all the bits and pieces of open sourced code that I have written along the years. A longer description of what the Context manager does is available from the Google wiki. The code is able to run on small platforms such as the BeagleBoard and is able to receive data from sensors running the contiki OS.

Among the past few weeks, code has been a bit reorganised and the context manager now interfaces with a number of other sensors. For example, it easily bridges to nodes from Flexibility, but also to smart plugs from PlugWise, thus allowing you to turn on and off your devices from a Tcl script!