Kotori

https://assets.okfn.org/images/ok_buttons/ok_80x15_red_green.png https://assets.okfn.org/images/ok_buttons/oc_80x15_blue.png https://assets.okfn.org/images/ok_buttons/os_80x15_orange_grey.png

Chart recorder

Telemetry data acquisition and sensor networks for humans.


Documentation: https://getkotori.org/

Source Code: https://github.com/daq-tools/kotori/

Status:

https://img.shields.io/badge/Python-2.7-green.svg https://img.shields.io/pypi/v/kotori.svg https://img.shields.io/github/tag/daq-tools/kotori.svg

At a glance

Kotori is a data historian based on InfluxDB, Grafana, MQTT and more. Free, open, simple.

It is a telemetry data acquisition, time series data processing and graphing toolkit aiming to become a fully integrated data historian. It supports scientific environmental monitoring projects, distributed sensor networks and likewise scenarios.

The best way to find out more about Kotori is by looking at how others use it already. Enjoy reading about some examples where Kotori has been used.

Features

The key features are:

  • Multi-channel and multi-protocol data-acquisition and -storage.

  • Built-in sensor adapters, flexible configuration capabilities, durable database storage and unattended graph visualization out of the box.

  • Based on an infrastructure toolkit assembled from different components suitable for data-acquisition, -storage, -fusion, -graphing and more.

  • The system is used for building flexible telemetry solutions in different scenarios. It has been used to support conceiving data logging systems, test benches, sensor networks for environmental monitoring as well as other data-gathering and -aggregation projects.

  • It integrates well with established hardware-, software- and data acquisition workflows through flexible adapter interfaces.

Technologies

Kotori is based on a number of fine infrastructure components and technologies and supports a number of protocols in one way or another. Standing on the shoulders of giants.

Installation

Kotori can be installed through a Debian package, from the Python Package Index (PyPI) or from the Git repository. Please follow up to the corresponding installation instructions:

https://getkotori.org/docs/setup/

Examples

Data acquisition is easy, both MQTT and HTTP are supported.

First, let’s define a data acquisition channel:

CHANNEL=amazonas/ecuador/cuyabeno/1

and some data to submit:

DATA='{"temperature": 42.84, "humidity": 83.1}'

MQTT:

MQTT_BROKER=daq.example.org
echo "$DATA" | mosquitto_pub -h $MQTT_BROKER -t $CHANNEL/data.json -l

HTTP:

HTTP_URI=https://daq.example.org/api/
echo "$DATA" | curl --request POST --header 'Content-Type: application/json' --data @- $HTTP_URI/$CHANNEL/data

Acknowledgements

Thanks to all the contributors who helped to co-create and conceive Kotori in one way or another. You know who you are.

License

This project is licensed under the terms of the AGPL license.