mirror of
https://github.com/bwssytems/ha-bridge.git
synced 2025-12-20 16:59:53 +00:00
Finished MQTT support and some testing. Updated harmony-java-client to
v1.1.1 to fix authentication error.
This commit is contained in:
@@ -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)));
|
||||
|
||||
@@ -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<NamedIP> 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() {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -15,10 +15,12 @@ import com.bwssystems.HABridge.NamedIP;
|
||||
public class MQTTHome {
|
||||
private static final Logger log = LoggerFactory.getLogger(MQTTHome.class);
|
||||
private Map<String, MQTTHandler> handlers;
|
||||
private Boolean validMqtt;
|
||||
|
||||
public MQTTHome(BridgeSettingsDescriptor bridgeSettings) {
|
||||
super();
|
||||
if(!bridgeSettings.isValidMQTT())
|
||||
validMqtt = bridgeSettings.isValidMQTT();
|
||||
if(!validMqtt)
|
||||
return;
|
||||
|
||||
handlers = new HashMap<String, MQTTHandler>();
|
||||
@@ -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<String> 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<MQTTBroker> getBrokers() {
|
||||
if(!validMqtt)
|
||||
return null;
|
||||
Iterator<String> keys = handlers.keySet().iterator();
|
||||
ArrayList<MQTTBroker> deviceList = new ArrayList<MQTTBroker>();
|
||||
while(keys.hasNext()) {
|
||||
|
||||
Reference in New Issue
Block a user