Smarthome/J Tuya Binding for openHAB 4

Hello everybody,

i can’t get the binding to discover my Pool HeatPump.
Everything seems to be set up. The cloud is online. API Authorizations should be ok. The HEATPUMP does not show up in discovery.

If i set LOG to DEBUG I get the following every 5 seconds:

[DEBUG] [.internal.local.handlers.TuyaDecoder] - udpListener: Received MessageWrapper{commandType=BROADCAST_LPV34, content='DiscoveryMessage{ip='192.168.100.119', deviceId='bfa6b9267dc1d5562anlkg', active=2, ability=0, mode=0, encrypt=true, productKey='abb8kaxcphfzkwsg', version='3.4', token= true, wf_cfg=true}'}

In TRACE Mode it shows some wired Error when starting discovery using UI:

2024-08-28 16:45:06.651 [TRACE] [ding.tuya.internal.cloud.TuyaOpenAPI] - Sending to 'https://openapi.tuyaeu.com/v1.0/users/eu1724765998599WwnVh/devices?from=&page_no=1&page_size=100': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.54.v20240208, Signature-Headers: client_id, t: 1724856306650, client_id: dxkwxfg4vqrsps5h7g5j, sign: CC1419959B27265510A91B65AA62096C9B1EF8F0C3AB6E02E8795C9E3C71297C, access_token: 0dca559f7c6922696368ffd784120ba3, sign_method: HMAC-SHA256}, Content = {null}
2024-08-28 16:45:06.885 [TRACE] [a.internal.cloud.TuyaContentListener] - Received from 'https://openapi.tuyaeu.com/v1.0/users/eu1724765998599WwnVh/devices?from=&page_no=1&page_size=100': Code = {200}, Headers = {Content-Type: application/json;charset=UTF-8, Content-Length: 754, Connection: keep-alive, Date: Wed, 28 Aug 2024 14:45:06 GMT, Access-Control-Allow-Credentials: true, Access-Control-Allow-Headers: , Access-Control-Allow-Headers: access_token,Content-Type, Access-Control-Allow-Methods: POST, Access-Control-Allow-Methods: OPTIONS, Access-Control-Allow-Methods: GET, Access-Control-Allow-Methods: DELETE, Access-Control-Allow-Methods: PUT, Access-Control-Allow-Origin: https://iot.tuya.com,https://platform.tuya.com, Gateway-Info: highway, Server: Sec, Strict-Transport-Security: max-age=31536000}, Content = {{"result":[{"active_time":1724766112,"biz_type":0,"category":"znrb","create_time":1724766112,"icon":"smart/icon/bay1637720139432gd6R/835c8f12f579e6ac1bd0acc170824cd5.png","id":"bfa6b9267dc1d5562anlkg","ip":"217.142.18.121","lat":"49.2416","local_key":"7hu\u003er[.Uv-qvFeH[","lon":"12.6869","model":"","name":"WP Pool","online":true,"owner_id":"202742480","product_id":"abb8kaxcphfzkwsg","product_name":"Heat Pump","status":[{"code":"switch","value":true},{"code":"temp_set","value":320},{"code":"temp_current","value":256},{"code":"work_state","value":"standby"}],"sub":false,"time_zone":"+02:00","uid":"eu1724765998599WwnVh","update_time":1724849519,"uuid":"326719f21e6675b1"}],"success":true,"t":1724856306870,"tid":"1e0f8d2b654c11ef883136d89ae34f8e"}}
2024-08-28 16:45:06.889 [TRACE] [ding.tuya.internal.cloud.TuyaOpenAPI] - Sending to 'https://openapi.tuyaeu.com/v1.0/iot-03/devices/factory-infos?device_ids=bfa6b9267dc1d5562anlkg': Method = {GET}, Headers = {Accept-Encoding: gzip, User-Agent: Jetty/9.4.54.v20240208, Signature-Headers: client_id, t: 1724856306888, client_id: dxkwxfg4vqrsps5h7g5j, sign: 5D8FA1F0CF7452E52724E544F5FA192BE7D09D9B6D6C5521635F2E89CB898933, access_token: 0dca559f7c6922696368ffd784120ba3, sign_method: HMAC-SHA256}, Content = {null}
2024-08-28 16:45:06.984 [TRACE] [a.internal.cloud.TuyaContentListener] - Received from 'https://openapi.tuyaeu.com/v1.0/iot-03/devices/factory-infos?device_ids=bfa6b9267dc1d5562anlkg': Code = {200}, Headers = {Content-Type: application/json;charset=UTF-8, Content-Length: 231, Connection: keep-alive, Date: Wed, 28 Aug 2024 14:45:06 GMT, Access-Control-Allow-Credentials: true, Access-Control-Allow-Headers: , Access-Control-Allow-Headers: access_token,Content-Type, Access-Control-Allow-Methods: POST, Access-Control-Allow-Methods: OPTIONS, Access-Control-Allow-Methods: GET, Access-Control-Allow-Methods: DELETE, Access-Control-Allow-Methods: PUT, Access-Control-Allow-Origin: https://iot.tuya.com,https://platform.tuya.com, Gateway-Info: highway, Server: Sec, Strict-Transport-Security: max-age=31536000}, Content = {{"code":60009001,"msg":"API permission package error. For the solution, see https://developer.tuya.com/en/docs/iot/authentication-method?id=Ka49gbaxjygox.","success":false,"t":1724856306971,"tid":"1e217e45654c11ef95a3c283ae9aa908"}}

For me this sounds like the “Authorization” API is not enabled. In fact this one is not available for me in my TUYA Cloud Project. I Added “Authorization Token Management” to the API Services as “Authorization” is not available for me.

Any idea?

Regards,

Hello. Im successfully add the breaker to Openhab 4, through IOT cloud. The project is connected and online.

But… there is no channels. It is empty and no buttons for manualy add them.

I see device in project and in app, im even can control it through app. But openhab see no channels. Its looks like the project do not give any info to openhab.

Hi @ReasonX,

I got mine working but without discovery. It looks like there is a bug in the binding that has to do with authentification to the TUYA server.

I added my tuya-device manually. But you need to get the Device-Local-Key for this e.g. using tuya-cli
GitHub - TuyaAPI/cli: :wrench: A CLI for Tuya devices
Just install on a linux system using npm (you can find the command on github) and then type in

tuya-cli wizard

You then need to provide your Cloud-API credentials and the Device-ID for your device. It will then print you the device-local-key.
I found the product-ID inside the Openhab-Logs (set the tuya binding to TRACE Mode). The binding tried to add my pool Heatpump and therefore displayed the informations inside the log.

Getting the DPs for your thing is also not that easy. I found a tutorial online:

GitHub - dulfer/localtuya-device-datapoints: List of data points for various Tuya devices, required to setup localtuya integration

You then have to decide what type of channel you need (string, number, switch) and insert your informations.

Regards,
Carlo

3 Likes

Hmm, I wonder if something changed on the Tuya side. I haven’t added a device in a fairly long time, so I haven’t seen this issue. If you haven’t already done so, can you submit an issue to the SmarthomeJ Github?

no solution, yet the same error on my side. (See a few posts above) In my case its a lightbulb, which would not be discovered as for the same “api error”

I opened an issue:

[BUG] TUYA Binding | API permission package error | Device not discovered · Issue #589 · smarthomej/addons (github.com)

Thx for this discription.
I got my Panel Heater working now.
Greets

Hi @cd-tronic,

thanks for all these infos that allowed me to get my tuya things working!

Note that you don’t need to install that neet tuya-api tool to get the product ID.

Go to the API Cloud explorer on tuya website (for me it’s https://eu.platform.tuya.com/cloud/explorer, change according to your data center).
Choose Device Management, and finally Query Device Details in Bulk to get your device info providing your device ID in main UI.

2 Likes

hi all ,i have 2 curtains and a smartmi fan already added with this binding and all r working just fine.Today i tried to add a tuya wifi valve,i add it to smartlife app and i see the device at my cloud project but no discovery at openhab…Any ideas?Is the binding still working or the thing doscovery is broken?

I need assistance with the Tuya Smart Bulb. It goes online, but I’m unsure how to set up channels, and I can’t locate any documentation on it.

i am running into strange issues with
ersion: 4.3.0.M1 (Build)
openjdk version “17.0.12” 2024-07-16 LTS
OpenJDK Runtime Environment Zulu17.52+17-CA (build 17.0.12+7-LTS)
OpenJDK 64-Bit Server VM Zulu17.52+17-CA (build 17.0.12+7-LTS, mixed mode, sharing)

1/ on monday i was not able to see the addon from the respository (after upgrade of openhab)
2/ then somehow i manage to make it visible and install it
3/ during these days i run into some problems with stability of openhab - the webinterface is down from time to time
4/ didnt know how to solve that i juts run clean cache and started again.
5/ The addon is not installed (missing handler) and again not visible in the marketplace
6/ After going to settings and save them (the setting when you put url to the smarthome/j library tne addon is visible
7/ When i click install again whole web interface is going crazy and seems to be dead
8/ openhab restart helps… sometimes…

2024-10-04 17:22:06.246 [ERROR] [Events.Framework                    ] - FrameworkEvent ERROR
org.osgi.framework.BundleException: Unable to acquire the state change lock for the module: osgi.identity; type="osgi.bundle"; version:Version="4.3.0.M1"; osgi.identity="org.openhab.core.io.net" [id=182] STOPPED [STOPPED]
        at org.eclipse.osgi.container.Module.lockStateChange(Module.java:350) ~[org.eclipse.osgi-3.18.0.jar:?]
        at org.eclipse.osgi.container.Module.stop(Module.java:513) ~[org.eclipse.osgi-3.18.0.jar:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.decStartLevel(ModuleContainer.java:1888) ~[org.eclipse.osgi-3.18.0.jar:?]
        at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1763) ~[org.eclipse.osgi-3.18.0.jar:?]
        at org.eclipse.osgi.container.SystemModule.stopWorker(SystemModule.java:275) ~[org.eclipse.osgi-3.18.0.jar:?]
        at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule.stopWorker(EquinoxBundle.java:208) ~[org.eclipse.osgi-3.18.0.jar:?]
        at org.eclipse.osgi.container.Module.doStop(Module.java:660) ~[org.eclipse.osgi-3.18.0.jar:?]
        at org.eclipse.osgi.container.Module.stop(Module.java:521) ~[org.eclipse.osgi-3.18.0.jar:?]
        at org.eclipse.osgi.container.SystemModule.stop(SystemModule.java:207) ~[org.eclipse.osgi-3.18.0.jar:?]
        at org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle$EquinoxSystemModule$1.run(EquinoxBundle.java:226) ~[org.eclipse.osgi-3.18.0.jar:?]
        at java.lang.Thread.run(Thread.java:840) ~[?:?]
Caused by: java.util.concurrent.TimeoutException: Timeout after waiting 30 seconds to acquire the lock.
        at org.eclipse.osgi.container.Module.lockStateChange(Module.java:347) ~[org.eclipse.osgi-3.18.0.jar:?]
        ... 10 more
Caused by: org.eclipse.osgi.framework.util.ThreadInfoReport: Thread dump

ThreadId: 1 ThreadName: main ThreadState: WAITING
  Blocked On: java.util.concurrent.atomic.AtomicReference@25eeb477 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Object.wait(Native Method)
    org.eclipse.osgi.container.SystemModule.waitForStop(SystemModule.java:173)
    org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle.waitForStop(EquinoxBundle.java:312)
    org.eclipse.osgi.launch.Equinox.waitForStop(Equinox.java:217)
    app//org.apache.karaf.main.Main.awaitShutdown(Main.java:704)
    app//org.apache.karaf.main.Main.main(Main.java:193)

ThreadId: 2 ThreadName: Reference Handler ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
    java.base@17.0.12/java.lang.ref.Reference.processPendingReferences(Reference.java:253)
    java.base@17.0.12/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:215)

ThreadId: 3 ThreadName: Finalizer ThreadState: WAITING
  Blocked On: java.lang.ref.ReferenceQueue$Lock@60ec3eae LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Object.wait(Native Method)
    java.base@17.0.12/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
    java.base@17.0.12/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
    java.base@17.0.12/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:172)

ThreadId: 4 ThreadName: Signal Dispatcher ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:

ThreadId: 11 ThreadName: Common-Cleaner ThreadState: TIMED_WAITING
  Blocked On: java.lang.ref.ReferenceQueue$Lock@791b3b53 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Object.wait(Native Method)
    java.base@17.0.12/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
    java.base@17.0.12/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:140)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)
    java.base@17.0.12/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:162)

