Skip to main content

Kotori is a data acquisition, processing and graphing toolkit for humans

Project description

Chart recorder

Telemetry data acquisition and sensor networks for humans.

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

Status:
Project status (alpha, beta, stable) CI outcome Code coverage Package version on PyPI Project license
Usage:
PyPI downloads per month Docker image pulls for `kotori` (total) Docker image pulls for `kotori-standard` (total)
Compatibility:
Supported Mosquitto versions Supported Grafana versions Supported InfluxDB versions Supported MongoDB versions Supported Python versions

About

Kotori is a multi-channel, multi-protocol telemetry data acquisition and graphing toolkit for time series data processing also known as data historian.

It supports a variety of scenarios in scientific environmental monitoring projects, for building and operating distributed sensor networks, and for industrial data acquisition applications.

Details

Kotori is a data and protocol broker within SCADA / MDE systems, exclusively built upon industry-grade free and open-source software like Grafana, Mosquitto, or InfluxDB. It is written in Python, and uses the Twisted networking library.

The best way to find out what you can do with Kotori, is by looking at some outlined scenarios and by reading how others are using it at the example gallery. To learn more about the technical details, have a look at the used technologies.

Features

  • Multi-channel and multi-protocol data-acquisition and -storage. Collect and store sensor data from different kinds of devices, data sources, and protocols.

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

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

  • Leverage the flexible data acquisition integration framework for building telemetry data acquisition and logging systems, test benches, or sensor networks for environmental monitoring systems, as well as other kinds of data-gathering and -aggregation projects.

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

Installation

Kotori can be installed in different ways, see all installation options. You may prefer using a Debian package, install it from the Python Package Index (PyPI), or run it within a development environment directly from the Git repository, see sandbox installation instructions.

Synopsis

A compact example how to submit measurement data on a specific channel, using MQTT and HTTP, and export it again.

Data acquisition

First, let’s define a data acquisition channel:

CHANNEL=amazonas/ecuador/cuyabeno/1

and some example measurement data:

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

Submit with MQTT:

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

Submit with HTTP:

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

Data export

Measurement data can be exported in a variety of formats.

This is a straight-forward example for CSV data export:

http $HTTP_URI/$CHANNEL/data.csv

Acknowledgements

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

Project information

Contributions

Every kind of contribution, feedback, or patch, is much welcome. Create an issue or submit a patch if you think we should include a new feature, or to report or fix a bug.

Development

In order to setup a development environment on your workstation, please head over to the development sandbox documentation. When you see the software tests succeed, you should be ready to start hacking.

Resources

License

The project is licensed under the terms of the GNU AGPL license, see LICENSE.

Supported by

https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.svg

Special thanks to the people at JetBrains s.r.o. for supporting us with excellent development tooling.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kotori-0.28.0.tar.gz (479.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kotori-0.28.0-py3-none-any.whl (189.6 kB view details)

Uploaded Python 3

File details

Details for the file kotori-0.28.0.tar.gz.

File metadata

  • Download URL: kotori-0.28.0.tar.gz
  • Upload date:
  • Size: 479.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for kotori-0.28.0.tar.gz
Algorithm Hash digest
SHA256 7b016bfaa8ddeb4b8f36bb7a4e5e855091085e650cb6d5b1f9572cff01fde4d3
MD5 10af56080d730413a15e4756140a8fb9
BLAKE2b-256 917c0f9c8c9a67f8dfcb7a88c3184429b4c8c87d2c0cfb94f15df83973ddf898

See more details on using hashes here.

File details

Details for the file kotori-0.28.0-py3-none-any.whl.

File metadata

  • Download URL: kotori-0.28.0-py3-none-any.whl
  • Upload date:
  • Size: 189.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for kotori-0.28.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1525da15c9837e12ba36c66fbd3d161b31c0986f7a28e23695641221c3880705
MD5 784b002daa5bc93144a57813a3b6e4cc
BLAKE2b-256 ed995c764b64fef8063fca07c8704b1772ac51b9fa64f91b4b1e48053ef5c17f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page