TP-Link Smart Home

The tplink integration allows you to control your TP-Link Kasa Smart Home Devices and TP-Link Tapo 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 or Tapo app before trying to add them to Home Assistant. Some apps for TP-Link’s other products, such as the Deco app, also allow you to add Kasa and Tapo devices. Since these devices use the same TP-Link Cloud Account for authorization, they work with this integration as well.

If your device is a newer Kasa or Tapo device it will require your TP-Link cloud username and password to authenticate for local access. If you have an older device that does not currently require authentication, you may consider disabling automatic firmware updates to keep it that way.

Configuration

To add the TP-Link Smart Home integration to your Home Assistant instance, use this My button:

TP-Link Smart Home can be auto-discovered by Home Assistant. If an instance was found, it will be shown as Discovered. You can then set it up right away.

Manual configuration steps

If it wasn’t discovered automatically, don’t worry! You can set up a manual integration entry:

  • Browse to your Home Assistant instance.

  • Go to Settings > Devices & Services.

  • In the bottom right corner, select the Add Integration button.

  • From the list, select TP-Link Smart Home.

  • Follow the instructions on screen to complete the setup.

Supported Devices

See Supported Devices in python-kasa for an up to date list that includes hardware and firmware versions.

Devices not listed below may work but if you encounter issues submit a bug report to python-kasa.

Note

The hub attached Tapo buttons S200B and S200D do not currently support alerting when the button is pressed.

Supported Kasa devices

  • Plugs: EP10, EP251, HS1002, HS103, HS105, HS110, KP100, KP105, KP115, KP125, KP125M1, KP401
  • Power Strips: EP40, EP40M1, HS107, HS300, KP200, KP303, KP400
  • Wall Switches: ES20M, HS2002, HS210, HS2202, KP405, KS200M, KS2051, KS220, KS220M, KS2251, KS230, KS2401
  • Bulbs: KL110, KL120, KL125, KL130, KL135, KL50, KL60, LB110
  • Light Strips: KL400L5, KL420L5, KL430
  • Hubs: KH1001
  • Hub-Connected Devices3: KE1001

Supported Tapo1 devices

  • Plugs: P100, P110, P110M, P115, P125M, P135, TP15
  • Power Strips: P300, P304M, TP25
  • Wall Switches: S500D, S505, S505D
  • Bulbs: L510B, L510E, L530E, L630
  • Light Strips: L900-10, L900-5, L920-5, L930-5
  • Cameras: C210, TC65
  • Hubs: H100, H200
  • Hub-Connected Devices3: S200B, S200D, T100, T110, T300, T310, T315

Unavailable entities

Some entities might be showing as Unavailable if they have been removed from the integration.

Total consumption

This entity is only reported by older kasa devices. Currently, Tapo devices and newer Kasa devices do not report total consumption, although briefly during 2024.6, they incorrectly reported today’s consumption as “total consumption.” You can safely delete this entity if it is reported as unavailable on a newer Kasa or Tapo device.

Update

This entity has been removed from the integration due to stability issues, calling the TPLink cloud API to check for updates. It will be replaced in a future release with a new Update entity, but if you have an Unavailable entity ID starting with binary_sensor. and ending with update, you can safely delete it.

Light effects

If light effects are supported by a device they can be selected from the bottom of the light card. They are currently not supported on Kasa bulbs.

Random Effect - Action tplink.random_effect

Light strips allow setting a random effect.

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 action
action: 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

Sequence Effect - Action tplink.sequence_effect

Light strips allow setting a sequence effect.

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
repeat_times Repetitions (0 for continuous)
transition Transition
spread Speed of spread
direction Direction
#Example action
action: 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

Removing the integration

This integration follows standard integration removal. No extra steps are required.

To remove an integration instance from Home Assistant

  1. Go to Settings > Devices & services and select the integration card.
  2. From the list of devices, select the integration instance you want to remove.
  3. Next to the entry, select the three-dot menu. Then, select Delete.
  1. Requires authentication

  2. Newer versions require authentication

  3. Devices may work across TAPO/KASA branded hubs