Doorbird video doorbell binding

Anybody tried it on Windows?
OpenHAB is running on a Windows7 Embedded SP1 System.
Seems that there’s a problem running Libsodium DLL.

2021-09-12 15:15:47.974 [TRACE] [nternal.listener.DoorbirdUdpListener] - Got datagram of length 22 from 10.0.0.98
2021-09-12 15:15:47.974 [TRACE] [nternal.listener.DoorbirdUdpListener] - Dropping duplicate packet
2021-09-12 15:15:49.721 [TRACE] [nternal.listener.DoorbirdUdpListener] - Got datagram of length 70 from 10.0.0.98
2021-09-12 15:15:49.721 [DEBUG] [r.DoorbirdEvent$LazySodiumJavaHolder] - LazySodium has not been loaded yet. Try to load it now.
2021-09-12 15:15:52.217 [DEBUG] [r.DoorbirdEvent$LazySodiumJavaHolder] - Unable to load bundled libsodium crypto library!! Try to load OS version.
java.lang.UnsatisfiedLinkError: Unable to load library 'C:\openHAB\userdata\tmp\resource-loader9485685529324665803\windows\libsodium.dll':
The specified module could not be found.

The specified module could not be found.

Native library (win32-x86/C:\openHAB\userdata\tmp\resource-loader9485685529324665803\windows\libsodium.dll) not found in resource path (C:\openHAB\userdata\conf;C:\openHAB\runtime\bin\..\lib\jdk9plus\istack-commons-runtime-3.0.10.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\jakarta.xml.bind-api-2.3.3.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\javax.activation-1.2.0.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\javax.annotation-api-1.3.1.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\jaxb-runtime-2.3.3.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\txw2-2.3.3.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.diagnostic.boot-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.jaas.boot-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.main-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.specs.activator-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\osgi.core-7.0.0.jar)
	at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:302) ~[bundleFile:5.5.0 (b0)]
	at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:455) ~[bundleFile:5.5.0 (b0)]
	at com.sun.jna.Native.register(Native.java:1722) ~[bundleFile:5.5.0 (b0)]
	at co.libly.resourceloader.SharedLibraryLoader.registerLibraryWithClasses(SharedLibraryLoader.java:74) ~[bundleFile:?]
	at co.libly.resourceloader.SharedLibraryLoader.load(SharedLibraryLoader.java:57) ~[bundleFile:?]
	at com.goterl.lazycode.lazysodium.utils.LibraryLoader.loadBundledLibrary(LibraryLoader.java:115) ~[bundleFile:?]
	at com.goterl.lazycode.lazysodium.utils.LibraryLoader.loadLibrary(LibraryLoader.java:84) ~[bundleFile:?]
	at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:34) ~[bundleFile:?]
	at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:23) ~[bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.loadLazySodiumJava(DoorbirdEvent.java:84) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.<clinit>(DoorbirdEvent.java:78) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.getLazySodiumJavaInstance(DoorbirdEvent.java:101) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decryptV1(DoorbirdEvent.java:182) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decrypt(DoorbirdEvent.java:160) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.processPacket(DoorbirdUdpListener.java:122) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.receivePackets(DoorbirdUdpListener.java:95) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.run(DoorbirdUdpListener.java:65) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
	at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
	at java.lang.Thread.run(Unknown Source) [?:?]
	Suppressed: java.lang.UnsatisfiedLinkError: The specified module could not be found.

		at com.sun.jna.Native.open(Native Method) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:191) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:455) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.Native.register(Native.java:1722) ~[bundleFile:5.5.0 (b0)]
		at co.libly.resourceloader.SharedLibraryLoader.registerLibraryWithClasses(SharedLibraryLoader.java:74) ~[bundleFile:?]
		at co.libly.resourceloader.SharedLibraryLoader.load(SharedLibraryLoader.java:57) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.utils.LibraryLoader.loadBundledLibrary(LibraryLoader.java:115) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.utils.LibraryLoader.loadLibrary(LibraryLoader.java:84) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:34) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:23) ~[bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.loadLazySodiumJava(DoorbirdEvent.java:84) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.<clinit>(DoorbirdEvent.java:78) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.getLazySodiumJavaInstance(DoorbirdEvent.java:101) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decryptV1(DoorbirdEvent.java:182) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decrypt(DoorbirdEvent.java:160) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.processPacket(DoorbirdUdpListener.java:122) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.receivePackets(DoorbirdUdpListener.java:95) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.run(DoorbirdUdpListener.java:65) [bundleFile:?]
		at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
		at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
		at java.lang.Thread.run(Unknown Source) [?:?]
	Suppressed: java.lang.UnsatisfiedLinkError: The specified module could not be found.

		at com.sun.jna.Native.open(Native Method) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:204) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:455) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.Native.register(Native.java:1722) ~[bundleFile:5.5.0 (b0)]
		at co.libly.resourceloader.SharedLibraryLoader.registerLibraryWithClasses(SharedLibraryLoader.java:74) ~[bundleFile:?]
		at co.libly.resourceloader.SharedLibraryLoader.load(SharedLibraryLoader.java:57) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.utils.LibraryLoader.loadBundledLibrary(LibraryLoader.java:115) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.utils.LibraryLoader.loadLibrary(LibraryLoader.java:84) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:34) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:23) ~[bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.loadLazySodiumJava(DoorbirdEvent.java:84) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.<clinit>(DoorbirdEvent.java:78) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.getLazySodiumJavaInstance(DoorbirdEvent.java:101) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decryptV1(DoorbirdEvent.java:182) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decrypt(DoorbirdEvent.java:160) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.processPacket(DoorbirdUdpListener.java:122) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.receivePackets(DoorbirdUdpListener.java:95) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.run(DoorbirdUdpListener.java:65) [bundleFile:?]
		at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
		at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
		at java.lang.Thread.run(Unknown Source) [?:?]
	Suppressed: java.io.IOException: Native library (win32-x86/C:\openHAB\userdata\tmp\resource-loader9485685529324665803\windows\libsodium.dll) not found in resource path (C:\openHAB\userdata\conf;C:\openHAB\runtime\bin\..\lib\jdk9plus\istack-commons-runtime-3.0.10.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\jakarta.xml.bind-api-2.3.3.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\javax.activation-1.2.0.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\javax.annotation-api-1.3.1.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\jaxb-runtime-2.3.3.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\txw2-2.3.3.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.diagnostic.boot-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.jaas.boot-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.main-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.specs.activator-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\osgi.core-7.0.0.jar)
		at com.sun.jna.Native.extractFromResourcePath(Native.java:1095) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:276) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:455) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.Native.register(Native.java:1722) ~[bundleFile:5.5.0 (b0)]
		at co.libly.resourceloader.SharedLibraryLoader.registerLibraryWithClasses(SharedLibraryLoader.java:74) ~[bundleFile:?]
		at co.libly.resourceloader.SharedLibraryLoader.load(SharedLibraryLoader.java:57) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.utils.LibraryLoader.loadBundledLibrary(LibraryLoader.java:115) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.utils.LibraryLoader.loadLibrary(LibraryLoader.java:84) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:34) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:23) ~[bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.loadLazySodiumJava(DoorbirdEvent.java:84) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.<clinit>(DoorbirdEvent.java:78) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.getLazySodiumJavaInstance(DoorbirdEvent.java:101) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decryptV1(DoorbirdEvent.java:182) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decrypt(DoorbirdEvent.java:160) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.processPacket(DoorbirdUdpListener.java:122) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.receivePackets(DoorbirdUdpListener.java:95) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.run(DoorbirdUdpListener.java:65) [bundleFile:?]
		at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
		at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
		at java.lang.Thread.run(Unknown Source) [?:?]
2021-09-12 15:15:52.264 [INFO ] [r.DoorbirdEvent$LazySodiumJavaHolder] - Failed to load libsodium crypto library!!
java.lang.UnsatisfiedLinkError: Unable to load library 'sodium':
The specified module could not be found.

The specified module could not be found.

The specified module could not be found.

Native library (win32-x86/sodium.dll) not found in resource path (C:\openHAB\userdata\conf;C:\openHAB\runtime\bin\..\lib\jdk9plus\istack-commons-runtime-3.0.10.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\jakarta.xml.bind-api-2.3.3.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\javax.activation-1.2.0.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\javax.annotation-api-1.3.1.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\jaxb-runtime-2.3.3.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\txw2-2.3.3.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.diagnostic.boot-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.jaas.boot-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.main-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.specs.activator-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\osgi.core-7.0.0.jar)
	at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:302) ~[bundleFile:5.5.0 (b0)]
	at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:455) ~[bundleFile:5.5.0 (b0)]
	at com.sun.jna.Native.register(Native.java:1722) ~[bundleFile:5.5.0 (b0)]
	at co.libly.resourceloader.SharedLibraryLoader.registerLibraryWithClasses(SharedLibraryLoader.java:74) ~[bundleFile:?]
	at co.libly.resourceloader.SharedLibraryLoader.loadSystemLibrary(SharedLibraryLoader.java:42) ~[bundleFile:?]
	at com.goterl.lazycode.lazysodium.utils.LibraryLoader.loadAbsolutePath(LibraryLoader.java:103) ~[bundleFile:?]
	at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:39) ~[bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.loadLazySodiumJava(DoorbirdEvent.java:89) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.<clinit>(DoorbirdEvent.java:78) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.getLazySodiumJavaInstance(DoorbirdEvent.java:101) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decryptV1(DoorbirdEvent.java:182) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decrypt(DoorbirdEvent.java:160) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.processPacket(DoorbirdUdpListener.java:122) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.receivePackets(DoorbirdUdpListener.java:95) [bundleFile:?]
	at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.run(DoorbirdUdpListener.java:65) [bundleFile:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
	at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
	at java.lang.Thread.run(Unknown Source) [?:?]
	Suppressed: java.lang.UnsatisfiedLinkError: The specified module could not be found.

		at com.sun.jna.Native.open(Native Method) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:191) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:455) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.Native.register(Native.java:1722) ~[bundleFile:5.5.0 (b0)]
		at co.libly.resourceloader.SharedLibraryLoader.registerLibraryWithClasses(SharedLibraryLoader.java:74) ~[bundleFile:?]
		at co.libly.resourceloader.SharedLibraryLoader.loadSystemLibrary(SharedLibraryLoader.java:42) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.utils.LibraryLoader.loadAbsolutePath(LibraryLoader.java:103) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:39) ~[bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.loadLazySodiumJava(DoorbirdEvent.java:89) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.<clinit>(DoorbirdEvent.java:78) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.getLazySodiumJavaInstance(DoorbirdEvent.java:101) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decryptV1(DoorbirdEvent.java:182) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decrypt(DoorbirdEvent.java:160) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.processPacket(DoorbirdUdpListener.java:122) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.receivePackets(DoorbirdUdpListener.java:95) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.run(DoorbirdUdpListener.java:65) [bundleFile:?]
		at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
		at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
		at java.lang.Thread.run(Unknown Source) [?:?]
	Suppressed: java.lang.UnsatisfiedLinkError: The specified module could not be found.

		at com.sun.jna.Native.open(Native Method) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:204) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:455) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.Native.register(Native.java:1722) ~[bundleFile:5.5.0 (b0)]
		at co.libly.resourceloader.SharedLibraryLoader.registerLibraryWithClasses(SharedLibraryLoader.java:74) ~[bundleFile:?]
		at co.libly.resourceloader.SharedLibraryLoader.loadSystemLibrary(SharedLibraryLoader.java:42) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.utils.LibraryLoader.loadAbsolutePath(LibraryLoader.java:103) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:39) ~[bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.loadLazySodiumJava(DoorbirdEvent.java:89) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.<clinit>(DoorbirdEvent.java:78) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.getLazySodiumJavaInstance(DoorbirdEvent.java:101) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decryptV1(DoorbirdEvent.java:182) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decrypt(DoorbirdEvent.java:160) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.processPacket(DoorbirdUdpListener.java:122) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.receivePackets(DoorbirdUdpListener.java:95) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.run(DoorbirdUdpListener.java:65) [bundleFile:?]
		at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
		at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
		at java.lang.Thread.run(Unknown Source) [?:?]
	Suppressed: java.lang.UnsatisfiedLinkError: The specified module could not be found.

		at com.sun.jna.Native.open(Native Method) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:265) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:455) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.Native.register(Native.java:1722) ~[bundleFile:5.5.0 (b0)]
		at co.libly.resourceloader.SharedLibraryLoader.registerLibraryWithClasses(SharedLibraryLoader.java:74) ~[bundleFile:?]
		at co.libly.resourceloader.SharedLibraryLoader.loadSystemLibrary(SharedLibraryLoader.java:42) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.utils.LibraryLoader.loadAbsolutePath(LibraryLoader.java:103) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:39) ~[bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.loadLazySodiumJava(DoorbirdEvent.java:89) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.<clinit>(DoorbirdEvent.java:78) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.getLazySodiumJavaInstance(DoorbirdEvent.java:101) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decryptV1(DoorbirdEvent.java:182) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decrypt(DoorbirdEvent.java:160) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.processPacket(DoorbirdUdpListener.java:122) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.receivePackets(DoorbirdUdpListener.java:95) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.run(DoorbirdUdpListener.java:65) [bundleFile:?]
		at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
		at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
		at java.lang.Thread.run(Unknown Source) [?:?]
	Suppressed: java.io.IOException: Native library (win32-x86/sodium.dll) not found in resource path (C:\openHAB\userdata\conf;C:\openHAB\runtime\bin\..\lib\jdk9plus\istack-commons-runtime-3.0.10.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\jakarta.xml.bind-api-2.3.3.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\javax.activation-1.2.0.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\javax.annotation-api-1.3.1.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\jaxb-runtime-2.3.3.jar;C:\openHAB\runtime\bin\..\lib\jdk9plus\txw2-2.3.3.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.diagnostic.boot-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.jaas.boot-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.main-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\org.apache.karaf.specs.activator-4.3.2.jar;C:\openHAB\runtime\bin\..\lib\boot\osgi.core-7.0.0.jar)
		at com.sun.jna.Native.extractFromResourcePath(Native.java:1095) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:276) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:455) ~[bundleFile:5.5.0 (b0)]
		at com.sun.jna.Native.register(Native.java:1722) ~[bundleFile:5.5.0 (b0)]
		at co.libly.resourceloader.SharedLibraryLoader.registerLibraryWithClasses(SharedLibraryLoader.java:74) ~[bundleFile:?]
		at co.libly.resourceloader.SharedLibraryLoader.loadSystemLibrary(SharedLibraryLoader.java:42) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.utils.LibraryLoader.loadAbsolutePath(LibraryLoader.java:103) ~[bundleFile:?]
		at com.goterl.lazycode.lazysodium.SodiumJava.<init>(SodiumJava.java:39) ~[bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.loadLazySodiumJava(DoorbirdEvent.java:89) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent$LazySodiumJavaHolder.<clinit>(DoorbirdEvent.java:78) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.getLazySodiumJavaInstance(DoorbirdEvent.java:101) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decryptV1(DoorbirdEvent.java:182) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdEvent.decrypt(DoorbirdEvent.java:160) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.processPacket(DoorbirdUdpListener.java:122) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.receivePackets(DoorbirdUdpListener.java:95) [bundleFile:?]
		at org.openhab.binding.doorbird.internal.listener.DoorbirdUdpListener.run(DoorbirdUdpListener.java:65) [bundleFile:?]
		at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]
		at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
		at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
		at java.lang.Thread.run(Unknown Source) [?:?]
