diff --git a/bundles/org.openhab.binding.freeboxos/src/main/java/org/openhab/binding/freeboxos/internal/discovery/FreeboxOsDiscoveryService.java b/bundles/org.openhab.binding.freeboxos/src/main/java/org/openhab/binding/freeboxos/internal/discovery/FreeboxOsDiscoveryService.java index 35a65f7c5cfe6..b9628dade0aa3 100644 --- a/bundles/org.openhab.binding.freeboxos/src/main/java/org/openhab/binding/freeboxos/internal/discovery/FreeboxOsDiscoveryService.java +++ b/bundles/org.openhab.binding.freeboxos/src/main/java/org/openhab/binding/freeboxos/internal/discovery/FreeboxOsDiscoveryService.java @@ -72,6 +72,9 @@ public class FreeboxOsDiscoveryService extends AbstractThingHandlerDiscoveryServ private final Logger logger = LoggerFactory.getLogger(FreeboxOsDiscoveryService.class); + private boolean hasVm = true; + private boolean hasHomeAutomation = true; + private Optional> backgroundFuture = Optional.empty(); public FreeboxOsDiscoveryService() { @@ -111,13 +114,17 @@ protected void startScan() { discoverPlugs(bridgeUID); discoverRepeater(bridgeUID, lanHosts); discoverPlayer(bridgeUID, lanHosts); - discoverVM(bridgeUID, lanHosts); - discoverHome(bridgeUID); + if (hasVm) { + discoverVM(bridgeUID, lanHosts); + } + if (hasHomeAutomation) { + discoverHome(bridgeUID); + } if (thingHandler.getConfiguration().discoverNetDevice) { discoverHosts(bridgeUID, lanHosts); } } catch (FreeboxException e) { - logger.warn("Error while requesting data for things discovery: {}", e.getMessage()); + logger.debug("Error while requesting data for things discovery: {}", e.getMessage()); } } } @@ -128,7 +135,7 @@ private void discoverHome(ThingUID bridgeUID) { thingHandler.getManager(HomeManager.class).getHomeNodes().forEach( node -> builder.configure(bridgeUID, node).ifPresent(result -> thingDiscovered(result.build()))); } catch (FreeboxException e) { - logger.warn("Error discovering Home: {}", e.getMessage()); + logger.debug("Error discovering Home: {}", e.getMessage()); } } @@ -138,7 +145,7 @@ private void discoverPlugs(ThingUID bridgeUID) { thingHandler.getManager(FreeplugManager.class).getPlugs() .forEach(plug -> thingDiscovered(builder.configure(bridgeUID, plug).build())); } catch (FreeboxException e) { - logger.warn("Error discovering freeplugs: {}", e.getMessage()); + logger.debug("Error discovering freeplugs: {}", e.getMessage()); } } @@ -149,7 +156,7 @@ private void discoverPhone(ThingUID bridgeUID) { statuses = thingHandler.getManager(PhoneManager.class).getPhoneStatuses(); statuses.forEach(phone -> thingDiscovered(builder.configure(bridgeUID, phone).build())); } catch (FreeboxException e) { - logger.warn("Error discovering phones: {}", e.getMessage()); + logger.debug("Error discovering phones: {}", e.getMessage()); } if (!statuses.isEmpty()) { ThingUID thingUID = new ThingUID(THING_TYPE_CALL, bridgeUID, "landline"); @@ -180,7 +187,7 @@ private void discoverHosts(ThingUID bridgeUID, List lanHosts) { thingDiscovered(builder.build()); }); } catch (FreeboxException e) { - logger.warn("Error discovering Hosts: {}", e.getMessage()); + logger.debug("Error discovering Hosts: {}", e.getMessage()); } } @@ -199,7 +206,7 @@ private void discoverVM(ThingUID bridgeUID, List lanHosts) { thingDiscovered(discoveryResult); }); } catch (FreeboxException e) { - logger.warn("Error discovering VM: {}", e.getMessage()); + logger.debug("Error discovering VM: {}", e.getMessage()); } } @@ -219,7 +226,7 @@ private void discoverRepeater(ThingUID bridgeUID, List lanHosts) { thingDiscovered(discoveryResult); }); } catch (FreeboxException e) { - logger.warn("Error discovering Repeater: {}", e.getMessage()); + logger.debug("Error discovering Repeater: {}", e.getMessage()); } } @@ -227,6 +234,9 @@ private void discoverServer(ThingUID bridgeUID) { try { Config config = thingHandler.getManager(SystemManager.class).getConfig(); + hasVm = config.modelInfo().hasVm(); + hasHomeAutomation = config.modelInfo().hasHomeAutomation(); + ThingTypeUID targetType = config.boardName().startsWith("fbxgw7") ? THING_TYPE_DELTA : THING_TYPE_REVOLUTION; ThingUID thingUID = new ThingUID(targetType, bridgeUID, config.serial()); @@ -237,7 +247,7 @@ private void discoverServer(ThingUID bridgeUID) { .withProperty(Thing.PROPERTY_MAC_ADDRESS, config.mac().toColonDelimitedString()).build(); thingDiscovered(discoveryResult); } catch (FreeboxException e) { - logger.warn("Error discovering Server: {}", e.getMessage()); + logger.debug("Error discovering Server: {}", e.getMessage()); } } @@ -254,7 +264,7 @@ private void discoverPlayer(ThingUID bridgeUID, List lanHosts) { thingDiscovered(discoveryResult); } } catch (FreeboxException e) { - logger.warn("Error discovering Player: {}", e.getMessage()); + logger.debug("Error discovering Player: {}", e.getMessage()); } } }