Doorbird video doorbell binding

Hi Mark

With the new version, my PressedImage keeps showing as NULL, despite the doorbell being pressed and the channel linked.

Thatā€™s odd. Iā€™ll take a look. Can you try pressing the button with debug logging turned on?

Sorry, but Iā€™m not sure what youā€™re asking for. Do you want a way to request a doorbell or motion history montage separate from it being done as part of the doorbell or motion event processing? If so, the latest build has channels to do that (e.g. getDoorbellMontage).

Hi Mark,

The debug solved it, I had a typoā€™d parameter when I updated the binding. The montage works well! I really like it :slight_smile: love you work!

Thanks for this great bundle! I have a D101 and canā€™t wait to get this bundle working. :slightly_smiling_face:
Iā€™m running 2.4.0 stable on an pi3 and can confirm it does not work out of the boxā€¦
After I installed this binding, the two bundles were active and I can see the Binding in the Paper UI configuration. But when I create the thing-file the openhab.log report errors:

Summary
2019-05-09 21:52:57.468 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
java.lang.UnsatisfiedLinkError: Unable to load library '/var/lib/openhab2/tmp/libsodium/libsodium.so':
/var/lib/openhab2/tmp/libsodium/libsodium.so: Kann die Shared-Object-Datei nicht ƶffnen: Datei oder Verzeichnis nicht gefunden
/var/lib/openhab2/tmp/libsodium/libsodium.so: Kann die Shared-Object-Datei nicht ƶffnen: Datei oder Verzeichnis nicht gefunden
Native library (var/lib/openhab2/tmp/libsodium/libsodium.so) not found in resource path (/usr/share/openhab2/runtime/lib/boot/activation-1.1.1.jar:/usr/share/openhab2/runtime/lib/boot/jaxb-api-2.3.0.jar:/usr/share/openhab2/runtime/lib/boot/jaxb-core-2.2.11.jar:/usr/share/openhab2/runtime/lib/boot/jaxb-impl-2.2.11.jar:/usr/share/openhab2/runtime/lib/boot/org.apache.karaf.diagnostic.boot-4.2.1.jar:/usr/share/openhab2/runtime/lib/boot/org.apache.karaf.jaas.boot-4.2.1.jar:/usr/share/openhab2/runtime/lib/boot/org.apache.karaf.main-4.2.1.jar:/usr/share/openhab2/runtime/lib/boot/org.osgi.core-6.0.0.jar)
        at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:302) ~[?:?]
        at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:455) ~[?:?]
        at com.sun.jna.Native.register(Native.java:1722) ~[?:?]
        at com.goterl.lazycode.lazysodium.utils.NativeUtils.loadLibraryFromJar(NativeUtils.java:109) ~[?:?]
        at com.goterl.lazycode.lazysodium.SodiumJava.registerFromResources(SodiumJava.java:156) ~[?:?]
        at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:21) ~[?:?]
        at org.openhab.binding.doorbird.internal.DoorbirdEvent.<clinit>(DoorbirdEvent.java:41) ~[?:?]
        at org.openhab.binding.doorbird.internal.DoorbirdUdpListener.<init>(DoorbirdUdpListener.java:45) ~[?:?]
        at org.openhab.binding.doorbird.internal.DoorbirdHandler.<init>(DoorbirdHandler.java:103) ~[?:?]
        at org.openhab.binding.doorbird.internal.DoorbirdHandlerFactory.createHandler(DoorbirdHandlerFactory.java:57) ~[?:?]
        at org.eclipse.smarthome.core.thing.binding.BaseThingHandlerFactory.registerHandler(BaseThingHandlerFactory.java:128) ~[?:?]
        at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.doRegisterHandler(ThingManagerImpl.java:600) ~[?:?]
        at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.registerHandler(ThingManagerImpl.java:577) ~[?:?]
        at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.registerAndInitializeHandler(ThingManagerImpl.java:1073) ~[?:?]
        at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.thingAdded(ThingManagerImpl.java:457) ~[?:?]
        at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyTrackers(ThingRegistryImpl.java:209) ~[?:?]
        at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutAddedElement(ThingRegistryImpl.java:129) ~[?:?]
        at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutAddedElement(ThingRegistryImpl.java:1) ~[?:?]
        at org.eclipse.smarthome.core.common.registry.AbstractRegistry.added(AbstractRegistry.java:154) ~[?:?]
        at org.eclipse.smarthome.core.common.registry.AbstractRegistry.added(AbstractRegistry.java:1) ~[?:?]
        at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:56) ~[?:?]
        at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:74) ~[?:?]
        at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListenersAboutAddedElement(AbstractProvider.java:78) ~[?:?]
        at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.lambda$27(GenericThingProvider.java:960) ~[?:?]
        at java.util.ArrayList.forEach(ArrayList.java:1257) ~[?:?]
        at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.createThingsFromModelForThingHandlerFactory(GenericThingProvider.java:963) ~[?:?]
        at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.lambda$4(GenericThingProvider.java:301) ~[?:?]
        at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
        at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.createThingsFromModel(GenericThingProvider.java:303) ~[?:?]
        at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.modelChanged(GenericThingProvider.java:759) ~[?:?]
        at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:301) ~[?:?]
        at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:123) ~[?:?]
        at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:227) ~[?:?]
        at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.processWatchEvent(FolderObserver.java:291) ~[?:?]
        at org.eclipse.smarthome.core.service.WatchQueueReader.lambda$3(WatchQueueReader.java:323) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
        at java.lang.Thread.run(Thread.java:748) [?:?]
        Suppressed: java.lang.UnsatisfiedLinkError: /var/lib/openhab2/tmp/libsodium/libsodium.so: Kann die Shared-Object-Datei nicht ƶffnen: Datei oder Verzeichnis nicht gefunden
                at com.sun.jna.Native.open(Native Method) ~[?:?]
                at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:191) ~[?:?]
                at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:455) ~[?:?]
                at com.sun.jna.Native.register(Native.java:1722) ~[?:?]
                at com.goterl.lazycode.lazysodium.utils.NativeUtils.loadLibraryFromJar(NativeUtils.java:109) ~[?:?]
                at com.goterl.lazycode.lazysodium.SodiumJava.registerFromResources(SodiumJava.java:156) ~[?:?]
                at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:21) ~[?:?]
                at org.openhab.binding.doorbird.internal.DoorbirdEvent.<clinit>(DoorbirdEvent.java:41) ~[?:?]
                at org.openhab.binding.doorbird.internal.DoorbirdUdpListener.<init>(DoorbirdUdpListener.java:45) ~[?:?]
                at org.openhab.binding.doorbird.internal.DoorbirdHandler.<init>(DoorbirdHandler.java:103) ~[?:?]
                at org.openhab.binding.doorbird.internal.DoorbirdHandlerFactory.createHandler(DoorbirdHandlerFactory.java:57) ~[?:?]
                at org.eclipse.smarthome.core.thing.binding.BaseThingHandlerFactory.registerHandler(BaseThingHandlerFactory.java:128) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.doRegisterHandler(ThingManagerImpl.java:600) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.registerHandler(ThingManagerImpl.java:577) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.registerAndInitializeHandler(ThingManagerImpl.java:1073) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.thingAdded(ThingManagerImpl.java:457) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyTrackers(ThingRegistryImpl.java:209) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutAddedElement(ThingRegistryImpl.java:129) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutAddedElement(ThingRegistryImpl.java:1) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractRegistry.added(AbstractRegistry.java:154) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractRegistry.added(AbstractRegistry.java:1) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:56) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:74) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListenersAboutAddedElement(AbstractProvider.java:78) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.lambda$27(GenericThingProvider.java:960) ~[?:?]
                at java.util.ArrayList.forEach(ArrayList.java:1257) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.createThingsFromModelForThingHandlerFactory(GenericThingProvider.java:963) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.lambda$4(GenericThingProvider.java:301) ~[?:?]
                at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.createThingsFromModel(GenericThingProvider.java:303) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.modelChanged(GenericThingProvider.java:759) ~[?:?]
                at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:301) ~[?:?]
                at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:123) ~[?:?]
                at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:227) ~[?:?]
                at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.processWatchEvent(FolderObserver.java:291) ~[?:?]
                at org.eclipse.smarthome.core.service.WatchQueueReader.lambda$3(WatchQueueReader.java:323) ~[?:?]
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:?]
                at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?]
                at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[?:?]
                at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[?:?]
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
                at java.lang.Thread.run(Thread.java:748) [?:?]
        Suppressed: java.lang.UnsatisfiedLinkError: /var/lib/openhab2/tmp/libsodium/libsodium.so: Kann die Shared-Object-Datei nicht ƶffnen: Datei oder Verzeichnis nicht gefunden
                at com.sun.jna.Native.open(Native Method) ~[?:?]
                at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:204) ~[?:?]
                at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:455) ~[?:?]
                at com.sun.jna.Native.register(Native.java:1722) ~[?:?]
                at com.goterl.lazycode.lazysodium.utils.NativeUtils.loadLibraryFromJar(NativeUtils.java:109) ~[?:?]
                at com.goterl.lazycode.lazysodium.SodiumJava.registerFromResources(SodiumJava.java:156) ~[?:?]
                at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:21) ~[?:?]
                at org.openhab.binding.doorbird.internal.DoorbirdEvent.<clinit>(DoorbirdEvent.java:41) ~[?:?]
                at org.openhab.binding.doorbird.internal.DoorbirdUdpListener.<init>(DoorbirdUdpListener.java:45) ~[?:?]
                at org.openhab.binding.doorbird.internal.DoorbirdHandler.<init>(DoorbirdHandler.java:103) ~[?:?]
                at org.openhab.binding.doorbird.internal.DoorbirdHandlerFactory.createHandler(DoorbirdHandlerFactory.java:57) ~[?:?]
                at org.eclipse.smarthome.core.thing.binding.BaseThingHandlerFactory.registerHandler(BaseThingHandlerFactory.java:128) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.doRegisterHandler(ThingManagerImpl.java:600) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.registerHandler(ThingManagerImpl.java:577) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.registerAndInitializeHandler(ThingManagerImpl.java:1073) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.thingAdded(ThingManagerImpl.java:457) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyTrackers(ThingRegistryImpl.java:209) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutAddedElement(ThingRegistryImpl.java:129) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutAddedElement(ThingRegistryImpl.java:1) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractRegistry.added(AbstractRegistry.java:154) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractRegistry.added(AbstractRegistry.java:1) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:56) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:74) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListenersAboutAddedElement(AbstractProvider.java:78) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.lambda$27(GenericThingProvider.java:960) ~[?:?]
                at java.util.ArrayList.forEach(ArrayList.java:1257) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.createThingsFromModelForThingHandlerFactory(GenericThingProvider.java:963) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.lambda$4(GenericThingProvider.java:301) ~[?:?]
                at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.createThingsFromModel(GenericThingProvider.java:303) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.modelChanged(GenericThingProvider.java:759) ~[?:?]
                at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:301) ~[?:?]
                at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:123) ~[?:?]
                at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:227) ~[?:?]
                at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.processWatchEvent(FolderObserver.java:291) ~[?:?]
                at org.eclipse.smarthome.core.service.WatchQueueReader.lambda$3(WatchQueueReader.java:323) ~[?:?]
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:?]
                at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?]
                at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[?:?]
                at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[?:?]
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
                at java.lang.Thread.run(Thread.java:748) [?:?]
        Suppressed: java.io.IOException: Native library (var/lib/openhab2/tmp/libsodium/libsodium.so) not found in resource path (/usr/share/openhab2/runtime/lib/boot/activation-1.1.1.jar:/usr/share/openhab2/runtime/lib/boot/jaxb-api-2.3.0.jar:/usr/share/openhab2/runtime/lib/boot/jaxb-core-2.2.11.jar:/usr/share/openhab2/runtime/lib/boot/jaxb-impl-2.2.11.jar:/usr/share/openhab2/runtime/lib/boot/org.apache.karaf.diagnostic.boot-4.2.1.jar:/usr/share/openhab2/runtime/lib/boot/org.apache.karaf.jaas.boot-4.2.1.jar:/usr/share/openhab2/runtime/lib/boot/org.apache.karaf.main-4.2.1.jar:/usr/share/openhab2/runtime/lib/boot/org.osgi.core-6.0.0.jar)
                at com.sun.jna.Native.extractFromResourcePath(Native.java:1095) ~[?:?]
                at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:276) ~[?:?]
                at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:455) ~[?:?]
                at com.sun.jna.Native.register(Native.java:1722) ~[?:?]
                at com.goterl.lazycode.lazysodium.utils.NativeUtils.loadLibraryFromJar(NativeUtils.java:109) ~[?:?]
                at com.goterl.lazycode.lazysodium.SodiumJava.registerFromResources(SodiumJava.java:156) ~[?:?]
                at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:21) ~[?:?]
                at org.openhab.binding.doorbird.internal.DoorbirdEvent.<clinit>(DoorbirdEvent.java:41) ~[?:?]
                at org.openhab.binding.doorbird.internal.DoorbirdUdpListener.<init>(DoorbirdUdpListener.java:45) ~[?:?]
                at org.openhab.binding.doorbird.internal.DoorbirdHandler.<init>(DoorbirdHandler.java:103) ~[?:?]
                at org.openhab.binding.doorbird.internal.DoorbirdHandlerFactory.createHandler(DoorbirdHandlerFactory.java:57) ~[?:?]
                at org.eclipse.smarthome.core.thing.binding.BaseThingHandlerFactory.registerHandler(BaseThingHandlerFactory.java:128) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.doRegisterHandler(ThingManagerImpl.java:600) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.registerHandler(ThingManagerImpl.java:577) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.registerAndInitializeHandler(ThingManagerImpl.java:1073) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingManagerImpl.thingAdded(ThingManagerImpl.java:457) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyTrackers(ThingRegistryImpl.java:209) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutAddedElement(ThingRegistryImpl.java:129) ~[?:?]
                at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutAddedElement(ThingRegistryImpl.java:1) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractRegistry.added(AbstractRegistry.java:154) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractRegistry.added(AbstractRegistry.java:1) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:56) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:74) ~[?:?]
                at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListenersAboutAddedElement(AbstractProvider.java:78) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.lambda$27(GenericThingProvider.java:960) ~[?:?]
                at java.util.ArrayList.forEach(ArrayList.java:1257) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.createThingsFromModelForThingHandlerFactory(GenericThingProvider.java:963) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.lambda$4(GenericThingProvider.java:301) ~[?:?]
                at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.createThingsFromModel(GenericThingProvider.java:303) ~[?:?]
                at org.eclipse.smarthome.model.thing.internal.GenericThingProvider.modelChanged(GenericThingProvider.java:759) ~[?:?]
                at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:301) ~[?:?]
                at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:123) ~[?:?]
                at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:227) ~[?:?]
                at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.processWatchEvent(FolderObserver.java:291) ~[?:?]
                at org.eclipse.smarthome.core.service.WatchQueueReader.lambda$3(WatchQueueReader.java:323) ~[?:?]
                at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:?]
                at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?]
                at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[?:?]
                at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[?:?]
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
                at java.lang.Thread.run(Thread.java:748) [?:?]