2021-09-12 15:15:52.279 [INFO ] [r.DoorbirdEvent$LazySodiumJavaHolder] - Try manually installing libsodium on your OS if libsodium supports your architecture

Hello

i am using a D1101V for quite some time now and recently i bought a chormecast to use it as a doorbell.
Unfortunately i get a huge delay if someone presses although i connected the doorbird via ethernet. Sometimes up to 10s until the item changes. the rule is triggered immediately so there is something wrong with my config/setup …

Do you have any idea what i could look into?
Here’s my thing definition:

Thing doorbird:d101:doorbell "Doorbird D1101V" [doorbirdHost="192.168.2.111",userId="user",userPassword="secret",imageRefreshRate=60,doorbellOffDelay=3,motionOffDelay=30,montageNumImages=3,montageScaleFactor=35]

the items:

Switch      Doorbell_Pressed                     "Doorbell Pressed [%s]"                                                      <switch>    ["Switch"]    {alexa="ContactSensor.detectionState", channel="doorbird:d101:doorbell:doorbell" [profile="rawbutton-on-off-switch"]}
DateTime    Doorbell_PressedTimestamp            "Doorbell Pressed Timestamp [%1$tA, %1$tm/%1$td/%1$tY %1$tl:%1$tM %1$tp]"    <time>                    {channel="doorbird:d101:doorbell:doorbellTimestamp"}
Image       Doorbell_PressedImage                "Doorbell Pressed Image [%s]"                                                                          {channel="doorbird:d101:doorbell:doorbellImage"}
Switch      Doorbell_Motion                      "Doorbell Motion [%s]"                                                       <switch>    ["Switch"]    {channel="doorbird:d101:doorbell:motion"}
DateTime    Doorbell_MotionTimestamp             "Doorbell Motion Timestamp [%1$tA, %1$tm/%1$td/%1$tY %1$tl:%1$tM %1$tp]"     <time>                    {channel="doorbird:d101:doorbell:motionTimestamp"}
Image       Doorbell_MotionDetectedImage         "Motion Detected Image [%s]"                                                                           {channel="doorbird:d101:doorbell:motionImage"}
Switch      Doorbell_Light                       "Doorbell Light [%s]"                                                        <switch>    ["Switch"]    {channel="doorbird:d101:doorbell:light", expire="5s,command=OFF"}
Switch      Doorbell_OpenDoor1                   "Haustüre Öffnen [%s]"                                                       <switch>    ["Switch"]    {channel="doorbird:d101:doorbell:openDoor1", expire="5s,command=OFF"}
Image       Doorbell_Image                       "Doorbell Image [%s]"                                                                                  {channel="doorbird:d101:doorbell:image"}
Number      Doorbell_DoorbellHistoryIndex        "Doorbell History Index [%.0f]"                                              <none>                    {channel="doorbird:d101:doorbell:doorbellHistoryIndex"}
DateTime    Doorbell_DoorbellHistoryTimestamp    "Doorbell History Timestamp [%1$tA, %1$tm/%1$td/%1$tY %1$tl:%1$tM %1$tp]"    <time>                    {channel="doorbird:d101:doorbell:doorbellHistoryTimestamp"}
Image       Doorbell_DoorbellHistoryImage        "Doorbell History Image [%s]"                                                                          {channel="doorbird:d101:doorbell:doorbellHistoryImage"}
Number      Doorbell_MotionHistoryIndex          "Motion History Index [%.0f]"                                                <none>                    {channel="doorbird:d101:doorbell:motionHistoryIndex"}
DateTime    Doorbell_MotionHistoryTimestamp      "Motion History Timestamp [%1$tA, %1$tm/%1$td/%1$tY %1$tl:%1$tM %1$tp]"      <time>                    {channel="doorbird:d101:doorbell:motionHistoryTimestamp"}
Image       Doorbell_MotionHistoryImage          "Motion History Image [%s]"                                                                            {channel="doorbird:d101:doorbell:motionHistoryImage"}
Image       Doorbell_DoorbellMontage             "Doorbell History Montage [%s]"                                                                        {channel="doorbird:d101:doorbell:doorbellMontage"}
Image       Doorbell_MotionMontage               "Motion History Montage [%s]"                                                                          {channel="doorbird:d101:doorbell:motionMontage"}

