private Future<?> loadDevicesFuture;
private volatile boolean isInInstallMode = false;
private volatile Object installModeSync = new Object();
- private volatile int installModeDuration = HomematicConfig.DEFAULT_INSTALL_MODE_DURATION;
public HomematicDeviceDiscoveryService() {
super(Collections.singleton(new ThingTypeUID(BINDING_ID, "-")), DISCOVER_TIMEOUT_SECONDS, false);
if (bridgeHandler != null) {
Thing bridge = bridgeHandler.getThing();
bridgeStatus = bridge.getStatus();
- updateInstallModeDuration(bridge);
}
if (ThingStatus.ONLINE == bridgeStatus) {
- gateway.setInstallMode(true, installModeDuration);
+ gateway.setInstallMode(true, getInstallModeDuration());
int remaining = gateway.getInstallMode();
if (remaining > 0) {
}
}
- private void updateInstallModeDuration(Thing bridge) {
- HomematicConfig config = bridge.getConfiguration().as(HomematicConfig.class);
- installModeDuration = config.getInstallModeDuration();
+ private int getInstallModeDuration() {
+ if (bridgeHandler != null) {
+ return bridgeHandler.getThing().getConfiguration().as(HomematicConfig.class).getInstallModeDuration();
+ }
+ return HomematicConfig.DEFAULT_INSTALL_MODE_DURATION;
}
@Override
public int getScanTimeout() {
- return installModeDuration;
+ return getInstallModeDuration();
}
@Override