ThreadId: 12 ThreadName: Notification Thread ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:

ThreadId: 14 ThreadName: Active Thread: Equinox Container: 3161a728-9dfb-4806-96af-8501ab06ab7d ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@51c6dd79 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 16 ThreadName: Framework Event Dispatcher: Equinox Container: 3161a728-9dfb-4806-96af-8501ab06ab7d ThreadState: WAITING
  Blocked On: org.eclipse.osgi.framework.eventmgr.EventManager$EventThread@1db863a LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Object.wait(Native Method)
    java.base@17.0.12/java.lang.Object.wait(Object.java:338)
    org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
    org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:341)

ThreadId: 17 ThreadName: Bundle File Closer ThreadState: WAITING
  Blocked On: org.eclipse.osgi.framework.eventmgr.EventManager$EventThread@c3c1e1 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Object.wait(Native Method)
    java.base@17.0.12/java.lang.Object.wait(Object.java:338)
    org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
    org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:341)

ThreadId: 18 ThreadName: Start Level: Equinox Container: 3161a728-9dfb-4806-96af-8501ab06ab7d ThreadState: WAITING
  Blocked On: org.eclipse.osgi.framework.eventmgr.EventManager$EventThread@781eb7f3 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Object.wait(Native Method)
    java.base@17.0.12/java.lang.Object.wait(Object.java:338)
    org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
    org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:341)

