{ "info": { "author": "Michael Lustenberger", "author_email": "mic@inofix.ch", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Internet", "Topic :: Scientific/Engineering", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "ardu-report-lib\n===============\n\n.. image:: https://travis-ci.org/zwischenloesung/ardu-report-lib.svg?branch=master\n :target: https://travis-ci.org/zwischenloesung/ardu-report-lib\n\nPython library to report back the sensor data from, e.g., our arduino(s).\n\nSee https://github.com/zwischenloesung/ardu-report for a CLI using it.\n\nDependencies, Requirements\n--------------------------\n\n * Unix/Linux\n\n * Python 2.7, 3.3, 3.4, 3.5\n\n - see requirements.txt for the dependencies\n\n\nTODOs\n-----\n\n * Upload to PyPI\n\n\nBasic Idea\n----------\n\nThere is a central data store that holds the data. It accepts JSON as input and returns JSON. Both in- and\noutput JSON can be specified by a JSON Schema (see below).\n\nOne or more reader threads can be connected to one or more serial lines to collect the data from the\nmicrocontroller connected to the actual sensors. Whenever data is sent over the wire, it is then stored\nin the data store object described above.\n\nA third reporter object can then be told to report the data on a regular basis to some URL.\n\n\nUsage\n-----\n\nImport and Setup\n~~~~~~~~~~~~~~~~\nSee https://github.com/zwischenloesung/ardu-report for a concrete example implementation.\n\nImport the classes::\n\n from libardurep import datastore, datareporter, serialreader\n\nCreate the objects (example)::\n\n store = datastore.DataStore()\n url = 'file:///tmp/example'\n reporter = datareporter.DataReporter(store, url)\n rounds = 10\n device = '/dev/ttyACM0'\n baudrate = 9600\n reader = serialreader.SerialReader(device, baudrate, store, rounds)\n\n\nDoes It Make Sense for Your Project?\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nAs we really only\nneed some sort of identifier and a value,\nfor a valid sensor datum, it is quite trivial to accept\na wide range of input JSON as provided by the sensor infrastructure\nand to be able to transform\nit to some output JSON as needed by your display infrastructure.\n\nThere is a meta schema definition in the 'schema' folder that\ndescribes the valid schemas. Any such valid schema can be provided\nto the data store object to describe the JSON expected to\ncome from the sensor infrastructure and equally for the JSON\nthat is desired as output. Load the custom schema on DataStore\ncreation like::\n\n datastore.DataStore(input_schema, input_meta_schema, output_schema, output_meta_schema)\n\nThe 'example' folder contains JSON file that\nvalidates against the schema and the tests/test\\_json.py has\na test run for both the input.json against the schema and the\nschema against the meta-schema.. Furthermore there is an\nextended-input.json that validates against an example\ncustomized schema (extended-input-schema.json), with itself\nstill validates against the meta-schema.json.\n\n\nExample Data for Python Processing\n----------------------------------\n\nINPUT: JSON from the (e.g.) arduino over the serial line\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThere are two examples under the 'examples' folder.\n\nThe simple 'input.json'\nshows two example measurements.\nThe \"id\" and \"value\" entries in the object are\nmandatory. The \"unit\" and \"threshold\" are recognized\n(and interpreted for the text form output to stdout, see the datastore\ncode for details).\n\nNote that no timestamp joins the data. Often there is no\nclock source available to the dump sensor controller. The timestamp\nis added in the output below though. If a timestamp is available\nin the input though, it can still be passed on of course.\n\nSee the 'extended-input.json' for an example with\nmore enries and custom naming.\n\n\nOUTPUT: Target JSON from the (e.g.) raspberry pi for the use in e.g. a web app\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe data is appended to a file (\"file://\") as\na continuing list of JSON objects containing sensor value entries or\nsent as a complete JSON array to a web server (\"http://\" / \"https://\")\nas a POST request. Alternatively the data is just printed in\ntext form to stdout.\n\nExample JSON output can be found under the examples folder:\n\n * output.json - default\n\n * custom-output.json - if an output JSON scheme is defined, the\n entries can be translated. The output JSON must validate against\n the meta schema..\n\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/zwischenloesung/ardu-report-lib", "keywords": "arduino sensor json", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "ardu-report-lib", "package_url": "https://pypi.org/project/ardu-report-lib/", "platform": "", "project_url": "https://pypi.org/project/ardu-report-lib/", "project_urls": { "Homepage": "https://github.com/zwischenloesung/ardu-report-lib" }, "release_url": "https://pypi.org/project/ardu-report-lib/1.0.2/", "requires_dist": [ "jsonschema", "pyserial", "requests" ], "requires_python": "", "summary": "Get sensor data over the serial line and send it to an URL (JSON).", "version": "1.0.2" }, "last_serial": 3237081, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "92af437313a8cacddb9a5796be214d23", "sha256": "8175048a93c1663f865b1ad147fc199b521aaf4de24af9b100bbcfcd1be5a6dd" }, "downloads": -1, "filename": "ardu_report_lib-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "92af437313a8cacddb9a5796be214d23", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11213, "upload_time": "2017-10-07T20:37:50", "url": "https://files.pythonhosted.org/packages/a6/f3/bb5e6a5eb118a8bba5b027ad854140bea03719279fcda2a53d309f19ec53/ardu_report_lib-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b20802eeddfe97a53b22786153625798", "sha256": "6d5dc70f2ed5afbff8925196a82e5fc6e620ea7e5555772744f548acb08a0b40" }, "downloads": -1, "filename": "ardu-report-lib-1.0.tar.gz", "has_sig": false, "md5_digest": "b20802eeddfe97a53b22786153625798", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8058, "upload_time": "2017-10-07T20:37:52", "url": "https://files.pythonhosted.org/packages/af/48/b32039b6073167aab239925eeba22fc9a63a87e0570f09b601b0a4205f42/ardu-report-lib-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "4f94957c5d479363599f1738d767d58c", "sha256": "0d7bf1b95a04e3966e0085d4f2e8ccab49b8fd501610064b6424d4128b8bcda1" }, "downloads": -1, "filename": "ardu_report_lib-1.0.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "4f94957c5d479363599f1738d767d58c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11254, "upload_time": "2017-10-07T22:19:02", "url": "https://files.pythonhosted.org/packages/33/b0/dd5436ea02929a2166c938de983c2694d16697733ef5737f3d03eff23d23/ardu_report_lib-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c37d21b248a58e841358db96360a4f28", "sha256": "6bd6ee5481e231b92fbc9931393324a44699cf5122f3125c6e38852c406186e9" }, "downloads": -1, "filename": "ardu-report-lib-1.0.1.tar.gz", "has_sig": true, "md5_digest": "c37d21b248a58e841358db96360a4f28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8072, "upload_time": "2017-10-07T22:19:04", "url": "https://files.pythonhosted.org/packages/41/e0/bdd5fd03631a15e042b21c7695ce98e62725c3d3f4cbed047c7b5449d745/ardu-report-lib-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "ba044a6ad5d3c45c72987a476cf6f19a", "sha256": "15a7236e75d380515d773924620932e42af652b21a7aec6761c860437ad83867" }, "downloads": -1, "filename": "ardu_report_lib-1.0.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "ba044a6ad5d3c45c72987a476cf6f19a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11439, "upload_time": "2017-10-09T18:45:17", "url": "https://files.pythonhosted.org/packages/2c/0c/f35abd9fa7ba723cb1c5c86c94bca48dc091ade9a38a56a9559b43816871/ardu_report_lib-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be681b8fa76ea7c45ff7361ece1c6e8f", "sha256": "d00358eb36e69ee11b958e45c53dcba9d52609e543a76b65999d1609de05f1bd" }, "downloads": -1, "filename": "ardu-report-lib-1.0.2.tar.gz", "has_sig": true, "md5_digest": "be681b8fa76ea7c45ff7361ece1c6e8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8241, "upload_time": "2017-10-09T18:45:23", "url": "https://files.pythonhosted.org/packages/11/47/d84c3c3164b30edc765862c19b11db5f160e111c34527b3869024826e207/ardu-report-lib-1.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ba044a6ad5d3c45c72987a476cf6f19a", "sha256": "15a7236e75d380515d773924620932e42af652b21a7aec6761c860437ad83867" }, "downloads": -1, "filename": "ardu_report_lib-1.0.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "ba044a6ad5d3c45c72987a476cf6f19a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11439, "upload_time": "2017-10-09T18:45:17", "url": "https://files.pythonhosted.org/packages/2c/0c/f35abd9fa7ba723cb1c5c86c94bca48dc091ade9a38a56a9559b43816871/ardu_report_lib-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be681b8fa76ea7c45ff7361ece1c6e8f", "sha256": "d00358eb36e69ee11b958e45c53dcba9d52609e543a76b65999d1609de05f1bd" }, "downloads": -1, "filename": "ardu-report-lib-1.0.2.tar.gz", "has_sig": true, "md5_digest": "be681b8fa76ea7c45ff7361ece1c6e8f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8241, "upload_time": "2017-10-09T18:45:23", "url": "https://files.pythonhosted.org/packages/11/47/d84c3c3164b30edc765862c19b11db5f160e111c34527b3869024826e207/ardu-report-lib-1.0.2.tar.gz" } ] }