diff --git a/pom.xml b/pom.xml
index 8aee4b9..f9901a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.bwssystems.HABridge
ha-bridge
- 3.1.0e
+ 3.1.0i
jar
HA Bridge
diff --git a/src/main/java/com/bwssystems/HABridge/api/hue/HuePublicConfig.java b/src/main/java/com/bwssystems/HABridge/api/hue/HuePublicConfig.java
index ac1b1b6..c955cf7 100644
--- a/src/main/java/com/bwssystems/HABridge/api/hue/HuePublicConfig.java
+++ b/src/main/java/com/bwssystems/HABridge/api/hue/HuePublicConfig.java
@@ -83,6 +83,7 @@ public class HuePublicConfig
// }
// else
// bridgeId = bridgeId + "0800";
+ bridgeId = bridgeId.toLowerCase();
return bridgeId;
}
diff --git a/src/main/java/com/bwssystems/HABridge/upnp/UpnpListener.java b/src/main/java/com/bwssystems/HABridge/upnp/UpnpListener.java
index 7052416..3ed7b79 100644
--- a/src/main/java/com/bwssystems/HABridge/upnp/UpnpListener.java
+++ b/src/main/java/com/bwssystems/HABridge/upnp/UpnpListener.java
@@ -6,7 +6,7 @@ import org.slf4j.LoggerFactory;
import com.bwssystems.HABridge.BridgeControlDescriptor;
import com.bwssystems.HABridge.BridgeSettingsDescriptor;
import com.bwssystems.HABridge.Configuration;
-// import com.bwssystems.HABridge.api.hue.HuePublicConfig;
+import com.bwssystems.HABridge.api.hue.HuePublicConfig;
import java.io.IOException;
import java.net.*;
@@ -24,6 +24,26 @@ public class UpnpListener {
private boolean traceupnp;
private BridgeControlDescriptor bridgeControl;
private boolean discoveryTemplateLatest;
+ private String discoveryTemplate = "HTTP/1.1 200 OK\r\n" +
+ "CACHE-CONTROL: max-age=86400\r\n" +
+ "EXT:\r\n" +
+ "LOCATION: http://%s:%s/description.xml\r\n" +
+ "SERVER: Linux/3.14.0 UPnP/1.0 IpBridge/1.14.0\r\n" +
+ "ST: urn:schemas-upnp-org:device:basic:1\r\n" +
+ "USN: uuid:2f402f80-da50-11e1-9b23-%s\r\n\r\n";
+/*
+ private String discoveryTemplate = "NOTIFY * HTTP/1.1\r\n" +
+ "HOST: %s:%s\r\n" +
+ "CACHE-CONTROL: max-age=100\r\n" +
+ "LOCATION: http://%s:%s/description.xml\r\n" +
+ "SERVER: Linux/3.14.0 UPnP/1.0 IpBridge/1.14.0\r\n" +
+ "NTS: ssdp:alive\r\n" +
+ "hue-bridgeid: %s\r\n" +
+ "NT: uuid:2f402f80-da50-11e1-9b23-%s\r\n" +
+ "USN: uuid:2f402f80-da50-11e1-9b23-%s\r\n\r\n";
+ discoveryResponse = String.format(discoveryTemplate, Configuration.UPNP_MULTICAST_ADDRESS, Configuration.UPNP_DISCOVERY_PORT, responseAddress, httpServerPort, bridgeIdMac, bridgeIdMac, bridgeIdMac);
+*/
+/*
private String discoveryTemplate = "HTTP/1.1 200 OK\r\n" +
"CACHE-CONTROL: max-age=86400\r\n" +
"EXT:\r\n" +
@@ -31,6 +51,8 @@ public class UpnpListener {
"SERVER: FreeRTOS/7.4.2 UPnP/1.0 IpBridge/1.10.0\r\n" +
"ST: urn:schemas-upnp-org:device:basic:1\r\n" +
"USN: uuid:2f402f80-da50-11e1-9b23-001788102201::urn:schemas-upnp-org:device:basic:1\r\n\r\n";
+ discoveryResponse = String.format(discoveryTemplate, responseAddress, httpServerPort);
+*/
/*
private String discoveryTemplate = "HTTP/1.1 200 OK\r\n" +
"CACHE-CONTROL: max-age=86400\r\n" +
@@ -245,8 +267,11 @@ public class UpnpListener {
protected void sendUpnpResponse(DatagramSocket socket, InetAddress requester, int sourcePort) throws IOException {
String discoveryResponse = null;
- if(discoveryTemplateLatest)
- discoveryResponse = String.format(discoveryTemplate, responseAddress, httpServerPort);
+ String bridgeIdMac = null;
+ if(discoveryTemplateLatest) {
+ bridgeIdMac = HuePublicConfig.createConfig("temp", responseAddress).getBridgeid();
+ discoveryResponse = String.format(discoveryTemplate, responseAddress, httpServerPort, bridgeIdMac);
+ }
else
discoveryResponse = String.format(discoveryTemplate091516, responseAddress, httpServerPort);
if(traceupnp) {
diff --git a/src/main/java/com/bwssystems/HABridge/upnp/UpnpSettingsResource.java b/src/main/java/com/bwssystems/HABridge/upnp/UpnpSettingsResource.java
index fd705a3..789653c 100644
--- a/src/main/java/com/bwssystems/HABridge/upnp/UpnpSettingsResource.java
+++ b/src/main/java/com/bwssystems/HABridge/upnp/UpnpSettingsResource.java
@@ -4,6 +4,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.bwssystems.HABridge.BridgeSettingsDescriptor;
+import com.bwssystems.HABridge.api.hue.HuePublicConfig;
import static spark.Spark.get;
@@ -31,8 +32,8 @@ public class UpnpSettingsResource {
+ "Philips hue bridge 2015\n"
+ "BSB002\n"
+ "http://www.meethue.com\n"
- + "0017880ae670\n"
- + "uuid:2f402f80-da50-11e1-9b23-001788102201\n"
+ + "%s\n"
+ + "uuid:2f402f80-da50-11e1-9b23-%s\n"
+ "\n"
+ "\n"
+ "(null)\n"
@@ -77,7 +78,8 @@ public class UpnpSettingsResource {
log.debug("upnp device settings requested: " + " from " + request.ip() + ":" + request.port());
String portNumber = Integer.toString(request.port());
String filledTemplate = null;
- filledTemplate = String.format(hueTemplate, theSettings.getUpnpConfigAddress(), portNumber, theSettings.getUpnpConfigAddress());
+ String bridgeIdMac = HuePublicConfig.createConfig("temp", theSettings.getUpnpConfigAddress()).getBridgeid();
+ filledTemplate = String.format(hueTemplate, theSettings.getUpnpConfigAddress(), portNumber, theSettings.getUpnpConfigAddress(), bridgeIdMac, bridgeIdMac);
if(theSettings.isTraceupnp())
log.info("Traceupnp: upnp device settings template filled with address: " + theSettings.getUpnpConfigAddress() + " and port: " + portNumber);
else