{ "info": { "author": "Brian May", "author_email": "brian@linuxpenguins.xyz", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "========\nAioLifxC\n========\n\n.. image:: https://img.shields.io/pypi/v/aiolifxc.svg\n :target: https://pypi.python.org/pypi/aiolifxc\n\n.. image:: https://img.shields.io/travis/brianmay/aiolifxc.svg\n :target: https://travis-ci.org/brianmay/aiolifxc\n\n.. image:: https://readthedocs.org/projects/aiolifxc/badge/?version=latest\n :target: https://aiolifxc.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://pyup.io/repos/github/brianmay/aiolifxc/shield.svg\n :target: https://pyup.io/repos/github/brianmay/aiolifxc/\n :alt: Updates\n\nAioLifxC is a Python 3/asyncio library to control Lifx LED lightbulbs over your LAN.\n\nMost of it was originally taken from the\n`Meghan Clarkk lifxlan package `_\nand adapted to Python 3 (and asyncio obviously)\n\nThis is a fork from\n`Fran\u00e7ois Wautier's package `_.\nIt uses coroutines as opposed to callbacks. If you prefer callbacks,\nplease see his implementation instead. This was forked from version 0.5.0.\n\n\nInstallation\n------------\n\nWe are on PyPi so::\n\n pip3 install aiolifxc\n\nor::\n\n python3 -m pip install aiolifxc\n\nHow to use\n----------\n\nIn essence, the test program is this::\n\n def readin():\n \"\"\"Reading from stdin and displaying menu\"\"\"\n\n selection = sys.stdin.readline().strip(\"\\n\")\n DoSomething()\n\n loop = aio.get_event_loop()\n devices = Devices(loop=loop)\n\n loop.add_reader(sys.stdin, readin)\n\n devices.start_discover()\n\n try:\n loop.run_forever()\n except Exception as e:\n print(\"Got exception %s\" % e)\n finally:\n loop.remove_reader(sys.stdin)\n loop.close()\n\nOther things worth noting:\n\n - Whilst LifxDiscover uses UDP broadcast, the bulbs are\n connected with Unicast UDP\n\n - The socket connecting to a bulb is not closed unless the bulb is deemed to have\n gone the way of the Dodo. I've been using that for days with no problem\n\n - You can select to used IPv6 connection to the bulbs by passing an\n IPv6 prefix to LifxDiscover. It's only been tried with /64 prefix.\n If you want to use a /48 prefix, add \":\" (colon) at the end of the \n prefix and pray. (This means 2 colons at the end!)\n\n - I only have Original 1000, so I could not test with other types\n of bulbs\n\n - Unlike in lifxlan, set_waveform takes a dictionary with the right \n keys instead of all those parameters\n\n\n=======\nHistory\n=======\n\n1.0.0 (UNRELEASED)\n------------------\n\nChanged\n~~~~~~~\n\n* Add more log messages.\n* Fix display of selected devices in sample app.\n* Simplify API. Merge device classes into light classes.\n\n\n0.5.6 (2017-09-22)\n------------------\n\nChanged\n~~~~~~~\n* Update pip dependancies.\n* Simplify start_discovery function.\n* Update to Beta status.\n* Fix API docs on readthedocs.\n\nFixed\n~~~~~\n* Update MANIFEST.in file.\n\n\n0.5.5 (2017-07-11)\n------------------\n\nChanged\n~~~~~~~\n* Update mypy from 0.511 to 0.520\n\nFixed\n~~~~~\n* Ensure we act on selected device in sample client.\n* Fix mypy errors.\n* Fix message size calculation.\n* Add configurable grace period for unregister.\n\n\n0.5.4 (2017-07-07)\n------------------\n\nFixed\n~~~~~\n* Fix failure to re-register a light that went off-line.\n\n\n0.5.3 (2017-07-03)\n------------------\n\nFixed\n~~~~~\n* Fixed FD resource leak in discovery of existing lights.\n\n\n0.5.2 (2017-07-02)\n------------------\n\nChanged\n~~~~~~~\n* Significant changes. Improvements to the API. Type hints, doc strings, etc.\n\n\n0.5.1 (2017-06-26)\n------------------\n\n* Initial version after fork from https://github.com/frawau/aiolifx\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/brianmay/aiolifx", "keywords": "lifx", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "aiolifxc", "package_url": "https://pypi.org/project/aiolifxc/", "platform": "", "project_url": "https://pypi.org/project/aiolifxc/", "project_urls": { "Homepage": "http://github.com/brianmay/aiolifx" }, "release_url": "https://pypi.org/project/aiolifxc/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "API for local communication with LIFX devices over a LAN with asyncio.", "version": "1.0.0" }, "last_serial": 3198057, "releases": { "0.5.1": [ { "comment_text": "", "digests": { "md5": "634199bc3990c95103f37807c979ad1c", "sha256": "cc8bf5750398a7a97a8c480d30f5cc458e0585ceda8de1eac75674a14624117c" }, "downloads": -1, "filename": "aiolifxc-0.5.1-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "634199bc3990c95103f37807c979ad1c", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 23904, "upload_time": "2017-06-26T10:49:19", "url": "https://files.pythonhosted.org/packages/33/49/c953af3476ea42beca27012d40a8a40a69c02201df50f073e8b145d7cce7/aiolifxc-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f173e95594bcf27335744dd97b9cd3df", "sha256": "7ec1c6aee0e522ac643fca780e682342d7bb6313bd83ad844395d8a5477136df" }, "downloads": -1, "filename": "aiolifxc-0.5.1.tar.gz", "has_sig": true, "md5_digest": "f173e95594bcf27335744dd97b9cd3df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23263, "upload_time": "2017-06-26T10:49:16", "url": "https://files.pythonhosted.org/packages/40/d0/6ce333a966a2fee3fd0fc27d15a9baf44e9cad8787165eb52252bfbe9a51/aiolifxc-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "a1b38ace1ea43309a517e468da70cca7", "sha256": "1c05eee7bc27c4ed5d9b21e9b4b521007d16ac965dbbd6646b4e7bbae70fe156" }, "downloads": -1, "filename": "aiolifxc-0.5.2-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "a1b38ace1ea43309a517e468da70cca7", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 28003, "upload_time": "2017-07-02T08:59:37", "url": "https://files.pythonhosted.org/packages/7b/02/8bf6450fa3e1b48e4028309f87cd95330096691ea6cdd348fc13151a7e24/aiolifxc-0.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be383a668ba2dfd79db18a13784020f6", "sha256": "a5623d1b5cc941dc8a2c63d8bc6000704f9a619d751796dfc0bba5b38ce29562" }, "downloads": -1, "filename": "aiolifxc-0.5.2.tar.gz", "has_sig": true, "md5_digest": "be383a668ba2dfd79db18a13784020f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26156, "upload_time": "2017-07-02T08:59:29", "url": "https://files.pythonhosted.org/packages/46/f5/a755cdb040f6e391f45fdac653a0ca709ba7df9585c946bb26cc2f7ce7dc/aiolifxc-0.5.2.tar.gz" } ], "0.5.3": [ { "comment_text": "", "digests": { "md5": "2b6a4b8f1f2d81506df5287299e58f66", "sha256": "8e56db06b9421e34a0fc5c60a2f0e0a4d4cf5c640ea922db49f0f8f96ac2e74f" }, "downloads": -1, "filename": "aiolifxc-0.5.3-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "2b6a4b8f1f2d81506df5287299e58f66", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 28106, "upload_time": "2017-07-03T08:40:34", "url": "https://files.pythonhosted.org/packages/19/58/4cf006b5cbc3160888a2910499ddc3d1348012eccf7e32fb5ed8878dd2d9/aiolifxc-0.5.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32dc3a03cc51b720dbb465c8090ec908", "sha256": "3b8b1931ebe7c31e37f6c2bb5ecb51564fdfa354ab06fb820e822a57f959b696" }, "downloads": -1, "filename": "aiolifxc-0.5.3.tar.gz", "has_sig": true, "md5_digest": "32dc3a03cc51b720dbb465c8090ec908", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26233, "upload_time": "2017-07-03T08:40:29", "url": "https://files.pythonhosted.org/packages/30/e3/ff2ed9292f53bd2545ad8fbc8a5d2ec512155318be4b914f7f7a09d0a87b/aiolifxc-0.5.3.tar.gz" } ], "0.5.4": [ { "comment_text": "", "digests": { "md5": "bb385c8ae03ac0d9ca9843b9c8d552dc", "sha256": "19a2c2daf61760edbef1a1385487b7764102b3f454107ab47d45c39175a469d1" }, "downloads": -1, "filename": "aiolifxc-0.5.4-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "bb385c8ae03ac0d9ca9843b9c8d552dc", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 28222, "upload_time": "2017-07-07T08:13:50", "url": "https://files.pythonhosted.org/packages/f4/0f/e902a23b7c497ddc3433467476e094e2ee03ffda6f9bc43dc7d6d78b2bae/aiolifxc-0.5.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cdad3992ce87645952891a6d6608907e", "sha256": "2602e631e32d72571f62cf1b21a96d7f7e64796bddd58657b013c8f4595cd847" }, "downloads": -1, "filename": "aiolifxc-0.5.4.tar.gz", "has_sig": true, "md5_digest": "cdad3992ce87645952891a6d6608907e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26323, "upload_time": "2017-07-07T08:13:47", "url": "https://files.pythonhosted.org/packages/59/58/cabb46aa7555d742805480fc50ed128e85f33d9ea5f106363b5752e82d59/aiolifxc-0.5.4.tar.gz" } ], "0.5.5": [ { "comment_text": "", "digests": { "md5": "b2ea93e6d81eb9d3e1c56070e1f690e5", "sha256": "af831fd14494407aaebb8bb4dbac4b6087cfff3f775818e58d3b4752f61bd257" }, "downloads": -1, "filename": "aiolifxc-0.5.5-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b2ea93e6d81eb9d3e1c56070e1f690e5", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 28452, "upload_time": "2017-07-11T08:36:58", "url": "https://files.pythonhosted.org/packages/4e/85/3276673b1764ed18b63d06a91eb17b3988d289fc9cdeeb1bbbf0a97fec9b/aiolifxc-0.5.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7f0861974e3639076b8589db7bc8571", "sha256": "a8c9298c0e6dffd54858514e55f3c3536cf13a3d5b70aaf97842b41c92ed921e" }, "downloads": -1, "filename": "aiolifxc-0.5.5.tar.gz", "has_sig": true, "md5_digest": "f7f0861974e3639076b8589db7bc8571", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26508, "upload_time": "2017-07-11T08:36:54", "url": "https://files.pythonhosted.org/packages/38/f3/4fa46ffd80ae95dfe213c5a03dcdcc6b8a29f8dc08055394b8741884c914/aiolifxc-0.5.5.tar.gz" } ], "0.5.6": [ { "comment_text": "", "digests": { "md5": "70a7b1ed12e386c52b9270896052118b", "sha256": "63c7cb339433e6d24b3bd5a43d1ffde8fddaae197e52c08265e1721e95aeedcf" }, "downloads": -1, "filename": "aiolifxc-0.5.6-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "70a7b1ed12e386c52b9270896052118b", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 28416, "upload_time": "2017-09-22T08:27:34", "url": "https://files.pythonhosted.org/packages/3d/e1/0771aa74afe6b6a6c6bb69f5e4cc6d04cc0dff2d7d076e8ab503d2f78787/aiolifxc-0.5.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cff15caaab709017079d2c1632f08897", "sha256": "9542bf6cc55cf748636e0a8a354064c2416dba9566f766b0e28a03dffb865c86" }, "downloads": -1, "filename": "aiolifxc-0.5.6.tar.gz", "has_sig": true, "md5_digest": "cff15caaab709017079d2c1632f08897", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34404, "upload_time": "2017-09-22T08:27:31", "url": "https://files.pythonhosted.org/packages/bc/13/d63f654306727fbdd9ec83856781ecb169dc07cb480ecd2ddccb312aed85/aiolifxc-0.5.6.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "687d15c193c3d5b9f85f8a826eda3be5", "sha256": "e3d756dc064559fda79fd7c5a086714492f9e6d13d7669efc45baa783562683e" }, "downloads": -1, "filename": "aiolifxc-1.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "687d15c193c3d5b9f85f8a826eda3be5", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 28332, "upload_time": "2017-09-24T02:57:10", "url": "https://files.pythonhosted.org/packages/e4/b9/b7c65fe519331ce9389d452819e181f7615060aee286421204d605124625/aiolifxc-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f3219af30b6ca42cb7011f2e0cc9439", "sha256": "380eb0b239b747ef2df33ffb5803691e0e183a10fffcabe7d7eea09751ea4530" }, "downloads": -1, "filename": "aiolifxc-1.0.0.tar.gz", "has_sig": true, "md5_digest": "0f3219af30b6ca42cb7011f2e0cc9439", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34280, "upload_time": "2017-09-24T02:57:07", "url": "https://files.pythonhosted.org/packages/01/e6/d9a4aafc70c57fccbd4170641c6780d3f2d8463d8f2feddeb3ebaaa16c12/aiolifxc-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "687d15c193c3d5b9f85f8a826eda3be5", "sha256": "e3d756dc064559fda79fd7c5a086714492f9e6d13d7669efc45baa783562683e" }, "downloads": -1, "filename": "aiolifxc-1.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "687d15c193c3d5b9f85f8a826eda3be5", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 28332, "upload_time": "2017-09-24T02:57:10", "url": "https://files.pythonhosted.org/packages/e4/b9/b7c65fe519331ce9389d452819e181f7615060aee286421204d605124625/aiolifxc-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f3219af30b6ca42cb7011f2e0cc9439", "sha256": "380eb0b239b747ef2df33ffb5803691e0e183a10fffcabe7d7eea09751ea4530" }, "downloads": -1, "filename": "aiolifxc-1.0.0.tar.gz", "has_sig": true, "md5_digest": "0f3219af30b6ca42cb7011f2e0cc9439", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34280, "upload_time": "2017-09-24T02:57:07", "url": "https://files.pythonhosted.org/packages/01/e6/d9a4aafc70c57fccbd4170641c6780d3f2d8463d8f2feddeb3ebaaa16c12/aiolifxc-1.0.0.tar.gz" } ] }