{ "info": { "author": "p3g4asus", "author_email": "fulminedipegasus@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# pygocomma\n\nControl Gocomma R9 devices with Python 3 using asyncio (single threaded with event loop).\nTu use the library you need the id and key of your device. You can get them using any of [those](https://github.com/clach04/python-tuya/wiki) methods.\n\n## Usage\n\n```python\nimport sys\nimport logging\nfrom pygocomma.r9 import R9\nimport asyncio\nimport binascii\nfrom pygocomma import _LOGGER\nasync def testFake(n):\n for i in range(n):\n _LOGGER.debug(\"Counter is %d\",i)\n await asyncio.sleep(1)\nasync def ping_test(*args):\n a = R9((args[2],DEFAULT_PORT),args[3],args[4])\n rv = await a.ping()\n if rv:\n _LOGGER.info(\"Ping OK %s\",binascii.hexlify(rv))\n else:\n _LOGGER.warning(\"Ping failed\")\n await a.destroy_connection()\nasync def ask_last_test(*args):\n a = R9((args[2],DEFAULT_PORT),args[3],args[4])\n rv = await a.ask_last()\n if rv:\n _LOGGER.info(\"Ask last OK %s\",rv)\n else:\n _LOGGER.warning(\"Ask last failed\")\n await a.destroy_connection()\nasync def discovery_test(*args):\n rv = await R9.discovery(int(args[2]))\n if rv:\n _LOGGER.info(\"Discovery OK %s\",rv)\n else:\n _LOGGER.warning(\"Discovery failed\")\n\nasync def emit_test(*args):\n import re\n mo = re.search('^[a-fA-F0-9]+$', args[5])\n if mo:\n payload = binascii.unhexlify(args[5])\n else:\n payload = b64decode(args[5])\n a = R9((args[2],DEFAULT_PORT),args[3],args[4])\n rv = await a.emit_ir(payload)\n if rv:\n _LOGGER.info(\"Emit OK %s\",binascii.hexlify(rv).decode('utf-8'))\n else:\n _LOGGER.warning(\"Emit failed\")\n await a.destroy_connection()\nasync def learn_test(*args):\n a = R9((args[2],DEFAULT_PORT),args[3],args[4])\n rv = await a.enter_learning_mode()\n if rv:\n _LOGGER.info(\"Entered learning mode (%s): please press key\",rv)\n rv = await a.get_learned_key()\n if rv:\n _LOGGER.info(\"Obtained %s\",binascii.hexlify(rv).decode('utf-8'))\n else:\n _LOGGER.warning(\"No key pressed\")\n rv = await a.exit_learning_mode()\n if rv:\n _LOGGER.info(\"Exit OK %s\", rv)\n else:\n _LOGGER.warning(\"Exit failed\")\n else:\n _LOGGER.warning(\"Enter learning failed\")\n await a.destroy_connection()\n_LOGGER.setLevel(logging.DEBUG)\nhandler = logging.StreamHandler(sys.stderr)\nhandler.setLevel(logging.DEBUG)\nformatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')\nhandler.setFormatter(formatter)\n_LOGGER.addHandler(handler)\nloop = asyncio.get_event_loop()\ntry:\n asyncio.ensure_future(testFake(150))\n if sys.argv[1]==\"learn\":\n loop.run_until_complete(learn_test(*sys.argv))\n elif sys.argv[1]==\"discovery\":\n loop.run_until_complete(discovery_test(*sys.argv))\n elif sys.argv[1]==\"ping\":\n loop.run_until_complete(ping_test(*sys.argv))\n elif sys.argv[1]==\"asklast\":\n loop.run_until_complete(ask_last_test(*sys.argv))\n elif sys.argv[1]==\"pingst\":\n for i in range(int(sys.argv[5])):\n loop.run_until_complete(ping_test(*sys.argv))\n else:\n loop.run_until_complete(emit_test(*sys.argv))\nexcept BaseException as ex:\n _LOGGER.error(\"Test error %s\",str(ex))\n traceback.print_exc()\nexcept:\n _LOGGER.error(\"Test error\")\n traceback.print_exc()\nfinally:\n loop.close()\n```\n\n## Contributions\n\nPull requests are welcome. \n\n## Disclaimer\n\nNot affiliated with Gocomma in any way.\n\n\n### Related Projects\n\n * https://github.com/codetheweb/tuyapi node.js\n * https://github.com/sean6541/tuyaapi Python API to the web api\n * https://github.com/clach04/python-tuya/ Python API to the web api\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/p3g4asus/pygocomma", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pygocomma", "package_url": "https://pypi.org/project/pygocomma/", "platform": "", "project_url": "https://pypi.org/project/pygocomma/", "project_urls": { "Homepage": "https://github.com/p3g4asus/pygocomma" }, "release_url": "https://pypi.org/project/pygocomma/1.12/", "requires_dist": [ "pycryptodome" ], "requires_python": "", "summary": "Asyncio module for Gocomma R9 devices control", "version": "1.12" }, "last_serial": 5239802, "releases": { "1.11": [ { "comment_text": "", "digests": { "md5": "e7fccfcf9ad4764dff79c3dc04b7aa8d", "sha256": "9e2c98e12d4d84e0c16f207e9cedf744d747992e058886254f65b78ad38684fa" }, "downloads": -1, "filename": "pygocomma-1.11-py3-none-any.whl", "has_sig": false, "md5_digest": "e7fccfcf9ad4764dff79c3dc04b7aa8d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14133, "upload_time": "2019-05-05T19:24:55", "url": "https://files.pythonhosted.org/packages/3b/bd/32a7ff46976f215884f1cbc10d9712d7289f03b3b726503be041960a4b94/pygocomma-1.11-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "643040b65cb8c5017e3796ecd18f1c3c", "sha256": "e96a16f1f9bddbba5510a7972d26ce30b8526eefc5325520e1bffb990f57e321" }, "downloads": -1, "filename": "pygocomma-1.11.tar.gz", "has_sig": false, "md5_digest": "643040b65cb8c5017e3796ecd18f1c3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13283, "upload_time": "2019-05-05T19:24:56", "url": "https://files.pythonhosted.org/packages/24/8b/dae5540d8e2ca38607313f4ee754eba8e58b8322f92e8f1bd920f3a89301/pygocomma-1.11.tar.gz" } ], "1.12": [ { "comment_text": "", "digests": { "md5": "b032829bda75941e04a43e54e2b236a5", "sha256": "4de5864a6459509f4ce9adca7f32136f00b4b13c26d5b02535c9a2f3f17bea2a" }, "downloads": -1, "filename": "pygocomma-1.12-py3-none-any.whl", "has_sig": false, "md5_digest": "b032829bda75941e04a43e54e2b236a5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14234, "upload_time": "2019-05-07T20:03:03", "url": "https://files.pythonhosted.org/packages/63/6d/fbcc6a3ca757ec043a80c3dae1287b9c211a8a8413e532046391e1197868/pygocomma-1.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ceef261ff7b2a5127b220f4f5685b11", "sha256": "4aaa3555bd5739beadeb9ac4b800d123702a9966108cf6690c642431e0f0a158" }, "downloads": -1, "filename": "pygocomma-1.12.tar.gz", "has_sig": false, "md5_digest": "0ceef261ff7b2a5127b220f4f5685b11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13367, "upload_time": "2019-05-07T20:03:04", "url": "https://files.pythonhosted.org/packages/c5/e6/37be52d220672b7c057dd9fa8f97db2563d127c7a1750df4830e2ca2a76a/pygocomma-1.12.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "bd648089eaba20aff8e2e26396bc575c", "sha256": "0a89361bdacf8edaeb3ad2f8bcff28ab4caa7f17ce13350c167b401ed42ce2d2" }, "downloads": -1, "filename": "pygocomma-1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "bd648089eaba20aff8e2e26396bc575c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11422, "upload_time": "2019-04-29T20:25:03", "url": "https://files.pythonhosted.org/packages/0b/61/85e079c6fd69600943b42e5d1edce5768c5376d5cf7d918a5850e5c0b262/pygocomma-1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f1bfdf1baa1451f91834b51b77842c9", "sha256": "1e3bde76fb9d8d0b6e6e3c2ee60467f201f25b4ab3486adc2958e1c872b33529" }, "downloads": -1, "filename": "pygocomma-1.2.tar.gz", "has_sig": false, "md5_digest": "2f1bfdf1baa1451f91834b51b77842c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10135, "upload_time": "2019-04-29T20:25:28", "url": "https://files.pythonhosted.org/packages/9a/3c/4c226d31168c1f1c88a61bc0f625a3971c9c602558e33c05cd29dea34c7c/pygocomma-1.2.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "9f8a6f63f427a36dd9150a0607432b8b", "sha256": "02123a926aaad1b9a93261b49549281d57e7ce08e2ffd87dda89fec1018594b4" }, "downloads": -1, "filename": "pygocomma-1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "9f8a6f63f427a36dd9150a0607432b8b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12665, "upload_time": "2019-04-30T09:59:08", "url": "https://files.pythonhosted.org/packages/4c/7a/1f4efa3d43fb3d094b94c391c659ea4cc3ffb15a5f79fd672225b93728fa/pygocomma-1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "24330197ae04460aaaeb9d4e47e3dd6d", "sha256": "3d57cabdadb64879b2806c184d090a071fad5673a5dde476e2f1f8b8c51ba5c2" }, "downloads": -1, "filename": "pygocomma-1.5.tar.gz", "has_sig": false, "md5_digest": "24330197ae04460aaaeb9d4e47e3dd6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11407, "upload_time": "2019-04-30T09:59:14", "url": "https://files.pythonhosted.org/packages/50/f0/c01e4f96dfd8fb648450a1f43e32f354c1d9693ad7842a4eeff8e541d7eb/pygocomma-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "4aa8dfde50bbf9539aedffb3494ba54a", "sha256": "8d07c95233f8bc3ec4ce1e6efb7edd0c8244065a38ae9f030cbe7a49f971ea8a" }, "downloads": -1, "filename": "pygocomma-1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "4aa8dfde50bbf9539aedffb3494ba54a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12777, "upload_time": "2019-04-30T12:25:07", "url": "https://files.pythonhosted.org/packages/da/28/2e55ad66e6e549029f218b79b35488eda1ff70d4b4b4d832ba4b98d1bcb6/pygocomma-1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32654af456c17cc97ef12e0c9bb88bf7", "sha256": "84eb83f9e295e7eb1ff69926b6c7c79dab2d3241f0c676138196e03cf7aa7cdd" }, "downloads": -1, "filename": "pygocomma-1.6.tar.gz", "has_sig": false, "md5_digest": "32654af456c17cc97ef12e0c9bb88bf7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11505, "upload_time": "2019-04-30T12:25:15", "url": "https://files.pythonhosted.org/packages/6a/02/832f426098bede119d24dfcd86c6f2329ae1cb2d6d0e44ea43f6abe21c5e/pygocomma-1.6.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "fbc6adbd5ec00f55a195676f74c60e21", "sha256": "1d2e0baa555a09b273c1b2cc20acc29e3a87c820d5feffd008e080f008c505e5" }, "downloads": -1, "filename": "pygocomma-1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "fbc6adbd5ec00f55a195676f74c60e21", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12778, "upload_time": "2019-04-30T12:38:54", "url": "https://files.pythonhosted.org/packages/af/6d/14d0254dcd050275aff7dd7d63828290a575fb49678f3048caedada23523/pygocomma-1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc3f64b8fa00632b518fbef7c2886393", "sha256": "3d2b69e22d3a0650991b333e0319e11c7e27eaaba3b0c24ab752ec2a2256a242" }, "downloads": -1, "filename": "pygocomma-1.7.tar.gz", "has_sig": false, "md5_digest": "dc3f64b8fa00632b518fbef7c2886393", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11502, "upload_time": "2019-04-30T12:38:56", "url": "https://files.pythonhosted.org/packages/3c/5e/ab669af33a0fbc4830b8a644ee5ed9ca0d8f23856ddab4191dae72b214df/pygocomma-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "5b75378ae82c8b5e434547c32bfa0c6e", "sha256": "40793d915d2a5856358b7bcd6eba2990da0d3e6875269c8aa390299117293cba" }, "downloads": -1, "filename": "pygocomma-1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "5b75378ae82c8b5e434547c32bfa0c6e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12790, "upload_time": "2019-04-30T13:52:20", "url": "https://files.pythonhosted.org/packages/86/78/6f709cad0d8c8b249a4a63731169fe96ade37336a430a04e3339f2bae471/pygocomma-1.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e265ba861401134ef96641202cfa33b9", "sha256": "c4a54b2c4e7f15733aca2b3a78d9d5d5b55fe6f1d592289e78b01673cb7e4e82" }, "downloads": -1, "filename": "pygocomma-1.8.tar.gz", "has_sig": false, "md5_digest": "e265ba861401134ef96641202cfa33b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11508, "upload_time": "2019-04-30T13:52:22", "url": "https://files.pythonhosted.org/packages/8b/9c/5d6dd0b33feba852846115440c681a6c7dec5cfe130b5ab2099a6c616233/pygocomma-1.8.tar.gz" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "58b1f9b5b3f9f5cba059587acd74f9b3", "sha256": "5f0a0a887a1fa13904b911a586fd3ff65c1af2f324efcd0ab40ebc5623c1aa11" }, "downloads": -1, "filename": "pygocomma-1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "58b1f9b5b3f9f5cba059587acd74f9b3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13281, "upload_time": "2019-05-01T15:18:49", "url": "https://files.pythonhosted.org/packages/e9/12/d68ba96e2f79b8709de4bf648189feb65a0da0215572ae78b39e9746de7a/pygocomma-1.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c57ebd8ca896ea976af259b01da4fbd6", "sha256": "8a7e6a2ac99e614c41e2b71879e7cf7afe9d8b0ce823949949546394abc6b3a2" }, "downloads": -1, "filename": "pygocomma-1.9.tar.gz", "has_sig": false, "md5_digest": "c57ebd8ca896ea976af259b01da4fbd6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12013, "upload_time": "2019-05-01T15:18:50", "url": "https://files.pythonhosted.org/packages/0c/f9/44c18e72abbbaf69326ba31d69b4b6c2f411c8012fb3607a50e3a9e32396/pygocomma-1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b032829bda75941e04a43e54e2b236a5", "sha256": "4de5864a6459509f4ce9adca7f32136f00b4b13c26d5b02535c9a2f3f17bea2a" }, "downloads": -1, "filename": "pygocomma-1.12-py3-none-any.whl", "has_sig": false, "md5_digest": "b032829bda75941e04a43e54e2b236a5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14234, "upload_time": "2019-05-07T20:03:03", "url": "https://files.pythonhosted.org/packages/63/6d/fbcc6a3ca757ec043a80c3dae1287b9c211a8a8413e532046391e1197868/pygocomma-1.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ceef261ff7b2a5127b220f4f5685b11", "sha256": "4aaa3555bd5739beadeb9ac4b800d123702a9966108cf6690c642431e0f0a158" }, "downloads": -1, "filename": "pygocomma-1.12.tar.gz", "has_sig": false, "md5_digest": "0ceef261ff7b2a5127b220f4f5685b11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13367, "upload_time": "2019-05-07T20:03:04", "url": "https://files.pythonhosted.org/packages/c5/e6/37be52d220672b7c057dd9fa8f97db2563d127c7a1750df4830e2ca2a76a/pygocomma-1.12.tar.gz" } ] }