OpenMTC/apps/csvInjector
aor-fokus 1052fd4a08
Release 1.3 (#30)
* Test debian stretch+python3 (#18)

* changes starting with python3 explicit

* removes python modules which are not available for python3

* exchanges fyzz query parsing with rdflib functionality

* fixes interop tests

* replaces reduce with for loop in nodb driver

* simple python2 -> python3 conversions

* adds changes for handling different string handling in python3

* test stretch building with travis

* installing python-setuptools in docker

* installing python-setuptools in docker

* changing python2 to python3 in docker makefiles

* changing python2 to python3 and some other test changes

* push docker only in master branche

* running version of openmtc

* fix some port problems

* porting path library completly now

* restoring travis.yml

* testing new travis.yml

* add sudo

* updating travis OS from trusty to xenial

* upgrade pip before

* show running docker logs

* show more logs

* for debugging

* showlogs of docker after failure

* testing new travis.yml

* finish travis.yml

* Adding roadmap (#26)

* adding roadmap

* adding a nicer view for some documents

* creating contributions.md (#27)

* travis only building on master branch (#25)

* deleting some typo

* another typo

* adding a contributer

* bump version to 1.3.0

* better link for contributions

* Port and fix simple apps

* add version tag
2019-02-14 15:41:53 +01:00
..
bin Release 1.3 (#30) 2019-02-14 15:41:53 +01:00
docker Release 1.3 (#30) 2019-02-14 15:41:53 +01:00
etc add csv injector app 2018-04-05 14:08:27 +02:00
src/csvinjector Release 1.3 (#30) 2019-02-14 15:41:53 +01:00
config.json add csv injector app 2018-04-05 14:08:27 +02:00
MANIFEST.in add csv injector app 2018-04-05 14:08:27 +02:00
README.md add doc for csvInjector 2018-04-05 15:08:27 +02:00
setup-csvinjector.py Release 1.3 (#30) 2019-02-14 15:41:53 +01:00
utils.py Release 1.3 (#30) 2019-02-14 15:41:53 +01:00

Introduction

With this app you are able to integrate data of a csv file into OpenMTC. The csv file must have a column with a timestamp and one column with some kind of device id. You are able to configure the duration of the data injection. The timing of your csv will be scaled to that duration.

Getting started

To get an overview of the available parameters, just execute:

./apps/csv-injector --help

Configuration

The most important paramters are:

  • csv-path: Path to your csv file
  • device-classifier: The id of the column with the device ids
  • date-classifier: The id of the column with the timestamp
  • time-format: Format of your timestamp (example: %d/%m/%Y-%H:%M)
  • duration: time to inject the data (seconds)
  • repeat: repeat after full csv is injected (bool)

Example

If you have a csv like this at "~/test.csv":

Date,ID,Temp,Hum,Battery
23/01/2018-00:50,environment_1,13.3,41,100
18/02/2018-14:01,environment_2,20.4,46,0,99
02/03/2018-23:11,environment_1,19.1,14,100
03/03/2018-00:01,environment_2,19,13,100
08/03/2018-03:01,environment_1,19.5,26,0,99
08/03/2018-10:11,environment_2,21.9,29,0,100
09/03/2018-16:21,environment_1,21.4,27,0,99
09/03/2018-16:51,environment_1,21.3,27,0,100
16/03/2018-06:36,environment_2,15.1,36,0,100
20/03/2018-09:27,environment_1,18.9,19,0,100
20/03/2018-10:27,environment_1,20.3,20,0,99

The app could be started like this:

./apps/csv-injector \
    --csv-path "~/test.csv" \
    --device-classifier "ID" \
    --date-classifier "Date" \
    --time-format "%d/%m/%Y-%H:%M" \
    --duration 300
    --repeat 0