Skip to main content

A python implementation to interface Kef speakers over tcp/ip

Project description

Python interface to control KEF speakers

Supported: KEF LS50 Wireless (Requires firmware June 2018 or later)

Untested: KEF LSX

Features supported

  • Get and set volume
  • Mute and Unmute
  • Get and set source input
  • Get if the speakers are online
  • Automatically connects and disconnects when speakers goes online/offline
  • Turn off speaker

Features unfortunatly unsupported

  • 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.

Note: One workaround to turning on is to use IR commands to turn on. I have included a lirc config with all the keys on the remote. Note that each command has to be sent twice to work (at least for me).

Install

pip install pykef

Discussion

See home assistant thread

Examples

Setup:

host = '192.168.1.200'
port = 50001
speaker = KefSpeaker(host, port)

Set volume:

speaker.volume = 0.5 # %50 vol

Get volume:

volume = speaker.volume

Set source:

speaker.source = InputSource.AUX

Get source:

source = speaker.source

Mute:

speaker.volume = None
# Or
speaker.muted = True

Unmute (set to volume before mute):

speaker.muted = False

Step volume up

speaker.increseVolume() # 5% increase
speaker.increseVolume(0.10) # 10% increase

Step volume down

speaker.decreaseVolume() # 5% increase
speaker.decreaseVolume(0.10) # 10% increase

Turn off

speaker.turnOff()

How to

Upload new release:

  1. Update needed tools:
python3 -m pip install --user --upgrade setuptools wheel
  1. Build
python3 setup.py sdist bdist_wheel
  1. Upload (test)
twine upload --repository-url https://test.pypi.org/legacy/ dist/*

License

MIT License

Authors

  • Robin Grönberg

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pykef-1.3.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

pykef-1.3.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file pykef-1.3.0.tar.gz.

File metadata

  • Download URL: pykef-1.3.0.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for pykef-1.3.0.tar.gz
Algorithm Hash digest
SHA256 9d592f39035c42b247da29be037b27f3c8fc4bd92efd2b95ebcd5df83357aa47
MD5 48d3a4fa411d6367a8ac1b7dfd2ac271
BLAKE2b-256 4e03d15c559b485594a57c3af2b24114d098d22c78b2eec1937b2901fe761348

See more details on using hashes here.

File details

Details for the file pykef-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: pykef-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1

File hashes

Hashes for pykef-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1989116b500ec40ab39098e9604835fe50eb629cf032d6a9f332fc652d3f4031
MD5 152e3aaccc280bcdad75f92c5defff0c
BLAKE2b-256 8aa2df6eb56d204545c9ee5c4c6993dd9731c996196cdc0b92ec5bc5286bfad2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page