mirror of
https://github.com/bwssytems/ha-bridge.git
synced 2025-12-18 00:10:20 +00:00
Updated with debug info.
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<groupId>com.bwssystems.HABridge</groupId>
|
<groupId>com.bwssystems.HABridge</groupId>
|
||||||
<artifactId>ha-bridge</artifactId>
|
<artifactId>ha-bridge</artifactId>
|
||||||
<version>5.2.0RC13</version>
|
<version>5.2.0RC14</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>HA Bridge</name>
|
<name>HA Bridge</name>
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ import org.slf4j.Logger;
|
|||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import com.bwssystems.HABridge.BridgeSettings;
|
import com.bwssystems.HABridge.BridgeSettings;
|
||||||
|
import com.bwssystems.HABridge.BridgeSettingsDescriptor;
|
||||||
import com.bwssystems.HABridge.Configuration;
|
import com.bwssystems.HABridge.Configuration;
|
||||||
import com.bwssystems.HABridge.Home;
|
import com.bwssystems.HABridge.Home;
|
||||||
import com.bwssystems.HABridge.api.CallItem;
|
import com.bwssystems.HABridge.api.CallItem;
|
||||||
@@ -44,6 +45,7 @@ public class BroadlinkHome implements Home {
|
|||||||
private Boolean validBroadlink;
|
private Boolean validBroadlink;
|
||||||
private boolean closed;
|
private boolean closed;
|
||||||
private Boolean isDevMode;
|
private Boolean isDevMode;
|
||||||
|
private BridgeSettingsDescriptor bridgeSettingsDesc;
|
||||||
|
|
||||||
public BroadlinkHome(BridgeSettings bridgeSettings) {
|
public BroadlinkHome(BridgeSettings bridgeSettings) {
|
||||||
super();
|
super();
|
||||||
@@ -55,62 +57,60 @@ public class BroadlinkHome implements Home {
|
|||||||
@Override
|
@Override
|
||||||
public Home createHome(BridgeSettings bridgeSettings) {
|
public Home createHome(BridgeSettings bridgeSettings) {
|
||||||
broadlinkMap = null;
|
broadlinkMap = null;
|
||||||
BLDevice[] clients;
|
bridgeSettingsDesc = bridgeSettings.getBridgeSettingsDescriptor();
|
||||||
|
|
||||||
isDevMode = Boolean.parseBoolean(System.getProperty("dev.mode", "false"));
|
isDevMode = Boolean.parseBoolean(System.getProperty("dev.mode", "false"));
|
||||||
validBroadlink = bridgeSettings.getBridgeSettingsDescriptor().isValidBroadlink();
|
validBroadlink = bridgeSettings.getBridgeSettingsDescriptor().isValidBroadlink();
|
||||||
|
|
||||||
log.info("Broadlink Home created." + (validBroadlink ? "" : " No Broadlinks configured.") + (isDevMode ? " DevMode is set." : ""));
|
log.info("Broadlink Home created." + (validBroadlink ? "" : " No Broadlinks configured.") + (isDevMode ? " DevMode is set." : ""));
|
||||||
if(validBroadlink) {
|
|
||||||
broadlinkMap = new HashMap<String, BLDevice>();
|
|
||||||
int aDiscoverPort = Configuration.BROADLINK_DISCOVER_PORT;
|
|
||||||
while(aDiscoverPort > 0) {
|
|
||||||
try {
|
|
||||||
log.info("Broadlink discover....");
|
|
||||||
if(isDevMode) {
|
|
||||||
clients = TestBLDevice.discoverDevices(InetAddress.getByName(bridgeSettings.getBridgeSettingsDescriptor().getUpnpConfigAddress()), aDiscoverPort, Configuration.BROADLINK_DISCONVER_TIMEOUT);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
clients = BLDevice.discoverDevices(InetAddress.getByName(bridgeSettings.getBridgeSettingsDescriptor().getUpnpConfigAddress()), aDiscoverPort, Configuration.BROADLINK_DISCONVER_TIMEOUT);
|
|
||||||
if(clients.length <= 0) {
|
|
||||||
log.warn("Did not discover any Broadlinks, try again with bridge reinitialization");
|
|
||||||
broadlinkMap = null;
|
|
||||||
validBroadlink = false;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
for(int i = 0; i < clients.length; i++) {
|
|
||||||
if(clients[i].getDeviceType() != BLDevice.DEV_A1) {
|
|
||||||
broadlinkMap.put(clients[i].getHost() + "-" + String.format("%04x", clients[i].getDeviceType()), clients[i]);
|
|
||||||
log.debug("Adding Device to Map - host: " + clients[i].getHost() + ", device Type: " + clients[i].getDeviceDescription() + ", mac: " + (clients[i].getMac() == null ? "no Mac in client" : clients[i].getMac().getMacString()));
|
|
||||||
} else {
|
|
||||||
log.debug("Ignoring A1 Device - host: " + clients[i].getHost() + ", device Type: " + clients[i].getDeviceDescription() + ", mac: " + (clients[i].getMac() == null ? "no Mac in client" : clients[i].getMac().getMacString()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
aDiscoverPort = 0;
|
|
||||||
} catch (BindException e) {
|
|
||||||
log.warn("Could not discover Broadlinks, Port in use, increasing by 11");
|
|
||||||
aDiscoverPort += 11;
|
|
||||||
if(aDiscoverPort > Configuration.BROADLINK_DISCOVER_PORT + 110)
|
|
||||||
aDiscoverPort = 0;
|
|
||||||
} catch (IOException e) {
|
|
||||||
log.warn("Could not discover Broadlinks, with IO Exception", e);
|
|
||||||
broadlinkMap = null;
|
|
||||||
validBroadlink = false;
|
|
||||||
aDiscoverPort = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getItems(String type) {
|
public Object getItems(String type) {
|
||||||
|
BLDevice[] clients;
|
||||||
|
BroadlinkEntry theResponse = null;
|
||||||
|
List<BroadlinkEntry> deviceList = new ArrayList<BroadlinkEntry>();
|
||||||
log.debug("consolidating devices for Broadlink");
|
log.debug("consolidating devices for Broadlink");
|
||||||
if(!validBroadlink)
|
if(!validBroadlink)
|
||||||
return null;
|
return null;
|
||||||
BroadlinkEntry theResponse = null;
|
broadlinkMap = new HashMap<String, BLDevice>();
|
||||||
|
int aDiscoverPort = Configuration.BROADLINK_DISCOVER_PORT;
|
||||||
|
while(aDiscoverPort > 0) {
|
||||||
|
try {
|
||||||
|
log.info("Broadlink discover....");
|
||||||
|
if(isDevMode) {
|
||||||
|
clients = TestBLDevice.discoverDevices(InetAddress.getByName(bridgeSettingsDesc.getUpnpConfigAddress()), aDiscoverPort, Configuration.BROADLINK_DISCONVER_TIMEOUT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
clients = BLDevice.discoverDevices(InetAddress.getByName(bridgeSettingsDesc.getUpnpConfigAddress()), aDiscoverPort, Configuration.BROADLINK_DISCONVER_TIMEOUT);
|
||||||
|
if(clients.length <= 0) {
|
||||||
|
log.warn("Did not discover any Broadlinks.");
|
||||||
|
broadlinkMap = null;
|
||||||
|
return deviceList;
|
||||||
|
}
|
||||||
|
for(int i = 0; i < clients.length; i++) {
|
||||||
|
if(clients[i].getDeviceType() != BLDevice.DEV_A1) {
|
||||||
|
broadlinkMap.put(clients[i].getHost() + "-" + String.format("%04x", clients[i].getDeviceType()), clients[i]);
|
||||||
|
log.debug("Adding Device to Map - host: " + clients[i].getHost() + ", device Type: " + clients[i].getDeviceDescription() + ", mac: " + (clients[i].getMac() == null ? "no Mac in client" : clients[i].getMac().getMacString()));
|
||||||
|
} else {
|
||||||
|
log.debug("Ignoring A1 Device - host: " + clients[i].getHost() + ", device Type: " + clients[i].getDeviceDescription() + ", mac: " + (clients[i].getMac() == null ? "no Mac in client" : clients[i].getMac().getMacString()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
aDiscoverPort = 0;
|
||||||
|
} catch (BindException e) {
|
||||||
|
log.warn("Could not discover Broadlinks, Port in use, increasing by 11");
|
||||||
|
aDiscoverPort += 11;
|
||||||
|
if(aDiscoverPort > Configuration.BROADLINK_DISCOVER_PORT + 110)
|
||||||
|
aDiscoverPort = 0;
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.warn("Could not discover Broadlinks, with IO Exception", e);
|
||||||
|
broadlinkMap = null;
|
||||||
|
validBroadlink = false;
|
||||||
|
aDiscoverPort = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
Iterator<String> keys = broadlinkMap.keySet().iterator();
|
Iterator<String> keys = broadlinkMap.keySet().iterator();
|
||||||
List<BroadlinkEntry> deviceList = new ArrayList<BroadlinkEntry>();
|
|
||||||
while(keys.hasNext()) {
|
while(keys.hasNext()) {
|
||||||
String key = keys.next();
|
String key = keys.next();
|
||||||
theResponse = toEntry(broadlinkMap.get(key));
|
theResponse = toEntry(broadlinkMap.get(key));
|
||||||
@@ -341,8 +341,10 @@ public class BroadlinkHome implements Home {
|
|||||||
if(!validBroadlink)
|
if(!validBroadlink)
|
||||||
return;
|
return;
|
||||||
log.debug("Closing Home.");
|
log.debug("Closing Home.");
|
||||||
broadlinkMap.clear();
|
if(broadlinkMap != null) {
|
||||||
broadlinkMap = null;
|
broadlinkMap.clear();
|
||||||
|
broadlinkMap = null;
|
||||||
|
}
|
||||||
if(closed) {
|
if(closed) {
|
||||||
log.debug("Home is already closed....");
|
log.debug("Home is already closed....");
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user