{ "info": { "author": "Robin Gr\u00f6nberg", "author_email": "robingronberg@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Python interface to control KEF speakers\nSupported: KEF LS50 Wireless (Requires [firmware](http://international.kef.com/product-support) June 2018 or later)\n\nUntested: KEF LSX\n\n## Features supported\n- Get and set volume\n- Mute and Unmute\n- Get and set source input\n- Get if the speakers are online\n- Automatically connects and disconnects when speakers goes online/offline\n- Turn off speaker\n\n## Features unfortunatly unsupported\n- Turn on is impossible over tcp/ip because the speaker turns off network interface when turned off. This is true for LS50 Wireless. LSX should be possible to turn on.\n\nNote: One workaround to turning on is to use IR commands to turn on. I have included a [lirc config](lirc/KEF_LS50_WIRELESS.lircd) with all the keys on the remote. Note that each command has to be sent twice to work (at least for me).\n\n## Install\n```bash\npip install pykef\n```\n\n## Discussion\nSee [home assistant thread](https://community.home-assistant.io/t/kef-ls50-wireless/)\n\n## Examples\nSetup:\n```python\nhost = '192.168.1.200'\nport = 50001\nspeaker = KefSpeaker(host, port)\n```\nSet volume:\n```python\nspeaker.volume = 0.5 # %50 vol\n```\nGet volume:\n```python\nvolume = speaker.volume\n```\nSet source:\n```python\nspeaker.source = InputSource.AUX\n```\nGet source:\n```python\nsource = speaker.source\n```\nMute:\n```python\nspeaker.volume = None\n# Or\nspeaker.muted = True\n```\nUnmute (set to volume before mute):\n```python\nspeaker.muted = False\n```\nStep volume up\n```python\nspeaker.increseVolume() # 5% increase\nspeaker.increseVolume(0.10) # 10% increase\n```\nStep volume down\n```python\nspeaker.decreaseVolume() # 5% increase\nspeaker.decreaseVolume(0.10) # 10% increase\n```\nTurn off\n```python\nspeaker.turnOff()\n```\n\n## How to\n\n### Upload new release:\n1. Update needed tools:\n```bash\npython3 -m pip install --user --upgrade setuptools wheel\n```\n2. Build\n```bash\npython3 setup.py sdist bdist_wheel\n```\n3. Upload (test)\n```bash\ntwine upload --repository-url https://test.pypi.org/legacy/ dist/*\n```\n\n## License\nMIT License\n\n## Authors\n- Robin Gr\u00f6nberg\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/Gronis/pykef/", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pykef", "package_url": "https://pypi.org/project/pykef/", "platform": "", "project_url": "https://pypi.org/project/pykef/", "project_urls": { "Homepage": "https://github.com/Gronis/pykef/" }, "release_url": "https://pypi.org/project/pykef/1.3.0/", "requires_dist": null, "requires_python": "", "summary": "A python implementation to interface Kef speakers over tcp/ip", "version": "1.3.0" }, "last_serial": 4557567, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "01135feb1c96579ca45ca3c1b1e67456", "sha256": "05b88c0a286c305eead156bae37f29537e17731fc24319b8687b1c699079ef95" }, "downloads": -1, "filename": "pykef-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "01135feb1c96579ca45ca3c1b1e67456", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4867, "upload_time": "2018-11-20T21:29:22", "url": "https://files.pythonhosted.org/packages/1f/1b/49a7442827fb61bbc570eb90ec19bd5795e8da30e55297eaeea5891fa621/pykef-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7e0d078394b9bd5fe7c680186da85d3d", "sha256": "6626a6eafcd91cba0a3efa7117da5bdc49102ea66b9a505e89fcd194a8e4eaf0" }, "downloads": -1, "filename": "pykef-1.0.0.tar.gz", "has_sig": false, "md5_digest": "7e0d078394b9bd5fe7c680186da85d3d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3874, "upload_time": "2018-11-20T21:29:24", "url": "https://files.pythonhosted.org/packages/5b/57/06dd791be531436ef5e2163bc13f7828020721351adbeac5142c3bf87d11/pykef-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "0d4d200ad34f099721aa51fc8906e12d", "sha256": "7edc3bc0db16332cb707d11f16c8a7b8a72b8849cd2da0980a89a2f56c4fa220" }, "downloads": -1, "filename": "pykef-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0d4d200ad34f099721aa51fc8906e12d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5614, "upload_time": "2018-11-21T23:38:49", "url": "https://files.pythonhosted.org/packages/27/af/cd48d47fb11b1325dbf1eb80818e5020d0dd3a1e2c7f475ce5f600023ab5/pykef-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "426b49ab00cd72f5f5aed2bbdc7bd756", "sha256": "58e7050a067d8d717235bcd39a6f29927bb4676db190920136e3996bae6bad31" }, "downloads": -1, "filename": "pykef-1.1.0.tar.gz", "has_sig": false, "md5_digest": "426b49ab00cd72f5f5aed2bbdc7bd756", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4654, "upload_time": "2018-11-21T23:38:50", "url": "https://files.pythonhosted.org/packages/ae/32/01de29989ddcad2e2b69b8caba65b88eccd2bce0277f6dbc3ae30baa2629/pykef-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "8e6546d8d64af49cf117528986a1b825", "sha256": "b7b7d6e9113e984fcb19f79385422a1356c96cd2c27a25b01433551aea025170" }, "downloads": -1, "filename": "pykef-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8e6546d8d64af49cf117528986a1b825", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5723, "upload_time": "2018-11-25T18:31:24", "url": "https://files.pythonhosted.org/packages/ab/41/862c89b27656f350cb342f93268e7b3f51a34f79b169c3a7affce5a29a67/pykef-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e6b7f21fa3dd7f7e28be672a644e5ba7", "sha256": "54733c10ddeee6fff8a169721f69fe4c73f40dce82bb3ba786dbfed748fe9048" }, "downloads": -1, "filename": "pykef-1.2.0.tar.gz", "has_sig": false, "md5_digest": "e6b7f21fa3dd7f7e28be672a644e5ba7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4790, "upload_time": "2018-11-25T18:31:26", "url": "https://files.pythonhosted.org/packages/c1/4f/372d02b8ff2d1b445d1c66856bf646e2fa7e5bb08bfe3d60301f1a46cd6a/pykef-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "152e3aaccc280bcdad75f92c5defff0c", "sha256": "1989116b500ec40ab39098e9604835fe50eb629cf032d6a9f332fc652d3f4031" }, "downloads": -1, "filename": "pykef-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "152e3aaccc280bcdad75f92c5defff0c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6315, "upload_time": "2018-12-03T22:29:08", "url": "https://files.pythonhosted.org/packages/8a/a2/df6eb56d204545c9ee5c4c6993dd9731c996196cdc0b92ec5bc5286bfad2/pykef-1.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48d3a4fa411d6367a8ac1b7dfd2ac271", "sha256": "9d592f39035c42b247da29be037b27f3c8fc4bd92efd2b95ebcd5df83357aa47" }, "downloads": -1, "filename": "pykef-1.3.0.tar.gz", "has_sig": false, "md5_digest": "48d3a4fa411d6367a8ac1b7dfd2ac271", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5434, "upload_time": "2018-12-03T22:29:10", "url": "https://files.pythonhosted.org/packages/4e/03/d15c559b485594a57c3af2b24114d098d22c78b2eec1937b2901fe761348/pykef-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "152e3aaccc280bcdad75f92c5defff0c", "sha256": "1989116b500ec40ab39098e9604835fe50eb629cf032d6a9f332fc652d3f4031" }, "downloads": -1, "filename": "pykef-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "152e3aaccc280bcdad75f92c5defff0c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6315, "upload_time": "2018-12-03T22:29:08", "url": "https://files.pythonhosted.org/packages/8a/a2/df6eb56d204545c9ee5c4c6993dd9731c996196cdc0b92ec5bc5286bfad2/pykef-1.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48d3a4fa411d6367a8ac1b7dfd2ac271", "sha256": "9d592f39035c42b247da29be037b27f3c8fc4bd92efd2b95ebcd5df83357aa47" }, "downloads": -1, "filename": "pykef-1.3.0.tar.gz", "has_sig": false, "md5_digest": "48d3a4fa411d6367a8ac1b7dfd2ac271", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5434, "upload_time": "2018-12-03T22:29:10", "url": "https://files.pythonhosted.org/packages/4e/03/d15c559b485594a57c3af2b24114d098d22c78b2eec1937b2901fe761348/pykef-1.3.0.tar.gz" } ] }