Switch      Doorbird_Relay_Callback              "Doorbird Relay Callback"

The rule:

//var Timer stopAlarmTimer = null
rule "Türklingel"
when
  Channel "doorbird:d101:doorbell:doorbell" triggered PRESSED
then
    // gEcho_Klingel_TTS_Lautstaerke.sendCommand('100')
    // gEcho_Klingel_TTS.sendCommand('Ding Dong')
    // sendNotification("jonas.boetsch@me.com","Ding Dong")
    // Thread::sleep(10000)
    // gEcho_Klingel_TTS_Lautstaerke.sendCommand('40')
    //Echo_NotificationVolume.sendCommand(100)
    //Echo_PlayAlarmSound.sendCommand('ECHO:system_alerts_melodic_03')
    // if (stopAlarmTimer === null)
    // {
    //     stopAlarmTimer = createTimer(now.plusSeconds(15)) [|
    //         stopAlarmTimer.cancel()
    //         stopAlarmTimer = null
    //         Echo_PlayAlarmSound.sendCommand('')
        
    //     ]
    // }
    // Chromecast_Volume.sendCommand(100)
    //reicht nicht:
    //EG_Wohnbereich_Echo_Player.sendCommand('PAUSE')
    Chromecast_URL.sendCommand("http://192.168.1.100:8080/static/Doorbell-ring-ding-dong-sound.mp3")
  end

