diff --git a/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/ApiBridgeHandler.java b/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/ApiBridgeHandler.java index 6df8d1633bc8e..1d08bd9d16b9b 100644 --- a/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/ApiBridgeHandler.java +++ b/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/ApiBridgeHandler.java @@ -350,15 +350,19 @@ public synchronized T executeUri(URI uri, HttpMethod method, Class clazz, try { exception = new NetatmoException(deserializer.deserialize(ApiError.class, responseBody)); } catch (NetatmoException e) { - exception = new NetatmoException("Error deserializing error: %s".formatted(statusCode.getMessage())); + if (statusCode == Code.TOO_MANY_REQUESTS) { + exception = new NetatmoException(statusCode.getMessage()); + } else { + exception = new NetatmoException( + "Error deserializing error: %s".formatted(statusCode.getMessage())); + } } - throw exception; - } catch (NetatmoException e) { - if (e.getStatusCode() == ServiceError.MAXIMUM_USAGE_REACHED) { + if (statusCode == Code.TOO_MANY_REQUESTS + || exception.getStatusCode() == ServiceError.MAXIMUM_USAGE_REACHED) { prepareReconnection(API_LIMIT_INTERVAL_S, "@text/maximum-usage-reached [ \"%d\" ]".formatted(API_LIMIT_INTERVAL_S), null, null); } - throw e; + throw exception; } catch (InterruptedException | TimeoutException | ExecutionException e) { if (retryCount > 0) { logger.debug("Request error, retry counter: {}", retryCount); diff --git a/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/capability/RefreshCapability.java b/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/capability/RefreshCapability.java index 385910929e4db..ec08a673e9e2a 100644 --- a/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/capability/RefreshCapability.java +++ b/bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/handler/capability/RefreshCapability.java @@ -12,7 +12,7 @@ */ package org.openhab.binding.netatmo.internal.handler.capability; -import static java.time.temporal.ChronoUnit.SECONDS; +import static java.time.temporal.ChronoUnit.*; import java.time.Duration; import java.time.Instant; @@ -38,6 +38,7 @@ public class RefreshCapability extends Capability { private static final Duration DEFAULT_DELAY = Duration.of(20, SECONDS); private static final Duration PROBING_INTERVAL = Duration.of(120, SECONDS); + private static final Duration OFFLINE_INTERVAL = Duration.of(15, MINUTES); private final Logger logger = LoggerFactory.getLogger(RefreshCapability.class);