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

I highly recommend you to set up a backup that does a full copy of the sd card. In case of anything fails, you just copy the backup over your sd card and boom you’re back to your working version again.
I’m doing automatic backups once per week and it’s been useful more than once in the past : sd card failure, update gone wrong, …
Just be sure to test your backup with another sd card the first time to be sure it’s consistent :wink:
With that sort of backup, you’re never afraid of testing anything.

The fix has been there since October and it works. I’m also curious to know when will it be merged and why isn’t it yet merged.

How have you got it working then would love to know I’m using windows

I downloaded the binding from the description and uploaded it to the /usr/share/openhab/addons/ folder. I deleted the official binding and configured the KLAP protocol for the devices with the latest firmware.
I use Linux (CentOS) and only have P115 plugs and a P300 power strip, so your issues may be device or Windows-related.

My Tapo things or the binding doesn’t go offline

@Bigdesaster,

Any news on when the PR would be merged?

Thanks for the feedback

This is not in my hands.
Can’t do more than create a PR and resolve reviews.
Already pinged the OH-Maintainers but got no response.

2 Likes

hello @Bigdesaster, i’m trying to update the binding using the jar from repository, but all of them are not working.
i’ve compared the jar i download some months ago (4.1.0) and the size is around 480kb, but if i download again the 4.1.0 from the repo, the size is around 200 kb. in fact if i put this into the addons folder, openhab replies with a package error. same for 4.2.0.

2024-02-01 14:25:10.972 [ERROR] [Events.Framework                    ] - FrameworkEvent ERROR
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.tapocontrol [27]
  Unresolved requirement: Import-Package: com.google.gson; version="[2.10.0,3.0.0)"

	at org.eclipse.osgi.container.Module.start(Module.java:463) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1847) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1840) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1783) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1745) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1667) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) ~[org.eclipse.osgi-3.18.0.jar:?]
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345) ~[org.eclipse.osgi-3.18.0.jar:?]

i’m running OH on raspy and the version is: openHAB 4.0.0-SNAPSHOT - Build #3479.
could be this the problem?

Hi @Bigdesaster
I really appreciate your work.

Please keep us informed about any news.

Thanks.

On my openHAB Instance i only have the ability to change ip adress and refresh interval

Have you flagged the check box for advanced options?


yes but there are not more options

This still means that I have to upgrade my system to OH4 to get the latest binding? (fixing 1003 error)

The official release has the same issue. You could try manually installing the jar, but that didn’t work for me also.

@markymark
Then the .jar isn’t installed correctly and the serial version is used

@DarkoG
I think it’ the same for you

@putrid
Newest jar versions are working only for OH4.1 and one for 4.2. Sorry.

2 Likes

Hi @Bigdesaster, what do you mean with this?
I have uninstalled the official release binding and cleared the cache before copying the jar in the addons folder

Do you See the advanced settings? Die you try both protocols?
If yes, please post a tracelog

It seems that the OH is completely ignoring the file, so nothing happens. I can’t see any errors (related to this binding) when the OH is restarted.
The only log I can see when I filter on “tapo” is openhab loading my textual config items and rules, but the tapo things is ignored:

[el.core.internal.ModelRepositoryImpl] - Loading model 'tapo.rules'
2024-02-29 13:33:39.068 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'tapo.items'

Ahh you use textual configuration files? Did you change the thing-configuration file as in readme described?

tapocontrol:L530:myTapoBridge:colorBulb         "color-light"   (tapocontrol:bridge:myTapoBridge)   [ ipAddress="192.168.xxx.xxx", pollingInterval=30, protocol="KLAP" ]

Did you try to add a thing with browser (without textual configurations).
Did you try to set log level to “trace” for this binding?

Yes. My things file is as follows:

Bridge tapocontrol:bridge:TapoControlBridge            "Tapo Bridge"        [ username="xx@xx.com", password="xxxx", discovery="udpDiscovery" ] {
   Thing P115 TapoP115_193             "Tapo Socket 193"                [ ipAddress="192.168.4.193", pollingInterval=30, protocol="KLAP"] 
   Thing P115 TapoP115_194             "Tapo Socket 194"                [ ipAddress="192.168.4.194", pollingInterval=30, protocol="KLAP"] 
   Thing P115 TapoP115_Ventilation     "Tapo Ventilation Socket"        [ ipAddress="192.168.4.195", pollingInterval=30, protocol="KLAP"] 
   Thing P115 TapoP115_Dishwasher      "Tapo Dishwasher Socket"         [ ipAddress="192.168.4.196", pollingInterval=30, protocol="KLAP"] 
   Thing P115 TapoP115_OfficeDesk      "Tapo Office Desk Socket"        [ ipAddress="192.168.4.197", pollingInterval=30, protocol="KLAP"] 
   Thing P115 TapoP115_EBike           "Tapo E-Bike Socket"             [ ipAddress="192.168.4.198", pollingInterval=30, protocol="KLAP"] 
   Thing P115 TapoP115_WashingMachine  "Tapo Washing Machine Socket"    [ ipAddress="192.168.4.199", pollingInterval=30, protocol="KLAP"] 
   Thing P115 TapoP115_Dryer           "Tapo Dryer Socket"              [ ipAddress="192.168.4.200", pollingInterval=30, protocol="KLAP"] 
}

