[magentatv] Fix: Start UPNP listener to catch power off button, thing id in log (#11238)

* Fix: Start UPNP listener to catch power off button, thing id in log
messages

Signed-off-by: Markus Michels <markus7017@gmail.com>

* comment removed

Signed-off-by: Markus Michels <markus7017@gmail.com>
This commit is contained in:
Markus Michels 2021-10-02 23:02:28 +02:00 committed by GitHub
parent 8d38276dce
commit 937a331f67
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 3 deletions

View File

@ -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)

View File

@ -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();

View File

@ -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;
}
}