Does anyone get libsodium to work on a pi?

Thatā€™s unfortunate, but I was afraid that might be the case. Iā€™ll look into it some more, but Iā€™m not all that optimistic.

You might want to read through this issue, as there are some possible solutions.

Edit: The second of these options requires that I make some code changes. So, if option 1 is unsuccessful, we can try option 2.

Well, I tried option 4 and compiled Libsodium myself! :smile:

I followed this instruction (except that I used the latest version of libsodium-1.0.17.tar.gz and dropped points 8 and 9):
https://www.raspberrypi.org/forums/viewtopic.php?t=203662#p1265732

That worked on my pi3 running Raspbian Stretch Lite!

After that I created a symolic link:
sudo ln -s /usr/local/lib/libsodium.so /var/lib/openhab2/tmp/libsodium/libsodium.so

But after I restart OH via
sudo systemctl restart openhab2.service
the symbolic link in/var/lib/openhab2/tmp/libsodium/ is gone and the error mentioned above returns.

Can you possibly change the path to libsodium.so?

I use a Java wrapper for libsodium called LazySodium. It has several libsodium builds bundled with the jar (but not one for the pi3, unfortunately). Shortly, Iā€™ll have a version of the binding that will try to load libsodium from the OS if a bundled one cannot be found. If you could try installing libsodium (sudo apt install libsodium) on the OS, Iā€™ll post a version that will try to load the OS version (if the load of the bundled one fails). Iā€™ll want you to enable DEBUG logging so that we can see whatā€™s happening.