ThreadId: 31 ThreadName: Coordination Timer ThreadState: WAITING
  Blocked On: java.util.TaskQueue@20a2b309 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Object.wait(Native Method)
    java.base@17.0.12/java.lang.Object.wait(Object.java:338)
    java.base@17.0.12/java.util.TimerThread.mainLoop(Timer.java:537)
    java.base@17.0.12/java.util.TimerThread.run(Timer.java:516)

ThreadId: 32 ThreadName: CM Configuration Updater ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@47688f71 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:485)
    java.base@17.0.12/java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:673)
    org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:73)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 33 ThreadName: CM Event Dispatcher ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1adf2bf0 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:485)
    java.base@17.0.12/java.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:673)
    org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:73)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 35 ThreadName: EventAdminAsyncThread #11 ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@48d3d83 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 36 ThreadName: EventAdminAsyncThread #12 ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@48d3d83 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 53 ThreadName: FileSystemWatchService ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/sun.nio.fs.LinuxWatchService.poll(Native Method)
    java.base@17.0.12/sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:314)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 52 ThreadName: fileinstall-/var/lib/openhab/etc ThreadState: TIMED_WAITING
  Blocked On: org.apache.felix.fileinstall.internal.DirectoryWatcher@3182fce0 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Object.wait(Native Method)
    org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:320)

ThreadId: 57 ThreadName: Log4j2-TF-4-Scheduled-3 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3212eea6 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 59 ThreadName: FileSystemWatchService ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/sun.nio.fs.LinuxWatchService.poll(Native Method)
    java.base@17.0.12/sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:314)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 58 ThreadName: fileinstall-/usr/share/openhab/addons ThreadState: TIMED_WAITING
  Blocked On: org.apache.felix.fileinstall.internal.DirectoryWatcher@51f1d3bf LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Object.wait(Native Method)
    org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:320)

ThreadId: 91 ThreadName: encryption-1-thread-1 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@3cfd8d27 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked:
    java.util.concurrent.ThreadPoolExecutor$Worker@7d9f464f
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    java.base@17.0.12/java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:515)
    java.base@17.0.12/java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:677)
    java.base@17.0.12/sun.nio.fs.AbstractWatchService.poll(AbstractWatchService.java:108)
    org.apache.karaf.jaas.modules.properties.AutoEncryptionSupport.run(AutoEncryptionSupport.java:94)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 92 ThreadName: FileSystemWatchService ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/sun.nio.fs.LinuxWatchService.poll(Native Method)
    java.base@17.0.12/sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:314)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 95 ThreadName: encryption-3-thread-1 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1abe03a4 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked:
    java.util.concurrent.ThreadPoolExecutor$Worker@5196f4de
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    java.base@17.0.12/java.util.concurrent.LinkedBlockingDeque.pollFirst(LinkedBlockingDeque.java:515)
    java.base@17.0.12/java.util.concurrent.LinkedBlockingDeque.poll(LinkedBlockingDeque.java:677)
    java.base@17.0.12/sun.nio.fs.AbstractWatchService.poll(AbstractWatchService.java:108)
    org.apache.karaf.jaas.modules.properties.AutoEncryptionSupport.run(AutoEncryptionSupport.java:94)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 96 ThreadName: FileSystemWatchService ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/sun.nio.fs.LinuxWatchService.poll(Native Method)
    java.base@17.0.12/sun.nio.fs.LinuxWatchService$Poller.run(LinuxWatchService.java:314)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 116 ThreadName: SCR Component Actor ThreadState: WAITING
  Blocked On: java.util.LinkedList@3ffca98b LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Object.wait(Native Method)
    java.base@17.0.12/java.lang.Object.wait(Object.java:338)
    org.apache.felix.scr.impl.ComponentActorThread.run(ComponentActorThread.java:83)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 217 ThreadName: paxweb-config-1-thread-1 ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@60cff9e0 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 298 ThreadName: Thread-16 ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/sun.nio.ch.EPoll.wait(Native Method)
    java.base@17.0.12/sun.nio.ch.EPollPort$EventHandlerTask.poll(EPollPort.java:200)
    java.base@17.0.12/sun.nio.ch.EPollPort$EventHandlerTask.run(EPollPort.java:281)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 299 ThreadName: sshd-SshServer[700c913a](port=8101)-timer-thread-1 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@300bc46b LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 329 ThreadName: EMF Reference Cleaner ThreadState: WAITING
  Blocked On: java.lang.ref.ReferenceQueue$Lock@5ac252ed LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Object.wait(Native Method)
    java.base@17.0.12/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:155)
    java.base@17.0.12/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:176)
    org.eclipse.emf.common.util.CommonUtil$1ReferenceClearingQueuePollingThread.run(CommonUtil.java:70)