i took my phone to look at the logs and indeed after i press the button it takes quite some time until Doorbell_pressed is updated …

Question in regards to the relays.

It seems that the binding currently only supports the “directly attached” relays of a doorbird doorbell.
The Doorbird indoor station A1101, however is linked as an extension to the doorbell. This means that the relays on the A1101 can only be triggered via the Doorbell.

The info.cgi of the Doorbell returns the two local relays and the three “remote” relays from the indoor station. "RELAYS":["1","2","ghjlnz@1","ghjlnz@2","ghjlnz@3"]

Would be great if the binding would also support triggering the “remote” relays via the Doorbell thing.

The workaround for now is a direct http API call to the doorbell.

I did also use this workaround to get a delay-free rule trigger when someone presses the button of my doorbird. works fine.

So the rule is triggering immediately, but there is a long delay in the item being updated? I can’t imagine why that would be the case. With the exception of the alexa="ContactSensor.detectionState", your item is defined exactly like mine.

The PRESSED event is sent here, and the rawbutton-on-off-switch profile should cause the item to be updated at that time.

I’m curious if the doorbellImage and doorbellTimestamp channels are updated timely, or whether they are delayed, too.

Sorry for the long delay responding. It could be that libsodium is not compatible with Windows 7 and/or Windows 7 Embedded. I just don’t know. libsodium is bundled with the Java crypto wrapper that the binding uses, so it would be quite channeling to try to diagnose what’s going on.