Ok. I just posted a version that will try to load the OS version of libsodium if the load of the bundled version fails. Wanna give that a try? Make sure to enable debug logging.

Youā€™ll see something like this in the log, except that the line after the Trying to load will be a failure, then hopefully followed by a line saying itā€™s trying to load the OS version.

2019-05-09 18:09:19.704 [DEBUG] [rg.openhab.binding.doorbird.internal.DoorbirdEvent] - Trying to load bundled libsodium library
2019-05-09 18:09:19.716 [DEBUG] [rg.openhab.binding.doorbird.internal.DoorbirdEvent] - Successfully loaded bundled libsodium library!!

Well, sudo apt install libsodium doesnā€™t work. I ran apt-cache search libsodium to find the version to install. On Ubuntu 16.04 it was libsodium18. On 18.04, it was libsodium23.

1 Like

Unfortunately, Iā€™m a bit overwhelmed, please help:
I enabled debug logging and replaced the jar in the addons-folder with your new one. Is that enough?
Do I really need to apt-get libsodium even though Iā€™ve already compiled it myself?

EDIT: apt-cache search libsodium delivers libsodium18 on my system

I dunno. It might be sufficient to use the one you compiled. Weā€™ll only know when the binding tries to load libsodium, which is at binding startup.

What do you see in the log?

