Bluetooth --> Ruuvi tag problem

  • Platform information:
    • Hardware: Raspberry Pi 4B 4Gib
    • OS: Raspbian 4.0.3
    • Java Runtime Environment: openjdk version “17.0.7”
    • openHAB version: 4.0.3
  • Issue of the topic: Bluetooth seems to work, but can not get data from Ruuvi tags.

I have two bluetooth adapters: the Raspi built-in and one external dongle. Dongle is equipped with a big antenna, so it is capable of receivind weaker signals.
I have been running this setup for years, but after upgraded to OH4 I have been facing a lot of difficulties with the bluetooth.
First I had this SAP -problem which was solved by disabling it with a parameter

–noplugin=sap

After that everything seems to work flawlesly, except that every single Ruuvi tag goes to “error” state after a few minutes. In the same time I can be able to discover a lot of different bluetooth devices around the Rpi and I can also discover and add the Ruuvi tags as things as well. I have one active communication running with Airthings Wave and it works fine. Both of the bluetooth bindings are running and the status is green. I have tried to change the active bluetooth connection from the Ruuvi-thing settings, but it does not help. I have reinstalled bluetooth

sudo apt-get purge bluez
sudo apt-get install bluez

I have also removed the bluetooth binding and then reinstalled it.

The log contains the following line every now and then:

2023-09-19 21:14:31.506 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method ‘ThingHandler.thingUpdated()’ on ‘org.openhab.binding.bluetooth.ruuvitag.internal.RuuviTagHandler@10bd5a2’: Method “Disconnect” with signature “” on interface “org.bluez.Device1” doesn’t exist

Nothing helps. I can see the devices, I can communicate at least with the Airthings Wave, I am able to see devices around me, but I’m completely unable to get data from the Ruuvi tags.

What should I try next?

This information will be printed on the log in every ten to twenty minutes.

2023-09-19 22:32:51.517 [ERROR] [nal.common.AbstractInvocationHandler] - An error occurred while calling method ‘ThingHandler.dispose()’ on ‘org.openhab.binding.bluetooth.ruuvitag.internal.RuuviTagHandler@4bcaa7’: Method “Disconnect” with signature “” on interface “org.bluez.Device1” doesn’t exist
org.freedesktop.dbus.errors.UnknownObject: Method “Disconnect” with signature “” on interface “org.bluez.Device1” doesn’t exist
at jdk.internal.reflect.GeneratedConstructorAccessor300.newInstance(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
at org.freedesktop.dbus.errors.Error.getException(Error.java:157) ~[?:?]
at org.freedesktop.dbus.errors.Error.throwException(Error.java:187) ~[?:?]
at org.freedesktop.dbus.RemoteInvocationHandler.executeRemoteMethod(RemoteInvocationHandler.java:164) ~[?:?]
at org.freedesktop.dbus.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:228) ~[?:?]
at jdk.proxy22.$Proxy275.Disconnect(Unknown Source) ~[?:?]
at com.github.hypfvieh.bluetooth.wrapper.BluetoothDevice.disconnect(BluetoothDevice.java:434) ~[?:?]
at org.openhab.binding.bluetooth.bluez.internal.BlueZBluetoothDevice.disconnect(BlueZBluetoothDevice.java:199) ~[?:?]
at org.openhab.binding.bluetooth.BeaconBluetoothHandler.dispose(BeaconBluetoothHandler.java:139) ~[?:?]
at org.openhab.binding.bluetooth.ruuvitag.internal.RuuviTagHandler.dispose(RuuviTagHandler.java:88) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:147) ~[?:?]
at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at java.lang.Thread.run(Thread.java:833) ~[?:?]