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

Hey guys. Just uploaded the new version.
Hope it will work well.

Unfortunately you have to add a bridge to let your devices be discovered and assigned to it.
Just look at the readme.

Have fun

1 Like

Thanks for this new version. I have 4x P100 and only two were added to inbox. These 2 are working but let’s wait some time to see if they do experience delay problems like in previous versions.

The other 2 were not in the inbox and when I try to add them manually there is no place I can specify the bridge, so they do not work.

The new definition process is a bit confusing. 1st discovery, 2nd manual IP edit. Can this be simplified ?

Hi Hugo,
can you check the Firmware Version of your devices with Tapo-App? Not Update just sent me the info for testing.
Look at the error log when scanning for new devices.
I now just tested 2 other devices with older firmware and i discovered they have other modell-naming. I think this could be the problem for your devices too. In this case a Firmware-Update could fix the issue but it’s better if i handle this different modell-names in my source-code.
Unfortunately the cloud didn’t return the local ip of your devices so you have to add it manually. Im not very happy with that solution too.

Hi Chris, all my devices were @ 1.4.5.

After updating to 1.4.9 exactly the same symptom. The binding only finds the same 2 P100’s and the other 2:

  1. cannot be added manually (can’t add the bridge)
  2. Are not found with manual scan (OH and IoT are in separate vlan’s and my firewall usually blocks OH scan)

Let me try to give an example of what manual add device could be. I use the Unifi binding and when I add a device, besides having to specify its IP or MAC address, I must also specify the bridge

Edit: I’m using the UI to add things & items. Shall I use conf folder instead ?

Thanks for your hints Hugo. :+1:
Uploaded a new version where both should be fixed.

For your Information:

  • Configuration with UI will be prefered.
  • Devices are not discovered by oh-scan of your network or udp or anything else. This are all devices wich are conneted with your Tapo-Account (Cloud) even if they are not in your local network. This is why the ip-address has to be set manually.
2 Likes

Using this latest jar my missing 2x P100’s appeared in the inbox.

I’ve also tried to add one P100 manually and this worked (in one step). IMHO automatic discovery is useless because it does not perform a complete job.

Now all my 4x P100’s are working. Let’s wait one week to see if no other problems emerge. It would be good if others could also test.

Although UI seems to be great to define Tapo things I don’t know if it is mandatory or not to be also able to configure the binding using .thing files.

Thanks for the update! Just did the manual installation. I share the same opinion as moody, its a bit wonky that you have to manually set the correct IP address through the UI for every device.

Also it would be great to be able to set it up through config files.
My system runs on docker and only with config files, this gives me the flexibility to easily move the system without a lot of work.

It seems I have the same issue, installed it around 20:45 (red line) and as you can see moments after that my CPU starts to rise.

Will keep you posted, however this is not looking good at the moment

I cannot retrace that. My CPU-Load is in Idle all time.
How many tapo-devices have you connected. Have you added rules or something to your items? Wich openhab version are you running?

In my case it’s running ok. No extra CPU, no extra RAM. I have a zigbee button controlling two lights in the same room, one zigbee and another connected to a Tapo P100. An early symptom of problems was the P100 light switching after the zigbee one (and increasing this delay over time), but now the P100 light is switching before the zigbee one (by a fraction of a second), which is a very good sign.

OH3.2.0.M3 running in QNAP, X86_64 platform, ZULU JDK11

Uploaded a new version again.
Did some code cleanup and improvements.
Cloud discovery has to be enabled in bridge-settings now.

Also added an “Universal Test-Device”. This supports only manual adding for an unknown device.
@junNGYM, @Kaoth.
You can try to add your device with this and then look in your log. The response will be written down as info message. Send me the results here an i can try to implement it, if possible.

I had to restart OH to implement the new version. No problems to report in the previous testing period.

Thanks for the upload!!

I own L510, L530 and P105. I could set up L510 and L530 successfully and here are the log lines I suppose that relates to the failure adding P105.

