{ "info": { "author": "Laurenz Altenm\u00fcller", "author_email": "pypi@laure.nz", "bugtrack_url": null, "classifiers": [], "description": "# btdripper\n\nControl your [Kamoer Dripping Pro](http://kamoer.com/Products/showproduct.php?id=308&lang=en) plant irrigation pump with Python.\n\nYou can read more about the idea behind this in [this blog post](https://blog.laure.nz/2019/08/29/reverse-engineering-towards-a-smarter-bluetooth-balcony-plant-irrigation-system-part-1/).\n\n## Installation\n\n```sh\npip3 install btdripper\n```\n\n## Demo\n\nYou can run `btdripper.py` from the command line.\n```\n$ btdripper.py --help\nusage: btdripper.py [-h] [--adapter ADAPTER] [--mac MAC] [--duration DURATION]\n\nDripper Pro SDK Demo\n\noptional arguments:\n -h, --help show this help message and exit\n --adapter ADAPTER Name of Bluetooth adapter, defaults to 'hci0'\n --mac MAC Mac address of Dripper Pro device to connect to\n --duration DURATION Duration in seconds to turn on the pump. Default is 1s\n```\n\nOr you can directly import it into your project\n```python\n$ python\nPython 3.6.8 (default, Jan 14 2019, 11:02:34)\n>>> import btdripper\n>>> dripper = btdripper.BtDripper()\n>>> dripper.on()\n>>> dripper.off()\n```\n\n## API\n\nFirst, you need to create a new `BtDripper` instance.\nWhen you use an empty constructor, the library will try to connect to the first BLE device called \"grow_c\" that it finds.\nIf you already know your dripper's MAC address, you can provide it as a parameter to speed up connection. The parameter is `mac_address` and it takes an address in the format `\"90:e2:02:9c:db:50\"`.\nShould you have more than one bluetooth adapter, you can supply that with the `adapter_name` parameter (default is `\"hci0\"`)\nThere is also a way to reuse a `gatt.DeviceManager` via the `manager` parameter if you need to support more than one bluetooth device.\n\nThe BtDripper class supports the following methods:\n\n* `on` - turns dripper on\n* `off` - turns dripper off\n* `send_sequence` - sends a sequence of user-defined byte strings, should you want to experiment yourself.\n\nNote that if you send malformed custom sequences, it can cause the driiper's software to hang. It will not reconnect and only a power cycle helps.\n\n## Todo\n\nThis is a very basic implementation. It should be possible to find out how the timer mode works and integrate that. Maybe there is even a way to run the pump at lower speeds?\n\nThere are currently no timeouts or error handling. Also I wouldn't be surprised if the library breaks in an unexpected situation. Use at your own risk :)\n\n\n", "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/lalten/btdripper", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "btdripper", "package_url": "https://pypi.org/project/btdripper/", "platform": "", "project_url": "https://pypi.org/project/btdripper/", "project_urls": { "Homepage": "https://github.com/lalten/btdripper" }, "release_url": "https://pypi.org/project/btdripper/0.1.0.post1/", "requires_dist": [ "gatt", "dbus-python" ], "requires_python": "", "summary": "Control a Kamoer Dripping Pro pump", "version": "0.1.0.post1" }, "last_serial": 5828866, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "2f4af504f6ad9095f310aa9d1260ed5d", "sha256": "6562468168d6306fc5285e3071104efae8e77d558e8b8cac52dcacbb85e8e9d4" }, "downloads": -1, "filename": "btdripper-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2f4af504f6ad9095f310aa9d1260ed5d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6542, "upload_time": "2019-08-28T21:48:41", "url": "https://files.pythonhosted.org/packages/ba/87/0a5059ea59b68c9515d94b4f48ee721ae5aa0c61d2d8f1f5900a61d9a85d/btdripper-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "215fc8ed3b7bacb8bee2f72a1177b52c", "sha256": "87e7f090ef473f0ef565f00305af556100dbec2cab905bcb907b582e103e6017" }, "downloads": -1, "filename": "btdripper-0.1.0.tar.gz", "has_sig": false, "md5_digest": "215fc8ed3b7bacb8bee2f72a1177b52c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3520, "upload_time": "2019-08-28T21:48:44", "url": "https://files.pythonhosted.org/packages/d7/27/9899482b5a2ea71e9eabe20bcb4dbfde64cd786478d3aa33cdc7ef24e014/btdripper-0.1.0.tar.gz" } ], "0.1.0.post1": [ { "comment_text": "", "digests": { "md5": "3e43e0fdf3582a8bb5382490970c9dcc", "sha256": "72f98de06bdc8c45152fd6e78f522848bcd8a85f41684b302b8b231a42257087" }, "downloads": -1, "filename": "btdripper-0.1.0.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "3e43e0fdf3582a8bb5382490970c9dcc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6727, "upload_time": "2019-09-14T08:27:18", "url": "https://files.pythonhosted.org/packages/cf/01/8e4aaf88a3cca8a622dd314aea86df8423f2636b97cab9ed32b3a30f7d31/btdripper-0.1.0.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "add05026c6bfedeb5f7542e6e0de3e4b", "sha256": "856d37e61fead9a9439d8e6d5844e030f6fd2d1d25a79b6a59e2b3010620748c" }, "downloads": -1, "filename": "btdripper-0.1.0.post1.tar.gz", "has_sig": false, "md5_digest": "add05026c6bfedeb5f7542e6e0de3e4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3656, "upload_time": "2019-09-14T08:27:21", "url": "https://files.pythonhosted.org/packages/50/ed/b456c369860a958d41622c456f6c536f1ec4a3daa0041618723c347581e9/btdripper-0.1.0.post1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3e43e0fdf3582a8bb5382490970c9dcc", "sha256": "72f98de06bdc8c45152fd6e78f522848bcd8a85f41684b302b8b231a42257087" }, "downloads": -1, "filename": "btdripper-0.1.0.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "3e43e0fdf3582a8bb5382490970c9dcc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6727, "upload_time": "2019-09-14T08:27:18", "url": "https://files.pythonhosted.org/packages/cf/01/8e4aaf88a3cca8a622dd314aea86df8423f2636b97cab9ed32b3a30f7d31/btdripper-0.1.0.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "add05026c6bfedeb5f7542e6e0de3e4b", "sha256": "856d37e61fead9a9439d8e6d5844e030f6fd2d1d25a79b6a59e2b3010620748c" }, "downloads": -1, "filename": "btdripper-0.1.0.post1.tar.gz", "has_sig": false, "md5_digest": "add05026c6bfedeb5f7542e6e0de3e4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3656, "upload_time": "2019-09-14T08:27:21", "url": "https://files.pythonhosted.org/packages/50/ed/b456c369860a958d41622c456f6c536f1ec4a3daa0041618723c347581e9/btdripper-0.1.0.post1.tar.gz" } ] }