our friends at activestatistics.io are working on an online platform targeted towards the Internet of Things (IoT). It spans from a simple datalogger to a sophisticated online data monitoring and analysis system. It is built as client/server system where the server is centrally provided by them and the client can be as small as our Uno8266 uploading data using the MQTT protocol.

We are partnering with them to be able to offer the backers of our current Kickstarter campaign a free account with the following features once they start:

  • Database size 30MByte (you have your dedicated postgres database)
  • Use all current functionalities plus MultiStream that is currently in development
  • Data upload MQTT or HTTP with speed just limited by the system (no break put in)
  • At least 3years valid

There will be also a free acount for everybody as well, but this will be much more restricted.

The folloing paragraphs will give you a rough introduction to the services of activestatistics.io


activestatistics.io will be an easy to use online data aquisition, monitoring and analysis system. It is targeted towards the internet of things but will work for anything else as well. The basic decisions done so far:

  • Developed using Python as programming language and the  Django Framework
  • Postgres as basic database technology, each users data is stored in a separate postgres database
  • Mezzanine (based on Django) will be used as CMS to enable blogs, forums etc. (to be done soon) 
  • The statistics engine behind is our mostely our own work and ready to go

Current Status

  • The website and especially documentation needs lot of work until start.
  • The engine below is mostely done for the initially targeted functionality


The following is the functionallity targeted for the launch later this year (October/November).


Initially there will be two different free accounts

Kickstarter backers (ActiveStatistics and BlueberryE campaigns)

  • Database size 30MByte
  • Use all current functionalities plus MultiStream that is currently in development
  • Data upload MQTT or HTTP with speed just limited by the system (no break put in)
  • No restriction on data live-time

General free account

  • Database size 15MByte 
  • Use all current functionalities plus MultiStream that is currently in development
  • Data upload MQTT or HTTP with limited speed
  • No restriction on data live-time

Data Storage and Monitor

The data will be stored in the personal Postgres database of each user.

  • each user has its own database that is accessible through the api
  • database size is limited 
  • there is no automatic data clean up, means historical data can stay forever.
  • actually only numeric data can be logged an monitored - beside context information like datetime, id etc.
  • the data is organized through levels (convinient as this translates one to one in the topic structure of MQTT) and a parametername e. g. levels: location/office parameter name humidity that combination defines a univariate stream as it is called
  • to each stream samples can be uploaded. A sample is characterized through data/time, an id and one or more values for the parameter. 
  • from each sample several statistics can be calculated according to the definition of the stream, currently the mean, standard deviation, median and interquartile range is available.
  • each statistic calculated defines then a univariate chart that belongs to the stream, means a stream can actually have four charts corresponding to mean, standard deviation, median and interquartile range.
  • now the single values in the univariate charts will be monitored (means they can be checked against limits) or before they undorgo another calculation. Checking the value directly is called the Shewart chart  (out of old SPC days), an exponential moving average chart is called EWMA chart and further there is a Moving Range chart indicating the fluctuation between values and and finally the CUSUM chart that describes the accumulated deviation from the target value giving an indication if there is a tendency to drift from the target. 


  • as described above the values that can be checked against limits are inside the charts
  • the system allows to define more than one limit sets, assume you have a particular chart lets say MEAN Shewart for a temperature. Now each new sample for that particular chart can be checked against different limits e. g. to know also smaller deviations you can define a upper/lower limit called warning, smaller deviations also violate the defined action limits and finally you defined shutoff limits.
  • If the data was uploaded through HTTP the response from the server will deliver also the result of the insert, means all info if and what  limits have been violated. In case of MQTT it is even better as the server will publish a message describing if and what limits have been violated, this message can be picked up by anybody who needs the message. E. g. you have home automation system and temperature drops below threshold so both heater controller and window automatic get the message and turn on heating and close the window.

Ok that was a lot of text and I will add some graphics that help understanding hopefully later. In the meantime you can go to the activestatistics.io and have a look onto the demos.

Currently unrated
  • Share


There are currently no comments

New Comment

* Please fill all required form field, thanks!