Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Sensetrace is a system for storing and analyzing sensor data streams. A web interface and usage of semantic web technologies like RDF allow user-friendly data presentation. In the first place Sensetrace was developed for long term observation of solar power plants. But it is easily adaptable to other kind of environments controlled by sensors.
For any kind of questions have a look to the [Sensetrace mailing list](https://groups.google.com/forum/#!forum/sensetrace).
* User-friendly [webinterface](Queries-via-Webinterface) * Long-term archiving of sensor data streams in PostgreSQL database. * Represents data with semantic web technologies like RDF. * Homepage for graphical viewing of data and generating RDF-SPARQL-queries out of the user selection. * Automatically calculates averages of 1 second data in the range of 1 minute, 15 minutes, 1 hour, 1 day and 1 month. * Complex Event Processing (CEP) for classifying data and error detection. * Developed in Java, modular thanks OSGi. * Jtalis for CEP. * For RDF and SPARQL the software integrates the tools Apache Jena, Apache Fuseki and D2RQ. * Sensors and classification rules are described in the standardized SensorML-Format. * PostgreSQL database organizes data in partitions. This allows the effective work with very big amounts of sensor data.
What is Sensetrace and what is it not?
In the first place Sensetrace is perfect for facilities which work with big amounts of archived sensor data. The software stores sensor data streams and represents the recorded data in a very structured way by using semantic web technologies like RDF. Besides Sensetrace automatically calculates averages of sensor data in different ranges and classifies the data with user defined patterns, for example to find sunny or rainy days.
Next to the classifications the user can define patterns for finding problems with the observed devices. That is why Sensetrace is also interesting for those who are only interested in monitoring their solar power plants, wind turbines, or any other kind of apparatus.
Sensetrace is not optimized for classifying data in realtime and detecting problems in the range of milliseconds. But is great if you can wait some minutes before your get informed for a problem. The waiting time depends on the complexity of the defined rule for detecting a certain situation.
The image shows the architecture of Sensetrace. The software is assembled out of multiple modules, which are running in a service-oriented Java-OSGI-Environment. The Email module sends out a status Email after an import has finished. The CEP system Jtalis is used for classifying the sensordata stream. The datalogger interface connects Sensetrace to dataloggers. Besides there is a module for handling RDF and SQL connections. Everything is managed by the controller module that also accepts user commands via the OSGI console. Sensetrace writes the sensor datastream, detected classification and errors to a PostgreSQL database. Apache Fuseki is mapping the data out of the SQL database into a virtual RDF-schema. A user can query this RDF-schema via SPARQL.
How to start
SQL - queries