From 937a331f670f45cabaf4d31262cd9a75ec88368d Mon Sep 17 00:00:00 2001 From: Markus Michels Date: Sat, 2 Oct 2021 23:02:28 +0200 Subject: [PATCH] =?UTF-8?q?[magentatv]=C2=A0Fix:=20Start=20UPNP=20listener?= =?UTF-8?q?=20to=20catch=20power=20off=20button,=20thing=20id=20in=20log?= =?UTF-8?q?=20(#11238)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix: Start UPNP listener to catch power off button, thing id in log messages Signed-off-by: Markus Michels * comment removed Signed-off-by: Markus Michels --- .../magentatv/internal/handler/MagentaTVControl.java | 6 +++++- .../magentatv/internal/handler/MagentaTVHandler.java | 2 ++ .../internal/network/MagentaTVPoweroffListener.java | 7 +++++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/bundles/org.openhab.binding.magentatv/src/main/java/org/openhab/binding/magentatv/internal/handler/MagentaTVControl.java b/bundles/org.openhab.binding.magentatv/src/main/java/org/openhab/binding/magentatv/internal/handler/MagentaTVControl.java index 68bed02f4..01a764bca 100755 --- a/bundles/org.openhab.binding.magentatv/src/main/java/org/openhab/binding/magentatv/internal/handler/MagentaTVControl.java +++ b/bundles/org.openhab.binding.magentatv/src/main/java/org/openhab/binding/magentatv/internal/handler/MagentaTVControl.java @@ -57,7 +57,7 @@ public class MagentaTVControl { } public MagentaTVControl(MagentaTVDynamicConfig config, MagentaTVNetwork network, HttpClient httpClient) { - thingId = config.getFriendlyName(); + this.thingId = config.getFriendlyName(); this.network = network; this.oauth = new MagentaTVOAuth(httpClient); this.config = config; @@ -71,6 +71,10 @@ public class MagentaTVControl { return initialized; } + public void setThingId(String thingId) { + this.thingId = thingId; + } + /** * Returns the thingConfig - the Control class adds various attributes of the * discovered device (like the MR model) diff --git a/bundles/org.openhab.binding.magentatv/src/main/java/org/openhab/binding/magentatv/internal/handler/MagentaTVHandler.java b/bundles/org.openhab.binding.magentatv/src/main/java/org/openhab/binding/magentatv/internal/handler/MagentaTVHandler.java index 3d9a9f671..9d93c13f8 100755 --- a/bundles/org.openhab.binding.magentatv/src/main/java/org/openhab/binding/magentatv/internal/handler/MagentaTVHandler.java +++ b/bundles/org.openhab.binding.magentatv/src/main/java/org/openhab/binding/magentatv/internal/handler/MagentaTVHandler.java @@ -141,6 +141,7 @@ public class MagentaTVHandler extends BaseThingHandler implements MagentaTVListe private void initializeThing() { String errorMessage = ""; try { + config.setFriendlyName(getThing().getLabel().toString()); if (config.getUDN().isEmpty()) { // get UDN from device name String uid = this.getThing().getUID().getAsString(); @@ -321,6 +322,7 @@ public class MagentaTVHandler extends BaseThingHandler implements MagentaTVListe protected void connectReceiver() throws MagentaTVException { if (control.checkDev()) { updateThingProperties(); + control.setThingId(config.getFriendlyName()); manager.registerDevice(config.getUDN(), config.getTerminalID(), config.getIpAddress(), this); control.subscribeEventChannel(); control.sendPairingRequest(); diff --git a/bundles/org.openhab.binding.magentatv/src/main/java/org/openhab/binding/magentatv/internal/network/MagentaTVPoweroffListener.java b/bundles/org.openhab.binding.magentatv/src/main/java/org/openhab/binding/magentatv/internal/network/MagentaTVPoweroffListener.java index 8deca2440..5c8d7ef62 100755 --- a/bundles/org.openhab.binding.magentatv/src/main/java/org/openhab/binding/magentatv/internal/network/MagentaTVPoweroffListener.java +++ b/bundles/org.openhab.binding.magentatv/src/main/java/org/openhab/binding/magentatv/internal/network/MagentaTVPoweroffListener.java @@ -46,6 +46,7 @@ public class MagentaTVPoweroffListener extends Thread { protected final MulticastSocket socket; protected @Nullable NetworkInterface networkInterface; protected byte[] buf = new byte[256]; + private boolean started = false; public MagentaTVPoweroffListener(MagentaTVHandlerFactory handlerFactory, @Nullable NetworkInterface networkInterface) throws IOException { @@ -61,6 +62,7 @@ public class MagentaTVPoweroffListener extends Thread { public void start() { if (!isStarted()) { logger.debug("Listening to SSDP shutdown messages"); + started = true; super.start(); } } @@ -112,18 +114,19 @@ public class MagentaTVPoweroffListener extends Thread { } public boolean isStarted() { - return socket.isBound(); + return started; } /** * Make sure the socket gets closed */ public void close() { - if (isStarted()) { + if (started) { // if (isStarted()) { logger.debug("No longer listening to SSDP messages"); if (!socket.isClosed()) { socket.close(); } + started = false; } }