From 22ac639233cc422eec609227f4de712d38b38075 Mon Sep 17 00:00:00 2001 From: J-N-K Date: Wed, 23 Dec 2020 04:19:37 +0100 Subject: [PATCH] [tr064] fix fritz.box lookup (#9454) Signed-off-by: Jan N. Klug --- .../binding/tr064/internal/Tr064HandlerFactory.java | 2 +- .../binding/tr064/internal/Tr064RootHandler.java | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/bundles/org.openhab.binding.tr064/src/main/java/org/openhab/binding/tr064/internal/Tr064HandlerFactory.java b/bundles/org.openhab.binding.tr064/src/main/java/org/openhab/binding/tr064/internal/Tr064HandlerFactory.java index d62acf3c8..3e4338681 100644 --- a/bundles/org.openhab.binding.tr064/src/main/java/org/openhab/binding/tr064/internal/Tr064HandlerFactory.java +++ b/bundles/org.openhab.binding.tr064/src/main/java/org/openhab/binding/tr064/internal/Tr064HandlerFactory.java @@ -65,7 +65,7 @@ public class Tr064HandlerFactory extends BaseThingHandlerFactory { this.channelTypeProvider = channelTypeProvider; this.phonebookProfileFactory = phonebookProfileFactory; // use an insecure client (i.e. without verifying the certificate) - this.httpClient = new HttpClient(new SslContextFactory(true)); + this.httpClient = new HttpClient(new SslContextFactory.Client(true)); try { this.httpClient.start(); } catch (Exception e) { diff --git a/bundles/org.openhab.binding.tr064/src/main/java/org/openhab/binding/tr064/internal/Tr064RootHandler.java b/bundles/org.openhab.binding.tr064/src/main/java/org/openhab/binding/tr064/internal/Tr064RootHandler.java index 5889f770d..49969c0fc 100644 --- a/bundles/org.openhab.binding.tr064/src/main/java/org/openhab/binding/tr064/internal/Tr064RootHandler.java +++ b/bundles/org.openhab.binding.tr064/src/main/java/org/openhab/binding/tr064/internal/Tr064RootHandler.java @@ -76,7 +76,7 @@ public class Tr064RootHandler extends BaseBridgeHandler implements PhonebookProv private @Nullable SCPDUtil scpdUtil; private SOAPConnector soapConnector; - private String endpointBaseURL = "http://fritz.box:49000"; + private String endpointBaseURL = ""; private final Map channels = new HashMap<>(); // caching is used to prevent excessive calls to the same action @@ -87,14 +87,19 @@ public class Tr064RootHandler extends BaseBridgeHandler implements PhonebookProv private @Nullable ScheduledFuture pollFuture; private @Nullable ScheduledFuture phonebookFuture; + private boolean communicationEstablished = false; + Tr064RootHandler(Bridge bridge, HttpClient httpClient) { super(bridge); this.httpClient = httpClient; - soapConnector = new SOAPConnector(httpClient, endpointBaseURL); + this.soapConnector = new SOAPConnector(httpClient, endpointBaseURL); } @Override public void handleCommand(ChannelUID channelUID, Command command) { + if (!communicationEstablished) { + logger.debug("Tried to process command, but thing is not yet ready: {} to {}", channelUID, command); + } Tr064ChannelConfig channelConfig = channels.get(channelUID); if (channelConfig == null) { logger.trace("Channel {} not supported.", channelUID); @@ -157,6 +162,7 @@ public class Tr064RootHandler extends BaseBridgeHandler implements PhonebookProv updateThing(thingBuilder.build()); } + communicationEstablished = true; installPolling(); updateStatus(ThingStatus.ONLINE, ThingStatusDetail.NONE); } @@ -172,6 +178,7 @@ public class Tr064RootHandler extends BaseBridgeHandler implements PhonebookProv @Override public void dispose() { + communicationEstablished = false; removeConnectScheduler(); uninstallPolling(); stateCache.clear();