ConCaVa

A functional & technical introduction

by Kukua

Why?

Room for improvement in efficiently sending and storing sensor data.

Several companies doing the same thing.

Common problems require a scalable and generic solution.

Problem

  • The current formats (XML, JSON) require a lot of bandwidth
  • This costs money
  • Calibrating, validating, and storing sensor data is difficult
  • Why keep reinventing the wheel?

Use case

LoRa weather station

Constraints

  • Limited package size (51 bytes)
  • 886Mhz spectrum, with limiting throughput

Attributes

  • Wind speed
  • Wind direction
  • Gust speed
  • Gust direction
  • Rainfall
  • Temperature
  • Humidity
  • Barometric pressure
  • Ultraviolet (UV) light
  • Solar radiation

Ways to get the data across

  • API url parameters
  • XML data
  • Binary data

Smaller payload sizes are better.

API url parameters

The traditional way


http://weatherstation.wunderground.com/weatherstation/updateweathers
tation.php?id=KCASANFR5&password=XXXXXX&dateutc=2000-01-01+10%3A32%3
A35&windspeedmph=12&winddir=230&windgustmph=12&windgustdir=230&raini
n=0&tempf=70&humidity=90&baromin=29.1&uvl=20&solarrad=10
				

~185 bytes of data

XML data




	KCASANFR5
	XXXXXX
	2000-01-01+10%3A32%3A35
	12
	230
	12
	12
	0
	70
	90
	29.1
	20
	10

				

~393 bytes of data

Binary data

  • ID = 8 bytes
  • Password = ~16 bytes
  • Date = 4 bytes
  • Wind speed = 2 bytes
  • Wind direction = 1 byte
  • Gust speed = 1 byte
  • Gust direction = 1 byte
  • Rainfall = 1 byte
  • Temperature = 2 bytes
  • Humidity = 1 byte
  • Barometric pressure = 1 byte
  • Ultraviolet (UV) light = 1 byte
  • Solar radiation = 1 byte

41 bytes of data

Binary payload

  • Efficient
  • Flexible
  • Small payload size

Parsing

Which byte(s) contains what data?

  • Metadata required to make sense of the data
  • Dynamic metadata enables flexible binary payload

Solution

ConCaVa: Convert, calibrate, and validate

  • Generic binary payload processor
  • Replaceable components
  • Token based authentication
  • Plug-and-play/custom connectors
  • Stores sensor data in Cloud Storage
    (the Orion Context Broker, for example)

Source on Github: https://github.com/kukua/

General dataflow

LoRaWAN dataflow

Three simple steps

  1. Convert: use metadata to parse the binary payload
  2. Calibrate: transform data to desired format
    (e.g. convert Fahrenheit to Celcius)
  3. Validate: correct sensor misreadings
    (e.g. temperatures below −273.15°C)

ConCaVa supports every thinkable rule for converting, calibrating, and validating sensor data.

Example

For example: wind direction of 1 byte (integer value 0-255).


Convert:    binary 00011110 = integer value 30
Calibrate:  value = 360 * (value / 255)
Validate:   0 ≤ value ≤ 255
Result:     42.4°
				

Highly customizable

  • Dynamic metadata allows any format of binary payload
  • Custom calibrate functions
  • Replaceable components
    • Cloud Storage
    • Token-based authenticator
    • Connectors

Roadmap

  • Open-source components
  • Easy setup (Docker containers)
  • Documented
  • Automated testing (unit-tests)
  • Graphical interface, for managing metadata and viewing sensor data

The end

Questions?


http://kukua.cc
https://github.com/kukua/