[deconz] retry full state request if initial request failed (#8704)

Signed-off-by: Jan N. Klug <jan.n.klug@rub.de>
This commit is contained in:
J-N-K
2020-10-10 22:56:22 +02:00
committed by GitHub
parent aa98737e9f
commit 5c7fe8183a
2 changed files with 8 additions and 4 deletions

View File

@@ -71,7 +71,7 @@ public class ThingDiscoveryService extends AbstractDiscoveryService implements D
protected void startScan() {
final DeconzBridgeHandler handler = this.handler;
if (handler != null) {
handler.requestFullState();
handler.requestFullState(false);
}
}

View File

@@ -135,7 +135,7 @@ public class DeconzBridgeHandler extends BaseBridgeHandler implements WebSocketC
configuration.put(CONFIG_APIKEY, config.apikey);
updateConfiguration(configuration);
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_PENDING, "Waiting for configuration");
requestFullState();
requestFullState(true);
} else {
throw new IllegalStateException("Unknown status code for authorisation request");
}
@@ -161,7 +161,7 @@ public class DeconzBridgeHandler extends BaseBridgeHandler implements WebSocketC
* Perform a request to the REST API for retrieving the full bridge state with all sensors and switches
* and configuration.
*/
public void requestFullState() {
public void requestFullState(boolean isInitialRequest) {
if (config.apikey == null) {
return;
}
@@ -182,6 +182,10 @@ public class DeconzBridgeHandler extends BaseBridgeHandler implements WebSocketC
}
}).thenAccept(fullState -> {
if (fullState == null) {
if (isInitialRequest) {
scheduledFuture = scheduler.schedule(() -> requestFullState(true), POLL_FREQUENCY_SEC,
TimeUnit.SECONDS);
}
return;
}
if (fullState.config.name.isEmpty()) {
@@ -260,7 +264,7 @@ public class DeconzBridgeHandler extends BaseBridgeHandler implements WebSocketC
if (config.apikey == null) {
requestApiKey();
} else {
requestFullState();
requestFullState(true);
}
}