ThreadId: 340 ThreadName: Session-HouseKeeper-27fa1f6b-1 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2808cf LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 341 ThreadName: Scanner-0 ThreadState: TIMED_WAITING
  Blocked On: java.util.TaskQueue@1fb7e1d3 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Object.wait(Native Method)
    java.base@17.0.12/java.util.TimerThread.mainLoop(Timer.java:563)
    java.base@17.0.12/java.util.TimerThread.run(Timer.java:516)

ThreadId: 344 ThreadName: qtp1981728947-344-acceptor-0@16f46ebf-0.0.0.0:8443@49bd24e2{SSL, (ssl, http/1.1)}{0.0.0.0:8443} ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked:
    java.util.concurrent.locks.ReentrantLock$NonfairSync@717156d2
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/sun.nio.ch.Net.accept(Native Method)
    java.base@17.0.12/sun.nio.ch.ServerSocketChannelImpl.implAccept(ServerSocketChannelImpl.java:425)
    java.base@17.0.12/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:391)
    org.eclipse.jetty.server.ServerConnector.accept(ServerConnector.java:388)
    org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:704)
    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 345 ThreadName: qtp1981728947-345 ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked:
    sun.nio.ch.Util$2@39ec272b
    sun.nio.ch.EPollSelectorImpl@79423ea9
  Stack Trace:
    java.base@17.0.12/sun.nio.ch.EPoll.wait(Native Method)
    java.base@17.0.12/sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:118)
    java.base@17.0.12/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:129)
    java.base@17.0.12/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:146)
    org.eclipse.jetty.io.ManagedSelector.nioSelect(ManagedSelector.java:183)
    org.eclipse.jetty.io.ManagedSelector.select(ManagedSelector.java:190)
    org.eclipse.jetty.io.ManagedSelector$SelectorProducer.select(ManagedSelector.java:606)
    org.eclipse.jetty.io.ManagedSelector$SelectorProducer.produce(ManagedSelector.java:543)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produceTask(EatWhatYouKill.java:362)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:186)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
    org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 347 ThreadName: qtp1981728947-347-acceptor-0@4ee59f53-default@1904cb07{HTTP/1.1, (http/1.1, h2c)}{0.0.0.0:8080} ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked:
    java.util.concurrent.locks.ReentrantLock$NonfairSync@595be12b
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/sun.nio.ch.Net.accept(Native Method)
    java.base@17.0.12/sun.nio.ch.ServerSocketChannelImpl.implAccept(ServerSocketChannelImpl.java:425)
    java.base@17.0.12/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:391)
    org.eclipse.jetty.server.ServerConnector.accept(ServerConnector.java:388)
    org.eclipse.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:704)
    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 348 ThreadName: HttpService->Whiteboard ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@22e7eb14 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:435)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 349 ThreadName: qtp1981728947-349 ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked:
    sun.nio.ch.Util$2@7a6a451c
    sun.nio.ch.EPollSelectorImpl@12358b8e
  Stack Trace:
    java.base@17.0.12/sun.nio.ch.EPoll.wait(Native Method)
    java.base@17.0.12/sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:118)
    java.base@17.0.12/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:129)
    java.base@17.0.12/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:146)
    org.eclipse.jetty.io.ManagedSelector.nioSelect(ManagedSelector.java:183)
    org.eclipse.jetty.io.ManagedSelector.select(ManagedSelector.java:190)
    org.eclipse.jetty.io.ManagedSelector$SelectorProducer.select(ManagedSelector.java:606)
    org.eclipse.jetty.io.ManagedSelector$SelectorProducer.produce(ManagedSelector.java:543)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produceTask(EatWhatYouKill.java:362)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:186)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
    org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 350 ThreadName: Connector-Scheduler-1904cb07-1 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@14e1725a LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 361 ThreadName: OH-startlevel-1 ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@9438499 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 495 ThreadName: pool-9-thread-1 ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@21296208 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 528 ThreadName: Connector-Scheduler-49bd24e2-1 ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1f7ef458 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 532 ThreadName: OH-rulesRefresher-1 ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@12264f LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 675 ThreadName: OH-httpClient-common-675 ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked:
    sun.nio.ch.Util$2@15600d98
    sun.nio.ch.EPollSelectorImpl@7f33141e
  Stack Trace:
    java.base@17.0.12/sun.nio.ch.EPoll.wait(Native Method)
    java.base@17.0.12/sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:118)
    java.base@17.0.12/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:129)
    java.base@17.0.12/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:146)
    org.eclipse.jetty.io.ManagedSelector.nioSelect(ManagedSelector.java:183)
    org.eclipse.jetty.io.ManagedSelector.select(ManagedSelector.java:190)
    org.eclipse.jetty.io.ManagedSelector$SelectorProducer.select(ManagedSelector.java:606)
    org.eclipse.jetty.io.ManagedSelector$SelectorProducer.produce(ManagedSelector.java:543)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produceTask(EatWhatYouKill.java:362)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:186)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:137)
    org.eclipse.jetty.io.ManagedSelector$$Lambda$562/0x000000010068f0c0.run(Unknown Source)
    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 686 ThreadName: Thread-76 ThreadState: TIMED_WAITING
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Thread.sleep(Native Method)
    org.openhab.binding.shelly.internal.manager.ShellyManagerCache$CleanerThread.run(ShellyManagerCache.java:84)

ThreadId: 687 ThreadName: Thread-77 ThreadState: TIMED_WAITING
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Thread.sleep(Native Method)
    org.openhab.binding.shelly.internal.manager.ShellyManagerCache$CleanerThread.run(ShellyManagerCache.java:84)

ThreadId: 688 ThreadName: Thread-78 ThreadState: TIMED_WAITING
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Thread.sleep(Native Method)
    org.openhab.binding.shelly.internal.manager.ShellyManagerCache$CleanerThread.run(ShellyManagerCache.java:84)

ThreadId: 689 ThreadName: Thread-79 ThreadState: TIMED_WAITING
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Thread.sleep(Native Method)
    org.openhab.binding.shelly.internal.manager.ShellyManagerCache$CleanerThread.run(ShellyManagerCache.java:84)

ThreadId: 690 ThreadName: Thread-80 ThreadState: TIMED_WAITING
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Thread.sleep(Native Method)
    org.openhab.binding.shelly.internal.manager.ShellyManagerCache$CleanerThread.run(ShellyManagerCache.java:84)