Not possible, like the jar file is not read in and binding is not showing up in the list.

Is it maybe some dependency issue?
I am running OH on Ubuntu (but I didn’t have problems before updating the firmware of the tapo devices) or with earlier versions of OH.

The binding is not showing up in the console, I could set more detailed logging but I don’t know at which module.
The location and permissions of the file should be OK (I tried Synology binding in the same folder and it worked)

openhab> list -s
START LEVEL 100 , List Threshold: 50
 ID │ State  │ Lvl │ Version                │ Symbolic name
────┼────────┼─────┼────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 30 │ Active │  80 │ 2.15.2                 │ com.fasterxml.jackson.core.jackson-annotations
 31 │ Active │  80 │ 2.15.2                 │ com.fasterxml.jackson.core.jackson-core
 32 │ Active │  80 │ 2.15.2                 │ com.fasterxml.jackson.core.jackson-databind
 33 │ Active │  80 │ 2.15.2                 │ com.fasterxml.jackson.dataformat.jackson-dataformat-yaml
 34 │ Active │  80 │ 2.15.2                 │ com.fasterxml.jackson.datatype.jackson-datatype-jsr310
 35 │ Active │  80 │ 6.5.1                  │ com.fasterxml.woodstox.woodstox-core
 36 │ Active │  80 │ 2.10.1.v20230109-0753  │ com.google.gson
 37 │ Active │  80 │ 32.1.2.jre             │ com.google.guava
 38 │ Active │  80 │ 1.0.1                  │ com.google.guava.failureaccess
 39 │ Active │  80 │ 7.0.0                  │ com.google.inject
 40 │ Active │  80 │ 5.13.0                 │ com.sun.jna
 42 │ Active │  80 │ 4.8.149.v20220915-0556 │ io.github.classgraph
 43 │ Active │  80 │ 0.18.0                 │ io.methvin.directory-watcher
 44 │ Active │  80 │ 2.2.15                 │ io.swagger.core.v3.swagger-annotations
 45 │ Active │  80 │ 2.2.15                 │ io.swagger.core.v3.swagger-core
 46 │ Active │  80 │ 2.2.15                 │ io.swagger.core.v3.swagger-integration
 47 │ Active │  80 │ 2.2.15                 │ io.swagger.core.v3.swagger-jaxrs2
 48 │ Active │  80 │ 2.2.15                 │ io.swagger.core.v3.swagger-models
 49 │ Active │  80 │ 1.0.5                  │ jakarta.inject.jakarta.inject-api
 50 │ Active │  80 │ 2.0.1                  │ jakarta.inject.jakarta.inject-api
 52 │ Active │  80 │ 2.0.2                  │ jakarta.validation.jakarta.validation-api
 54 │ Active │  80 │ 2.3.3                  │ jakarta.xml.ws-api
 55 │ Active │  80 │ 1.2                    │ javax.annotation-api
 56 │ Active │  80 │ 3.5.8                  │ javax.jmdns
 57 │ Active │  80 │ 2.2.0                  │ javax.measure.unit-api
 59 │ Active │  80 │ 0.5.10                 │ jollyday
 60 │ Active │  80 │ 3.2.0.v201101311130    │ org.antlr.runtime
 61 │ Active │  80 │ 1.0.0.v201105210816    │ org.aopalliance
 62 │ Active │  80 │ 1.2.2                  │ org.apache.aries.component-dsl.component-dsl
 63 │ Active │  80 │ 1.0.4                  │ org.apache.aries.javax.jax.rs-api
 64 │ Active │  80 │ 2.0.0                  │ org.apache.aries.jax.rs.whiteboard
 65 │ Active │  80 │ 1.3.6                  │ org.apache.aries.spifly.dynamic.bundle
 66 │ Active │  80 │ 3.12.0                 │ org.apache.commons.lang3
 67 │ Active │  80 │ 3.6.2                  │ org.apache.cxf.cxf-core
 68 │ Active │  80 │ 3.6.2                  │ org.apache.cxf.cxf-rt-frontend-jaxrs
 69 │ Active │  80 │ 3.6.2                  │ org.apache.cxf.cxf-rt-rs-client
 70 │ Active │  80 │ 3.6.2                  │ org.apache.cxf.cxf-rt-rs-sse
 71 │ Active │  80 │ 3.6.2                  │ org.apache.cxf.cxf-rt-security
 72 │ Active │  80 │ 3.6.2                  │ org.apache.cxf.cxf-rt-transports-http
 78 │ Active │  80 │ 4.4.4                  │ org.apache.karaf.event
 94 │ Active │  80 │ 2.3.1                  │ org.apache.ws.xmlschema.core
 95 │ Active │  80 │ 1.1.2                  │ org.apiguardian.api
 96 │ Active │  80 │ 0.9.3                  │ org.bitbucket.b_c.jose4j
 97 │ Active │  80 │ 2.24.0.v20220123-0838  │ org.eclipse.emf.common
 98 │ Active │  80 │ 2.26.0.v20220123-0838  │ org.eclipse.emf.ecore
 99 │ Active │  80 │ 2.14.0.v20190528-0725  │ org.eclipse.emf.ecore.change