Hi guys,
some channels of my D1101V are not working and to be honest I’ve no idea why.

In detail:

  • Doorbell Trigger = NULL
  • Doorbell Timestamp = not updated (there is a date, but not most recent one)
  • Doorbell Pressed Image = not updated (see Doorbell Timestamp)
  • Motion Switch = currently OFF - not updating when there is a motion detected
  • Motion Timestamp = not updated (there is a date, but not most recent one)
  • Motion Detected Image = not updated (see Motion Timestamp)
  • Light = NULL
  • OpenDoor = NULL
    Edit: all 3 OpenDoor Channels of my A1081 Controller are also NULL

I do see the most recent pictures (Doorbell and Motion) in the History Image Channels, but not in Montage Images - strange also!

What I’ve tried already:

  • Ports should not be the problem since as far as I understand, some of the Channels which are working should be part of the problem. Furthermore openHAB and Doorbird are on same subnet. Even so, I’ve opened the ports (among others, 6524) and no difference.

  • Permissions of the user which is setup in Doorbird Thing are OK (incl. API)

  • Deleted Items and Thing and setup again, but no difference

Any ideas / hints?

A few things to try (in this order):

  • Try doing a restart of the Doorbird (at bottom of Admin menu in Doorbird app)

  • Collect a DEBUG log from the binding and post here, or PM to me

  • Collect a TRACE log from the binding and post here, or PM to me. This will produce a lot of log data

