{ "info": { "author": "Ben Howes", "author_email": "ben@zoetrope.io", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "`|Build Status| `_\n`|Documentation\nStatus| `_\n`|Coverage\nStatus| `_\n\nkeenmqtt\n========\n\nA MQTT client which will send configured MQTT messages to keen IO as\nevents for later analysis.\n\n.. figure:: docs/system_diagram.png\n :align: center\n :alt: System Diagram of keenmqtt\n\n System Diagram of keenmqtt\nThe problem\n~~~~~~~~~~~\n\nIoT data platforms are often a big investment in time and sometimes\nmoney, so often a simple MQTT set up is used. This should not prevent\none from being able to perform historical analysis of data points.\n\nSee the **`blog\narticle `_** with\na live example.\n\nThe solution\n~~~~~~~~~~~~\n\nkeenmqtt is a simple bridge which will listen for specified MQTT\nmessages and log them on your KeenIO project. This complete history of\nevents will allow you to:\n\n1. Create graphs of old data, such as temperature.\n2. Use this data to refine your system.\n3. Display this data to your users.\n\nkeenmqtt can be run as a standalone daemon, or used in a python program.\n\nInstallation\n------------\n\n::\n\n pip install keenmqtt\n\nOr clone/download the repo, run ``python setup.py install`` in the root.\n\nUsage\n-----\n\nCommand Line\n~~~~~~~~~~~~\n\nRunning the stand alone package requires a config file, see\n``example/config.yaml`` for a template.\n\nAfter installing, run the following to log events:\n\n::\n\n keenmqtt -c config.yaml\n\nIn your program\n~~~~~~~~~~~~~~~\n\nkeenMQTT has been specifically designed so that almost any part of the\npipeline can be overriden or customised.\n\nThe source is well documented, `see\nreadthedocs `_\n\n**Example: Custom payload formats** As an example; if you had a sensor\nwhich publishes an ascii format sensor reading, you can define a custom\npayload decoder for topics which match that sensor value as follows:\n\n::\n\n from keenmqtt import KeenMQTT\n\n class CustomDecoder(KeenMQTT):\n def decode_payload(self, topic, payload):\n \"\"\"Decode a plain ASCII format sensor reading\"\"\"\n if 'humidity' in topic:\n event = {\n \"value\": int(payload)\n }\n else:\n #Assume default JSON encoding\n event = KeenMQTT.decode_payload(self, topic, payload)\n return event\n\nContributing\n------------\n\n1. Fork it!\n2. Create your feature branch: ``git checkout -b my-new-feature``\n3. Commit your changes: ``git commit -am 'Add some feature'``\n4. Push to the branch: ``git push origin my-new-feature``\n5. Submit a pull request\n\nHistory\n-------\n\n0.0.1: Working version of the CLI app.\n\nCredits\n-------\n\nWritten by Ben Howes & Richard Webb of `Zoetrope `_\n\nWith thanks to:\n\n1. `KeenIO `_ for a super service.\n2. `Eclipse Paho `_ for a\n great MQTT client.\n\nLicense\n-------\n\nMIT Licence\n\n.. |Build\nStatus| image:: https://travis-ci.org/ZoetropeLabs/keenmqtt.svg?branch=master\n.. |Documentation\nStatus| image:: https://readthedocs.org/projects/keenmqtt/badge/?version=latest\n.. |Coverage\nStatus| image:: https://coveralls.io/repos/ZoetropeLabs/keenmqtt/badge.svg?branch=master&service=github", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ZoetropeImaging/keenmqtt", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "keenmqtt", "package_url": "https://pypi.org/project/keenmqtt/", "platform": "any", "project_url": "https://pypi.org/project/keenmqtt/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/ZoetropeImaging/keenmqtt" }, "release_url": "https://pypi.org/project/keenmqtt/0.0.10/", "requires_dist": null, "requires_python": null, "summary": "An MQTT client which will send configured MQTT messages to keen IO as events for later analysis.", "version": "0.0.10" }, "last_serial": 1651128, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "737884c681328aab39042fc6efe340bf", "sha256": "098c6ba44b4516cb3193f6e73502aca06f327542d1afae881ed1d94d8349f974" }, "downloads": -1, "filename": "keenmqtt-0.0.10.tar.gz", "has_sig": false, "md5_digest": "737884c681328aab39042fc6efe340bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6686, "upload_time": "2015-07-27T09:06:04", "url": "https://files.pythonhosted.org/packages/2a/26/5a046988170bbf7ed3fe00fa937090767463980d97543d96247058b6b476/keenmqtt-0.0.10.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "e822950a732978602c137bc3d3fc54b1", "sha256": "6837448eff20d02489961b788ed884ffd6677e36f472ef01f6ce635b5f928f4a" }, "downloads": -1, "filename": "keenmqtt-0.0.3.tar.gz", "has_sig": false, "md5_digest": "e822950a732978602c137bc3d3fc54b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6158, "upload_time": "2015-07-20T12:27:30", "url": "https://files.pythonhosted.org/packages/52/ac/0bdb1d8daccf74a4461411a8fff2c17b97a1b29e5d656142198d0528fe88/keenmqtt-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "445aed4dda1626c3c51b63ecf0869226", "sha256": "1f5874e9f1c3369a774a484ec1708ab7b872cc68359d2d02b21a1cb8f9c40ad8" }, "downloads": -1, "filename": "keenmqtt-0.0.4.tar.gz", "has_sig": false, "md5_digest": "445aed4dda1626c3c51b63ecf0869226", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6584, "upload_time": "2015-07-20T14:48:03", "url": "https://files.pythonhosted.org/packages/16/eb/afd7aa1d43099c6e25feb9b9715c3e1aee29a6a650703d9397737e6d3d27/keenmqtt-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "97d6a51b8ba7ae0202af3698928aef55", "sha256": "476aed7b5a6f812c827cbdc1d5e8e739eadc9392d82420db6ccd5659a0afeba5" }, "downloads": -1, "filename": "keenmqtt-0.0.5.tar.gz", "has_sig": false, "md5_digest": "97d6a51b8ba7ae0202af3698928aef55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6581, "upload_time": "2015-07-20T16:52:23", "url": "https://files.pythonhosted.org/packages/18/20/befb19d258cee01404a28e7319ac0a5f024f31e0bfcd9ad756aa49e5b080/keenmqtt-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "9852af9b2e1ad939f5a368c232abcfcc", "sha256": "7781e0964ce6b827bead5d46e7cede2a8005661c8f00a2d9ae6a3cfc5fdc3981" }, "downloads": -1, "filename": "keenmqtt-0.0.6.tar.gz", "has_sig": false, "md5_digest": "9852af9b2e1ad939f5a368c232abcfcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6721, "upload_time": "2015-07-20T20:33:05", "url": "https://files.pythonhosted.org/packages/4f/d2/a0157c813950303ae132a23ab4ffd545b0a64c457f04076fe1e8d86da274/keenmqtt-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "e756c23eb0305f828144b8ed458136ca", "sha256": "7ecc9e2b961555119bff234b871f3b9b4af4f10154e86192f7eef09bb34c110c" }, "downloads": -1, "filename": "keenmqtt-0.0.7.tar.gz", "has_sig": false, "md5_digest": "e756c23eb0305f828144b8ed458136ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6309, "upload_time": "2015-07-22T07:33:21", "url": "https://files.pythonhosted.org/packages/31/2b/3a40948a1df305f902c0eb01c26230581d8a1043ae3845742324527e7cdf/keenmqtt-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "04376d0766a05e7673fe415166878cb5", "sha256": "9599c97f5e869e5445cc50f7ff4c6c3dcb335904900896106dd16e50f91f5d43" }, "downloads": -1, "filename": "keenmqtt-0.0.8.tar.gz", "has_sig": false, "md5_digest": "04376d0766a05e7673fe415166878cb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6304, "upload_time": "2015-07-21T08:25:19", "url": "https://files.pythonhosted.org/packages/2b/92/37039088319bf64a99c7e0225b4225bb72e393bc0dcd929cfd7cee061bbe/keenmqtt-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "d7503f2e31f9ee42affcb5acf25812da", "sha256": "5d62107d510bc2572d8da6516e4c69185645a9e2396634bdb06f60a5643c1a8a" }, "downloads": -1, "filename": "keenmqtt-0.0.9.tar.gz", "has_sig": false, "md5_digest": "d7503f2e31f9ee42affcb5acf25812da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6551, "upload_time": "2015-07-22T07:35:49", "url": "https://files.pythonhosted.org/packages/13/57/1a54029125232b3fb29eeb01f1636980504f9d99a152a8a45669ae6b8411/keenmqtt-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "737884c681328aab39042fc6efe340bf", "sha256": "098c6ba44b4516cb3193f6e73502aca06f327542d1afae881ed1d94d8349f974" }, "downloads": -1, "filename": "keenmqtt-0.0.10.tar.gz", "has_sig": false, "md5_digest": "737884c681328aab39042fc6efe340bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6686, "upload_time": "2015-07-27T09:06:04", "url": "https://files.pythonhosted.org/packages/2a/26/5a046988170bbf7ed3fe00fa937090767463980d97543d96247058b6b476/keenmqtt-0.0.10.tar.gz" } ] }