100 │ Active │  80 │ 2.16.0.v20190528-0725  │ org.eclipse.emf.ecore.xmi
101 │ Active │  80 │ 3.18.0.v20230523-2142  │ org.eclipse.equinox.common
135 │ Active │  80 │ 0.21.0.v20230517-2120  │ org.eclipse.lsp4j
136 │ Active │  80 │ 0.21.0.v20230517-2120  │ org.eclipse.lsp4j.jsonrpc
137 │ Active │  80 │ 2.32.0.v20230827-1315  │ org.eclipse.xtend.lib
138 │ Active │  80 │ 2.32.0.v20230827-1315  │ org.eclipse.xtend.lib.macro
139 │ Active │  80 │ 2.32.0.v20230827-1315  │ org.eclipse.xtext
140 │ Active │  80 │ 2.32.0.v20230827-1315  │ org.eclipse.xtext.common.types
141 │ Active │  80 │ 2.32.0.v20230827-1315  │ org.eclipse.xtext.ide
142 │ Active │  80 │ 2.32.0.v20230827-1315  │ org.eclipse.xtext.util
143 │ Active │  80 │ 2.32.0.v20230827-1315  │ org.eclipse.xtext.xbase
144 │ Active │  80 │ 2.32.0.v20230827-1315  │ org.eclipse.xtext.xbase.ide
145 │ Active │  80 │ 2.32.0.v20230827-1315  │ org.eclipse.xtext.xbase.lib
153 │ Active │  80 │ 1.0.0                  │ org.openhab.base-fixes
154 │ Active │  80 │ 4.1.1                  │ org.openhab.core
155 │ Active │  80 │ 4.1.1                  │ org.openhab.core.addon
156 │ Active │  80 │ 4.1.1                  │ org.openhab.core.addon.marketplace
157 │ Active │  80 │ 4.1.1                  │ org.openhab.core.addon.marketplace.karaf
158 │ Active │  80 │ 4.1.1                  │ org.openhab.core.audio
159 │ Active │  80 │ 4.1.1                  │ org.openhab.core.auth.jaas
160 │ Active │  80 │ 4.1.1                  │ org.openhab.core.auth.oauth2client
161 │ Active │  80 │ 4.1.1                  │ org.openhab.core.automation
162 │ Active │  80 │ 4.1.1                  │ org.openhab.core.automation.module.media
163 │ Active │  80 │ 4.1.1                  │ org.openhab.core.automation.module.script
164 │ Active │  80 │ 4.1.1                  │ org.openhab.core.automation.module.script.rulesupport
165 │ Active │  80 │ 4.1.1                  │ org.openhab.core.automation.rest
166 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.core
167 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.discovery
168 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.discovery.addon
169 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.discovery.addon.process
170 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.discovery.mdns
171 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.dispatch
172 │ Active │  80 │ 4.1.1                  │ org.openhab.core.ephemeris
173 │ Active │  80 │ 4.1.1                  │ org.openhab.core.id
174 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.console
175 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.console.karaf
176 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.http
177 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.http.auth
179 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.monitor
180 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.net
181 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.rest
182 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.rest.audio
183 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.rest.auth
184 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.rest.core
185 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.rest.mdns
186 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.rest.sitemap
187 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.rest.sse
188 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.rest.swagger
189 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.rest.transform
190 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.rest.ui
191 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.rest.voice
192 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.transport.mdns
193 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.websocket
194 │ Active │  80 │ 4.1.1                  │ org.openhab.core.karaf
195 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.core
196 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.item
197 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.item.ide
198 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.item.runtime
199 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.lsp
200 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.persistence
201 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.persistence.ide
202 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.persistence.runtime
203 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.rule
204 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.rule.ide
205 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.rule.runtime
206 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.script
207 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.script.ide
208 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.script.runtime
209 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.sitemap
210 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.sitemap.ide
211 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.sitemap.runtime
212 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.thing
213 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.thing.ide
214 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.thing.runtime
215 │ Active │  80 │ 4.1.1                  │ org.openhab.core.model.yaml
216 │ Active │  80 │ 4.1.1                  │ org.openhab.core.persistence
217 │ Active │  80 │ 4.1.1                  │ org.openhab.core.semantics
218 │ Active │  80 │ 4.1.1                  │ org.openhab.core.storage.json
219 │ Active │  80 │ 4.1.1                  │ org.openhab.core.thing
220 │ Active │  80 │ 4.1.1                  │ org.openhab.core.transform
221 │ Active │  80 │ 4.1.1                  │ org.openhab.core.ui
222 │ Active │  80 │ 4.1.1                  │ org.openhab.core.ui.icon
223 │ Active │  80 │ 4.1.1                  │ org.openhab.core.voice
224 │ Active │  80 │ 4.1.1                  │ org.openhab.ui
225 │ Active │  80 │ 4.1.1                  │ org.openhab.ui.iconset.classic
235 │ Active │  80 │ 1.0.1.202109301733     │ org.osgi.service.jaxrs
236 │ Active │  80 │ 1.5.0                  │ org.threeten.extra
237 │ Active │  80 │ 2.1.0                  │ org.yaml.snakeyaml
238 │ Active │  80 │ 2.1                    │ si-units
239 │ Active │  80 │ 2.1.0                  │ si.uom.si-quantity
240 │ Active │  80 │ 4.2.1                  │ stax2-api
241 │ Active │  80 │ 2.2.0                  │ tech.units.indriya
242 │ Active │  80 │ 2.2.0                  │ uom-lib-common
243 │ Active │  80 │ 1.4.20                 │ xstream
244 │ Active │  80 │ 4.1.0.202310301434     │ org.openhab.binding.samsungtv
245 │ Active │  80 │ 3.4.0.202310192004     │ org.openhab.binding.mercedesme
246 │ Active │  80 │ 3.3.0.202207031140     │ org.openhab.binding.synologysurveillancestation
247 │ Active │  80 │ 4.0.5.202311240925     │ org.openhab.binding.solarforecast
248 │ Active │  80 │ 4.1.99.Final           │ io.netty.buffer
249 │ Active │  80 │ 4.1.99.Final           │ io.netty.codec
250 │ Active │  80 │ 4.1.99.Final           │ io.netty.common
251 │ Active │  80 │ 4.1.99.Final           │ io.netty.handler
252 │ Active │  80 │ 4.1.99.Final           │ io.netty.resolver
253 │ Active │  80 │ 2.0.61.Final           │ io.netty.tcnative-classes
254 │ Active │  80 │ 4.1.99.Final           │ io.netty.transport
255 │ Active │  80 │ 4.1.99.Final           │ io.netty.transport-native-unix-common
256 │ Active │  80 │ 4.1.0                  │ org.smarthomej.binding.tuya
257 │ Active │  80 │ 4.1.0                  │ org.smarthomej.commons
258 │ Active │  80 │ 2.27                   │ com.google.dagger
259 │ Active │  80 │ 1.3.3                  │ com.hivemq.client.mqtt
260 │ Active │  80 │ 5.13.0                 │ com.sun.jna.platform
261 │ Active │  80 │ 4.1.99.Final           │ io.netty.codec-http
262 │ Active │  80 │ 4.1.99.Final           │ io.netty.codec-socks
263 │ Active │  80 │ 4.1.99.Final           │ io.netty.handler-proxy
264 │ Active │  80 │ 4.1.99.Final           │ io.netty.transport-classes-epoll
265 │ Active │  80 │ 2.2.21                 │ io.reactivex.rxjava2.rxjava
266 │ Active │  80 │ 1.0.1                  │ io.socket.engine.io-client
267 │ Active │  80 │ 1.0.1                  │ io.socket.socket.io-client
268 │ Active │  80 │ 20231013.0.0           │ json
269 │ Active │  80 │ 0.3.0.v20220506-1020   │ net.i2p.crypto.eddsa
270 │ Active │  80 │ 5.2.1.OH1              │ nrjavaserial
271 │ Active │  80 │ 3.9.0                  │ org.apache.commons.commons-net
272 │ Active │  80 │ 3.8.1.1                │ org.apache.servicemix.bundles.okhttp
273 │ Active │  80 │ 1.13.0.1               │ org.apache.servicemix.bundles.okio
274 │ Active │  80 │ 2.7.4                  │ org.eclipse.californium.core
275 │ Active │  80 │ 2.7.4                  │ org.eclipse.californium.element-connector
276 │ Active │  80 │ 2.7.4                  │ org.eclipse.californium.osgi
277 │ Active │  80 │ 2.7.4                  │ org.eclipse.californium.scandium
278 │ Active │  80 │ 2.1.2                  │ org.jctools.core
279 │ Active │  80 │ 2.7.1.OH1              │ org.jupnp
280 │ Active │  80 │ 4.1.1                  │ org.openhab.automation.jsscripting
281 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.astro
282 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.chromecast
283 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.daikin
284 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.deconz
285 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.dscalarm
286 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.exec
287 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.goecharger
288 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.http
289 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.ipcamera
290 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.miio
291 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.modbus
292 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.modbus.e3dc
293 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.modbus.helioseasycontrols
294 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.modbus.sbc
295 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.modbus.stiebeleltron
296 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.modbus.studer
297 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.modbus.sunspec
298 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.mqtt
299 │ Active │  81 │ 4.1.1                  │ org.openhab.binding.mqtt.espmilighthub
300 │ Active │  81 │ 4.1.1                  │ org.openhab.binding.mqtt.generic
301 │ Active │  82 │ 4.1.1                  │ org.openhab.binding.mqtt.homeassistant
302 │ Active │  82 │ 4.1.1                  │ org.openhab.binding.mqtt.homie
303 │ Active │  82 │ 4.1.1                  │ org.openhab.binding.mqtt.ruuvigateway
304 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.network
305 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.openweathermap
306 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.shelly
307 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.spotify
308 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.systeminfo
309 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.tesla
310 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.unifi
311 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.yamahareceiver
312 │ Active │  80 │ 4.1.1                  │ org.openhab.binding.zwave
313 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.discovery.upnp
314 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.discovery.usbserial
315 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.discovery.usbserial.linuxsysfs
316 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.discovery.usbserial.ser2net
317 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.serial
318 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.transport.modbus
319 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.transport.mqtt
320 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.transport.serial
321 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.transport.serial.rxtx
322 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.transport.serial.rxtx.rfc2217
323 │ Active │  80 │ 4.1.1                  │ org.openhab.core.io.transport.upnp
324 │ Active │  80 │ 4.1.1                  │ org.openhab.io.openhabcloud
325 │ Active │  80 │ 4.1.1                  │ org.openhab.persistence.rrd4j
326 │ Active │  75 │ 4.1.1                  │ org.openhab.transform.exec
327 │ Active │  75 │ 4.1.1                  │ org.openhab.transform.jsonpath
328 │ Active │  75 │ 4.1.1                  │ org.openhab.transform.map
329 │ Active │  75 │ 4.1.1                  │ org.openhab.transform.regex
330 │ Active │  75 │ 4.1.1                  │ org.openhab.transform.xpath
331 │ Active │  80 │ 4.1.1                  │ org.openhab.ui.basic
332 │ Active │  80 │ 4.1.1                  │ org.openhab.ui.habpanel
333 │ Active │  80 │ 1.0.4                  │ reactive-streams
334 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.discovery.addon.mdns
335 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.discovery.addon.upnp
336 │ Active │  80 │ 4.1.1                  │ org.openhab.core.config.discovery.addon.ip

Openhab 4.1.1 running on ubuntu 20.04LTS in a proxmox vm.

Just realized that my Tapo P115s are not working which were fine for couple of months until last night. I’ve checked and the tapo binding that I’ve manually installed couple of months ago was not there!!! But the .jar file is still in the … /addons folder. I tried to reinstall it, got the following error

Error executing command: Error installing bundles:
Unable to install bundle org.openhab.binding.tapocontrol-4.1.0-SNAPSHOT.jar: org.osgi.framework.BundleException: Error reading bundle content.

also bundle:list command is not listing it. I thought the file got curropted somehow. tried with a fresh downloaded one ending up with the same error.

I even tried on a fresh openhab install on a fresh ubuntu. Same thing.

What is happening?