Thanks for the quick response @mhilbush!

A restart of the Doorbird device didn’t solve the issue. I’ve set doorbird binding to DEBUG level a few minutes ago. I will share the logs via PM later.

Edit:
I’ve checked the logs after restarting OH and also after doorbell pressed and found a hint that it was a libsodium issue. I’ve checked this and now the binding and the channels are working fine! There are a few channels (e.g. A1081 and Light) shown as NULL, but I will check this later and come back to you if needed.

Thanks again!

Dear all,
I am wondering if there is a possibilty of taking a / several snapshot/s e.g. via a switch item or via a rule?
I was thinking about something like a rule taking e.g. 10 snapshots in row when motion is detected.
Last week the delivery guy was there but there was no parcel. There were two pictures in Doorbird app: the car when it stopped in front of the Doorbird and the back of the delivery guy when he was leaving again. It was quite difficult to find out what really happened… If there would have been some more pictures I would have seen what happend.
Thanks!

If you send a REFRESH command to the image channel, it will cause the image and timestamp channels to be updated. You could then grab the image and save it somewhere. Note you may need to wait a few hundred milliseconds after the REFRESH for the channels to be updated.

Hi Mark,
sorry for the beginner’s question: how can I grab a picture and store it to a specific folder in a rule?

Thinking about your answer, the Image Channel is refreshed based on the Thing’s definition (currently set 2sec refresh rate) anyway - where are these pictures stored? I did not find it “physically” as jpg, is it stored in rrd4j presistence also? Actually if all these pictures are stored (even if it’s only temporary), I would be able to check those in case of any further investigation of a motion event is required. The big advantage is, that I can check also pictures before the motion detection or generally out of the range which was / is set in the rule. I guess in case of a possibility to grab those pictures, I do not need a rule for it.