2021-10-31 02:50:13.825 [ERROR] [nhab.core.thing.binding.ThingFactory] - Thing factory (class org.openhab.binding.tapocontrol.internal.TapoControlThingHandler) returned null on create thing when it reports to support the thing type (tapocontrol:P105).
2021-10-31 02:50:13.826 [WARN ] [g.discovery.internal.PersistentInbox] - Cannot create thing. No binding found that supports creating a thing of type tapocontrol:P105.
2021-10-31 02:50:22.405 [ERROR] [nhab.core.thing.binding.ThingFactory] - Thing factory (class org.openhab.binding.tapocontrol.internal.TapoControlThingHandler) returned null on create thing when it reports to support the thing type (tapocontrol:P105).
2021-10-31 02:50:22.407 [WARN ] [g.discovery.internal.PersistentInbox] - Cannot create thing. No binding found that supports creating a thing of type tapocontrol:P105.

Same as yesterday. Another code optimzation.

@wrende
Test this version again. Limitet the number of httpConnections and queued requests now

@junNGYM
Mhh. Normaly the P105 should be included now.
Please use an “Universal Test device”, test and if it works send me the response output

Here’s the log I got by the “Universal Test device”. I masked location and ssid by xxx.

2021-10-31 04:43:13.929 [ERROR] [pocontrol.internal.device.TapoDevice] - (tapocontrol:Test_Device:515fef5477) Device has no brigde
2021-10-31 04:43:40.580 [INFO ] [.internal.device.TapoUniversalDevice] - (tapocontrol:Test_Device:515fef5477) received response {“error_code”:0,“result”:{“device_id”:“8022A2EAB0B3DD37D8159FDE84625C371E6049D8”,“fw_ver”:“1.3.2 Build 20210122 Rel. 57063”,“hw_ver”:“1.0.0”,“type”:“SMART.TAPOPLUG”,“model”:“P105”,“mac”:“C0-06-C3-30-91-17”,“hw_id”:“58070BD9D8ECC915CD3D6F20A2172712”,“fw_id”:“1D18AD293A25ABDE41405B20C6F98816”,“oem_id”:“495AC9D888EB711C42A28BECF62071CF”,“specs”:“JP”,“device_on”:false,“on_time”:0,“overheated”:false,“nickname”:“44K544Oe44O844OI44OX44Op44Kw”,“location”:“”,“avatar”:“plug”,“longitude”:xxx,“latitude”:xxx,“has_set_location_info”:true,“ip”:“192.168.3.24”,“ssid”:“xxx”,“signal_level”:3,“rssi”:-48,“region”:“Asia/Tokyo”,“time_diff”:540,“lang”:“ja_JP”}}
2021-10-31 04:44:08.073 [INFO ] [.internal.device.TapoUniversalDevice] - (tapocontrol:Test_Device:515fef5477) received response {“error_code”:0,“result”:{“device_id”:“8022A2EAB0B3DD37D8159FDE84625C371E6049D8”,“fw_ver”:“1.3.2 Build 20210122 Rel. 57063”,“hw_ver”:“1.0.0”,“type”:“SMART.TAPOPLUG”,“model”:“P105”,“mac”:“C0-06-C3-30-91-17”,“hw_id”:“58070BD9D8ECC915CD3D6F20A2172712”,“fw_id”:“1D18AD293A25ABDE41405B20C6F98816”,“oem_id”:“495AC9D888EB711C42A28BECF62071CF”,“specs”:“JP”,“device_on”:false,“on_time”:0,“overheated”:false,“nickname”:“44K544Oe44O844OI44OX44Op44Kw”,“location”:“”,“avatar”:“plug”,“longitude”:xxx,“latitude”:xxx,“has_set_location_info”:true,“ip”:“192.168.3.24”,“ssid”:“xxx”,“signal_level”:3,“rssi”:-49,“region”:“Asia/Tokyo”,“time_diff”:540,“lang”:“ja_JP”}}

