TP-Link Kasa Smart


The tplink integration allows you to control your TP-Link Smart Home Devices such as plugs, power strips, wall switches and bulbs.

You need to provision your newly purchased device to connect to your network before it can be added via the integration. This can be done either by using kasa command-line tool or by adding it to the official Kasa app before trying to add them to Home Assistant. If you use the app, do not upgrade the firmware if it presents the option to avoid blocking the local access by potential firmware updates.

There is currently support for the following device types within Home Assistant:

  • Light
  • Switch
  • Sensor

Configuration

Adding TP-Link Kasa Smart to your Home Assistant instance can be done via the user interface, by using this My button:

TP-Link Kasa Smart can be auto-discovered by Home Assistant. If an instance was found, it will be shown as “Discovered”, which you can select to set it up right away.

Manual configuration steps

Supported Devices

Plugs

  • HS100
  • HS103
  • HS105
  • HS110 (supports consumption sensors)
  • KP105
  • KP115 (supports consumption sensors)
  • KP125 (supports consumption sensors)

Strip (Multi-Plug)

  • HS107 (indoor 2-outlet)
  • HS300 (powerstrip 6-outlet) (supports consumption sensors)
  • KP303 (powerstrip 3-outlet)
  • KP400 (outdoor 2-outlet)
  • KP200 (indoor 2-outlet)
  • KP40 (outdoor 2-outlet)
  • EP40 (outdoor 2-outlet)

Wall Switches

  • HS200
  • HS210
  • HS220 (acts as a light)

Bulbs

  • LB100
  • LB110
  • LB120
  • LB130
  • LB230
  • KL110
  • KL120
  • KL125
  • KL130
  • KB130

Light Strips

  • KL400
  • KL420
  • KL430

Other bulbs may also work, but with limited color temperature range (2700-5000). If you find a bulb isn’t reaching the full-color temperature boundaries, submit a bug report to python-kasa.

Random Effect - Service tplink.random_effect

The light strips allow setting a random effect.

Service data attribute Description
entity_id The entity_id of the light strip to set the effect on
init_states Initial HSV sequence
backgrounds List of HSV sequences (Max 16)
segments List of segments (0 for all)
brightness Initial brightness
duration Duration
transition Transition
fadeoff Fade off
hue_range Range of hue
saturation_range Range of saturation
brightness_range Range of brightness
transition_range Range of transition
random_seed Random seed
#Example Service Call
service: tplink.random_effect
target:
  entity_id:
    - light.strip
data:
  init_states: 199,99,96
  backgrounds:
    - - 199
      - 89
      - 50
    - - 160
      - 50
      - 50
    - - 180
      - 100
      - 50
  segments: 0, 2, 4, 6, 8
  brightness: 90
  transition: 2000
  fadeoff: 2000
  hue_range: 340, 360
  saturation_range: 40, 95
  brightness_range: 90, 100
  transition_range: 2000, 6000
  random_seed: 80

Seqeuence Effect - Service tplink.sequence_effect

The light strips allow setting a sequence effect.

Service data attribute Description
entity_id The entity_id of the light strip to set the effect on
sequence List of HSV sequences (Max 16)
segments List of segments (0 for all)
brightness Initial brightness
duration Duration
transition Transition
spread Speed of spread
direction Direction
#Example Service Call
service: tplink.sequence_effect
target:
  entity_id:
    - light.strip
data:
  sequence:
    - - 340
      - 20
      - 50
    - - 20
      - 50
      - 50
    - - 0
      - 100
      - 50
  segments: 0, 2, 4, 6, 8
  brightness: 80
  transition: 2000
  spread: 1
  direction: 1