KEF


The kef platform allows you to control the KEF LS50 Wireless and KEF LSX speakers from Home Assistant.

Supported devices:

  • KEF LS50 Wireless
  • KEF LSX

To add KEF Speakers to your installation, add the following to your configuration.yaml file:

Configuration

# Example configuration.yaml entry
media_player:
 - platform: kef
   host: IP_ADDRESS
   type: LS50

Configuration Variables

host string Required

IP address of the device. Example: 192.168.1.32

type string Required

The speaker type, either LS50 or LSX.

name string (Optional, default: KEF)

The name of the device

port integer (Optional, default: 50001)

The port of the device

maximum_volume float (Optional, default: 0.5)

Maximum volume allowed. Number between 0 and 1.

volume_step float (Optional, default: 0.05)

Volume step when increasing volume.

inverse_speaker_mode boolean (Optional, default: false)

Switch channels from L/R to R/L.

standby_time integer (Optional)

The speakers automatically turn to standby mode after either 20 or 60 minutes. Leave out for the speaker to never go into standby mode.

supports_on integer (Optional, default: true)

LS50 Wireless with a serial number below LS50W13074K24L/R2G do not support turning on the speakers over the network. Set this to false if you have an older model.

Advanced - configuration example

# Example configuration.yaml entry
media_player:
 - platform: kef
   host: IP_ADDRESS
   type: LS50
   name: My KEF speakers
   maximum_volume: 0.6
   volume_step: 0.05

Services

Just like in the KEF Control app, we can change the digital signal processing (DSP) settings.

The speaker’s current DSP settings are updated automatically each hour and after each service call. To update the settings manually, use kef.update_dsp.

Service kef.update_dsp

Update all DSP settings.

Service data attribute Optional Description
entity_id No The entity_id of the KEF speaker.

Service kef.set_mode

Set the mode of the speaker. When optional attributes are left out, the setting will be unchanged.

Service data attribute Optional Description
entity_id No The entity_id of the KEF speaker.
desk_mode Yes “Desk mode” (true or false)
wall_mode Yes “Wall mode” (true or false)
phase_correction Yes “Phase correction” (true or false)
high_pass Yes “High-pass mode” (true or false)
sub_polarity Yes “Sub polarity” (- or +)
bass_extension Yes “Bass extension” selector (Less, Standard, or Extra)

Service kef.set_desk_db

Set the “Desk mode” slider of the speaker in dB.

Service data attribute Optional Description
entity_id No The entity_id of the KEF speaker.
db_value No Value of the slider (-6 to 0 with steps of 0.5)

Service kef.set_wall_db

Set the “Wall mode” slider of the speaker in dB.

Service data attribute Optional Description
entity_id No The entity_id of the KEF speaker.
db_value No Value of the slider (-6 to 0 with steps of 0.5)

Service kef.set_treble_db

Set desk the “Treble trim” slider of the speaker in dB.

Service data attribute Optional Description
entity_id No The entity_id of the KEF speaker.
db_value No Value of the slider (-2 to 2 with steps of 0.5)

Service kef.set_high_hz

Set the “High-pass mode” slider of the speaker in Hz.

Service data attribute Optional Description
entity_id No The entity_id of the KEF speaker.
hz_value No Value of the slider (50 to 120 with steps of 5)

Service kef.set_low_hz

Set the “Sub out low-pass frequency” slider of the speaker in Hz.

Service data attribute Optional Description
entity_id No The entity_id of the KEF speaker.
hz_value No Value of the slider (40 to 250 with steps of 5)

Service kef.set_sub_db

Set the “Sub gain” slider of the speaker in dB.

Service data attribute Optional Description
entity_id No The entity_id of the KEF speaker.
db_value No Value of the slider (-10 to 10 with steps of 1)

Notes

  • The LS50 Wireless was tested with the latest firmware of 19-11-2019: p6.3001902221.105039422 and older firmware: p6.2101809171.105039422
  • The LSX Wireless was tested with the latest firmware of 10-10-2019 v4.1: p20.4101909240.105243