ThreadId: 691 ThreadName: Thread-81 ThreadState: TIMED_WAITING
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Thread.sleep(Native Method)
    org.openhab.binding.shelly.internal.manager.ShellyManagerCache$CleanerThread.run(ShellyManagerCache.java:84)

ThreadId: 692 ThreadName: Thread-82 ThreadState: TIMED_WAITING
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Thread.sleep(Native Method)
    org.openhab.binding.shelly.internal.manager.ShellyManagerCache$CleanerThread.run(ShellyManagerCache.java:84)

ThreadId: 693 ThreadName: Thread-83 ThreadState: TIMED_WAITING
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Thread.sleep(Native Method)
    org.openhab.binding.shelly.internal.manager.ShellyManagerCache$CleanerThread.run(ShellyManagerCache.java:84)

ThreadId: 694 ThreadName: Thread-84 ThreadState: TIMED_WAITING
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Thread.sleep(Native Method)
    org.openhab.binding.shelly.internal.manager.ShellyManagerCache$CleanerThread.run(ShellyManagerCache.java:84)

ThreadId: 695 ThreadName: Thread-85 ThreadState: TIMED_WAITING
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Thread.sleep(Native Method)
    org.openhab.binding.shelly.internal.manager.ShellyManagerCache$CleanerThread.run(ShellyManagerCache.java:84)

ThreadId: 696 ThreadName: Thread-86 ThreadState: TIMED_WAITING
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Thread.sleep(Native Method)
    org.openhab.binding.shelly.internal.manager.ShellyManagerCache$CleanerThread.run(ShellyManagerCache.java:84)

ThreadId: 697 ThreadName: Thread-87 ThreadState: TIMED_WAITING
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/java.lang.Thread.sleep(Native Method)
    org.openhab.binding.shelly.internal.manager.ShellyManagerCache$CleanerThread.run(ShellyManagerCache.java:84)

ThreadId: 714 ThreadName: RxSchedulerPurge-1 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1707f394 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 715 ThreadName: RxCachedWorkerPoolEvictor-1 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6b69f65 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1182)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 743 ThreadName: RxComputationThreadPool-1 ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@13af5ee6 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 858 ThreadName: OH-RRD4j-1 ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@74db2b69 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 864 ThreadName: RxComputationThreadPool-2 ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@5ce8fd35 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 869 ThreadName: RxComputationThreadPool-3 ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@6e170c7a LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 872 ThreadName: RxComputationThreadPool-4 ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@7262730 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 886 ThreadName: RRD4J Sync-ThreadPool for org.rrd4j.core.RrdSyncThreadPool@7457063 [Thread-1] ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a8bd4de LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1177)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 887 ThreadName: RRD4J Sync-ThreadPool for org.rrd4j.core.RrdSyncThreadPool@7457063 [Thread-2] ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a8bd4de LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1177)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 888 ThreadName: RRD4J Sync-ThreadPool for org.rrd4j.core.RrdSyncThreadPool@7457063 [Thread-3] ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a8bd4de LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1177)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 889 ThreadName: RRD4J Sync-ThreadPool for org.rrd4j.core.RrdSyncThreadPool@7457063 [Thread-4] ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a8bd4de LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1170)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 890 ThreadName: RRD4J Sync-ThreadPool for org.rrd4j.core.RrdSyncThreadPool@7457063 [Thread-5] ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a8bd4de LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1177)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 892 ThreadName: RRD4J Sync-ThreadPool for org.rrd4j.core.RrdSyncThreadPool@7457063 [Thread-6] ThreadState: WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@2a8bd4de LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.park(LockSupport.java:341)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(AbstractQueuedSynchronizer.java:506)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3476)
    java.base@17.0.12/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3447)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1625)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1177)
    java.base@17.0.12/java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:899)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1062)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1122)
    java.base@17.0.12/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 5212 ThreadName: qtp1981728947-5212 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@319195ef LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:382)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.idleJobPoll(QueuedThreadPool.java:974)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1018)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 5213 ThreadName: qtp1981728947-5213 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@319195ef LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:382)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.idleJobPoll(QueuedThreadPool.java:974)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1018)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 5736 ThreadName: qtp1981728947-5736 ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    org.ops4j.pax.logging.internal.TrackingLogger.isDebugEnabled(TrackingLogger.java:60)
    org.ops4j.pax.logging.slf4j.Slf4jLogger.isDebugEnabled(Slf4jLogger.java:339)
    org.eclipse.jetty.util.log.JettyAwareLogger.isDebugEnabled(JettyAwareLogger.java:170)
    org.eclipse.jetty.util.log.Slf4jLog.isDebugEnabled(Slf4jLog.java:120)
    org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1280)
    org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234)
    org.ops4j.pax.web.service.jetty.internal.PrioritizedHandlerCollection.handle(PrioritizedHandlerCollection.java:96)
    org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:772)
    org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
    org.eclipse.jetty.server.Server.handle(Server.java:516)
    org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
    org.eclipse.jetty.server.HttpChannel$$Lambda$734/0x00000001007bf040.dispatch(Unknown Source)
    org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
    org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
    org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
    org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
    org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
    org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
    org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 5842 ThreadName: qtp1981728947-5842 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@319195ef LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:382)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.idleJobPoll(QueuedThreadPool.java:974)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1018)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 5874 ThreadName: qtp1981728947-5874 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.SynchronousQueue$TransferStack@25c38cc3 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:401)
    java.base@17.0.12/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903)
    org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.reservedWait(ReservedThreadExecutor.java:324)
    org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:399)
    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 5876 ThreadName: qtp1981728947-5876 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@319195ef LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:382)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.idleJobPoll(QueuedThreadPool.java:974)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1018)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 5877 ThreadName: qtp1981728947-5877 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.SynchronousQueue$TransferStack@25c38cc3 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:401)
    java.base@17.0.12/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903)
    org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.reservedWait(ReservedThreadExecutor.java:324)
    org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:399)
    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 5881 ThreadName: qtp1981728947-5881 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@319195ef LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:382)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.idleJobPoll(QueuedThreadPool.java:974)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1018)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 5886 ThreadName: qtp1981728947-5886 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@319195ef LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:382)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.idleJobPoll(QueuedThreadPool.java:974)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1018)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 5916 ThreadName: qtp1981728947-5916 ThreadState: RUNNABLE
  Blocked On: none
  Synchronizers Locked: none
  Monitors Locked:
    sun.nio.ch.Util$2@18c04b79
    sun.nio.ch.EPollSelectorImpl@665643e9
  Stack Trace:
    java.base@17.0.12/sun.nio.ch.EPoll.wait(Native Method)
    java.base@17.0.12/sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:118)
    java.base@17.0.12/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:129)
    java.base@17.0.12/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:146)
    org.eclipse.jetty.io.ManagedSelector.nioSelect(ManagedSelector.java:183)
    org.eclipse.jetty.io.ManagedSelector.select(ManagedSelector.java:190)
    org.eclipse.jetty.io.ManagedSelector$SelectorProducer.select(ManagedSelector.java:606)
    org.eclipse.jetty.io.ManagedSelector$SelectorProducer.produce(ManagedSelector.java:543)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produceTask(EatWhatYouKill.java:362)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:186)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
    org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
    org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 5948 ThreadName: qtp1981728947-5948 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@319195ef LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:382)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.idleJobPoll(QueuedThreadPool.java:974)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1018)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 5951 ThreadName: qtp1981728947-5951 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@319195ef LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:382)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.idleJobPoll(QueuedThreadPool.java:974)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1018)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 5950 ThreadName: qtp1981728947-5950 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@319195ef LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:382)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.idleJobPoll(QueuedThreadPool.java:974)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1018)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 6667 ThreadName: qtp1981728947-6667 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@319195ef LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:382)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.idleJobPoll(QueuedThreadPool.java:974)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1018)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 6668 ThreadName: qtp1981728947-6668 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@319195ef LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1674)
    org.eclipse.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:382)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.idleJobPoll(QueuedThreadPool.java:974)
    org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1018)
    java.base@17.0.12/java.lang.Thread.run(Thread.java:840)

