[TapoControl] - Control Tapo Smart WiFi-Devices with Openhab - Official Support Thread

H200 always worked with tp-link binding. It stopped working on new revision where they now use the tapo cloud authentication (but does work locally when testing with python kasa).

I think what we need is a binding redo. We currently have Kasa and Tapo binding. The Kasa binding is dead, there’s no development for multiple years.

More and more device now require Tapo authentication like this binding require. Adding support for kasa device would be a very big plus.

I did try my hand at converting python-kasa to a binding but I can’t make head or tail about OpenHab way of doing things.

HA already have everything working for a while, the port from Python-Kasa to HA is very easy, and python-kasa is very actively updated

no one else with the same device?

I don’t have but try adding it manually instead of autodiscovery. I had to do that for other stuff like it. Easy fix until the binding is updated

I added manually… but it doesn’t work.

Probably the internal code of the device is different and is not recognized.

Very strange. I left it for a couple of days as I needed to look at other stuff. When I came back, the binding successfully to install itself. Thanks for sharing your experiences with this binding.

Glad to hear it’s working for you now - enjoy!

Can you increase logging for tapocontrol and do a scan for new devices, and attach the logs here. Looking at the binding code, if it’s a new device ID, it should be relatively easy to add.

Looking at some logs here, my kasa devices are detected, but not ‘supported’:

2025-08-29 16:17:16.924 \[DEBUG\] \[ernal.discovery.TapoDiscoveryService\] - Discovery-Service unsupported device discovered ‘Tapo HS11  (Ender 3 Pro)’
2025-08-29 16:17:16.924 \[DEBUG\] \[ernal.discovery.TapoDiscoveryService\] - Discovery-Service unsupported device discovered ‘Tapo HS10  (ArcaOS M73)’
2025-08-29 16:17:16.924 \[DEBUG\] \[ernal.discovery.TapoDiscoveryService\] - Discovery-Service unsupported device discovered ‘Tapo HS10  (Laundry Dryer)’
2025-08-29 16:17:16.924 \[DEBUG\] \[ernal.discovery.TapoDiscoveryService\] - Discovery-Service unsupported device discovered ‘Tapo HS10  (ArcaOS M710)’
2025-08-29 16:17:16.937 \[DEBUG\] \[ernal.discovery.TapoDiscoveryService\] - Discovery-Service unsupported device discovered ‘Tapo HS10  (Dishwasher)’

I’ll take a look how simple it is to add support for Kasa devices, and if it’s easy - look to sync things up against kasa-python to add more devices.

Hi Paul,

If you’re able to incorporate the H200 too that would be great. Logs for scanning on my net produces

