{ "info": { "author": "Wijnand Top", "author_email": "wijnand@bammes.nl", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Home Automation", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# wt.pygardena\nPython library to communicate with Gardana Smart\nIt gives an object oriented interface towards the Gardena Smart API (API usage is not officially supported by Gardena).\nThis library is written to be used to support gardena devices in https://www.home-assistant.io currently using my custom_component https://github.com/wijnandtop/home_assistant_gardena. It can be used for other purposes as well, since it doesn't have any home assistent specific implementations.\n\nInspired by: \nhttps://github.com/rcastberg/gardena_smart \n\nIt is build to have limited interaction with the API of gardena. Fetching information is done via 2 calls.\n\n* get all locations\n* get devices per location\n\nObjects fetch data from the internal state, update of internal state has to be explicitly triggered. \n\n## usage\n\n```python\nhub = GardenaSmartAccount(\"username\", \"password\")\nfor location in hub.get_locations(): \n for mower in location.get_mowers():\n print (mower.get_info())\n for sensor in location.get_sensors():\n print (sensor.get_info())\n for watering_computer in location.get_watering_computers():\n print (watering_computer.get_info())\n```\n\n## Object information\n\nAll object (except GardenaSmartAccount) have attributes which can be retrieved by either:\n```python\nobject.get_info()\n```\nWhich retuns a named list, or:\n```python\n#[attribute] needs to be replaced by the detail name.\nobject.get_[attribute].() \n```\n\n\n## GardenaSmartAccount\n\nAvailable methods:\n```python\naccount.get_locations() # returns list of GardenaSmartLocation objects, if there is no internal state it will call the Gardena API\naccount.update_devices() # Loops over all locations and updates the internal state.\naccount.get_all_mowers() # Get all mowers from all locations.\naccount.get_all_sensors() # Get all sensors from all locations.\naccount.get_all_watering_computers() # Get all watering computers from all locations.\n```\n\n## GardenaSmartLocation\n\nAvailable methods:\n```python\nlocation.update_devices() # updates the internal state of all devices in this location.\nlocation.get_mowers() # Get all mowers from this location.\nlocation.get_sensors() # Get all sensors from this location.\nlocation.get_watering_computers() # Get all watering computers from this location.\n```\n\n## All devices\n\nHave these details: category, battery_level, radio_quality, radio_connection_status\nExtend from GardenaSmartDevice.\nCurrently it is not possible to update the internal state from a device.\n\n## GardenaSmartMower\n\nAvailable methods:\n```python\nmower.start() #starts mowing for a full day (can be specified)\nmower.park_until_timer() #stop mowing and wait for next schedule\nmower.park() #stop mower, don't continue schedule\n\n```\nAvailable info: manual_operation, status, error, battery_charging, last_error_code, source_for_next_start, \ntimestamp_next_start, cutting_time, charging_cycles, collisions, running_time\n\n## GardenaSmartSensor\n\nAvailable methods: none\nAvailable info: ambient_temperature, ambient_frost_warning, soil_temperature, soil_humidity, light\n\n## GardenaSmartWateringComputer\n\nAvailable methods:\n ```python\n watering_computer.start() #starts watering for a 30 (can be specified)\n watering_computer.stop() #stop watering and wait for next schedule \n ```\n Available info:\nambient_temperature, ambient_frost_warning, valve_open, manual_override, \nbutton_manual_override_time, last_manual_override_time, scheduled_watering_next_start, \nscheduled_watering_end, adaptive_scheduling_last_decision \n\n\n## tested with:\n\n * Mower: smart SILENO Set (Article No. : 19060-60)\n * Watering computer: GARDENA smart Water Control (Article No. : 19031-20)\n * Sensor: GARDENA smart Sensor (Article No. : 19030-20)\n\n## not planned yet\n\nSince I do not own the devices, but feel free to sponsor me ;-)\n\n* smart irrigation control (on top of my wishlist)\n* Smart pressure pump\n* smart power adapter\n* smart battery\n\n## Changelog\n\n###0.9.3\n\nInitial version\n\n###0.9.4 - broken\n\n* Change license to Apache 2.0\n* RestAPI class that encapsulates API access\n* Removed object_path dependency that occured just once\n* update metadata\n\n###0.9.5\n\n* Reverted: Removed object_path dependency that occured just once\n\n###0.9.6\n\n* Changed API endpoint (old one was broken)\n\n\n\n\n\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/wijnandtop/wt.pygardena", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "wt.pygardena", "package_url": "https://pypi.org/project/wt.pygardena/", "platform": "", "project_url": "https://pypi.org/project/wt.pygardena/", "project_urls": { "Homepage": "https://github.com/wijnandtop/wt.pygardena" }, "release_url": "https://pypi.org/project/wt.pygardena/0.9.6/", "requires_dist": [ "requests" ], "requires_python": ">=3.4", "summary": "Library to connect to Garena Smart", "version": "0.9.6" }, "last_serial": 4894205, "releases": { "0.9.3": [ { "comment_text": "", "digests": { "md5": "7abe3c20b832837223ead732c9f93c56", "sha256": "a4e3cfa0b3301b41f4e35bd684205f4762454184f2b342e621abd609696cc54e" }, "downloads": -1, "filename": "wt.pygardena-0.9.3.tar.gz", "has_sig": false, "md5_digest": "7abe3c20b832837223ead732c9f93c56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5170, "upload_time": "2018-09-05T20:33:01", "url": "https://files.pythonhosted.org/packages/e9/00/577977e42f938a51d5f9608a31dd283ec432efa6c2ae50e409c78056b623/wt.pygardena-0.9.3.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "630127db78a7523f4068e4cd08a4e2a7", "sha256": "5cf790db7be5564703ad5008439b34e850af82897c398455f8f6a68a88e8430a" }, "downloads": -1, "filename": "wt.pygardena-0.9.5.tar.gz", "has_sig": false, "md5_digest": "630127db78a7523f4068e4cd08a4e2a7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 8566, "upload_time": "2019-01-08T20:43:10", "url": "https://files.pythonhosted.org/packages/ab/6e/817210c2c0648d0d420f3eeb117007e231e86b38634e66fb08088b430511/wt.pygardena-0.9.5.tar.gz" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "641981c1cb42f54ec90b0de0a6aa4ed0", "sha256": "bf84c7f8676cf08ab5a4879dbdb4576dde211915dd97e47e9fa14a5d00b1c9d3" }, "downloads": -1, "filename": "wt.pygardena-0.9.6-py3-none-any.whl", "has_sig": false, "md5_digest": "641981c1cb42f54ec90b0de0a6aa4ed0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 13616, "upload_time": "2019-03-04T12:33:48", "url": "https://files.pythonhosted.org/packages/33/40/f0af35e85425217591231eb31b1d0ef16dd79d02831cf1f283b37bc27781/wt.pygardena-0.9.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d7caf6f54165f7755e003953a85f6b5", "sha256": "537ed9ceb60bc3b231f50388ad4f87fafd93786e0a26246a83461cb37f0e91d6" }, "downloads": -1, "filename": "wt.pygardena-0.9.6.tar.gz", "has_sig": false, "md5_digest": "9d7caf6f54165f7755e003953a85f6b5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 8628, "upload_time": "2019-03-04T12:33:50", "url": "https://files.pythonhosted.org/packages/fb/14/6b8f64043144f9f09cd1bef0a63f72c030ecbc8f51829420bd13886eea34/wt.pygardena-0.9.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "641981c1cb42f54ec90b0de0a6aa4ed0", "sha256": "bf84c7f8676cf08ab5a4879dbdb4576dde211915dd97e47e9fa14a5d00b1c9d3" }, "downloads": -1, "filename": "wt.pygardena-0.9.6-py3-none-any.whl", "has_sig": false, "md5_digest": "641981c1cb42f54ec90b0de0a6aa4ed0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 13616, "upload_time": "2019-03-04T12:33:48", "url": "https://files.pythonhosted.org/packages/33/40/f0af35e85425217591231eb31b1d0ef16dd79d02831cf1f283b37bc27781/wt.pygardena-0.9.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9d7caf6f54165f7755e003953a85f6b5", "sha256": "537ed9ceb60bc3b231f50388ad4f87fafd93786e0a26246a83461cb37f0e91d6" }, "downloads": -1, "filename": "wt.pygardena-0.9.6.tar.gz", "has_sig": false, "md5_digest": "9d7caf6f54165f7755e003953a85f6b5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 8628, "upload_time": "2019-03-04T12:33:50", "url": "https://files.pythonhosted.org/packages/fb/14/6b8f64043144f9f09cd1bef0a63f72c030ecbc8f51829420bd13886eea34/wt.pygardena-0.9.6.tar.gz" } ] }