diff --git a/pom.xml b/pom.xml
index 5025943..26498f1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.bwssystems.HABridge
ha-bridge
- 1.1.0d
+ 1.1.0e
jar
HA Bridge
diff --git a/src/main/java/com/bwssystems/HABridge/BridgeSettings.java b/src/main/java/com/bwssystems/HABridge/BridgeSettings.java
index 87f2c54..eeef17d 100644
--- a/src/main/java/com/bwssystems/HABridge/BridgeSettings.java
+++ b/src/main/java/com/bwssystems/HABridge/BridgeSettings.java
@@ -1,12 +1,14 @@
package com.bwssystems.HABridge;
+import java.util.List;
+
public class BridgeSettings {
private String upnpconfigaddress;
private String serverport;
private String upnpresponseport;
private String upnpdevicedb;
private String veraaddress;
- private String harmonyaddress;
+ private IpList harmonyaddress;
private String harmonyuser;
private String harmonypwd;
private Integer upnpresponsedevices;
@@ -44,10 +46,10 @@ public class BridgeSettings {
public void setVeraAddress(String veraAddress) {
this.veraaddress = veraAddress;
}
- public String getHarmonyAddress() {
+ public IpList getHarmonyAddress() {
return harmonyaddress;
}
- public void setHarmonyAddress(String harmonyaddress) {
+ public void setHarmonyAddress(IpList harmonyaddress) {
this.harmonyaddress = harmonyaddress;
}
public String getHarmonyUser() {
@@ -92,7 +94,8 @@ public class BridgeSettings {
return true;
}
public Boolean isValidHarmony() {
- if(this.harmonyaddress.contains(Configuration.DEFAULT_HARMONY_ADDRESS))
+ List devicesList = this.harmonyaddress.getDevices();
+ if(devicesList.get(0).getIp().contains(Configuration.DEFAULT_HARMONY_ADDRESS))
return false;
if(this.harmonypwd == null || this.harmonypwd == "")
return false;
diff --git a/src/main/java/com/bwssystems/HABridge/Configuration.java b/src/main/java/com/bwssystems/HABridge/Configuration.java
index ec245e3..0bfeb3d 100644
--- a/src/main/java/com/bwssystems/HABridge/Configuration.java
+++ b/src/main/java/com/bwssystems/HABridge/Configuration.java
@@ -6,6 +6,7 @@ public class Configuration {
public final static String UPNP_RESPONSE_DEVICES = "30";
public final static String DEFAULT_VERA_ADDRESS = "1.1.1.1";
public final static String DEFAULT_HARMONY_ADDRESS = "1.1.1.1";
+ public final static String DEFAULT_HARMONY_ADDRESS_LIST = "{devices:[{name:default,ip:1.1.1.1}]}";
public final static String DEFAULT_HARMONY_USER = "";
public final static String DEFAULT_HARMONY_PWD = "";
public final static String DFAULT_WEB_PORT = "8080";
diff --git a/src/main/java/com/bwssystems/HABridge/HABridge.java b/src/main/java/com/bwssystems/HABridge/HABridge.java
index b803583..c2b1b59 100644
--- a/src/main/java/com/bwssystems/HABridge/HABridge.java
+++ b/src/main/java/com/bwssystems/HABridge/HABridge.java
@@ -13,6 +13,7 @@ import com.bwssystems.HABridge.hue.HueMulator;
import com.bwssystems.HABridge.upnp.UpnpListener;
import com.bwssystems.HABridge.upnp.UpnpSettingsResource;
import com.bwssystems.harmony.HarmonyServer;
+import com.google.gson.Gson;
public class HABridge {
@@ -61,14 +62,26 @@ public class HABridge {
bridgeSettings.setUpnpDeviceDb(System.getProperty("upnp.device.db", Configuration.DEVICE_DB_DIRECTORY));
bridgeSettings.setUpnpResponsePort(System.getProperty("upnp.response.port", Configuration.UPNP_RESPONSE_PORT));
bridgeSettings.setVeraAddress(System.getProperty("vera.address", Configuration.DEFAULT_VERA_ADDRESS));
- bridgeSettings.setHarmonyAddress(System.getProperty("harmony.address", Configuration.DEFAULT_HARMONY_ADDRESS));
+ IpList theHarmonyList;
+
+ try {
+ theHarmonyList = new Gson().fromJson(System.getProperty("harmony.address", Configuration.DEFAULT_HARMONY_ADDRESS_LIST), IpList.class);
+ } catch (Exception e) {
+ try {
+ theHarmonyList = new Gson().fromJson("{devices:[{name:default,ip:" + System.getProperty("harmony.address", Configuration.DEFAULT_HARMONY_ADDRESS) + "}]}", IpList.class);
+ } catch (Exception et) {
+ log.error("Cannot parse harmony.address, Exiting with message: " + e.getMessage(), e);
+ return;
+ }
+ }
+ bridgeSettings.setHarmonyAddress(theHarmonyList);
bridgeSettings.setHarmonyUser(System.getProperty("harmony.user", Configuration.DEFAULT_HARMONY_USER));
bridgeSettings.setHarmonyPwd(System.getProperty("harmony.pwd", Configuration.DEFAULT_HARMONY_PWD));
bridgeSettings.setUpnpStrict(Boolean.parseBoolean(System.getProperty("upnp.strict", "true")));
bridgeSettings.setTraceupnp(Boolean.parseBoolean(System.getProperty("trace.upnp", "false")));
bridgeSettings.setDevMode(Boolean.parseBoolean(System.getProperty("dev.mode", "false")));
bridgeSettings.setUpnpResponseDevices(Integer.parseInt(System.getProperty("upnp.response.devices", Configuration.UPNP_RESPONSE_DEVICES)));
-
+
// sparkjava config directive to set ip address for the web server to listen on
// ipAddress("0.0.0.0"); // not used
// sparkjava config directive to set port for the web server to listen on
diff --git a/src/main/java/com/bwssystems/HABridge/IpList.java b/src/main/java/com/bwssystems/HABridge/IpList.java
new file mode 100644
index 0000000..ce37dfd
--- /dev/null
+++ b/src/main/java/com/bwssystems/HABridge/IpList.java
@@ -0,0 +1,16 @@
+package com.bwssystems.HABridge;
+
+import java.util.List;
+
+public class IpList {
+ private List devices;
+
+ public List getDevices() {
+ return devices;
+ }
+
+ public void setDevices(List devices) {
+ this.devices = devices;
+ }
+
+}
diff --git a/src/main/java/com/bwssystems/HABridge/NamedIP.java b/src/main/java/com/bwssystems/HABridge/NamedIP.java
new file mode 100644
index 0000000..4a59f82
--- /dev/null
+++ b/src/main/java/com/bwssystems/HABridge/NamedIP.java
@@ -0,0 +1,25 @@
+package com.bwssystems.HABridge;
+
+public class NamedIP {
+ private String name;
+ private String ip;
+ private String port;
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getIp() {
+ return ip;
+ }
+ public void setIp(String ip) {
+ this.ip = ip;
+ }
+ public String getPort() {
+ return port;
+ }
+ public void setPort(String port) {
+ this.port = port;
+ }
+}
diff --git a/src/main/java/com/bwssystems/harmony/HarmonyServer.java b/src/main/java/com/bwssystems/harmony/HarmonyServer.java
index 8fd0bd4..1e1ec50 100644
--- a/src/main/java/com/bwssystems/harmony/HarmonyServer.java
+++ b/src/main/java/com/bwssystems/harmony/HarmonyServer.java
@@ -70,7 +70,7 @@ public class HarmonyServer {
log.info(format("activity changed: [%d] %s", activity.getId(), activity.getLabel()));
}
});
- harmonyClient.connect(mySettings.getHarmonyAddress(), mySettings.getHarmonyUser(), mySettings.getHarmonyPwd());
+ harmonyClient.connect(mySettings.getHarmonyAddress().getDevices().get(0).getIp(), mySettings.getHarmonyUser(), mySettings.getHarmonyPwd());
}
myHarmony = new HarmonyHandler(harmonyClient, noopCalls, devResponse);
}
diff --git a/src/main/resources/public/scripts/app.js b/src/main/resources/public/scripts/app.js
index a6aaa47..5a6428d 100644
--- a/src/main/resources/public/scripts/app.js
+++ b/src/main/resources/public/scripts/app.js
@@ -390,6 +390,9 @@ app.controller('ViewingController', function ($scope, $location, $http, $window,
bridgeService.state.base = url;
bridgeService.viewDevices();
};
+ $scope.goBridgeUrl = function (url) {
+ window.open(url, "_blank");
+ };
$scope.editDevice = function (device) {
bridgeService.editDevice(device);
$location.path('/editdevice');
diff --git a/src/main/resources/public/views/configuration.html b/src/main/resources/public/views/configuration.html
index 2f8ff43..eaec437 100644
--- a/src/main/resources/public/views/configuration.html
+++ b/src/main/resources/public/views/configuration.html
@@ -76,7 +76,7 @@
+ ng-click="goBridgeUrl(bridge.base)">Go