14:00:20.952[DEBUG] [org.openhab.binding.tapocontrol.internal.discovery.TapoDiscoveryService] - Discovery-Service device discovered but is offline 'Tapo P110 SmartPlug (Hall Xmas lights)'
14:00:20.953[DEBUG] [org.openhab.binding.tapocontrol.internal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo H200 (Tapo_Hub_0038)'
14:00:20.954[DEBUG] [org.openhab.binding.tapocontrol.internal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo C225 (Tapo_C225_Lounge)'

Al

that would be the best. If we can have one binding that control both kasa and tapo devices (since they are moving more and more to the tapo authentication anyway), would solve many problem we have now.

Quick question, does your binding talk directly to the device using tapo authentication or you go though a cloud api?

If you need anything, log, python-kasa log, whatever. I currently have 89 devices connected in kasa with 2 camera on top in tapo. Some are old kasa and some are the new kasa that use tapo authentication. Like the new dual light switch dimmer + fan controller (KS240) that is using child device. I’m currently doing a contraption through home assistant with nodered to have it working in openhab.

discovery log

2025-08-29 09:58:05.605 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_9A19)'
2025-08-29 09:58:05.605 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS22  (Chambre 4)'
2025-08-29 09:58:05.605 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS22  (Salon)'
2025-08-29 09:58:05.605 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS20  (Sous marche)'
2025-08-29 09:58:05.605 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS20  (Porte Avant)'
2025-08-29 09:58:05.605 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_6CBC)'
2025-08-29 09:58:05.606 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_CA85)'
2025-08-29 09:58:05.606 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS22  (Bureau)'
2025-08-29 09:58:05.606 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_6E15)'
2025-08-29 09:58:05.606 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_FB1D)'
2025-08-29 09:58:05.606 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_A6CC)'
2025-08-29 09:58:05.606 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_666A)'
2025-08-29 09:58:05.606 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_A0BD)'
2025-08-29 09:58:05.606 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_67C6)'
2025-08-29 09:58:05.606 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS22  (Table Salon)'
2025-08-29 09:58:05.606 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_40A9)'
2025-08-29 09:58:05.606 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_8CFD)'
2025-08-29 09:58:05.607 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_6D52)'
2025-08-29 09:58:05.607 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_FEBE)'
2025-08-29 09:58:05.607 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_94C7)'
2025-08-29 09:58:05.607 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KS22  (Passage sous-sol)'
2025-08-29 09:58:05.607 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_5D8D)'
2025-08-29 09:58:05.607 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_8D91)'
2025-08-29 09:58:05.607 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo C225  (Sous-sol)'
2025-08-29 09:58:05.607 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS20  (Chambre 4 Garde Robe)'
2025-08-29 09:58:05.607 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_6E1F)'
2025-08-29 09:58:05.607 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_A509)'
2025-08-29 09:58:05.607 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_FFFB)'
2025-08-29 09:58:05.607 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_65D4)'
2025-08-29 09:58:05.608 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_8DCB)'
2025-08-29 09:58:05.608 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS20  (Marche)'
2025-08-29 09:58:05.608 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS20  (interieur garage)'
2025-08-29 09:58:05.608 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_6800)'
2025-08-29 09:58:05.608 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_65CC)'
2025-08-29 09:58:05.608 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_A61E)'
2025-08-29 09:58:05.608 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_8C8A)'
2025-08-29 09:58:05.608 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_3D07)'
2025-08-29 09:58:05.608 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS20  (Passage)'
2025-08-29 09:58:05.608 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KS22  (Cuisine)'
2025-08-29 09:58:05.608 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_9867)'
2025-08-29 09:58:05.608 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS20  (Lavabo)'
2025-08-29 09:58:05.609 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KS24  (Smart Device)'
2025-08-29 09:58:05.609 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_6EC7)'
2025-08-29 09:58:05.609 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_FB90)'
2025-08-29 09:58:05.609 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS20  (Entrée)'
2025-08-29 09:58:05.609 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_A2B8)'
2025-08-29 09:58:05.609 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_8979)'
2025-08-29 09:58:05.609 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS20  (Dehors arrière)'
2025-08-29 09:58:05.609 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KS22  (Salle de bain SS)'
2025-08-29 09:58:05.609 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo C225  (Salon)'
2025-08-29 09:58:05.609 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS22  (Atelier)'
2025-08-29 09:58:05.609 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo HS20  (Salle de bain SS Vanité)'
2025-08-29 09:58:05.609 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_9665)'
2025-08-29 09:58:05.610 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KS22  (Salle de bain)'
2025-08-29 09:58:05.610 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_0084)'
2025-08-29 09:58:05.610 [DEBUG] [ernal.discovery.TapoDiscoveryService] - Discovery-Service unsupported device discovered 'Tapo KP20  (TP-LINK_Smart Plug_6F84)'

I intending to look at extending the tapo binding… seems most of the hard work has been done…

Edit: looking at some of the python-kasa code, for devices like my old Kasa HS100 and HS110 looks like I’ll need to implement the equivalent of python-kasa/kasa/transports/xortransport.py at 0cd0434160d2387d770af5a570daf5a004691ff9 · python-kasa/python-kasa · GitHub as the current protocols (Direct HTTP, Secured HTTP Protocol, Secured KLAP HTTP Protocol) don’t work with legacy devices.

1 Like

We could assume it works the same as the H100 hub? Is it a hub?

Looking at python-kasa/kasa/device_factory.py at 0cd0434160d2387d770af5a570daf5a004691ff9 · python-kasa/python-kasa · GitHub makes it seem like it uses a different transport protocol. So it probably isn’t that simple.

It’s a hub Paul. Similar function to the H100 from the product description (different physical format, more sensors can be linked) but also allows cameras to be linked - though I don’t think cameras could be integrated with OH. No idea on the Comms, but I have a unit so, with clear guidance, would be more than happy to run any tests or generate any additional log data

It is available under HA so, if I understand some of the previous threads, integrating the Kasa-Python that HA employs into OH might simplify getting the H200 linked

Thanks - I don’t see how it would be possible to utilise a python library from within a java based app like OpenHAB. Best I can see is using the python-kasa code for inspiration. I’ll try find some time to look at the python code for the h200 auth and see how the existing openhab code could be modified to support it.

Thanks Paul - that’s why I said about clear guidance, things like the structural differences, limitations and functions between Python and Java are a complete mystery to me - give me Fortran and I’ve got a clue, beyond that….!

Al

hahah I’m actually not that good with Java, amazing what you can do with Google and determination though :slight_smile:

