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

Signed-off-by: Jan N. Klug <jan.n.klug@rub.de>
pull/8732/head
J-N-K 2020-10-10 22:56:22 +02:00 committed by GitHub
parent aa98737e9f
commit 5c7fe8183a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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);
}
}