After Restart:

image

:star_struck:

Your new version works! Thanks a lot! :+1:

Debug-Log after OH-Restart tells really lotā€¦ but this doesnā€™t matter anymore! :grinning:

I have to go to bed now. Itā€™s after midnight in Germany.
Iā€™ll get back to you in the next few days!

1 Like

Cool!!! Get some sleep. :smile:

When you get a minute, Iā€™m curious to know if it used the compiled version or the version installed with apt (if you even needed to install with apt).

Iā€™ll also be interested to know if you see any errors when doorbell and/or motion events occur, as thatā€™s where the actual decryption takes place.

Hi Mark,

the binding is online but the items do not work. :-/
I receive the following warning message in openhab.log:

2019-05-10 22:47:29.522 [WARN ] [ding.doorbird.internal.DoorbirdEvent] - Couldn't load libsodium library. Try installing libsodium on your OS

EDIT: I installed libsodium

sudo apt install libsodium18

but there is still that warning after restart:

==> /var/log/openhab2/openhab.log <==
2019-05-11 00:16:27.542 [WARN ] [ding.doorbird.internal.DoorbirdEvent] - Couldn't load libsodium library. Try installing libsodium on your OS

Can I possibly turn on a debug-log specifically for your binding? And if so, how?

Turn on debug using this command at the console.