I’m not sure specifically how you would do it. You probably would need to write code to save the Image item to a file. Alternatively, you could save the image to a database, such as MySQL. I’ve never actually done any of that, but I know it can be done.

I have my Doorbird set up to stream to a ZoneMinder server where the ZoneMinder server records video for about 14 days. That way I always can go back in time to see everything that happened.

I will have a look at ZoneMinder. After a first quick check it seems to be a proper solution for me also! Thanks Mark!

If you go that route, there’s also a ZoneMinder binding. :smiley:

@mhilbush do you know if it’s feasible to use the doorbird speaker as an audio sink? I’ve been looking into object/facial recognition in Zoneminder using a Google Coral AI accelerator and it would be neat if I could configure OH to greet my kids with an audible message as the approach the door. :slight_smile:

Just throwing the idea out there (like I just did in the Zoneminder thread) :slight_smile:

Not sure about this either. I know the Doorbird API includes a way to acquire the audio stream, but I don’t know what audio format tit supplies, and whether the format is compatible with what openHAB supports.

I recall looking into this a while back, and determining it wasn’t straight forward.

Yeah, the Doorbird used the G.711 μ-law audio format. So it would need to be transcoded to MP3 or WAV. Definitely something outside my skill set.

ffmpeg can convert to G.711 μ-law. I think the syntax is something like:

ffmpeg -i input.file -f mulaw output.file

There are other options to set the sample rate, etc.

Ah well, not to worry. I was thinking of all the ways I could prank my kids on April 1st :laughing: