This is a Homebridge plug-in based on the Python-Kasa API Library to interact with TP-Link Kasa/Tapo Devices.
This plug-in will automatically discover your TP-Link Kasa/Tapo Devices on your network locally only and configure them to be used in HomeKit.
Automatic Discovery may be possible only for some devices. If your device is not discovered automatically, try adding the IP Address into the Manual Devices List. Some newer devices require the Username and Password for your TP-Link Kasa/Tapo Cloud Account. Credentials can be enabled and provided in the plug-in settings.
- Homebridge Supported Versions: 1.8.0 and 2.0.0-beta.0 or later.
- Node.js Supported Versions: 20, 22, and 24.
- Python Supported Versions: 3.11, 3.12, and 3.13.
- A supported Kasa/Tapo device.
- Enabling Third Party Compatibility in the Tapo/Kasa App can improve device compatibility.
- I currently have used this plug-in with the HS300 (US) Power Strip and the KP115 (US) Plug. All other devices are yet to be tested and fully supported. If you have a device that is a plug, power strip, wall switch, bulb, or light strip and it does work as expected in HomeKit, please let me know and I can add it to the list of tested and supported devices. I don't have a lot of devices so cannot fully test everything.
- Automatically discover TP-Link Kasa/Tapo Devices locally only on your network.
- Currently Plugs, Power Strips, Wall Switches, Bulbs, and Light Strips are supported by the plug-in and added to Homebridge.
- This plug-in will by default filter out Native HomeKit/Matter Devices, this can be disabled to implement all supported devices on the network if desired.
- Change Device States for Plugs, Change Device States for Power Strips, Change Device State and Supports Dimming for Wall Switches, Change Device State and Supports Hue, Saturation, and Value (HSV) and Color Temperature Adjustments, and Dimming for Bulbs and Light Strips that support those options. The KS240 Dual Fan and Light Dimmer Wall Switch is also supported if Native HomeKit/Matter Device Filtering is Disabled.
- OutletInUse on devices that support energy monitoring can follow real device power usage even when the extra HomeKit energy characteristics are not enabled.
- Energy monitoring characteristics (Volts, Amperes, Watts, and KiloWattHours) can be enabled separately for supported devices.
- Supported Devices from the API are listed below, Devices with an asterisks ('*') next to the specific firmware will require the Username and Password for your TP-Link Kasa/Tapo Cloud Account to connect and function correctly. If your device is not listed below, it does not mean it won't work, but there may be issues. NOTE - Not All Devices Listed Below Are Supported By This Plug-In. These Devices Are Supported By The Python-Kasa API Library And Could Be Supported By The Plug-In In The Future.
- Install from the Homebridge UI or with npm.
- Most users can install the plug-in, click Save, and restart Homebridge.
- On first startup, or any time the Python requirements change, the plug-in will verify Python, create/update the virtual environment, and install/update the required Python packages automatically.
npm install -g homebridge-kasa-python- Enable Credentials only if your devices require authentication. Some newer Kasa/Tapo devices will not work without the TP-Link Kasa/Tapo Cloud Account Username and Password.
- Manual Devices now only require the device host or IP Address. If discovery is not working, try the Manual Devices List and Additional Broadcast Addresses before assuming a device is unsupported.
- Hide HomeKit or Matter Devices is enabled by default so supported native HomeKit/Matter devices are not duplicated in Homebridge.
- Wait Time Update controls how long similar commands are combined before being sent to a device.
- Advanced Python Logging only shows detailed Python-side logs when Homebridge Debug Mode is enabled.
- Enable Energy Monitoring adds the extra HomeKit energy monitoring characteristics (Volts, Amperes, Watts, and KiloWattHours) for supported devices.
- OutletInUse for devices that support energy reporting is based on the device reported power usage, even when Enable Energy Monitoring is disabled.
- Outlet In Use Power Threshold defaults to 2 Watts and can be set as low as 0.001 in the configuration.
- OutletInUse is true when reported power is greater than the configured threshold and false when the reported power is less than or equal to the configured threshold.
- OutletInUse updates from energy reporting are debounced across two consecutive polling updates to help reduce noise from very small changes in reported power.
- Log Energy Monitoring Events enables logging of the extra energy characteristics only.
{
"bridge": {
"name": "Homebridge",
"username": "11:22:33:AA:BB:CC",
"port": 12345,
"pin": "001-02-003"
},
"description": "This is an example configuration file.",
"platforms": [
{
"platform": "KasaPython",
"name": "KasaPython",
"enableCredentials": true,
"username": "Username",
"password": "Password",
"enableEnergyMonitoring": true,
"powerThreshold": 1.0,
"logEnergyMonitoring": false,
"hideHomeKitMatter": true,
"pollingInterval": 5,
"discoveryPollingInterval": 300,
"offlineInterval": 7,
"waitTimeUpdate": 100,
"pythonPath": "/usr/bin/python3",
"advancedPythonLogging": false,
"additionalBroadcasts": [
"192.168.1.255",
"192.168.2.255"
],
"manualDevices": [
{
"host": "192.168.1.100"
},
{
"host": "192.168.2.100"
}
],
"excludeMacAddresses": [
"AA:BB:CC:11:22:33",
"CC:BB:AA:33:22:11"
],
"includeMacAddresses": [
"DD:EE:FF:44:55:66",
"FF:EE:DD:66:55:44"
]
}
],
"accessories": []
}Some newer Kasa devices require authentication. These are marked with [*] in the list below.
Hub-Connected Devices may work across TAPO/KASA branded hubs even if they don't work across the native apps.
- EP10
- Hardware: 1.0 (US) / Firmware: 1.0.2
- EP25
- Hardware: 1.0 (US) / Firmware: 1.0.14
- Hardware: 2.6 (US) / Firmware: 1.0.1[*]
- Hardware: 2.6 (US) / Firmware: 1.0.2[*]
- HS100
- Hardware: 1.0 (UK) / Firmware: 1.2.6
- Hardware: 4.1 (UK) / Firmware: 1.1.0[*]
- Hardware: 1.0 (US) / Firmware: 1.2.5
- Hardware: 2.0 (US) / Firmware: 1.5.6
- HS103
- Hardware: 1.0 (US) / Firmware: 1.5.7
- Hardware: 2.1 (US) / Firmware: 1.1.2
- Hardware: 2.1 (US) / Firmware: 1.1.4
- HS105
- Hardware: 1.0 (US) / Firmware: 1.5.6
- HS110
- Hardware: 1.0 (EU) / Firmware: 1.2.5
- Hardware: 4.0 (EU) / Firmware: 1.0.4
- Hardware: 1.0 (US) / Firmware: 1.2.6
- KP100
- Hardware: 3.0 (US) / Firmware: 1.0.1
- KP105
- Hardware: 1.0 (UK) / Firmware: 1.0.5
- Hardware: 1.0 (UK) / Firmware: 1.0.7
- KP115
- Hardware: 1.0 (EU) / Firmware: 1.0.16
- Hardware: 1.0 (US) / Firmware: 1.0.17
- Hardware: 1.0 (US) / Firmware: 1.0.21
- KP125
- Hardware: 1.0 (US) / Firmware: 1.0.6
- KP125M
- Hardware: 1.0 (US) / Firmware: 1.1.3[*]
- Hardware: 1.0 (US) / Firmware: 1.2.3[*]
- KP401
- Hardware: 1.0 (US) / Firmware: 1.0.0
- EP40
- Hardware: 1.0 (US) / Firmware: 1.0.2
- EP40M
- Hardware: 1.0 (US) / Firmware: 1.1.0[*]
- HS107
- Hardware: 1.0 (US) / Firmware: 1.0.8
- HS300
- Hardware: 1.0 (US) / Firmware: 1.0.10
- Hardware: 1.0 (US) / Firmware: 1.0.21
- Hardware: 2.0 (US) / Firmware: 1.0.12
- Hardware: 2.0 (US) / Firmware: 1.0.3
- KP200
- Hardware: 3.0 (US) / Firmware: 1.0.3
- KP303
- Hardware: 1.0 (UK) / Firmware: 1.0.3
- Hardware: 2.0 (US) / Firmware: 1.0.3
- Hardware: 2.0 (US) / Firmware: 1.0.9
- KP400
- Hardware: 1.0 (US) / Firmware: 1.0.10
- Hardware: 2.0 (US) / Firmware: 1.0.6
- Hardware: 3.0 (US) / Firmware: 1.0.3
- Hardware: 3.0 (US) / Firmware: 1.0.4
- ES20M
- Hardware: 1.0 (US) / Firmware: 1.0.11
- Hardware: 1.0 (US) / Firmware: 1.0.8
- HS200
- Hardware: 2.0 (US) / Firmware: 1.5.7
- Hardware: 3.0 (US) / Firmware: 1.1.5
- Hardware: 5.0 (US) / Firmware: 1.0.11
- Hardware: 5.0 (US) / Firmware: 1.0.2
- Hardware: 5.26 (US) / Firmware: 1.0.3[*]
- HS210
- Hardware: 1.0 (US) / Firmware: 1.5.8
- Hardware: 2.0 (US) / Firmware: 1.1.5
- Hardware: 3.0 (US) / Firmware: 1.0.10
- HS220
- Hardware: 1.0 (US) / Firmware: 1.5.7
- Hardware: 2.0 (US) / Firmware: 1.0.3
- Hardware: 3.26 (US) / Firmware: 1.0.1[*]
- KP405
- Hardware: 1.0 (US) / Firmware: 1.0.5
- Hardware: 1.0 (US) / Firmware: 1.0.6
- KS200
- Hardware: 1.0 (US) / Firmware: 1.0.8
- KS200M
- Hardware: 1.0 (US) / Firmware: 1.0.10
- Hardware: 1.0 (US) / Firmware: 1.0.11
- Hardware: 1.0 (US) / Firmware: 1.0.12
- Hardware: 1.0 (US) / Firmware: 1.0.8
- KS205
- Hardware: 1.0 (US) / Firmware: 1.0.2[*]
- Hardware: 1.0 (US) / Firmware: 1.1.0[*]
- KS220
- Hardware: 1.0 (US) / Firmware: 1.0.13
- KS220M
- Hardware: 1.0 (US) / Firmware: 1.0.4
- KS225
- Hardware: 1.0 (US) / Firmware: 1.0.2[*]
- Hardware: 1.0 (US) / Firmware: 1.1.0[*]
- Hardware: 1.0 (US) / Firmware: 1.1.1[*]
- KS230
- Hardware: 1.0 (US) / Firmware: 1.0.14
- Hardware: 2.0 (US) / Firmware: 1.0.11
- KS240
- Hardware: 1.0 (US) / Firmware: 1.0.4[*]
- Hardware: 1.0 (US) / Firmware: 1.0.5[*]
- Hardware: 1.0 (US) / Firmware: 1.0.7[*]
- KL110
- Hardware: 1.0 (US) / Firmware: 1.8.11
- KL110B
- Hardware: 1.0 (UN) / Firmware: 1.8.11
- KL120
- Hardware: 1.0 (US) / Firmware: 1.8.11
- Hardware: 1.0 (US) / Firmware: 1.8.6
- KL125
- Hardware: 1.20 (US) / Firmware: 1.0.5
- Hardware: 2.0 (US) / Firmware: 1.0.7
- Hardware: 4.0 (US) / Firmware: 1.0.5
- KL130
- Hardware: 1.0 (EU) / Firmware: 1.8.8
- Hardware: 1.0 (US) / Firmware: 1.8.11
- KL135
- Hardware: 1.0 (US) / Firmware: 1.0.15
- Hardware: 1.0 (US) / Firmware: 1.0.6
- KL50
- Hardware: 1.0 (US) / Firmware: 1.1.13
- KL60
- Hardware: 1.0 (UN) / Firmware: 1.1.4
- Hardware: 1.0 (US) / Firmware: 1.1.13
- LB100
- Hardware: 1.0 (US) / Firmware: 1.8.11
- LB110
- Hardware: 1.0 (US) / Firmware: 1.8.11
- LB130
- Hardware: 1.0 (US) / Firmware: 1.8.11
- KL400L5
- Hardware: 1.0 (US) / Firmware: 1.0.5
- Hardware: 1.0 (US) / Firmware: 1.0.8
- KL400L10
- Hardware: 1.0 (US) / Firmware: 1.0.10
- KL420L5
- Hardware: 1.0 (US) / Firmware: 1.0.2
- KL430
- Hardware: 2.0 (UN) / Firmware: 1.0.8
- Hardware: 1.0 (US) / Firmware: 1.0.10
- Hardware: 2.0 (US) / Firmware: 1.0.11
- Hardware: 2.0 (US) / Firmware: 1.0.8
- Hardware: 2.0 (US) / Firmware: 1.0.9
- KH100
- Hardware: 1.0 (EU) / Firmware: 1.2.3[*]
- Hardware: 1.0 (EU) / Firmware: 1.5.12[*]
- Hardware: 1.0 (UK) / Firmware: 1.5.6[*]
- KE100
- Hardware: 1.0 (EU) / Firmware: 2.4.0[*]
- Hardware: 1.0 (EU) / Firmware: 2.8.0[*]
- Hardware: 1.0 (UK) / Firmware: 2.8.0[*]
All Tapo devices require authentication.
Hub-Connected Devices may work across TAPO/KASA branded hubs even if they don't work across the native apps.
- P100
- Hardware: 1.0.0 (US) / Firmware: 1.1.3
- Hardware: 1.0.0 (US) / Firmware: 1.3.7
- Hardware: 1.0.0 (US) / Firmware: 1.4.0
- P105
- Hardware: 1.0 (US) / Firmware: 1.2.5
- P110
- Hardware: 1.0 (AU) / Firmware: 1.3.1
- Hardware: 1.0 (EU) / Firmware: 1.0.7
- Hardware: 1.0 (EU) / Firmware: 1.2.3
- Hardware: 1.0 (UK) / Firmware: 1.3.0
- P110M
- Hardware: 1.0 (AU) / Firmware: 1.2.3
- Hardware: 1.0 (EU) / Firmware: 1.2.3
- P115
- Hardware: 1.0 (EU) / Firmware: 1.2.3
- Hardware: 1.0 (US) / Firmware: 1.1.3
- P125M
- Hardware: 1.0 (US) / Firmware: 1.1.0
- P135
- Hardware: 1.0 (US) / Firmware: 1.0.5
- Hardware: 1.0 (US) / Firmware: 1.2.0
- TP10
- Hardware: 1.0 (IT) / Firmware: 1.2.5
- TP15
- Hardware: 1.0 (US) / Firmware: 1.0.3
- P210M
- Hardware: 1.0 (US) / Firmware: 1.0.3
- P300
- Hardware: 1.0 (EU) / Firmware: 1.0.13
- Hardware: 1.0 (EU) / Firmware: 1.0.15
- Hardware: 1.0 (EU) / Firmware: 1.0.7
- P304M
- Hardware: 1.0 (UK) / Firmware: 1.0.3
- P306
- Hardware: 1.0 (US) / Firmware: 1.1.2
- P316M
- Hardware: 1.6 (US) / Firmware: 1.0.5
- P400M
- TP25
- Hardware: 1.0 (US) / Firmware: 1.0.2
- S210
- Hardware: 1.0 (EU) / Firmware: 1.9.0
- S220
- Hardware: 1.0 (EU) / Firmware: 1.9.0
- S500
- Hardware: 1.0 (US) / Firmware: 1.2.0
- S500D
- Hardware: 1.0 (US) / Firmware: 1.0.5
- S505
- Hardware: 1.0 (US) / Firmware: 1.0.2
- S505D
- Hardware: 1.0 (US) / Firmware: 1.1.0
- S515D
- Hardware: 1.6 (US) / Firmware: 1.0.4
- TS15
- Hardware: 1.0 (US) / Firmware: 1.2.2
- L430C
- Hardware: 1.0 (EU) / Firmware: 1.0.4
- L430P
- Hardware: 1.0 (EU) / Firmware: 1.0.9
- L510B
- Hardware: 3.0 (EU) / Firmware: 1.0.5
- L510E
- Hardware: 3.0 (US) / Firmware: 1.0.5
- Hardware: 3.0 (US) / Firmware: 1.1.2
- L530B
- Hardware: 3.0 (EU) / Firmware: 1.1.9
- L530E
- Hardware: 3.0 (EU) / Firmware: 1.0.6
- Hardware: 3.0 (EU) / Firmware: 1.1.0
- Hardware: 3.0 (EU) / Firmware: 1.1.6
- Hardware: 2.0 (TW) / Firmware: 1.1.1
- Hardware: 2.0 (US) / Firmware: 1.1.0
- L535E
- Hardware: 3.0 (EU) / Firmware: 1.1.8
- L630
- Hardware: 1.0 (EU) / Firmware: 1.1.2
- L900-10
- Hardware: 1.0 (EU) / Firmware: 1.0.17
- Hardware: 1.0 (US) / Firmware: 1.0.11
- L900-5
- Hardware: 1.0 (EU) / Firmware: 1.0.17
- Hardware: 1.0 (EU) / Firmware: 1.1.0
- L920-5
- Hardware: 1.0 (EU) / Firmware: 1.0.7
- Hardware: 1.0 (EU) / Firmware: 1.1.3
- Hardware: 1.0 (US) / Firmware: 1.1.0
- Hardware: 1.0 (US) / Firmware: 1.1.3
- L930-5
- Hardware: 1.0 (EU) / Firmware: 1.2.5
- Hardware: 1.0 (US) / Firmware: 1.1.2
- C100
- Hardware: 4.0 / Firmware: 1.3.14
- C110
- Hardware: 2.0 (EU) / Firmware: 1.4.3
- C210
- Hardware: 2.0 / Firmware: 1.3.11
- Hardware: 2.0 (EU) / Firmware: 1.4.2
- Hardware: 2.0 (EU) / Firmware: 1.4.3
- C220
- Hardware: 1.0 (EU) / Firmware: 1.2.2
- Hardware: 1.0 (EU) / Firmware: 1.2.5
- C225
- Hardware: 2.0 (US) / Firmware: 1.0.11
- C325WB
- Hardware: 1.0 (EU) / Firmware: 1.1.17
- C520WS
- Hardware: 1.0 (US) / Firmware: 1.2.8
- C720
- Hardware: 1.0 (US) / Firmware: 1.2.3
- TC65
- Hardware: 1.0 / Firmware: 1.3.9
- TC70
- Hardware: 3.0 / Firmware: 1.3.11
- D100C
- Hardware: 1.0 (US) / Firmware: 1.1.3
- D130
- Hardware: 1.0 (US) / Firmware: 1.1.9
- D230
- Hardware: 1.20 (EU) / Firmware: 1.1.19
- RV20 Max Plus
- Hardware: 1.0 (EU) / Firmware: 1.0.7
- RV30 Max
- Hardware: 1.0 (US) / Firmware: 1.2.0
- H100
- Hardware: 1.0 (AU) / Firmware: 1.5.23
- Hardware: 1.0 (EU) / Firmware: 1.2.3
- Hardware: 1.0 (EU) / Firmware: 1.5.10
- Hardware: 1.0 (EU) / Firmware: 1.5.5
- H200
- Hardware: 1.0 (EU) / Firmware: 1.3.2
- Hardware: 1.0 (EU) / Firmware: 1.3.6
- Hardware: 1.0 (US) / Firmware: 1.3.6
- S200B
- Hardware: 1.0 (EU) / Firmware: 1.11.0
- Hardware: 1.0 (US) / Firmware: 1.12.0
- S200D
- Hardware: 1.0 (EU) / Firmware: 1.11.0
- Hardware: 1.0 (EU) / Firmware: 1.12.0
- T100
- Hardware: 1.0 (EU) / Firmware: 1.12.0
- Hardware: 1.0 (US) / Firmware: 1.12.0
- T110
- Hardware: 1.0 (EU) / Firmware: 1.8.0
- Hardware: 1.0 (EU) / Firmware: 1.9.0
- Hardware: 1.0 (US) / Firmware: 1.9.0
- T300
- Hardware: 1.0 (EU) / Firmware: 1.7.0
- T310
- Hardware: 1.0 (EU) / Firmware: 1.5.0
- Hardware: 1.0 (US) / Firmware: 1.5.0
- T315
- Hardware: 1.0 (EU) / Firmware: 1.7.0
- Hardware: 1.0 (US) / Firmware: 1.8.0
- Huge thanks to rytilahti and all the developers at python-kasa for the Python-Kasa API, plasticrake for the Unofficial API documentation, and maxileith for Excellent Python Implementation.
