diff --git a/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/NukiHandlerFactory.java b/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/NukiHandlerFactory.java index ab4cd6751..8e92155b1 100644 --- a/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/NukiHandlerFactory.java +++ b/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/NukiHandlerFactory.java @@ -21,7 +21,6 @@ import org.openhab.binding.nuki.internal.dataexchange.NukiApiServlet; import org.openhab.binding.nuki.internal.handler.NukiBridgeHandler; import org.openhab.binding.nuki.internal.handler.NukiOpenerHandler; import org.openhab.binding.nuki.internal.handler.NukiSmartLockHandler; -import org.openhab.core.config.core.Configuration; import org.openhab.core.id.InstanceUUID; import org.openhab.core.io.net.http.HttpClientFactory; import org.openhab.core.net.HttpServiceUtil; @@ -88,11 +87,6 @@ public class NukiHandlerFactory extends BaseThingHandlerFactory { return null; } - @Override - protected @Nullable Thing createThing(ThingTypeUID thingTypeUID, Configuration configuration, ThingUID thingUID) { - return super.createThing(thingTypeUID, configuration, thingUID); - } - @Override public void removeThing(ThingUID thingUID) { super.removeThing(thingUID); diff --git a/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/dataexchange/NukiApiServlet.java b/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/dataexchange/NukiApiServlet.java index 597d50853..675efd4d5 100644 --- a/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/dataexchange/NukiApiServlet.java +++ b/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/dataexchange/NukiApiServlet.java @@ -114,7 +114,12 @@ public class NukiApiServlet extends HttpServlet { responseEntity = new ResponseEntity(HttpStatus.BAD_REQUEST_400, new NukiHttpServerStatusResponseDto("Invalid BCB-Request!")); } else { - responseEntity = doHandle(bridgeApiLockStateRequestDto, request.getParameter("bridgeId")); + try { + responseEntity = doHandle(bridgeApiLockStateRequestDto); + } catch (Exception e) { + logger.warn("Error processing request '{}'", gson.toJson(bridgeApiLockStateRequestDto), e); + throw e; + } } setHeaders(response); @@ -122,7 +127,7 @@ public class NukiApiServlet extends HttpServlet { response.getWriter().write(gson.toJson(responseEntity.getData())); } - private ResponseEntity doHandle(BridgeApiLockStateRequestDto request, @Nullable String bridgeId) { + private ResponseEntity doHandle(BridgeApiLockStateRequestDto request) { String nukiId = request.getNukiId().toString(); for (NukiBridgeHandler nukiBridgeHandler : nukiBridgeHandlers) { logger.trace("Searching Bridge[{}] with NukiBridgeHandler[{}] for nukiId[{}].", diff --git a/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/handler/AbstractNukiDeviceHandler.java b/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/handler/AbstractNukiDeviceHandler.java index 7e572721d..23387dcd7 100644 --- a/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/handler/AbstractNukiDeviceHandler.java +++ b/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/handler/AbstractNukiDeviceHandler.java @@ -32,6 +32,7 @@ import org.openhab.binding.nuki.internal.dataexchange.NukiBaseResponse; import org.openhab.binding.nuki.internal.dataexchange.NukiHttpClient; import org.openhab.binding.nuki.internal.dto.BridgeApiDeviceStateDto; import org.openhab.binding.nuki.internal.dto.BridgeApiListDeviceDto; +import org.openhab.core.config.core.Configuration; import org.openhab.core.library.types.DateTimeType; import org.openhab.core.library.types.DecimalType; import org.openhab.core.library.types.OnOffType; @@ -70,6 +71,11 @@ public abstract class AbstractNukiDeviceHandler 30) { + if (Objects.equals(state.getRingactionState(), true) + && Duration.between(lastRingAction, Instant.now()).getSeconds() > 30) { triggerChannel(NukiBindingConstants.CHANNEL_OPENER_RING_ACTION_STATE, NukiBindingConstants.EVENT_RINGING); lastRingAction = Instant.now(); } diff --git a/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/handler/NukiSmartLockHandler.java b/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/handler/NukiSmartLockHandler.java index 50caba669..39d2db1fe 100644 --- a/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/handler/NukiSmartLockHandler.java +++ b/bundles/org.openhab.binding.nuki/src/main/java/org/openhab/binding/nuki/internal/handler/NukiSmartLockHandler.java @@ -39,11 +39,6 @@ public class NukiSmartLockHandler extends AbstractNukiDeviceHandler