Thanks will install the new version later.

The current version is actually stable, ok it has peaks in CPU but not that it will break openhab like previous version.
CPU over 7 days:

Version OpenHab: 3.2.0.M3

If you want to see the difference, didn’t add anything else:
CPU over 15 days:

@junNGYM
Thanks for your log. Device should work now. Just forgot to add P105 to xml.

Uploaded a new version again:
Revised device error handling and did some code optimizations again.
Review remarks of pull request processed. Looks good that this version can be merged in official branch :slight_smile:

Hello Chris,

I used the test device to connect the LED strip (Tapo L900).
That also worked wonderfully. I could do the strip
turn on:

2021-11-02 13: 55: 44.764 [INFO] [openhab.event.ItemCommandEvent] - Item 'TapoUniversalTestDevice_LightOn' received command ON
2021-11-02 13: 55: 44.774 [INFO] [penhab.event.ItemStatePredictedEvent] - Item 'TapoUniversalTestDevice_LightOn' predicted to become ON
2021-11-02 13: 55: 44.782 [INFO] [openhab.event.ItemStateChangedEvent] - Item 'TapoUniversalTestDevice_LightOn' changed from OFF to ON
2021-11-02 13: 55: 48.710 [INFO] [openhab.event.ItemCommandEvent] - Item 'TapoUniversalTestDevice_LightOn' received command OFF
2021-11-02 13: 55: 48.714 [INFO] [penhab.event.ItemStatePredictedEvent] - Item 'TapoUniversalTestDevice_LightOn' predicted to become OFF
2021-11-02 13: 55: 48.718 [INFO] [openhab.event.ItemStateChangedEvent] - Item 'TapoUniversalTestDevice_LightOn' changed from ON to OFF

Dimming:

2021-11-02 13: 57: 24.186 [INFO] [openhab.event.ItemCommandEvent] - Item 'TapoUniversalTestDevice_Brightness' received command 40
2021-11-02 13: 57: 24.198 [INFO] [penhab.event.ItemStatePredictedEvent] - Item 'TapoUniversalTestDevice_Brightness' predicted to become 40
2021-11-02 13: 57: 24.205 [INFO] [openhab.event.ItemStateChangedEvent] - Item 'TapoUniversalTestDevice_Brightness' changed from 1 to 40
2021-11-02 13: 58: 03.146 [INFO] [openhab.event.ItemCommandEvent] - Item 'TapoUniversalTestDevice_Brightness' received command 1
2021-11-02 13: 58: 03.149 [INFO] [penhab.event.ItemStatePredictedEvent] - Item 'TapoUniversalTestDevice_Brightness' predicted to become 1
2021-11-02 13: 58: 03.152 [INFO] [openhab.event.ItemStateChangedEvent] - Item 'TapoUniversalTestDevice_Brightness' changed from 40 to 1

Colour:

2021-11-02 14: 01: 18.204 [INFO] [openhab.event.ItemCommandEvent] - Item 'TapoUniversalTestDevice_Color' received command 176,100,1
2021-11-02 14: 01: 18.216 [INFO] [penhab.event.ItemStatePredictedEvent] - Item 'TapoUniversalTestDevice_Color' predicted to become 176,100,1
2021-11-02 14: 01: 18.223 [INFO] [openhab.event.ItemStateChangedEvent] - Item 'TapoUniversalTestDevice_Color' changed from 175,100.1 to 176,100.1
2021-11-02 14: 01: 18.405 [INFO] [openhab.event.ItemCommandEvent] - Item 'TapoUniversalTestDevice_Color' received command 186,100,1
2021-11-02 14: 01: 18.410 [INFO] [penhab.event.ItemStatePredictedEvent] - Item 'TapoUniversalTestDevice_Color' predicted to become 186,100,1
2021-11-02 14: 01: 18.414 [INFO] [openhab.event.ItemStateChangedEvent] - Item 'TapoUniversalTestDevice_Color' changed from 176,100.1 to 186,100.1
2021-11-02 14: 01: 18.610 [INFO] [openhab.event.ItemCommandEvent] - Item 'TapoUniversalTestDevice_Color' received command 200,100,1
2021-11-02 14: 01: 18.615 [INFO] [penhab.event.ItemStatePredictedEvent] - Item 'TapoUniversalTestDevice_Color' predicted to become 200,100,1
2021-11-02 14: 01: 18.619 [INFO] [openhab.event.ItemStateChangedEvent] - Item 'TapoUniversalTestDevice_Color' changed from 186,100.1 to 200,100.1
2021-11-02 14: 01: 19.655 [INFO] [openhab.event.ItemStateChangedEvent] - Item 'TapoUniversalTestDevice_Color' changed from 200,100.1 to 176,100.1

