diff --git a/pom.xml b/pom.xml index c9147d1..620f57f 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.bwssystems.HABridge ha-bridge - 3.2.2d + 3.5.0 jar HA Bridge @@ -32,7 +32,7 @@ com.github.bwssytems harmony-java-client - 1.0.8 + 1.1.1 org.slf4j diff --git a/src/main/java/com/bwssystems/HABridge/BridgeSettings.java b/src/main/java/com/bwssystems/HABridge/BridgeSettings.java index a772ade..e4a53bf 100644 --- a/src/main/java/com/bwssystems/HABridge/BridgeSettings.java +++ b/src/main/java/com/bwssystems/HABridge/BridgeSettings.java @@ -102,8 +102,6 @@ public class BridgeSettings extends BackupHandler { } } theBridgeSettings.setHarmonyAddress(theHarmonyList); - theBridgeSettings.setHarmonyUser(System.getProperty("harmony.user")); - theBridgeSettings.setHarmonyPwd(System.getProperty("harmony.pwd")); theBridgeSettings.setUpnpStrict(Boolean.parseBoolean(System.getProperty("upnp.strict", "true"))); theBridgeSettings.setTraceupnp(Boolean.parseBoolean(System.getProperty("trace.upnp", "false"))); theBridgeSettings.setButtonsleep(Integer.parseInt(System.getProperty("button.sleep", Configuration.DEFAULT_BUTTON_SLEEP))); diff --git a/src/main/java/com/bwssystems/HABridge/BridgeSettingsDescriptor.java b/src/main/java/com/bwssystems/HABridge/BridgeSettingsDescriptor.java index ce8a173..86ebe3e 100644 --- a/src/main/java/com/bwssystems/HABridge/BridgeSettingsDescriptor.java +++ b/src/main/java/com/bwssystems/HABridge/BridgeSettingsDescriptor.java @@ -12,8 +12,6 @@ public class BridgeSettingsDescriptor { private String upnpdevicedb; private IpList veraaddress; private IpList harmonyaddress; - private String harmonyuser; - private String harmonypwd; private Integer buttonsleep; private boolean upnpstrict; private boolean traceupnp; @@ -95,18 +93,6 @@ public class BridgeSettingsDescriptor { public void setHarmonyAddress(IpList harmonyaddress) { this.harmonyaddress = harmonyaddress; } - public String getHarmonyUser() { - return harmonyuser; - } - public void setHarmonyUser(String harmonyuser) { - this.harmonyuser = harmonyuser; - } - public String getHarmonyPwd() { - return harmonypwd; - } - public void setHarmonyPwd(String harmonypwd) { - this.harmonypwd = harmonypwd; - } public boolean isUpnpStrict() { return upnpstrict; } @@ -253,10 +239,6 @@ public class BridgeSettingsDescriptor { List devicesList = this.getHarmonyAddress().getDevices(); if(devicesList.get(0).getIp().contains(Configuration.DEFAULT_ADDRESS)) return false; - if(this.getHarmonyPwd() == null || this.getHarmonyPwd().equals("")) - return false; - if(this.getHarmonyUser() == null || this.getHarmonyUser().equals("")) - return false; return true; } public Boolean isValidNest() { diff --git a/src/main/java/com/bwssystems/HABridge/hue/HueMulator.java b/src/main/java/com/bwssystems/HABridge/hue/HueMulator.java index a513921..9766761 100644 --- a/src/main/java/com/bwssystems/HABridge/hue/HueMulator.java +++ b/src/main/java/com/bwssystems/HABridge/hue/HueMulator.java @@ -797,11 +797,13 @@ public class HueMulator implements HueErrorStringSet { else setCount = 1; for(int x = 0; x < setCount; x++) { - if( x > 0) { + if( x > 0 || i > 0) { Thread.sleep(theDelay); } - if(deviceButtons[i].getDelay() != null &&deviceButtons[i].getDelay() > 0) + if(deviceButtons[i].getDelay() != null && deviceButtons[i].getDelay() > 0) theDelay = deviceButtons[i].getDelay(); + else + theDelay = bridgeSettings.getButtonsleep(); log.debug("pressing button: " + deviceButtons[i].getDevice() + " - " + deviceButtons[i].getButton() + " - iteration: " + String.valueOf(i) + " - count: " + String.valueOf(x)); myHarmony.pressButton(deviceButtons[i]); } @@ -883,11 +885,13 @@ public class HueMulator implements HueErrorStringSet { else setCount = 1; for(int x = 0; x < setCount; x++) { - if( x > 0) { + if( x > 0 || i > 0) { Thread.sleep(theDelay); } if(mqttMessages[i].getDelay() != null &&mqttMessages[i].getDelay() > 0) theDelay = mqttMessages[i].getDelay(); + else + theDelay = bridgeSettings.getButtonsleep(); log.debug("publishing message: " + mqttMessages[i].getClientId() + " - " + mqttMessages[i].getTopic() + " - " + mqttMessages[i].getMessage() + " - iteration: " + String.valueOf(i) + " - count: " + String.valueOf(x)); mqttHandler.publishMessage(mqttMessages[i].getTopic(), mqttMessages[i].getMessage()); } @@ -915,11 +919,13 @@ public class HueMulator implements HueErrorStringSet { else setCount = 1; for(int x = 0; x < setCount; x++) { - if( x > 0) { + if( x > 0 || i > 0) { Thread.sleep(theDelay); } if(callItems[i].getDelay() != null && callItems[i].getDelay() > 0) theDelay = callItems[i].getDelay(); + else + theDelay = bridgeSettings.getButtonsleep(); String intermediate; if(callItems[i].getItem().contains("exec://")) intermediate = callItems[i].getItem().substring(callItems[i].getItem().indexOf("://") + 3); @@ -950,11 +956,13 @@ public class HueMulator implements HueErrorStringSet { else setCount = 1; for(int x = 0; x < setCount; x++) { - if( x > 0) { + if( x > 0 || i > 0) { Thread.sleep(theDelay); } if(callItems[i].getDelay() != null && callItems[i].getDelay() > 0) theDelay = callItems[i].getDelay(); + else + theDelay = bridgeSettings.getButtonsleep(); try { if(callItems[i].getItem().contains("udp://") || callItems[i].getItem().contains("tcp://")) { String intermediate = callItems[i].getItem().substring(callItems[i].getItem().indexOf("://") + 3); diff --git a/src/main/java/com/bwssystems/harmony/HarmonyServer.java b/src/main/java/com/bwssystems/harmony/HarmonyServer.java index 601fd2e..2dbf028 100644 --- a/src/main/java/com/bwssystems/harmony/HarmonyServer.java +++ b/src/main/java/com/bwssystems/harmony/HarmonyServer.java @@ -75,7 +75,7 @@ public class HarmonyServer { log.info(format("activity changed: [%d] %s", activity.getId(), activity.getLabel())); } }); - harmonyClient.connect(myNameAndIP.getIp(), mySettings.getHarmonyUser(), mySettings.getHarmonyPwd()); + harmonyClient.connect(myNameAndIP.getIp()); } myHarmony = new HarmonyHandler(harmonyClient, noopCalls, devResponse); } diff --git a/src/main/java/com/bwssystems/mqtt/MQTTHandler.java b/src/main/java/com/bwssystems/mqtt/MQTTHandler.java index 3b5740f..e6895f9 100644 --- a/src/main/java/com/bwssystems/mqtt/MQTTHandler.java +++ b/src/main/java/com/bwssystems/mqtt/MQTTHandler.java @@ -20,7 +20,7 @@ public class MQTTHandler { public MQTTHandler(NamedIP aConfig) { super(); - log.debug("Setting up handler for name: " + aConfig.getName()); + log.info("Setting up handler for name: " + aConfig.getName()); MemoryPersistence persistence = new MemoryPersistence(); myConfig = aConfig; try { @@ -30,6 +30,12 @@ public class MQTTHandler { } MqttConnectOptions connOpts = new MqttConnectOptions(); connOpts.setCleanSession(true); + if(aConfig.getUsername() != null && aConfig.getUsername().trim().length() > 0) { + if(aConfig.getPassword() != null && aConfig.getPassword().trim().length() > 0) { + connOpts.setUserName(aConfig.getUsername().trim()); + connOpts.setPassword(aConfig.getPassword().trim().toCharArray()); + } + } try { myClient.connect(connOpts); } catch (MqttSecurityException e) { diff --git a/src/main/java/com/bwssystems/mqtt/MQTTHome.java b/src/main/java/com/bwssystems/mqtt/MQTTHome.java index 9f0d425..c5a57ae 100644 --- a/src/main/java/com/bwssystems/mqtt/MQTTHome.java +++ b/src/main/java/com/bwssystems/mqtt/MQTTHome.java @@ -15,10 +15,12 @@ import com.bwssystems.HABridge.NamedIP; public class MQTTHome { private static final Logger log = LoggerFactory.getLogger(MQTTHome.class); private Map handlers; + private Boolean validMqtt; public MQTTHome(BridgeSettingsDescriptor bridgeSettings) { super(); - if(!bridgeSettings.isValidMQTT()) + validMqtt = bridgeSettings.isValidMQTT(); + if(!validMqtt) return; handlers = new HashMap(); @@ -32,6 +34,8 @@ public class MQTTHome { } public void shutdownMQTTClients() { + if(!validMqtt) + return; log.debug("Shutting down MQTT handlers."); if(handlers != null && !handlers.isEmpty()) { Iterator keys = handlers.keySet().iterator(); @@ -43,6 +47,8 @@ public class MQTTHome { } public MQTTHandler getMQTTHandler(String aName) { + if(!validMqtt) + return null; MQTTHandler aHandler; if(aName == null || aName.equals("")) { aHandler = null; @@ -56,6 +62,8 @@ public class MQTTHome { } public List getBrokers() { + if(!validMqtt) + return null; Iterator keys = handlers.keySet().iterator(); ArrayList deviceList = new ArrayList(); while(keys.hasNext()) { diff --git a/src/main/resources/public/scripts/app.js b/src/main/resources/public/scripts/app.js index d68e50e..9f47957 100644 --- a/src/main/resources/public/scripts/app.js +++ b/src/main/resources/public/scripts/app.js @@ -702,14 +702,16 @@ app.controller('SystemController', function ($scope, $location, $http, $window, } } }; - $scope.addMQTTtoSettings = function (newmqttname, newmqttip) { + $scope.addMQTTtoSettings = function (newmqttname, newmqttip, newmqttusername, newmqttpassword) { if($scope.bridge.settings.mqttaddress == null) { $scope.bridge.settings.mqttaddress = { devices: [] }; } - var newmqtt = {name: newmqttname, ip: newmqttip } + var newmqtt = {name: newmqttname, ip: newmqttip, username: newmqttusername, password: newmqttpassword } $scope.bridge.settings.mqttaddress.devices.push(newmqtt); $scope.newmqttname = null; $scope.newmqttip = null; + $scope.newmqttusername = null; + $scope.newmqttpassword = null; }; $scope.removeMQTTtoSettings = function (mqttname, mqttip) { for(var i = $scope.bridge.settings.mqttaddress.devices.length - 1; i >= 0; i--) { diff --git a/src/main/resources/public/views/system.html b/src/main/resources/public/views/system.html index 2317c1c..89a9318 100644 --- a/src/main/resources/public/views/system.html +++ b/src/main/resources/public/views/system.html @@ -160,19 +160,6 @@ - - Harmony Username - - - - Harmony Password - - Hue Names and IP Addresses + + + + + + @@ -261,8 +254,14 @@ + + + ng-click="addMQTTtoSettings(newmqttname, newmqttip, newmqttusername, newmqttpassword)">Add
Client ID IPUser (opt)Password (opt) Manage
{{mqtt.name}} {{mqtt.ip}}{{mqtt.username}}*******