{ "info": { "author": "SvenMatzke", "author_email": "matzke.sven@googlemail.com", "bugtrack_url": null, "classifiers": [], "description": "Grown\n=====\n\nSensorbased plattform to create various tasks, apart from gathering data.\nThe basic idea is to get a firmware for growing plants taking light and watering into a\nhand of a microcontroller.\n\nRequirements\n============\n\nAny Micropython board available or further anything which can run micropython.\n\nInstallation\n============\nUpdate and package installation will all be provided via upip.::\n\n import upip\n upip.install('grown')\n\nenabling the software and configuration is users choice.\nLike the webrepl in python is adding a call in your boot or main.py nesserary for activation\nlike::\n\n from grown import setup, run_grown\n\n router = setup()\n # add more tasks or add site to the router\n\n run_grown()\n\nSetup of grown starts a timesync task and wlan configuration.\nAfter the run_grown a webserver is opened with a rest interface to change settings for each task.\n\nSwagger\n=======\nEvery action and info you add to the router is automaticly provided as open api provided by grown.\nWe use swagger.ui as description which can be used standalone.\nFor useing just explore the given link in the ui\nExample::\n\n http:\\\\myiotdevice\\swagger.json\n\nThis way after adding all controls you have a good base to develop further views or test\nthe given params.\n\ndata control\n============\nThis module to log data overtime from your sensors. Enable logging is prety simple write a\nfunction which returns a dict with key as name and value.\nThose function is called overtime and will be logged.\n\nExample::\n\n from grown.data_control import add_data_control\n\n async def mydata():\n return {\n \"water\": 0,\n \"light\": 0,\n }\n\n add_data_control(router, mydata)\n\nlight control\n=============\nEvery plant needs light so we need to control these by a timetable.\nWe need at least 2 functions one to activate and one to deactivate the light.\n\nExample::\n\n from grown.light_control import add_light_control\n\n async def activate():\n print(\"activate\")\n\n async def deactivate():\n print(\"deactivate\")\n\n add_light_control(router, activate, deactivate)\n\n\nlogging\n=======\nif you want to add something to the log because you write your own task and so on.\nExample::\n\n from grown.logging import grown_log\n\n grown_log.info('new entry')\n\nits a ulogging instance from the logger with an add that it logs data not only to console\nbut also to the file run_information.log.\nThis might get handy in debugging log term bugs.\n\nstore\n=====\nAnother interal element is the store. It\u00c2\u00b4s a minimal redux which also stores\nevery update to the filesystem.\n\nExample::\n\n from grown.store import storage\n\n def _update_reducer(store_dict, data):\n return store_dict.update(data)\n\n storage.register_leaf(\n 'mydata',\n {\n },\n _update_reducer\n )\n\n\n leaf = storeage.get_leaf('mydata')\n\n leaf.update({'new_data': 3.0})\n\n print(leaf.get())", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/SvenMatzke/grown", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "grown", "package_url": "https://pypi.org/project/grown/", "platform": "", "project_url": "https://pypi.org/project/grown/", "project_urls": { "Homepage": "https://github.com/SvenMatzke/grown" }, "release_url": "https://pypi.org/project/grown/0.0.33.dev0/", "requires_dist": null, "requires_python": "", "summary": "Grown server to run tasks", "version": "0.0.33.dev0" }, "last_serial": 5956296, "releases": { "0.0.17.dev0": [ { "comment_text": "", "digests": { "md5": "60724849dc98fa2b900c5f935a63356d", "sha256": "e182bcbd1b6a09535d5670da6bc6a3872d7e723f67fecbb300d829d3f47a0e8a" }, "downloads": -1, "filename": "grown-0.0.17.dev0.tar.gz", "has_sig": false, "md5_digest": "60724849dc98fa2b900c5f935a63356d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6076, "upload_time": "2019-07-03T16:48:29", "url": "https://files.pythonhosted.org/packages/cb/42/0753f4cf3c1764380a87efef39d6c2a53e9eff3c9a7ca68beab38d479ba7/grown-0.0.17.dev0.tar.gz" } ], "0.0.19.dev0": [ { "comment_text": "", "digests": { "md5": "4512c222d1048a12ad597c7ec94851e1", "sha256": "27c6946c8fcf8df6551e6534c8bdcbe95f66df48e4e2878fa99df429233676d6" }, "downloads": -1, "filename": "grown-0.0.19.dev0.tar.gz", "has_sig": false, "md5_digest": "4512c222d1048a12ad597c7ec94851e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6800, "upload_time": "2019-07-03T18:52:00", "url": "https://files.pythonhosted.org/packages/4b/9b/61c5c8f75fee18f108a1ba21c3aeb52fc2d5db35a9ffcd5b73ba47fd5b96/grown-0.0.19.dev0.tar.gz" } ], "0.0.20.dev0": [ { "comment_text": "", "digests": { "md5": "79d4a00679e92f2073587bf0cf40e365", "sha256": "a4c404f7f5b621768226258831531b58761db63985a45d3d00da0c8eaf6dc04d" }, "downloads": -1, "filename": "grown-0.0.20.dev0.tar.gz", "has_sig": false, "md5_digest": "79d4a00679e92f2073587bf0cf40e365", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6808, "upload_time": "2019-07-03T18:58:06", "url": "https://files.pythonhosted.org/packages/fa/fc/1b6a9fdc2540283e08c8f85f48ff9ff0e36139f23610ccb7d5b7d34c9df5/grown-0.0.20.dev0.tar.gz" } ], "0.0.21.dev0": [ { "comment_text": "", "digests": { "md5": "16043257bca85d64bcdd6285a8823aed", "sha256": "ee00aa3ae68ce083bf1ac59bee2c1593919dd68968f2f7a2efe3d888ef2423ef" }, "downloads": -1, "filename": "grown-0.0.21.dev0.tar.gz", "has_sig": false, "md5_digest": "16043257bca85d64bcdd6285a8823aed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6816, "upload_time": "2019-07-16T16:21:32", "url": "https://files.pythonhosted.org/packages/26/e7/84f119c35754125457329f21638c36aca99b7a1e831da4c133fd79233d45/grown-0.0.21.dev0.tar.gz" } ], "0.0.22.dev0": [ { "comment_text": "", "digests": { "md5": "33cb3862bff021b7f10b459761abd3ee", "sha256": "946461781986a49c5bd7ff22754fd0bb79d718f3155b3a7b38a385eabbe23c2d" }, "downloads": -1, "filename": "grown-0.0.22.dev0.tar.gz", "has_sig": false, "md5_digest": "33cb3862bff021b7f10b459761abd3ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6941, "upload_time": "2019-07-17T16:27:30", "url": "https://files.pythonhosted.org/packages/62/0c/56f9c83fb6d9dfa38662f7f276cdc53fb3314a1e5df38f05a9e1e6b392ed/grown-0.0.22.dev0.tar.gz" } ], "0.0.23.dev0": [ { "comment_text": "", "digests": { "md5": "faee79031d3dede55e0c8305f34a205f", "sha256": "a84f7ccbdf3018f0bb5cd10de716211adb6f5a40304c8b2e29700926861e3db2" }, "downloads": -1, "filename": "grown-0.0.23.dev0.tar.gz", "has_sig": false, "md5_digest": "faee79031d3dede55e0c8305f34a205f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6957, "upload_time": "2019-07-17T17:14:00", "url": "https://files.pythonhosted.org/packages/58/17/5daf6feca43405675610b1579bb17b637d396a3278180b764b10c6750200/grown-0.0.23.dev0.tar.gz" } ], "0.0.24.dev0": [ { "comment_text": "", "digests": { "md5": "2d6ec1fde950372cadcf7eac97a48022", "sha256": "22e38478044b39347d325b9220b7f9a096f7bf186a02610ef1bcf988caf53074" }, "downloads": -1, "filename": "grown-0.0.24.dev0.tar.gz", "has_sig": false, "md5_digest": "2d6ec1fde950372cadcf7eac97a48022", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8020, "upload_time": "2019-07-22T18:44:03", "url": "https://files.pythonhosted.org/packages/c4/8f/276f0b8a0c1017bf335d5dc6c5a05637ec5ea19f3d4e250cdbfbb428c9af/grown-0.0.24.dev0.tar.gz" } ], "0.0.25.dev0": [ { "comment_text": "", "digests": { "md5": "0ce182aed793b84af85892b11329850c", "sha256": "d4c44e06ee9a48f9d0241762cde6d922bb11587b54a273beb8eb68aad74aee74" }, "downloads": -1, "filename": "grown-0.0.25.dev0.tar.gz", "has_sig": false, "md5_digest": "0ce182aed793b84af85892b11329850c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8175, "upload_time": "2019-07-22T18:49:13", "url": "https://files.pythonhosted.org/packages/eb/2b/4442f3ea2f41c5c868feb9a139589b185c2b38bba5f299b0a1730cd999e2/grown-0.0.25.dev0.tar.gz" } ], "0.0.26.dev0": [ { "comment_text": "", "digests": { "md5": "7d99af08b9157832d450d9ab121b98d3", "sha256": "fabd0479611eb71f23ce212423f112c52a5c6d4627ed75658973d3b68d2d43aa" }, "downloads": -1, "filename": "grown-0.0.26.dev0.tar.gz", "has_sig": false, "md5_digest": "7d99af08b9157832d450d9ab121b98d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10317, "upload_time": "2019-07-24T19:40:05", "url": "https://files.pythonhosted.org/packages/d1/e3/31a4a2692929689c60cc65346d9b1ad85c394602589cbbe25c0c34a5f77e/grown-0.0.26.dev0.tar.gz" } ], "0.0.27.dev0": [ { "comment_text": "", "digests": { "md5": "b745e03cbda85537df3c7438090becd7", "sha256": "32d212fa5fb64da5a474a055b17b015679b2f1ee98062972694a5d41d8ab26c5" }, "downloads": -1, "filename": "grown-0.0.27.dev0.tar.gz", "has_sig": false, "md5_digest": "b745e03cbda85537df3c7438090becd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10435, "upload_time": "2019-07-24T20:49:23", "url": "https://files.pythonhosted.org/packages/da/d7/28dffa326a1e7658d071218bd38f24724c654129578aff6ac5709a345f1c/grown-0.0.27.dev0.tar.gz" } ], "0.0.28.dev0": [ { "comment_text": "", "digests": { "md5": "92cbe7f6da378d9fecbf0d4937c9dd1b", "sha256": "968441359d55fac0371f221b01742a5c620a8dd194be25e43edad71ebcdb62fe" }, "downloads": -1, "filename": "grown-0.0.28.dev0.tar.gz", "has_sig": false, "md5_digest": "92cbe7f6da378d9fecbf0d4937c9dd1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10440, "upload_time": "2019-07-24T20:56:06", "url": "https://files.pythonhosted.org/packages/f0/dd/6daa0b2ac0198b42db6ec7636a5b6197ae1d472516ddfa97f786a57719b1/grown-0.0.28.dev0.tar.gz" } ], "0.0.29.dev0": [ { "comment_text": "", "digests": { "md5": "711774e7d609a39b7e22a51cdeaf6104", "sha256": "0aaa69d1743ab02c008c89f29f4f717561dea7189845db38cf4d368cb54d3d22" }, "downloads": -1, "filename": "grown-0.0.29.dev0.tar.gz", "has_sig": false, "md5_digest": "711774e7d609a39b7e22a51cdeaf6104", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10354, "upload_time": "2019-07-24T21:02:41", "url": "https://files.pythonhosted.org/packages/9c/c8/e8eb9fcac41a2db9db856f68bfddca59461a8e2d4e343b4bd405cfd2af19/grown-0.0.29.dev0.tar.gz" } ], "0.0.30.dev0": [ { "comment_text": "", "digests": { "md5": "0262003c941bbd90d605bacf8c9b536d", "sha256": "a836c57a2e2b8f3118b9de8c53be3c5eceb3b1d8e72ea7db856d78a3bad7adda" }, "downloads": -1, "filename": "grown-0.0.30.dev0.tar.gz", "has_sig": false, "md5_digest": "0262003c941bbd90d605bacf8c9b536d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10571, "upload_time": "2019-09-02T18:47:00", "url": "https://files.pythonhosted.org/packages/58/74/d3c430d28bf47d00e0d4510fb8c7998b90274a1075de793f7084ad44880a/grown-0.0.30.dev0.tar.gz" } ], "0.0.31.dev0": [ { "comment_text": "", "digests": { "md5": "7a7b7178ff12d52f855620e60461b916", "sha256": "8c098e2bdea183dccc6351b499bacc231857533ab389c6bf8d8b0d7a9cbd47cd" }, "downloads": -1, "filename": "grown-0.0.31.dev0.tar.gz", "has_sig": false, "md5_digest": "7a7b7178ff12d52f855620e60461b916", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11175, "upload_time": "2019-10-01T17:46:24", "url": "https://files.pythonhosted.org/packages/29/a5/1cd76f510bdaaf5f95a6405d86721cd0e4e91219e4655e46078a4393ad18/grown-0.0.31.dev0.tar.gz" } ], "0.0.32.dev0": [ { "comment_text": "", "digests": { "md5": "f15083c7cc11721f3e1f7af838b4dfdf", "sha256": "8feac0569affe50c67ff28184c897d9e929aabd51e75c80d84f1e9d307b35764" }, "downloads": -1, "filename": "grown-0.0.32.dev0.tar.gz", "has_sig": false, "md5_digest": "f15083c7cc11721f3e1f7af838b4dfdf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11190, "upload_time": "2019-10-01T17:57:08", "url": "https://files.pythonhosted.org/packages/cd/5c/9d52dfe65f51454ca4a1bca5b5040e869017d30db8a00f7fc46b5c10523d/grown-0.0.32.dev0.tar.gz" } ], "0.0.33.dev0": [ { "comment_text": "", "digests": { "md5": "eaaed0b4663176c0063117f14f639f66", "sha256": "e77b6f1d5b1e3b88754dc83acf387882e546e8ea76b3d6e816ad0c90e04f126f" }, "downloads": -1, "filename": "grown-0.0.33.dev0.tar.gz", "has_sig": false, "md5_digest": "eaaed0b4663176c0063117f14f639f66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11358, "upload_time": "2019-10-10T18:41:54", "url": "https://files.pythonhosted.org/packages/85/4b/a1b2c22d565d212625522011867bda4687692a061c77736b8f659b1cb4fd/grown-0.0.33.dev0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "eaaed0b4663176c0063117f14f639f66", "sha256": "e77b6f1d5b1e3b88754dc83acf387882e546e8ea76b3d6e816ad0c90e04f126f" }, "downloads": -1, "filename": "grown-0.0.33.dev0.tar.gz", "has_sig": false, "md5_digest": "eaaed0b4663176c0063117f14f639f66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11358, "upload_time": "2019-10-10T18:41:54", "url": "https://files.pythonhosted.org/packages/85/4b/a1b2c22d565d212625522011867bda4687692a061c77736b8f659b1cb4fd/grown-0.0.33.dev0.tar.gz" } ] }