Fixed bulk add race conditions. added save capability into UI. UI

settings layout update.
This commit is contained in:
Admin
2016-02-12 15:51:38 -06:00
parent 7b45ca9438
commit c97ab2cd38
13 changed files with 268 additions and 249 deletions

View File

@@ -29,6 +29,8 @@ public abstract class BackupHandler {
fileExtension = "." + anExtension;
defaultName = adefaultName;
log.debug("setupParams has defaultName: " + defaultName + " and file extension as: " + fileExtension);
}
public String backup(String aFilename) {
@@ -78,7 +80,7 @@ public abstract class BackupHandler {
List<String> theFilenames = new ArrayList<String>();
Path dir = repositoryPath.getParent();
try (DirectoryStream<Path> stream =
Files.newDirectoryStream(dir, "*.{"+ fileExtension + "}")) {
Files.newDirectoryStream(dir, "*.{"+ fileExtension.substring(1) + "}")) {
for (Path entry: stream) {
theFilenames.add(entry.getFileName().toString());
}

View File

@@ -0,0 +1,25 @@
package com.bwssystems.HABridge;
public class BridgeControlDescriptor {
private boolean reinit;
private boolean stop;
public BridgeControlDescriptor() {
super();
this.reinit = false;
this.stop = false;
}
public boolean isReinit() {
return reinit;
}
public void setReinit(boolean reinit) {
this.reinit = reinit;
}
public boolean isStop() {
return stop;
}
public void setStop(boolean stop) {
this.stop = stop;
}
}

View File

@@ -19,144 +19,19 @@ import com.google.gson.Gson;
public class BridgeSettings extends BackupHandler {
private BridgeSettingsDescriptor theBridgeSettings;
private boolean reinit;
private boolean stop;
private BridgeControlDescriptor bridgeControl;
public BridgeSettings() {
super();
this.reinit = false;
this.stop = false;
bridgeControl = new BridgeControlDescriptor();
theBridgeSettings = new BridgeSettingsDescriptor();
theBridgeSettings.setUpnpStrict(true);
theBridgeSettings.setDevMode(false);
theBridgeSettings.setTraceupnp(false);
theBridgeSettings.setNestConfigured(false);
theBridgeSettings.setVeraconfigured(false);
theBridgeSettings.setHarmonyconfigured(false);
}
public BridgeControlDescriptor getBridgeControl() {
return bridgeControl;
}
public BridgeSettingsDescriptor getBridgeSettingsDescriptor() {
return theBridgeSettings;
}
public String getUpnpConfigAddress() {
return theBridgeSettings.getUpnpConfigAddress();
}
public void setUpnpConfigAddress(String upnpConfigAddress) {
theBridgeSettings.setUpnpConfigAddress(upnpConfigAddress);
}
public String getServerPort() {
return theBridgeSettings.getServerPort();
}
public void setServerPort(String serverPort) {
theBridgeSettings.setServerPort(serverPort);
}
public String getUpnpResponsePort() {
return theBridgeSettings.getUpnpResponsePort();
}
public void setUpnpResponsePort(String upnpResponsePort) {
theBridgeSettings.setUpnpResponsePort(upnpResponsePort);
}
public String getUpnpDeviceDb() {
return theBridgeSettings.getUpnpDeviceDb();
}
public void setUpnpDeviceDb(String upnpDeviceDb) {
theBridgeSettings.setUpnpDeviceDb(upnpDeviceDb);
}
public IpList getVeraAddress() {
return theBridgeSettings.getVeraAddress();
}
public void setVeraAddress(IpList veraAddress) {
theBridgeSettings.setVeraAddress(veraAddress);
}
public IpList getHarmonyAddress() {
return theBridgeSettings.getHarmonyAddress();
}
public void setHarmonyAddress(IpList harmonyaddress) {
theBridgeSettings.setHarmonyAddress(harmonyaddress);
}
public String getHarmonyUser() {
return theBridgeSettings.getHarmonyUser();
}
public void setHarmonyUser(String harmonyuser) {
theBridgeSettings.setHarmonyUser(harmonyuser);
}
public String getHarmonyPwd() {
return theBridgeSettings.getHarmonyPwd();
}
public void setHarmonyPwd(String harmonypwd) {
theBridgeSettings.setHarmonyPwd(harmonypwd);
}
public boolean isUpnpStrict() {
return theBridgeSettings.isUpnpStrict();
}
public void setUpnpStrict(boolean upnpStrict) {
theBridgeSettings.setUpnpStrict(upnpStrict);
}
public boolean isTraceupnp() {
return theBridgeSettings.isTraceupnp();
}
public void setTraceupnp(boolean traceupnp) {
theBridgeSettings.setTraceupnp(traceupnp);
}
public boolean isDevMode() {
return theBridgeSettings.isDevMode();
}
public void setDevMode(boolean devmode) {
theBridgeSettings.setDevMode(devmode);
}
public String getNestuser() {
return theBridgeSettings.getNestuser();
}
public void setNestuser(String nestuser) {
theBridgeSettings.setNestuser(nestuser);
}
public String getNestpwd() {
return theBridgeSettings.getNestpwd();
}
public void setNestpwd(String nestpwd) {
theBridgeSettings.setNestpwd(nestpwd);
}
public boolean isVeraconfigured() {
return theBridgeSettings.isVeraconfigured();
}
public void setVeraconfigured(boolean veraconfigured) {
theBridgeSettings.setVeraconfigured(veraconfigured);
}
public boolean isHarmonyconfigured() {
return theBridgeSettings.isHarmonyconfigured();
}
public void setHarmonyconfigured(boolean harmonyconfigured) {
theBridgeSettings.setHarmonyconfigured(harmonyconfigured);
}
public boolean isNestConfigured() {
return theBridgeSettings.isNestConfigured();
}
public void setNestConfigured(boolean isNestConfigured) {
theBridgeSettings.setNestConfigured(isNestConfigured);
}
public Integer getButtonsleep() {
return theBridgeSettings.getButtonsleep();
}
public void setButtonsleep(Integer buttonsleep) {
theBridgeSettings.setButtonsleep(buttonsleep);
}
public String getConfigfile() {
return theBridgeSettings.getConfigfile();
}
public void setConfigfile(String configfile) {
theBridgeSettings.setConfigfile(configfile);
}
public boolean isReinit() {
return reinit;
}
public void setReinit(boolean reinit) {
this.reinit = reinit;
}
public boolean isStop() {
return stop;
}
public void setStop(boolean stop) {
this.stop = stop;
}
public void buildSettings() {
Logger log = LoggerFactory.getLogger(BridgeSettings.class);
InetAddress address = null;
@@ -172,17 +47,17 @@ public class BridgeSettings extends BackupHandler {
if(configFileProperty != null)
{
log.info("reading from config file: " + configFileProperty);
setConfigfile(configFileProperty);
theBridgeSettings.setConfigfile(configFileProperty);
_loadConfig();
}
else
{
log.info("reading from system properties");
setConfigfile(Configuration.CONFIG_FILE);
setServerPort(System.getProperty("server.port"));
setUpnpConfigAddress(System.getProperty("upnp.config.address"));
setUpnpDeviceDb(System.getProperty("upnp.device.db"));
setUpnpResponsePort(System.getProperty("upnp.response.port"));
theBridgeSettings.setConfigfile(Configuration.CONFIG_FILE);
theBridgeSettings.setServerPort(System.getProperty("server.port"));
theBridgeSettings.setUpnpConfigAddress(System.getProperty("upnp.config.address"));
theBridgeSettings.setUpnpDeviceDb(System.getProperty("upnp.device.db"));
theBridgeSettings.setUpnpResponsePort(System.getProperty("upnp.response.port"));
theVeraAddress = System.getProperty("vera.address");
IpList theVeraList = null;
@@ -198,7 +73,7 @@ public class BridgeSettings extends BackupHandler {
}
}
}
setVeraAddress(theVeraList);
theBridgeSettings.setVeraAddress(theVeraList);
theHarmonyAddress = System.getProperty("harmony.address");
IpList theHarmonyList = null;
@@ -214,18 +89,18 @@ public class BridgeSettings extends BackupHandler {
}
}
}
setHarmonyAddress(theHarmonyList);
setHarmonyUser(System.getProperty("harmony.user"));
setHarmonyPwd(System.getProperty("harmony.pwd"));
setUpnpStrict(Boolean.parseBoolean(System.getProperty("upnp.strict", "true")));
setTraceupnp(Boolean.parseBoolean(System.getProperty("trace.upnp", "false")));
setDevMode(Boolean.parseBoolean(System.getProperty("dev.mode", "false")));
setButtonsleep(Integer.parseInt(System.getProperty("button.sleep", Configuration.DFAULT_BUTTON_SLEEP)));
setNestuser(System.getProperty("nest.user"));
setNestpwd(System.getProperty("nest.pwd"));
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.setDevMode(Boolean.parseBoolean(System.getProperty("dev.mode", "false")));
theBridgeSettings.setButtonsleep(Integer.parseInt(System.getProperty("button.sleep", Configuration.DFAULT_BUTTON_SLEEP)));
theBridgeSettings.setNestuser(System.getProperty("nest.user"));
theBridgeSettings.setNestpwd(System.getProperty("nest.pwd"));
}
if(getUpnpConfigAddress() == null) {
if(theBridgeSettings.getUpnpConfigAddress() == null) {
try {
log.info("Getting an IP address for this host....");
Enumeration<NetworkInterface> ifs = NetworkInterface.getNetworkInterfaces();
@@ -253,62 +128,62 @@ public class BridgeSettings extends BackupHandler {
return;
}
setUpnpConfigAddress(addressString);
theBridgeSettings.setUpnpConfigAddress(addressString);
}
if(this.getUpnpResponsePort() == null)
this.setUpnpResponsePort(Configuration.UPNP_RESPONSE_PORT);
if(theBridgeSettings.getUpnpResponsePort() == null)
theBridgeSettings.setUpnpResponsePort(Configuration.UPNP_RESPONSE_PORT);
if(this.getServerPort() == null)
this.setServerPort(Configuration.DFAULT_WEB_PORT);
if(theBridgeSettings.getServerPort() == null)
theBridgeSettings.setServerPort(Configuration.DFAULT_WEB_PORT);
if(this.getUpnpDeviceDb() == null)
this.setUpnpDeviceDb(Configuration.DEVICE_DB_DIRECTORY);
if(theBridgeSettings.getUpnpDeviceDb() == null)
theBridgeSettings.setUpnpDeviceDb(Configuration.DEVICE_DB_DIRECTORY);
if(this.getButtonsleep() <= 0)
this.setButtonsleep(Integer.parseInt(Configuration.DFAULT_BUTTON_SLEEP));
if(theBridgeSettings.getButtonsleep() <= 0)
theBridgeSettings.setButtonsleep(Integer.parseInt(Configuration.DFAULT_BUTTON_SLEEP));
this.setVeraconfigured(theBridgeSettings.isValidVera());
this.setHarmonyconfigured(theBridgeSettings.isValidHarmony());
this.setNestConfigured(theBridgeSettings.isValidNest());
setupParams(Paths.get(getConfigfile()), ".cfgbk", "habridge.config-");
theBridgeSettings.setVeraconfigured(theBridgeSettings.isValidVera());
theBridgeSettings.setHarmonyconfigured(theBridgeSettings.isValidHarmony());
theBridgeSettings.setNestConfigured(theBridgeSettings.isValidNest());
setupParams(Paths.get(theBridgeSettings.getConfigfile()), ".cfgbk", "habridge.config-");
}
public void loadConfig() {
if(getConfigfile() != null)
if(theBridgeSettings.getConfigfile() != null)
_loadConfig();
}
private void _loadConfig() {
Path configPath = Paths.get(getConfigfile());
Path configPath = Paths.get(theBridgeSettings.getConfigfile());
_loadConfig(configPath);
}
private void _loadConfig(Path aPath) {
String jsonContent = configReader(aPath);
BridgeSettingsDescriptor aBridgeSettings = new Gson().fromJson(jsonContent, BridgeSettingsDescriptor.class);
this.setButtonsleep(aBridgeSettings.getButtonsleep());
this.setUpnpConfigAddress(aBridgeSettings.getUpnpConfigAddress());
this.setServerPort(aBridgeSettings.getServerPort());
this.setUpnpResponsePort(aBridgeSettings.getUpnpResponsePort());
this.setUpnpDeviceDb(aBridgeSettings.getUpnpDeviceDb());
this.setVeraAddress(aBridgeSettings.getVeraAddress());
this.setHarmonyAddress(aBridgeSettings.getHarmonyAddress());
this.setHarmonyUser(aBridgeSettings.getHarmonyUser());
this.setHarmonyPwd(aBridgeSettings.getHarmonyPwd());
this.setUpnpStrict(aBridgeSettings.isUpnpStrict());
this.setTraceupnp(aBridgeSettings.isTraceupnp());
this.setDevMode(aBridgeSettings.isDevMode());
this.setNestuser(aBridgeSettings.getNestuser());
this.setNestpwd(aBridgeSettings.getNestpwd());
this.setVeraconfigured(aBridgeSettings.isValidVera());
this.setHarmonyconfigured(aBridgeSettings.isValidHarmony());
this.setNestConfigured(aBridgeSettings.isValidNest());
theBridgeSettings.setButtonsleep(aBridgeSettings.getButtonsleep());
theBridgeSettings.setUpnpConfigAddress(aBridgeSettings.getUpnpConfigAddress());
theBridgeSettings.setServerPort(aBridgeSettings.getServerPort());
theBridgeSettings.setUpnpResponsePort(aBridgeSettings.getUpnpResponsePort());
theBridgeSettings.setUpnpDeviceDb(aBridgeSettings.getUpnpDeviceDb());
theBridgeSettings.setVeraAddress(aBridgeSettings.getVeraAddress());
theBridgeSettings.setHarmonyAddress(aBridgeSettings.getHarmonyAddress());
theBridgeSettings.setHarmonyUser(aBridgeSettings.getHarmonyUser());
theBridgeSettings.setHarmonyPwd(aBridgeSettings.getHarmonyPwd());
theBridgeSettings.setUpnpStrict(aBridgeSettings.isUpnpStrict());
theBridgeSettings.setTraceupnp(aBridgeSettings.isTraceupnp());
theBridgeSettings.setDevMode(aBridgeSettings.isDevMode());
theBridgeSettings.setNestuser(aBridgeSettings.getNestuser());
theBridgeSettings.setNestpwd(aBridgeSettings.getNestpwd());
theBridgeSettings.setVeraconfigured(aBridgeSettings.isValidVera());
theBridgeSettings.setHarmonyconfigured(aBridgeSettings.isValidHarmony());
theBridgeSettings.setNestConfigured(aBridgeSettings.isValidNest());
}
public void save(BridgeSettings newBridgeSettings) {
public void save(BridgeSettingsDescriptor newBridgeSettings) {
Logger log = LoggerFactory.getLogger(BridgeSettings.class);
log.debug("Save HA Bridge settings.");
Path configPath = Paths.get(getConfigfile());
Path configPath = Paths.get(theBridgeSettings.getConfigfile());
JsonTransformer aRenderer = new JsonTransformer();
String jsonValue = aRenderer.render(newBridgeSettings);
configWriter(jsonValue, configPath);

View File

@@ -46,15 +46,13 @@ public class HABridge {
log.info("HA Bridge (v" + theVersion.getVersion() + ") starting....");
bridgeSettings = new BridgeSettings();
bridgeSettings.setReinit(false);
bridgeSettings.setStop(false);
while(!bridgeSettings.isStop()) {
while(!bridgeSettings.getBridgeControl().isStop()) {
bridgeSettings.buildSettings();
log.info("HA Bridge (v" + theVersion.getVersion() + ") initializing....");
// 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
port(Integer.valueOf(bridgeSettings.getServerPort()));
port(Integer.valueOf(bridgeSettings.getBridgeSettingsDescriptor().getServerPort()));
// sparkjava config directive to set html static file location for Jetty
staticFileLocation("/public");
// setup system control api first
@@ -76,11 +74,11 @@ public class HABridge {
awaitInitialization();
// start the upnp ssdp discovery listener
theUpnpListener = new UpnpListener(bridgeSettings);
theUpnpListener = new UpnpListener(bridgeSettings.getBridgeSettingsDescriptor(), bridgeSettings.getBridgeControl());
if(theUpnpListener.startListening())
log.info("HA Bridge (v" + theVersion.getVersion() + ") reinitialization requessted....");
bridgeSettings.setReinit(false);
bridgeSettings.getBridgeControl().setReinit(false);
stop();
}
log.info("HA Bridge (v" + theVersion.getVersion() + ") exiting....");

View File

@@ -44,7 +44,26 @@ public class SystemControl {
response.status(200);
return bridgeSettings;
return bridgeSettings.getBridgeSettingsDescriptor();
}, new JsonTransformer());
// http://ip_address:port/system/settings CORS request
options(SYSTEM_CONTEXT + "/settings", "application/json", (request, response) -> {
response.status(HttpStatus.SC_OK);
response.header("Access-Control-Allow-Origin", request.headers("Origin"));
response.header("Access-Control-Allow-Methods", "GET, POST, PUT");
response.header("Access-Control-Allow-Headers", request.headers("Access-Control-Request-Headers"));
response.header("Content-Type", "text/html; charset=utf-8");
return "";
});
// http://ip_address:port/system/settings which returns the bridge configuration settings
put(SYSTEM_CONTEXT + "/settings", "application/json", (request, response) -> {
log.info("save bridge settings requested from " + request.ip() + " with body: " + request.body());
BridgeSettingsDescriptor newBridgeSettings = new Gson().fromJson(request.body(), BridgeSettingsDescriptor.class);
bridgeSettings.save(newBridgeSettings);
response.status(200);
return bridgeSettings.getBridgeSettingsDescriptor();
}, new JsonTransformer());
// http://ip_address:port/system/control/reinit CORS request
@@ -160,13 +179,13 @@ public class SystemControl {
}
public String reinit() {
bridgeSettings.setReinit(true);
bridgeSettings.getBridgeControl().setReinit(true);
pingListener();
return "{\"control\":\"reiniting\"}";
}
public String stop() {
bridgeSettings.setStop(true);
bridgeSettings.getBridgeControl().setStop(true);
pingListener();
return "{\"control\":\"stopping\"}";
}

View File

@@ -79,16 +79,20 @@ public class DeviceRepository extends BackupHandler {
devices.put(id, aDescriptor);
}
public void save(DeviceDescriptor aDescriptor) {
if(aDescriptor.getId() != null)
devices.remove(aDescriptor.getId());
else
aDescriptor.setId(String.valueOf(random.nextInt(Integer.MAX_VALUE)));
put(aDescriptor.getId(), aDescriptor);
public void save(DeviceDescriptor[] descriptors) {
String theNames = "";
for(int i = 0; i < descriptors.length; i++) {
if(descriptors[i].getId() != null)
devices.remove(descriptors[i].getId());
else
descriptors[i].setId(String.valueOf(random.nextInt(Integer.MAX_VALUE)));
put(descriptors[i].getId(), descriptors[i]);
theNames = theNames + " " + descriptors[i].getName() + ", ";
}
JsonTransformer aRenderer = new JsonTransformer();
String jsonValue = aRenderer.render(findAll());
repositoryWriter(jsonValue, repositoryPath);
log.debug("Save device: " + aDescriptor.getName());
log.debug("Save device(s): " + theNames);
}
public String delete(DeviceDescriptor aDescriptor) {

View File

@@ -15,7 +15,6 @@ import org.apache.http.HttpStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.bwssystems.HABridge.BridgeSettings;
import com.bwssystems.HABridge.BridgeSettingsDescriptor;
import com.bwssystems.HABridge.JsonTransformer;
import com.bwssystems.HABridge.dao.BackupFilename;
@@ -76,24 +75,31 @@ public class DeviceResource {
return "";
});
post(API_CONTEXT, "application/json", (request, response) -> {
log.debug("Create a Device - request body: " + request.body());
DeviceDescriptor device = new Gson().fromJson(request.body(), DeviceDescriptor.class);
if(device.getContentBody() != null ) {
if (device.getContentType() == null || device.getHttpVerb() == null || !supportedVerbs.contains(device.getHttpVerb().toLowerCase())) {
device = null;
response.status(HttpStatus.SC_BAD_REQUEST);
log.debug("Bad http verb in create a Device: " + request.body());
return device;
}
}
log.info("Create a Device(s) - request body: " + request.body());
DeviceDescriptor devices[];
if(request.body().substring(0,1).equalsIgnoreCase("[") == true) {
devices = new Gson().fromJson(request.body(), DeviceDescriptor[].class);
}
else {
devices = new Gson().fromJson("[" + request.body() + "]", DeviceDescriptor[].class);
}
for(int i = 0; i < devices.length; i++) {
if(devices[i].getContentBody() != null ) {
if (devices[i].getContentType() == null || devices[i].getHttpVerb() == null || !supportedVerbs.contains(devices[i].getHttpVerb().toLowerCase())) {
response.status(HttpStatus.SC_BAD_REQUEST);
log.debug("Bad http verb in create a Device(s): " + request.body());
return devices;
}
}
}
deviceRepository.save(device);
log.debug("Created a Device: " + request.body());
deviceRepository.save(devices);
log.debug("Created a Device(s): " + request.body());
response.header("Access-Control-Allow-Origin", request.headers("Origin"));
response.status(HttpStatus.SC_CREATED);
return device;
return devices;
}, new JsonTransformer());
// http://ip_address:port/api/devices/:id CORS request
@@ -130,7 +136,9 @@ public class DeviceResource {
deviceEntry.setContentBody(device.getContentBody());
deviceEntry.setContentBodyOff(device.getContentBodyOff());
deviceRepository.save(deviceEntry);
DeviceDescriptor[] theDevices = new DeviceDescriptor[1];
theDevices[0] = deviceEntry;
deviceRepository.save(theDevices);
response.status(HttpStatus.SC_OK);
}
return deviceEntry;

View File

@@ -3,7 +3,8 @@ package com.bwssystems.HABridge.upnp;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.bwssystems.HABridge.BridgeSettings;
import com.bwssystems.HABridge.BridgeControlDescriptor;
import com.bwssystems.HABridge.BridgeSettingsDescriptor;
import com.bwssystems.HABridge.Configuration;
import java.io.IOException;
@@ -15,26 +16,21 @@ import org.apache.http.conn.util.*;
public class UpnpListener {
private Logger log = LoggerFactory.getLogger(UpnpListener.class);
private int upnpResponsePort;
private int httpServerPort;
private String responseAddress;
private boolean strict;
private boolean traceupnp;
private BridgeSettings bridgeSettings;
private BridgeControlDescriptor bridgeControl;
public UpnpListener(BridgeSettings theSettings) {
public UpnpListener(BridgeSettingsDescriptor theSettings, BridgeControlDescriptor theControl) {
super();
upnpResponsePort = Integer.valueOf(theSettings.getUpnpResponsePort());
httpServerPort = Integer.valueOf(theSettings.getServerPort());
responseAddress = theSettings.getUpnpConfigAddress();
strict = theSettings.isUpnpStrict();
traceupnp = theSettings.isTraceupnp();
bridgeSettings = theSettings;
bridgeControl = theControl;
}
public boolean startListening(){
@@ -80,7 +76,7 @@ public class UpnpListener {
if(isSSDPDiscovery(packet)){
sendUpnpResponse(responseSocket, packet.getAddress(), packet.getPort());
}
if(bridgeSettings.isReinit() || bridgeSettings.isStop()) {
if(bridgeControl.isReinit() || bridgeControl.isStop()) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
@@ -94,13 +90,13 @@ public class UpnpListener {
} catch (IOException e) {
log.error("UpnpListener encountered an error opening sockets. Shutting down", e);
}
if(bridgeSettings.isReinit())
if(bridgeControl.isReinit())
log.info("UPNP Discovery Listener - ended, restart found");
if(bridgeSettings.isStop())
if(bridgeControl.isStop())
log.info("UPNP Discovery Listener - ended, stop found");
if(!bridgeSettings.isStop()&& !bridgeSettings.isReinit())
if(!bridgeControl.isStop()&& !bridgeControl.isReinit())
log.info("UPNP Discovery Listener - ended, error found");
return bridgeSettings.isReinit();
return bridgeControl.isReinit();
}
/**

View File

@@ -29,7 +29,7 @@ public class NestHome {
nestItems = null;
if(!bridgeSettings.isValidNest()) {
log.info("not a valid nest");
log.debug("not a valid nest");
return;
}