log:set DEBUG org.openhab.binding.doorbird

You may need to install the latest doorbird binding in order to see the actual error.

But, Iā€™m betting itā€™s this error, which Iā€™ve already logged an issue here.

java.lang.UnsatisfiedLinkError: Error looking up function 'crypto_pwhash_scryptsalsa208sha256_str_needs_rehash': /usr/lib/x86_64-linux-gnu/libsodium.so.18.0.1: undefined symbol: crypto_pwhash_scryptsalsa208sha256_str_needs_rehash

For now, I would suggest you uninstall libsodium18 (sudo apt remove libsodium18), and use the version that you compiled.

Hi Mark,

I uninstalled libsodium18 and enabled the debug mode.

2019-05-11 22:27:37.641 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Trying to load bundled libsodium library
2019-05-11 22:27:37.704 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Unable to load bundled libsodium: Unable to load library '/var/lib/openhab2/tmp/libsodium/libsodium.so':
/var/lib/openhab2/tmp/libsodium/libsodium.so: Kann die Shared-Object-Datei nicht ƶffnen: Datei oder Verzeichnis nicht gefunden
/var/lib/openhab2/tmp/libsodium/libsodium.so: Kann die Shared-Object-Datei nicht ƶffnen: Datei oder Verzeichnis nicht gefunden
Native library (var/lib/openhab2/tmp/libsodium/libsodium.so) not found in resource path (/usr/share/openhab2/runtime/lib/boot/activation-1.1.1.jar:/usr/share/openhab2/runtime/lib/boot/jaxb-api-2.3.0.jar:/usr/share/openhab2/runtime/lib/boot/jaxb-core-2.2.11.jar:/usr/share/openhab2/runtime/lib/boot/jaxb-impl-2.2.11.jar:/usr/share/openhab2/runtime/lib/boot/org.apache.karaf.diagnostic.boot-4.2.1.jar:/usr/share/openhab2/runtime/lib/boot/org.apache.karaf.jaas.boot-4.2.1.jar:/usr/share/openhab2/runtime/lib/boot/org.apache.karaf.main-4.2.1.jar:/usr/share/openhab2/runtime/lib/boot/org.osgi.core-6.0.0.jar)
2019-05-11 22:27:37.707 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Trying to load libsodium from operating system
2019-05-11 22:27:37.716 [WARN ] [ding.doorbird.internal.DoorbirdEvent] - Couldn't load libsodium library. Try installing libsodium on your OS
2019-05-11 22:27:37.719 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Unable to decrypt event because libsodium is not loaded

