2024-01-29 21:17:20 +01:00

222 lines
4.5 KiB
Markdown

---
title: TP-Link Smart Home
description: Instructions on integrating TP-Link Smart Home Devices to Home Assistant.
ha_category:
- Hub
- Light
- Sensor
- Switch
ha_release: 0.89
ha_iot_class: Local Polling
ha_config_flow: true
ha_codeowners:
- '@rytilahti'
- '@thegardenmonkey'
- '@bdraco'
- '@sdb9696'
ha_domain: tplink
ha_platforms:
- diagnostics
- light
- sensor
- switch
ha_dhcp: true
ha_quality_scale: platinum
ha_integration_type: integration
---
The `tplink` integration allows you to control your [TP-Link Kasa Smart Home Devices](https://www.tp-link.com/kasa-smart/) and [TP-Link Tapo Devices](https://www.tapo.com/) 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](https://python-kasa.readthedocs.io/en/latest/cli.html#provisioning) or by adding it to the official Kasa or Tapo app before trying to add them to Home Assistant.
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.
{% include integrations/config_flow.md %}
## Supported Devices
See [Supported Devices in python-kasa](https://github.com/python-kasa/python-kasa#supported-devices) for an up to date list.
Devices not listed below may work but if you encounter issues submit a bug report to [python-kasa](https://github.com/python-kasa/python-kasa).
### Not requiring authentication
#### Plugs
- HS100
- HS103
- HS105
- HS107
- HS110
- KP100
- KP105
- KP115
- KP125
- KP401
- EP10
- EP25 (Hardware version < 2.6)
#### Power Strips
- EP40
- HS300
- KP303
- KP200
- KP400
- KP405
#### Wall switches
- ES20M
- HS200
- HS210
- HS220
- KS200M
- KS220M
- KS230
#### Bulbs
- EP40
- LB100
- LB110
- LB120
- LB130
- LB230
- KL50
- KL60
- KL110
- KL120
- KL125
- KL130
- KL135
#### Light strips
- KL400
- KL420
- KL430
### Requiring authentication
#### Plugs
- EP25 (Hardware version >= 2.6)
- KP125M
- P110
- HS100 (UK Hardware version 4.1 with firmware 1.1.0)
#### Wall switches
- KS205
- KS225
#### Bulbs
- L510B
- L530E
#### Light strips
- L900-5
- L900-10
- L920
#### Power Strips
- P300
## Light strip effects
Light strip effects are currently only supported for the device types not requiring authentication.
### 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 |
```yaml
#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
```
### Sequence 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 |
| `repeat_times` | Repetitions (0 for continuous) |
| `transition` | Transition |
| `spread` | Speed of spread |
| `direction` | Direction |
```yaml
#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
```