ThreadId: 6669 ThreadName: qtp1981728947-6669 ThreadState: TIMED_WAITING
  Blocked On: java.util.concurrent.SynchronousQueue$TransferStack@25c38cc3 LockOwnerId: -1 LockOwnerName: null
  Synchronizers Locked: none
  Monitors Locked: none
  Stack Trace:
    java.base@17.0.12/jdk.internal.misc.Unsafe.park(Native Method)
    java.base@17.0.12/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
    java.base@17.0.12/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:401)
    java.base@17.0.12/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:903)
    org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.reservedWait(ReservedThreadExecutor.java:324)
    org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(Res2024-10-04 17:22:06.320 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://10.8.0.15:8080/rest/services/org.openhab.i18n/config's Observer
2024-10-04 17:22:06.325 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://10.8.0.15:8080/rest/addons/services's Observer
2024-10-04 17:22:06.325 [WARN ] [.transport.servlet.ServletController] - Can't find the request for http://10.8.0.15:8080/rest/addons/suggestions's Observer
2024-10-04 17:22:06.671 [WARN ] [service.spi.util.WebContainerManager] - Can't get a WebContainer service from {org.osgi.service.http.HttpService, org.ops4j.pax.web.service.WebContainer}={org.ops4j.pax.web.log.ncsa.extended=true, org.ops4j.pax.web.ssl.keystore.password=********, service.scope=bundle, org.ops4j.pax.web.ssl.key.password=********, org.ops4j.pax.web.session.cookie.name=JSESSIONID, org.osgi.service.http.connector.name=default, org.ops4j.pax.web.enc.iterationcount=1000, org.ops4j.pax.web.log.ncsa.file=yyyy_mm_dd.request.log, org.ops4j.pax.web.server.eventDispatcherThreadCount=1, org.osgi.service.http.checkForwardedHeaders=false, org.ops4j.pax.web.enc.suffix=), org.ops4j.pax.web.digestAuth.maxNonceAge=60000, org.ops4j.pax.web.ssl.ciphersuites.included=, org.ops4j.pax.web.session.url=jsessionid, org.ops4j.pax.web.formAuth.errorRedirect=false, org.ops4j.pax.web.ssl.ciphersuites.excluded=^.*_(MD5|SHA|SHA1)$,^TLS_RSA_.*$,^SSL_.*$,^.*_NULL_.*$,^.*_anon_.*, org.ops4j.pax.web.enc.prefix=ENC(, org.ops4j.pax.web.server.maxThreads=50, org.ops4j.pax.web.validatePeerCerts=false, service.id=178, org.ops4j.pax.web.session.cookie.maxAge=-1, org.ops4j.pax.web.ssl.truststore.password=********, org.ops4j.pax.web.ssl.session.cacheSize=-1, org.ops4j.pax.web.ssl.truststore.type=JKS, org.ops4j.pax.web.ssl.keystore.type=JKS, org.ops4j.pax.web.ssl.session.enabled=true, org.ops4j.pax.web.ssl.protocol=TLSv1.3, org.osgi.service.http.port=8080, org.ops4j.pax.web.log.ncsa.file.date.format=yyyy-MM-dd, org.ops4j.pax.web.ssl.renegotiationLimit=-1, org.osgi.service.http.secure.enabled=true, org.osgi.service.http.enabled=true, org.ops4j.pax.web.server.idleTimeout=300000, org.ops4j.pax.web.log.ncsa.retaindays=90, org.ops4j.pax.web.log.ncsa.logtimezone=GMT, org.ops4j.pax.web.enc.algorithm=PBEWithHmacSHA256AndAES_128, org.ops4j.pax.web.validateCerts=false, org.ops4j.pax.web.config.files=/usr/share/openhab/runtime/etc/jetty.xml, org.ops4j.pax.web.ssl.renegotiationAllowed=true, org.ops4j.pax.web.digestAuth.maxNonceCount=1024, org.ops4j.pax.web.enableOCSP=false, org.ops4j.pax.web.ssl.clientauth.needed=false, org.ops4j.pax.web.enc.enabled=false, org.osgi.service.http.port.secure=8443, javax.servlet.context.tempdir=/var/lib/openhab/tmp, org.ops4j.pax.web.enableCRLDP=false, org.ops4j.pax.web.server.connector.idleTimeout=30000, org.ops4j.pax.web.session.timeout=10, org.ops4j.pax.web.ssl.clientauth.wanted=false, org.ops4j.pax.web.ssl.protocols.excluded=SSL,SSLv2,SSLv2Hello,SSLv3, service.bundleid=232, org.ops4j.pax.web.server.minThreads=2, org.ops4j.pax.web.session.cookie.secure=false, org.ops4j.pax.web.enc.masterpassword=********, org.ops4j.pax.web.log.ncsa.append=true, org.osgi.service.http.secure.connector.name=secureDefault, org.ops4j.pax.web.ssl.session.timeout=-1, org.ops4j.pax.web.listening.addresses=0.0.0.0, org.ops4j.pax.web.log.ncsa.buffered=true, org.ops4j.pax.web.session.cookie.sameSite=unset, org.ops4j.pax.web.log.ncsa.enabled=false, org.ops4j.pax.web.ssl.protocols.included=, org.ops4j.pax.web.session.cookie.httpOnly=true, org.ops4j.pax.web.server.showStacks=false}

1 Like

Hi all. Thanks to everyone for your help.

I’ve followed your instructions this way

  1. Registered an account in tuya developer platform
  2. Activated iot core and authentication apis
  3. Created a project
  4. Linked app through qr as described (my 2 devices were discovered ok)
  5. Installed tuya-cli and got device id and key
  6. In OH (4.2.2, docker), configured community addons json url
  7. Installed Smarthome/J Tuya binding
  8. Configured tuya cloud thing (ONLINE, but discovery doesn’t works for me, i don’t know why).
  9. Configured tuya generic thing (with IP, device ID, device Key)
  10. I’ve also configured one channel for my Wifi presence sensor (ZY-M100-WIFI24G). Found DP for presence channel diving in internet.

And… after all this. It doesn’t work. xxxx!!!.
I was a bit frustrated… tried the same with home assistant… all working in 1 minute (i really prefer openhab, but i can’t ignore this)… and some minutes later… I’ve restarted openhab… and… suddenly… it worked!

Again, thanks to all for your indications. My best wishes for this binding developers. I hope they can make a bit easier the whole process.

Hi all,

I’ve a problem with the binding.
Setup of the developer space in tuya cloud works fine.
Also the setup of the tuya cloud project thing worked pretty well.

My lightbulb was also found automatically, but the ip and port wasn’t set automatically. So I set that by myself.
The device is showing me that it is online. It gets correct updates , when I change the ligt from the Tuya smart App.

The problem is, when I send a command from OpenHAB it seems that Tuya is ignoring these commands. Here is my Log:

12:36:22.690 [TRACE] [a.internal.local.handlers.TuyaEncoder] - 04200243ecfabc948b2a/192.168.178.41:6668: Sending encoded '000055AA0000002E00000007000000DC56335F313132653963313864316537373964343532795043513372626933563565527A4978496B572B5148663641523671664F414F64597146444D374E52782F6C477445384B37413470616A776A327634464E3741454C667165526A76614F784B542B76313765586C324A545A7A6B36762F39447634614549723038676E7A54477348795531664D52487A7244684347714566374D7A79643330347768324B6851356F413073412B4971414F57786E4D6356516752516F67764747747A5435734A76376975306C613849712B6D644564447556672378B0A30000AA55'
12:36:31.333 [DEBUG] [a.internal.local.handlers.TuyaEncoder] - 04200243ecfabc948b2a/192.168.178.41:6668: Sending CONTROL, payload {devId=04200243ecfabc948b2a, uid=04200243ecfabc948b2a, t=1731065791, dps={1=true, 2=white, 3=255}, gwId=04200243ecfabc948b2a}
12:36:31.345 [TRACE] [a.internal.local.handlers.TuyaEncoder] - 04200243ecfabc948b2a/192.168.178.41:6668: Sending encoded '000055AA0000002F00000007000000DC56335F313465303964396566383766363963656632795043513372626933563565527A4978496B572B5148663641523671664F414F64597146444D374E52782F6C477445384B37413470616A776A327634464E3741454C667165526A76614F784B542B76313765586C79665931615641525450546931303443534F4378536654477348795531664D52487A724468434771456637593161514164736E5367654C45426C32496A43574336414F57786E4D6356516752516F67764747747A5435734A76376975306C613849712B6D64456444755667489662BF0000AA55'
12:36:41.363 [TRACE] [ernal.local.handlers.HeartbeatHandler] - 04200243ecfabc948b2a/192.168.178.41:6668: Sending ping
12:36:41.366 [DEBUG] [a.internal.local.handlers.TuyaEncoder] - 04200243ecfabc948b2a/192.168.178.41:6668: Sending HEART_BEAT, payload {devId=04200243ecfabc948b2a, uid=04200243ecfabc948b2a, t=1731065801, dps=, gwId=04200243ecfabc948b2a}

Does anyboy knows what the problem is? For me the configuration looks good.

Thanks,
Vincent

AFAIK, tuya devices haven an issue wirh more than one connection. That‘s the reason why the local IP Adress was not set automatically. Please close the App to make sure to have just one connection and remove the manually set IP Address. When the device gets back online, it should work properly.

Thanks for your answer :slight_smile:
I already stopped the Tuya Smart App, but it doesnt set the ip and port.
Before that I used the smart life app, where I had the same problem.

When deleting the lightbulb, I can see, that the Tuya binding finds the device with correct IP and protocol version:

20:50:47.838 [TRACE] [a.internal.local.handlers.TuyaDecoder] - udpListener: Received encoded '000055AA0000000000000000000000A0000000007B226970223A223139322E3136382E3137382E3431222C2267774964223A223034323030323433656366616263393438623261222C22616374697665223A322C226162696C697479223A302C226D6F6465223A302C22656E6372797074223A747275652C2270726F647563744B6579223A2272724F756A5379345066314277456756222C2276657273696F6E223A22332*************'
20:50:47.844 [DEBUG] [a.internal.local.handlers.TuyaDecoder] - udpListener: Received MessageWrapper{commandType=UDP, content='DiscoveryMessage{ip='192.168.178.41', deviceId='04200243ecfabc*****', active=2, ability=0, mode=0, encrypt=true, productKey='rrOujSy4Pf******', version='3.1', token= true, wf_cfg=true}'}

But it doesn’t set the ip and protocal in the created thing.
Do you have any other ideas?

Hi all, I have been using the smarthomej tuya binding for a few weeks. Autodiscovery worked well and got all things to be added in my inbox.
Today, I added a new device to the tuya app, and I see it in the tuya developper interface. But it is not auto discovered in openHAB. I tried to disable and enable the tuya cloud project thing. I also made a scan in the add thing interface, but that new device doesn’t appear.
Is there a delay I have to wait between the creation of a new device in the phone app and the auto discovery? Or should I perform a specific action to force auto-discovery?

1 Like

Continuing the discussion from Smarthome/J Tuya Binding for openHAB 4:

Hi all,

Just browsed through the topics in search for the solution to my problem. The situation is as follows. I have one wallplug and one light bulb from Tuya and they where just working fine and Openhab was in control. The I decided to buy another light bulb from Tuya and I set it up using the Tuya app. After this it was discovered without any problem in Openhab, but it was always in the state config pending (unable to get ip address) but the other two devices where working just fine. The I decided to restart OpenHab and see what happens, after restart only the wallplug was working and both bulbs where in config pending state, then I restarted OpenHab another time and now one of the bulbs was working and the other two devices where not.
To me it looks like the binding is only resolving the ip address for the first device it finds and then stops at that point (wild guess). I also tried to set the ip address manually and although the devices come online I cannot control them (turn on/off). So here it comes, the question, is there someone who can help me solve this problem?

One thing I see is for the device I added the ip address manually:

[TRACE] [.internal.local.handlers.TuyaDecoder] - Did not receive enough bytes from ‘udpListener’, exiting early

Another thing:

2024-11-27 21:34:38.680 [DEBUG] [a.internal.cloud.TuyaContentListener] - Requesting ‘https://openapi.tuyaeu.com/v1.0/users/XXXXXXXXXXXXXXX/devices?from=&page_no=1&page_size=100’ (method=‘GET’, content=‘null’) failed: @2a4e58f8::DecryptedEndPoint@6d250ec5{l=/XX.XX.XX.XX:50510,r=openapi.tuyaeu.com/3.69.78.245:443,OPEN,fill=-,flush=-,to=299551/0}

Hmm ok, when I add the ip address for the bulb which was working before, then that bulb is working but the latest added bulb is not working… pending config (no ip address) and when adding ip address manually it still does not work… and connection is terminated every few seconds. It is a ‘Calex A60 Clear E27’ bulb. I added a channel switch_led with dp 20. When the device is connected it does send this to it: Sending CONTROL, payload {devId=X, uid=X, t=1732743029, dps={20=true}, gwId=X}

2024-11-27 23:05:46.064 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing ‘tuya:tuyaDevice:bf9551a12cf798e15crvgv’ changed from OFFLINE to ONLINE
2024-11-27 23:06:15.892 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing ‘tuya:tuyaDevice:bf9551a12cf798e15crvgv’ changed from ONLINE to OFFLINE
2024-11-27 23:06:21.074 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing ‘tuya:tuyaDevice:bf9551a12cf798e15crvgv’ changed from OFFLINE to ONLINE
2024-11-27 23:06:50.921 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing ‘tuya:tuyaDevice:bf9551a12cf798e15crvgv’ changed from ONLINE to OFFLINE
2024-11-27 23:06:56.098 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing ‘tuya:tuyaDevice:bf9551a12cf798e15crvgv’ changed from OFFLINE to ONLINE
2024-11-27 23:07:25.840 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing ‘tuya:tuyaDevice:bf9551a12cf798e15crvgv’ changed from ONLINE to OFFLINE
2024-11-27 23:07:31.015 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing ‘tuya:tuyaDevice:bf9551a12cf798e15crvgv’ changed from OFFLINE to ONLINE

Br,

Sarris

It’s using the IP internally and does not write to the configuration. This is not needed (and not desired) because otherwise dynamically addigned IP addresses would not work.

Is it possible to use a Tuya Bluetooth gateway with the binding? The binding discovers the gateway but when I add the device its status goes to:

Status: OFFLINE
CONFIGURATION_ERROR
No channels added and schema not found.

So I guess the gateway itself is not supported as a thing. The gateway itself is not interesting though anyway, it would just be great to control devices connected via the gateway, but I guess this is also not supported, at least BLE devices behind the gateway cannot be controlled via OH even after they were added as a Thing.

1 Like

Hello everyone!

Since yesterday (12.12.2024) I have the same problem that almost all devices are ‘Waiting for IP’.
My story:
12/11/2024: I have several smartHome plugs in use and have taught 2 new ones into the smartLife app and then successfully integrated them into OH as usual.
12.12.2024: I connected a new Tuya lamp (wired) and disconnected the power first. My FritzBox shut down (fritzOS 8.0 since 1.12.). After the installation I switched on the power and added the lamp in SmartLife (v.6.1.1). When adding THING via ‘scan’ it already stopped at ‘waiting for IP’.
13.12.2024:

  • This ONE lamp is still ‘Waiting for IP’. Then I updated OH from 4.2.2 to 4.2.3, reinstalled the 3rd party smarthome/J plugin and rebooted. No change.
  • In the evening I installed another Tuya lamp, this time WITHOUT switching off the FritzBox. Integration with SmartLife went smoothly again. In OH, the device was found via SCAN, but remains in ‘Waiting for IP’.
  • Another reboot of OH has multiplied my chaos! The Tuya bridge is online and 3 other devices (the 2 new ones from 11.12.2024 and an older one from 2023). But the other 12(!) no longer connect and are stuck in ‘waiting for IP’.

So what could be wrong?

  • OH 4.2.2: I haven’t changed anything to date. has made it worse for me, but not the trigger.
  • Tuya-Addon: 4.2 ran fine for months, rather not
  • FritzOS 8.0: maybe there’s a bug with the UDP settings or something else in the upgrade?
  • SmartLife App 6.1.1: if the creation of new devices in the new app works differently now - no idea. But my 2 WLAN sockets worked fine in OH. All devices can be controlled as usual in the app.
  • Tuya Cloud Project: I don’t know if they changed anything in the API when they updated the app. I think so as I received an email about AI now available. In my cloud project, ALL devices are neatly listed and I can manipulate any of them via debug.

→ The obvious choice for me: Tuya API or FrizOS

Please, does anyone have a solution? I have rules running in OH that logically no longer work (the fishes in the aquarium will be the first to notice :wink: ).