Then I recreated the symbolic link:

sudo ln -s /usr/local/lib/libsodium.so /var/lib/openhab2/tmp/libsodium/libsodium.so

The log shows now:

2019-05-11 22:31:26.898 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Trying to load bundled libsodium library
2019-05-11 22:31:26.911 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Unable to load bundled libsodium: com.goterl.lazycode.lazysodium.Sodium.sodium_init()I
2019-05-11 22:31:26.914 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Trying to load libsodium from operating system
2019-05-11 22:31:26.932 [WARN ] [ding.doorbird.internal.DoorbirdEvent] - Couldn't load libsodium library. Try installing libsodium on your OS
2019-05-11 22:31:26.936 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Unable to decrypt event because libsodium is not loaded

It seems like libsodium is not working properly or the symbolic link is not enough. Do you have any idea?

EDIT: Sorry, I forget to install the latest doorbird binding!!!

This is what I get with the latest version:

2019-05-11 23:14:35.251 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Trying to get an instance of the LazySodium decryption library
2019-05-11 23:14:35.257 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - LazySodium has not been loaded yet. Try to load it now.
2019-05-11 23:14:35.260 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Trying to load bundled libsodium library
2019-05-11 23:14:35.348 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Unable to load bundled libsodium library!!
2019-05-11 23:14:35.351 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Trying to load libsodium library from operating system
2019-05-11 23:14:35.360 [WARN ] [ding.doorbird.internal.DoorbirdEvent] - Failed to load libsodium crypto library!!
2019-05-11 23:14:35.363 [WARN ] [ding.doorbird.internal.DoorbirdEvent] - Try manually installing libsodium on your OS if libsodium supports your architecture
2019-05-11 23:14:35.365 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Unable to decrypt event because libsodium is not loaded
2019-05-11 23:14:35.368 [DEBUG] [ding.doorbird.internal.DoorbirdEvent] - Trying to get an instance of the LazySodium decryption library

Not at the moment until I get some feedback from the LazySodium developer.

Hi @mhilbush working really well ! Canā€™t wait for the new features :slight_smile:

Montage is great! See image

1 Like

I could use some help!

Currently, the RPi2 and RPi3 are not supported by my Doorbird binding because the arm7 and arm8 builds of the crypto library (libsodium) for the RPi are not available in the crypto package (LazySodium) Iā€™m using. And, the crypto libraries that can be installed directly from the Raspbian Jessie and Stretch distributions are not the most current version needed by the crypto package.

Iā€™m working with the LazySodium developer who has offered to include the libsodium crypto libraries that support RPi2 and RPi3. Iā€™ve already built the RPi3 version of the library and provided it to the LazySodium developer.

However, Iā€™m having trouble getting the library for the RPi2. I donā€™t have a RPi2 that I can use to compile the library, and Iā€™m not set up to cross compile for that platform.

Soā€¦ Is someone with an RPi2 Model B willing to compile the library for me? If so, please PM me and Iā€™ll walk you through it. If your RPi2 is set up with the C-language dev tools, itā€™s should be very easy to build the library.