Signal strength:

2021-11-02 13: 58: 03.262 [INFO] [openhab.event.ItemStateChangedEvent] - Item 'TapoUniversalTestDevice_Signalstarke' changed from 3 to 2
2021-11-02 13: 58: 49.645 [INFO] [openhab.event.ItemStateChangedEvent] - Item 'TapoUniversalTestDevice_Signalstarke' changed from 2 to 3

Openhab log:


2021-11-02 14:11:49.694 [INFO ] [.internal.device.TapoUniversalDevice] - (tapocontrol:Test_Device:c0c1abc534:baa4de96d2) received response {"result":{"device_id":"80236DDE96924DD747D6FE9A683ADE741EBD2CC6","fw_ver":"1.0.6 Build 210823 Rel.180931","hw_ver":"1.0","type":"SMART.TAPOBULB","model":"L900","mac":"XX-XX-XX-XX-XX-39","hw_id":"17A075F2055FD95D99BE012EB439F21C","fw_id":"7BECA9DC454565672FEC87D1104F9972","oem_id":"8807B384544C42EFE1B0ABB0C45CAA8E","color_temp_range":[9000,9000],"overheated":false,"ip":"192.168.XXX.XXX","time_diff":60,"ssid":"XXXXXXXXXXXX","rssi":-51,"signal_level":2,"latitude":000008,"longitude":130002,"lang":"de_DE","avatar":"light_strip","region":"Europe/Berlin","specs":"","nickname":"SW50ZWxsakhcnsgtepcMaWNodHN0cmVpZmVu","has_set_location_info":true,"lighting_effect":{"enable":0,"id":"TapoStrip_2q1Vio9sSjHmaC7JS9d30l","name":"Valentines","custom":0,"brightness":100,"display_colors":[[339,19,100],[19,50,100],[0,100,100],[339,40,100]]},"device_on":true,"brightness":1,"hue":176,"saturation":100,"color_temp":0,"default_states":{"type":"last_states","state":{"brightness":1,"hue":176,"saturation":100,"color_temp":0}}},"error_code":0}

If you could pack that into a finished device now, it would be great.

Hi Marcus,
looks good. No bigger problems to implement default functions like a light-bulb.

But i don’t know whats up with with lighning and color effects without a device.
Could help to write down this log results in a table with settings made on Tapo-App.
Theres another L920 Lightstrip available. Looks more interessting :slight_smile:

@Bigdesaster

Thank you for your support Chris and sorry to be late to give a feed back.

The result was like this. Seems to have some problem still.

2021-11-03 03:37:13.770 [WARN ] [pocontrol.internal.device.TapoDevice] - (tapocontrol:P100:c143319a2e) wrong device found - found: P105 with mac:C0-06-C3-30-91-17

My installation may be wrong. How can I check the installation is correct(How can I check the version of addon?). The MD5 checksum of the jar file is as follows.

efbdb0221123311b44f309a2857ce241  org.openhab.binding.tapocontrol-3.2.0-SNAPSHOT.jar