yes the old one use the kasa protocol. We would need to implement them like in the tplink binding. I tried to understand how openhab work with binding in the past and I can’t make head or tail. I do know java, but I think the concept elude me.

We could see how python-kasa do the check and implement it in the discovery binding. We could also add a 4th connection type which would be kasa (whatever the name) and skip the tapo cloud then.

I also saw that python kasa connect directly to device with the tapo cloud authentication. Unsure if the openhab binding connect to the cloud api or directly.

edit: As for python, we can call python script within java using jython. I know that we already have python scripting support in Openhab since Openhab 3 and it moved away from jython in 5.0. Maybe we can leverage that?

Hi folks,

I added a new TAPO device S112 Smart Switch Module the tapocontrol binding. The device is a two channel relais switch, which has two modes, two seperate switches or motor control for blinds. I tested it in my productive environment and it works fine for me.

If you want to help me testing the binding you can download it from here.
Some important information upfront:

  1. it only works on the newest 5.1 snapshot release (version issues on older versions)
  2. as for other devices, you have to configure it in Tapo first. If it is running from there it should be detected from the binding (don’t forget to add the Cloud Cloud Login).
  3. There are three channels where Output 1/2 are used if the device is configured as two seperate switches and the Rollershutter channel for the Rollo-Modus (maybe called blind-mode in english).
  4. Use Switch Items for the switch channels and rollershutter item for the rollershutter channel

All my Tapo Socket P100 do not work since this morning. The Binding is not able to login and stays Offline. Maybe there was an update of the devices this night. It worked without any problems till yesterday. All my other Tapo devices (H100, L510, L920, P115, S210, S220, T110 and S112) work fine and are all Online.
Here are the logs:

15:08:33.104 [TRACE] [l.devices.wifi.TapoBaseDeviceHandler] - (tapocontrol:P100:684744c1a0:59502dd34b) schedulerAction
15:08:33.104 [DEBUG] [l.devices.wifi.TapoBaseDeviceHandler] - (tapocontrol:P100:684744c1a0:59502dd34b) check if logged in but is not
15:08:33.119 [TRACE] [ernal.api.protocol.klap.KlapProtocol] - (tapocontrol:P100:684744c1a0:59502dd34b / HTTP-KLAP) login to device
15:08:33.120 [TRACE] [ternal.api.protocol.klap.KlapSession] - reset KlapSession
15:08:33.121 [TRACE] [ternal.api.protocol.klap.KlapSession] - (tapocontrol:P100:684744c1a0:59502dd34bKLAP-Session) sending bytes'da8c7d1636a3a02117dd79badaff5e35 to 'http://192.168.178.91:80/app/handshake1' 
15:08:33.128 [DEBUG] [ternal.api.protocol.klap.KlapSession] - (tapocontrol:P100:684744c1a0:59502dd34bKLAP-Session) invalid handshake1 response 403
15:08:33.129 [DEBUG] [rol.internal.api.TapoDeviceConnector] - (tapocontrol:P100:684744c1a0:59502dd34b / DeviceConnector) exception while login '@text/error-binding-http-response [ "9001" ]'
15:08:33.129 [DEBUG] [rol.internal.api.TapoDeviceConnector] - (tapocontrol:P100:684744c1a0:59502dd34b / DeviceConnector) handle error '@text/error-binding-http-response [ "9001" ]'
15:08:33.131 [TRACE] [ternal.api.protocol.klap.KlapSession] - reset KlapSession
15:08:33.132 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'tapocontrol:P100:684744c1a0:59502dd34b' changed from OFFLINE (COMMUNICATION_ERROR): @text/no-error to OFFLINE (COMMUNICATION_ERROR): invalid http-response (9001)

My Versions:
openhab: 5.1 snapshot
tapocontrol binding: 5.1 snapshot
Tapo P100 Hardware Version: 2.0
Tapo P100 Firmwareversion 1.4.0 Build 250901 Rel 175625
What I have tried allready:

  • Restart openhab
  • Remove and Add the thing
  • Try it in my development environment

Somebody else out there with the same problem?

In the meanwhile I read in the IOBroker forum this morning that they have the same problem with this new FW of P100. I fear that this is only the first device with this new FW and a new Authentification and others will follow.

2 Likes

Hi folks, I found a magic botton in the Tapo APP. It is in the profile section and is called "Third-Party Compatibility (“Kopatibilität mit Drittanbietern” in german)”. If you switch that on everything works again. I don’t know now what this switch realy does but I think they keep the interace stable with this switch. We will see in the future. Thx to Test Adapter TP-Link Tapo forum.

2 Likes

Thank you so much! Had the same issue and found this. :+1:

Worked like a charm!