{ "info": { "author": "Daniel Matuschek", "author_email": "daniel@matuschek.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: System :: Hardware :: Hardware Drivers" ], "description": "# miflora - Library for Xiaomi Mi plant sensor\n\n[![PyPI](https://img.shields.io/pypi/v/miflora.svg)](https://pypi.python.org/pypi/miflora)\n[![PyPI](https://img.shields.io/pypi/status/miflora.svg)](https://pypi.python.org/pypi/miflora)\n[![PyPI](https://img.shields.io/pypi/format/miflora.svg)](https://pypi.python.org/pypi/miflora)\n[![Travis](https://img.shields.io/travis/open-homeautomation/miflora.svg)](https://travis-ci.org/open-homeautomation/miflora)\n[![Coveralls github](https://img.shields.io/coveralls/github/open-homeautomation/miflora.svg)](https://coveralls.io/github/open-homeautomation/miflora)\n[![Plants healty and growing](https://img.shields.io/badge/plants-healthy%20and%20growing-green.svg)](https://github.com/open-homeautomation/miflora)\n[![GitHub license](https://img.shields.io/github/license/open-homeautomation/miflora.svg)](https://github.com/open-homeautomation/miflora/blob/master/LICENSE)\n\nThis library lets you read sensor data from a Xiaomi Mi Flora plant sensor.\n\n* Latest release download: https://pypi.python.org/pypi/miflora\n* Build status: https://travis-ci.org/open-homeautomation/miflora\n* Test coverage: https://coveralls.io/github/open-homeautomation/miflora\n\n## Functionality \nIt supports reading the different measurements from the sensor\n- temperature\n- moisture\n- conductivity\n- brightness\n\nTo use this library you will need a Bluetooth Low Energy dongle attached to your computer. You will also need a\nXiaomi Mi Flora plant sensor. \n\n## Backends\nAs there is unfortunately no universally working Bluetooth Low Energy library for Python, the project currently \noffers support for two Bluetooth implementations:\n\n* bluepy library\n* bluez tools (deprecated, via a wrapper around gatttool)\n* pygatt library\n\n\n### bluepy (recommended)\nTo use the [bluepy](https://github.com/IanHarvey/bluepy) library you have to install it on your machine, in most cases this can be done via: \n```pip3 install bluepy``` \n\nExample to use the bluepy backend:\n```python\nfrom miflora.miflora_poller import MiFloraPoller\nfrom btlewrap.bluepy import BluepyBackend\n\npoller = MiFloraPoller('some mac address', BluepyBackend)\n```\nThis is the backend library to be used.\n\n### bluez/gatttool wrapper (deprecated)\n:warning: The bluez team makred gatttool as deprecated. This solution may still work on some Linux distributions, but it is not recommended any more.\n\nTo use the bluez wrapper, you need to install the bluez tools on your machine. No additional python \nlibraries are required. Some distrubutions moved the gatttool binary to a separate package. Make sure you have this \nbinaray available on your machine.\n\nExample to use the bluez/gatttool wrapper:\n```python\nfrom miflora.miflora_poller import MiFloraPoller\nfrom btlewrap.gatttool import GatttoolBackend\n\npoller = MiFloraPoller('some mac address', GatttoolBackend)\n```\n\nThis backend should only be used, if your platform is not supported by bluepy. \n\n### pygatt\nIf you have a Blue Giga based device that is supported by [pygatt](https://github.com/peplin/pygatt), you have to\ninstall the bluepy library on your machine. In most cases this can be done via: \n```pip3 install pygatt``` \n\nExample to use the pygatt backend:\n```python\nfrom miflora.miflora_poller import MiFloraPoller\nfrom btlewrap.pygatt import PygattBackend\n\npoller = MiFloraPoller('some mac address', PygattBackend)\n```\n## Dependencies\nmiflora depends on the [btlewrap](https://github.com/ChristianKuehnel/btlewrap) library. If you install miflora via PIP btlewrap will automatically be installed. If not, you will have to install btlewrap manually:\n\n```pip3 install btlewrap``` \n\n## Troubleshooting\n\nUsers frequently have problems with the communication between their Bluetooth dongle and the sensors. Here are the usual things to try.\n\n### Battery empty\nWhile the battery usually lasts about a year indoor, it may also fail for unknown reasons before that. So the first thing to check if the battery is still good: take out the battery, wait 3 secs and put it back in. The light on the sensor should be flashing. If it is not: get a new battery.\n\n### Range\nThe distance between Bluteooth dongle and sensor should be less than 5 meters. Try moving the sensor and dongle closer together and see if that solves the problem. If range is an issue, there are a few proxies/relays via MQTT available:\n* Linux\n * [plantgateway](https://github.com/ChristianKuehnel/plantgateway)\n * [miflora-mqtt-daemon](https://github.com/ThomDietrich/miflora-mqtt-daemon) \n* ESP32\n * [flora ](https://github.com/sidddy/flora)\n\n### Outside\nIf you're operating your sensors outside, make sure the sensor is protected against rain. The power of the battery is decreasing blow -10\u00b0C. Sou you might not get readings at that temperature. Also make sure that you have a Bluetooth dongle close by.\n\n### Radio interference \nThe Bluetooth LE communication is not always reliable. There might be outages due to other radio interferences. The standard solution is to try again or poll your sensor more often that you really need it. It's also the hardest issue to analyse and debug.\n\n### Raspberry Pi\nIf you're using a Rapsberry Pi, make sure, that you OS is up to date, including the latest kernel and firmware. There are sometimes useful Bluetooth fixes. Also make sure that you have a good power supply (3 A recommended) as this causes sporadic problems in many places.\n\n## Conttributing\nplease have a look at [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## Projects Depending on `miflora`\n\nThe following shows a selected list of projects using this library:\n\n* https://github.com/ThomDietrich/miflora-mqtt-daemon - An MQTT Client/Daemon for Smart Home solution integration\n* https://home-assistant.io/components/sensor.miflora/ - Integration in Home Assistant\n* https://github.com/zewelor/bt-mqtt-gateway - A BT to MQTT gateway which support MiFlora sensors + other devices\n* https://github.com/ChristianKuehnel/plantgateway - A MQTT Client to relay sensor data", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/open-homeautomation/miflora", "keywords": "plant sensor bluetooth low-energy ble", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "miflora", "package_url": "https://pypi.org/project/miflora/", "platform": "", "project_url": "https://pypi.org/project/miflora/", "project_urls": { "Homepage": "https://github.com/open-homeautomation/miflora" }, "release_url": "https://pypi.org/project/miflora/0.6/", "requires_dist": null, "requires_python": "", "summary": "Library to read data from Mi Flora sensor", "version": "0.6" }, "last_serial": 5998838, "releases": { "0.1.10": [ { "comment_text": "", "digests": { "md5": "bf402ee030d801cb953918ec1fa1ee03", "sha256": "3666d7ff5daff2dd54a1a331a92c4367d74be2f0c84fbb4c3e793002ebd5ff90" }, "downloads": -1, "filename": "miflora-0.1.10.tar.gz", "has_sig": false, "md5_digest": "bf402ee030d801cb953918ec1fa1ee03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3073, "upload_time": "2016-11-16T19:10:30", "url": "https://files.pythonhosted.org/packages/e1/ad/54da7743f43cd3e98cc2a99a5c46c50799de741a325d7bfc5ffa4ce1dbf9/miflora-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "19ad10fa20bdbc7291c6974024672119", "sha256": "39a7861b76aef73985737293b307bd74298dbce61fe6ed5a55888fa6a0afea62" }, "downloads": -1, "filename": "miflora-0.1.11.tar.gz", "has_sig": false, "md5_digest": "19ad10fa20bdbc7291c6974024672119", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3356, "upload_time": "2016-11-16T20:36:54", "url": "https://files.pythonhosted.org/packages/c7/e0/377e81c87cb62cec74782ad61e5a91daabc067cb65a114320abf31c04512/miflora-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "262235e5b734db84eb6dd20cd12ec13b", "sha256": "7335baf8f3e3a571d568d1c981b7df3742b1c7f8ae0faa9a49ec8d9df48e3bb6" }, "downloads": -1, "filename": "miflora-0.1.12.tar.gz", "has_sig": false, "md5_digest": "262235e5b734db84eb6dd20cd12ec13b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3426, "upload_time": "2016-11-17T15:40:14", "url": "https://files.pythonhosted.org/packages/02/e1/33c810a6433ecbdcca1b8b3ce398aaede8749627ea7802e2433bea24a260/miflora-0.1.12.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "be0cb63a45cc1b237c3e6f3dc0695dd3", "sha256": "b4c9edf8330e79883944a26d059aa816b626c01b41087efd98bee727d17ba226" }, "downloads": -1, "filename": "miflora-0.1.13.tar.gz", "has_sig": false, "md5_digest": "be0cb63a45cc1b237c3e6f3dc0695dd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3453, "upload_time": "2016-11-20T13:13:23", "url": "https://files.pythonhosted.org/packages/f9/e8/16fc24524a0232e3a40db498d44ddce90b29e41ec3247b160ab875e32496/miflora-0.1.13.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "cbb63426b1a0f0121c8f494ab90490bd", "sha256": "f473667f0c7dcdf156fc3d9fc07ca264daeed582dc7c4304394009d26416e392" }, "downloads": -1, "filename": "miflora-0.1.14.tar.gz", "has_sig": false, "md5_digest": "cbb63426b1a0f0121c8f494ab90490bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3467, "upload_time": "2016-12-20T20:12:20", "url": "https://files.pythonhosted.org/packages/98/c2/44438a3fd74cf9e1ed433a7400e2c4ad3e65049677dc015411c970f5de30/miflora-0.1.14.tar.gz" } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "dd60701c1c8495b155d0da54f1fc9199", "sha256": "704bd55135a686c45263337be6ef02b1c9306ede4649e7f268087e509361291d" }, "downloads": -1, "filename": "miflora-0.1.15.tar.gz", "has_sig": false, "md5_digest": "dd60701c1c8495b155d0da54f1fc9199", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3512, "upload_time": "2017-02-02T13:35:25", "url": "https://files.pythonhosted.org/packages/d3/cf/726f88f5bfc6fdf58fe31abad80370f003a8f6325c96c0d8ec6a38315d4b/miflora-0.1.15.tar.gz" } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "67bb60f105db5626d02b9e1204573ac9", "sha256": "81dd2aa3c5179bdda82f5cd1b7754c6d31ef56145898221d18425f19e7f70a99" }, "downloads": -1, "filename": "miflora-0.1.16.tar.gz", "has_sig": false, "md5_digest": "67bb60f105db5626d02b9e1204573ac9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3583, "upload_time": "2017-02-21T11:59:40", "url": "https://files.pythonhosted.org/packages/9b/1d/d80dbc0d858ad7af096912b254c9e8f991d0f0a3eb3d0bd8960e61bd9fef/miflora-0.1.16.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "4f3e34b8ee1c5b117f5f5fab26b14bab", "sha256": "9df9ca14ab1b56d1274a3f6c2a7d0dd766cd2a7e17c41111a2119bd095c06909" }, "downloads": -1, "filename": "miflora-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4f3e34b8ee1c5b117f5f5fab26b14bab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2627, "upload_time": "2016-08-25T14:00:03", "url": "https://files.pythonhosted.org/packages/6a/3b/3da372bd187e97f0ab4b62856ba173383035b60d8f7f082fa1b44bb1ddbb/miflora-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "082bac3020e8de0926a957e92bbae5af", "sha256": "06da3fcfbe64ced8cdc8ead3dc8a9eaa1bc9c0cc591afb327f42a40f050e421c" }, "downloads": -1, "filename": "miflora-0.1.3.tar.gz", "has_sig": false, "md5_digest": "082bac3020e8de0926a957e92bbae5af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2641, "upload_time": "2016-08-29T08:01:51", "url": "https://files.pythonhosted.org/packages/10/fa/db996cb00fb5198c6c22c6d30ff77c4bc6bc97734a13dc8910680281bd77/miflora-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "4851181edf15e9342672b24f0efd6b0a", "sha256": "e5c29d31cd5bc24fd69802be0929245b10cf630a35bc9d9f71817bdfe315c1a4" }, "downloads": -1, "filename": "miflora-0.1.4.tar.gz", "has_sig": false, "md5_digest": "4851181edf15e9342672b24f0efd6b0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2644, "upload_time": "2016-08-29T12:32:19", "url": "https://files.pythonhosted.org/packages/b3/63/02c50a61d873be607a386d3488db32e9ede6f5e35e43bc8f6038b1560bef/miflora-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "ceed78351bdbfa71b5be3b17d9a4e189", "sha256": "7217c9584307c4b53afb352326bebb4b450a96604472fc2d511b0d047c49e92c" }, "downloads": -1, "filename": "miflora-0.1.5.tar.gz", "has_sig": false, "md5_digest": "ceed78351bdbfa71b5be3b17d9a4e189", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2609, "upload_time": "2016-09-01T07:56:44", "url": "https://files.pythonhosted.org/packages/4d/d7/f17cf2f9b96ca813335fc61f1463bda51dc74cb48e071a71038a4e7768dd/miflora-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "397e8fed1d284ca47c00ed7db44f82fc", "sha256": "8e64ad1bd6ad4cb720f275d15d0796093172cde1c67d089d7763cf3179acc8a6" }, "downloads": -1, "filename": "miflora-0.1.6.tar.gz", "has_sig": false, "md5_digest": "397e8fed1d284ca47c00ed7db44f82fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2716, "upload_time": "2016-09-01T19:47:15", "url": "https://files.pythonhosted.org/packages/e4/d0/e5e09c65f927bb47b8fcb6b9a87a5c7aa0c1261e30cdf64788c525ebec29/miflora-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "207193f5692c6f19038a7f0af6ea111f", "sha256": "c22784353c9316911e3b864711a5d74fefdaf0180afe193cfa116b1cd122b1aa" }, "downloads": -1, "filename": "miflora-0.1.7.tar.gz", "has_sig": false, "md5_digest": "207193f5692c6f19038a7f0af6ea111f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2690, "upload_time": "2016-09-09T11:00:42", "url": "https://files.pythonhosted.org/packages/c1/17/2f94dace6d363feb6d93e97d0ceaf03bb5b5aa45d45ebcd7def703b0f89a/miflora-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "997728a7e10d2a580e372209090d1e26", "sha256": "a701e8011942b7db614c792709cf5870b78da8e3d14aca65f6f76b6a7b366192" }, "downloads": -1, "filename": "miflora-0.1.8.tar.gz", "has_sig": false, "md5_digest": "997728a7e10d2a580e372209090d1e26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2809, "upload_time": "2016-09-10T06:29:51", "url": "https://files.pythonhosted.org/packages/19/2c/afd03c1791280a5b53747dc5aec34cae2784c30b4479ccc1fecd26975871/miflora-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "1594e679a8b053d27977de17e3f0c5ec", "sha256": "5d499c78afdc7b8c6bd0a267ae3e730986048ed381507a862b4f9e7e1f3e7403" }, "downloads": -1, "filename": "miflora-0.1.9.tar.gz", "has_sig": false, "md5_digest": "1594e679a8b053d27977de17e3f0c5ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3062, "upload_time": "2016-09-22T11:21:04", "url": "https://files.pythonhosted.org/packages/d5/f6/a570485f30d516dfe188521e1aacce440a53bfb3359a4337fb883b7ca90b/miflora-0.1.9.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "ad88c8e7bb8d548d8c1c370919f25ad9", "sha256": "02816ee2af3a42d21a3ff98aa77eeba8b75bee0a6f3ba10cd0eec4e2f2bfe496" }, "downloads": -1, "filename": "miflora-0.2.tar.gz", "has_sig": false, "md5_digest": "ad88c8e7bb8d548d8c1c370919f25ad9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10907, "upload_time": "2017-12-06T09:20:27", "url": "https://files.pythonhosted.org/packages/a1/bc/756c5797cd5cccc0db5f6c725f4d1c9f6cfdf16aa471c41d83d6bea7d0e8/miflora-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "2779ba2cf8fe7127fa251834b9a6b76b", "sha256": "a1a0ca6178c145086f838962526cda100ca9064e85f1133159df5433aebcb40b" }, "downloads": -1, "filename": "miflora-0.3.tar.gz", "has_sig": false, "md5_digest": "2779ba2cf8fe7127fa251834b9a6b76b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15435, "upload_time": "2018-02-09T09:41:17", "url": "https://files.pythonhosted.org/packages/d8/bc/3fa61d8216a5c5f4dbb3997e8bdcc670c5440f238b10b11129eee9e8b8a3/miflora-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "facc04de0040dba7cf582446dd1fc2bb", "sha256": "a9be4316f2bfc726c3e068d75b22db49cd0020bfce754d7bd6b1c12a5829f775" }, "downloads": -1, "filename": "miflora-0.4.tar.gz", "has_sig": false, "md5_digest": "facc04de0040dba7cf582446dd1fc2bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12153, "upload_time": "2018-04-17T12:06:07", "url": "https://files.pythonhosted.org/packages/e3/55/8b377026d39bc7dd78e5b5d316c5327382d2928c1ea47aaa9fbbdbc9ef91/miflora-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "974635fc53652ca1c7201d89d8daa1a4", "sha256": "4417fa91cf893a4f9d846360c38b3be1ef4b9d3f9ddc4bd87891f117eb25aac5" }, "downloads": -1, "filename": "miflora-0.5.tar.gz", "has_sig": false, "md5_digest": "974635fc53652ca1c7201d89d8daa1a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11064, "upload_time": "2019-02-22T14:59:41", "url": "https://files.pythonhosted.org/packages/14/95/5b1e133665bea561af50f0ce7b54f1b9e2a90650c9148173ea7fc605529e/miflora-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "965c80fb9b967f7e1730504b87d6d9fc", "sha256": "83bbdca81891a9abec8a323491e8b52509e93aeb39386f711dfb0286aed591a1" }, "downloads": -1, "filename": "miflora-0.6.tar.gz", "has_sig": false, "md5_digest": "965c80fb9b967f7e1730504b87d6d9fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14829, "upload_time": "2019-10-19T05:58:44", "url": "https://files.pythonhosted.org/packages/4b/7f/c8f4e623a36152bd0172f3eaaf257ffacfe42765417ac7a97a38d2c8e5b7/miflora-0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "965c80fb9b967f7e1730504b87d6d9fc", "sha256": "83bbdca81891a9abec8a323491e8b52509e93aeb39386f711dfb0286aed591a1" }, "downloads": -1, "filename": "miflora-0.6.tar.gz", "has_sig": false, "md5_digest": "965c80fb9b967f7e1730504b87d6d9fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14829, "upload_time": "2019-10-19T05:58:44", "url": "https://files.pythonhosted.org/packages/4b/7f/c8f4e623a36152bd0172f3eaaf257ffacfe42765417ac7a97a38d2c8e5b7/miflora-0.6.tar.gz" } ] }