From 869ffaaf36f7dd908d1d4b04e48dac271a0846c2 Mon Sep 17 00:00:00 2001
From: bsamuels
Date: Thu, 8 Feb 2018 15:30:21 -0600
Subject: [PATCH] Updated broadlink discover and fixed list mapping issue.
Added refresh to ResourceHAndlers so Broadlink and Lifx can be refreshed from
the tab.
---
pom.xml | 2 +-
.../devicemanagmeent/DeviceResource.java | 8 ++
.../devicemanagmeent/ResourceHandler.java | 1 +
.../HABridge/plugins/NestBridge/NestHome.java | 5 +
.../plugins/broadlink/BroadlinkHome.java | 98 +++++++++++--------
.../plugins/domoticz/DomoticzHome.java | 5 +
.../HABridge/plugins/exec/CommandHome.java | 5 +
.../HABridge/plugins/fhem/FHEMHome.java | 5 +
.../HABridge/plugins/fibaro/FibaroHome.java | 5 +
.../HABridge/plugins/hal/HalHome.java | 5 +
.../HABridge/plugins/harmony/HarmonyHome.java | 6 ++
.../HABridge/plugins/hass/HassHome.java | 5 +
.../plugins/homewizard/HomeWizardHome.java | 5 +
.../HABridge/plugins/http/HTTPHome.java | 6 +-
.../HABridge/plugins/hue/HueHome.java | 5 +
.../HABridge/plugins/lifx/LifxHome.java | 93 ++++++++++--------
.../HABridge/plugins/mqtt/MQTTHome.java | 5 +
.../HABridge/plugins/openhab/OpenHABHome.java | 7 +-
.../HABridge/plugins/somfy/SomfyHome.java | 5 +
.../HABridge/plugins/tcp/TCPHome.java | 6 +-
.../HABridge/plugins/udp/UDPHome.java | 6 +-
.../HABridge/plugins/vera/VeraHome.java | 5 +
.../HABridge/util/UDPDatagramSender.java | 2 +-
src/main/resources/public/scripts/app.js | 21 ++++
.../public/views/broadlinkdevice.html | 4 +
.../resources/public/views/lifxdevice.html | 4 +
src/main/resources/public/views/login.html | 2 +-
27 files changed, 238 insertions(+), 88 deletions(-)
diff --git a/pom.xml b/pom.xml
index b2ed7c5..130f9ad 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.bwssystems.HABridgeha-bridge
- 5.2.0RC15
+ 5.2.0RC16jarHA Bridge
diff --git a/src/main/java/com/bwssystems/HABridge/devicemanagmeent/DeviceResource.java b/src/main/java/com/bwssystems/HABridge/devicemanagmeent/DeviceResource.java
index b360411..6b2e14f 100644
--- a/src/main/java/com/bwssystems/HABridge/devicemanagmeent/DeviceResource.java
+++ b/src/main/java/com/bwssystems/HABridge/devicemanagmeent/DeviceResource.java
@@ -338,6 +338,14 @@ public class DeviceResource {
return new DeviceMapTypes().getDeviceMapTypes();
}, new JsonTransformer());
+ get (API_CONTEXT + "/refresh/:typeIndex", "application/json", (request, response) -> {
+ String typeIndex = request.params(":typeIndex");
+ log.debug("Refresh Home: " + typeIndex);
+ response.status(HttpStatus.SC_OK);
+ homeManager.findResource(typeIndex).refresh();
+ return null;
+ }, new JsonTransformer());
+
// http://ip_address:port/api/devices/exec/renumber CORS request
options(API_CONTEXT + "/exec/renumber", "application/json", (request, response) -> {
response.status(HttpStatus.SC_OK);
diff --git a/src/main/java/com/bwssystems/HABridge/devicemanagmeent/ResourceHandler.java b/src/main/java/com/bwssystems/HABridge/devicemanagmeent/ResourceHandler.java
index 68a7bdb..94b9c88 100644
--- a/src/main/java/com/bwssystems/HABridge/devicemanagmeent/ResourceHandler.java
+++ b/src/main/java/com/bwssystems/HABridge/devicemanagmeent/ResourceHandler.java
@@ -2,4 +2,5 @@ package com.bwssystems.HABridge.devicemanagmeent;
public interface ResourceHandler {
public Object getItems(String type);
+ public void refresh();
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/NestBridge/NestHome.java b/src/main/java/com/bwssystems/HABridge/plugins/NestBridge/NestHome.java
index da71b5e..701fc4f 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/NestBridge/NestHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/NestBridge/NestHome.java
@@ -197,5 +197,10 @@ public class NestHome implements com.bwssystems.HABridge.Home {
}
return this;
}
+
+ @Override
+ public void refresh() {
+ // noop
+ }
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/broadlink/BroadlinkHome.java b/src/main/java/com/bwssystems/HABridge/plugins/broadlink/BroadlinkHome.java
index 9a3808e..e573ab4 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/broadlink/BroadlinkHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/broadlink/BroadlinkHome.java
@@ -57,59 +57,23 @@ public class BroadlinkHome implements Home {
@Override
public Home createHome(BridgeSettings bridgeSettings) {
broadlinkMap = null;
- bridgeSettingsDesc = bridgeSettings.getBridgeSettingsDescriptor();
-
isDevMode = Boolean.parseBoolean(System.getProperty("dev.mode", "false"));
+ bridgeSettingsDesc = bridgeSettings.getBridgeSettingsDescriptor();
validBroadlink = bridgeSettings.getBridgeSettingsDescriptor().isValidBroadlink();
+ broadlinkDiscover();
+
log.info("Broadlink Home created." + (validBroadlink ? "" : " No Broadlinks configured.") + (isDevMode ? " DevMode is set." : ""));
return this;
}
@Override
public Object getItems(String type) {
- BLDevice[] clients;
+ if(!validBroadlink || broadlinkMap == null)
+ return null;
BroadlinkEntry theResponse = null;
List deviceList = new ArrayList();
log.debug("consolidating devices for Broadlink");
- if(!validBroadlink)
- return null;
- broadlinkMap = new HashMap();
- 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 keys = broadlinkMap.keySet().iterator();
while(keys.hasNext()) {
String key = keys.next();
@@ -123,6 +87,13 @@ public class BroadlinkHome implements Home {
}
return deviceList;
}
+
+ @Override
+ public void refresh() {
+ if(validBroadlink)
+ broadlinkDiscover();
+
+ }
@Override
public String deviceHandler(CallItem anItem, MultiCommandUtil aMultiUtil, String lightId, int intensity,
@@ -336,6 +307,51 @@ public class BroadlinkHome implements Home {
}
return theType;
}
+
+ public BLDevice[] broadlinkDiscover () {
+ BLDevice[] clients = null;
+ 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);
+ 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;
+ }
+ }
+ if(clients == null || clients.length <= 0) {
+ log.warn("Did not discover any Broadlinks.");
+ broadlinkMap = null;
+ } else {
+ broadlinkMap = new HashMap();
+ for(BLDevice aDevice : clients) {
+ broadlinkMap.put(aDevice.getHost() + "-" + String.format("%04x", aDevice.getDeviceType()), aDevice);
+ }
+ }
+ return clients;
+ }
+
@Override
public void closeHome() {
if(!validBroadlink)
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/domoticz/DomoticzHome.java b/src/main/java/com/bwssystems/HABridge/plugins/domoticz/DomoticzHome.java
index 1fbcdfb..a68aabc 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/domoticz/DomoticzHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/domoticz/DomoticzHome.java
@@ -66,6 +66,11 @@ public class DomoticzHome implements Home {
return deviceList;
}
+ @Override
+ public void refresh() {
+ // noop
+ }
+
private Boolean addDomoticzDevices(List theDeviceList, List theSourceList, String theKey) {
if(!validDomoticz)
return null;
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/exec/CommandHome.java b/src/main/java/com/bwssystems/HABridge/plugins/exec/CommandHome.java
index fcb4708..984a01c 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/exec/CommandHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/exec/CommandHome.java
@@ -92,6 +92,11 @@ public class CommandHome implements Home {
return null;
}
+ @Override
+ public void refresh() {
+ // noop
+ }
+
@Override
public void closeHome() {
log.debug("Closing Home.");
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/fhem/FHEMHome.java b/src/main/java/com/bwssystems/HABridge/plugins/fhem/FHEMHome.java
index 580805e..486fc80 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/fhem/FHEMHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/fhem/FHEMHome.java
@@ -151,6 +151,11 @@ public class FHEMHome implements Home {
return deviceList;
}
+ @Override
+ public void refresh() {
+ // noop
+ }
+
private Boolean addFHEMDevices(List theDeviceList, List theSourceList, String theKey) {
Iterator devices = theSourceList.iterator();
while(devices.hasNext()) {
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/fibaro/FibaroHome.java b/src/main/java/com/bwssystems/HABridge/plugins/fibaro/FibaroHome.java
index 591baef..6fbe503 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/fibaro/FibaroHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/fibaro/FibaroHome.java
@@ -84,6 +84,11 @@ public class FibaroHome implements Home
return null;
}
+ @Override
+ public void refresh() {
+ // noop
+ }
+
@Override
public Home createHome(BridgeSettings bridgeSettings)
{
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/hal/HalHome.java b/src/main/java/com/bwssystems/HABridge/plugins/hal/HalHome.java
index 1a87d00..a18de76 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/hal/HalHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/hal/HalHome.java
@@ -113,6 +113,11 @@ public class HalHome implements Home {
return true;
}
+ @Override
+ public void refresh() {
+ // noop
+ }
+
@Override
public String deviceHandler(CallItem anItem, MultiCommandUtil aMultiUtil, String lightId, int intensity,
Integer targetBri,Integer targetBriInc, ColorData colorData, DeviceDescriptor device, String body) {
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/harmony/HarmonyHome.java b/src/main/java/com/bwssystems/HABridge/plugins/harmony/HarmonyHome.java
index 8991f72..05ee46b 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/harmony/HarmonyHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/harmony/HarmonyHome.java
@@ -269,4 +269,10 @@ public class HarmonyHome implements Home {
}
return null;
}
+
+ @Override
+ public void refresh() {
+ // noop
+ }
+
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/hass/HassHome.java b/src/main/java/com/bwssystems/HABridge/plugins/hass/HassHome.java
index 74cb6da..6de7f8d 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/hass/HassHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/hass/HassHome.java
@@ -117,6 +117,11 @@ public class HassHome implements Home {
return true;
}
+ @Override
+ public void refresh() {
+ // noop
+ }
+
@Override
public String deviceHandler(CallItem anItem, MultiCommandUtil aMultiUtil, String lightId, int intensity,
Integer targetBri,Integer targetBriInc, ColorData colorData, DeviceDescriptor device, String body) {
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/homewizard/HomeWizardHome.java b/src/main/java/com/bwssystems/HABridge/plugins/homewizard/HomeWizardHome.java
index 125a139..641c11c 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/homewizard/HomeWizardHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/homewizard/HomeWizardHome.java
@@ -147,4 +147,9 @@ public class HomeWizardHome implements Home {
plugGateways = null;
closed = true;
}
+
+ @Override
+ public void refresh() {
+ // noop
+ }
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/http/HTTPHome.java b/src/main/java/com/bwssystems/HABridge/plugins/http/HTTPHome.java
index 46bc549..4353ee1 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/http/HTTPHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/http/HTTPHome.java
@@ -139,5 +139,9 @@ public class HTTPHome implements Home {
anHttpHandler = null;
closed = true;
}
-
+
+ @Override
+ public void refresh() {
+ // noop
+ }
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/hue/HueHome.java b/src/main/java/com/bwssystems/HABridge/plugins/hue/HueHome.java
index ace49bf..8a57eff 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/hue/HueHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/hue/HueHome.java
@@ -153,4 +153,9 @@ public class HueHome implements Home {
hues = null;
closed = true;
}
+
+ @Override
+ public void refresh() {
+ // noop
+ }
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/lifx/LifxHome.java b/src/main/java/com/bwssystems/HABridge/plugins/lifx/LifxHome.java
index cf3be27..de9ffc1 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/lifx/LifxHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/lifx/LifxHome.java
@@ -5,6 +5,7 @@ import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.InterfaceAddress;
import java.net.NetworkInterface;
+import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -39,6 +40,7 @@ public class LifxHome implements Home {
private LFXClient client;
private Boolean validLifx;
private Gson aGsonHandler;
+ private InetAddress configuredAddress;
private boolean closed;
public LifxHome(BridgeSettings bridgeSettings) {
@@ -55,47 +57,17 @@ public class LifxHome implements Home {
validLifx = bridgeSettings.getBridgeSettingsDescriptor().isValidLifx();
log.info("LifxDevice Home created." + (validLifx ? "" : " No LifxDevices configured."));
if(validLifx) {
- try {
- log.info("Open Lifx client....");
- InetAddress configuredAddress = InetAddress.getByName(bridgeSettings.getBridgeSettingsDescriptor().getUpnpConfigAddress());
- NetworkInterface networkInterface = NetworkInterface.getByInetAddress(configuredAddress);
- InetAddress bcastInetAddr = null;
- if (networkInterface != null) {
- for (InterfaceAddress ifaceAddr : networkInterface.getInterfaceAddresses()) {
- InetAddress addr = ifaceAddr.getAddress();
- if (addr instanceof Inet4Address) {
- bcastInetAddr = ifaceAddr.getBroadcast();
- break;
- }
- }
- }
- if(bcastInetAddr != null) {
- lifxMap = new HashMap();
- log.info("Opening LFX Client with broadcast address: " + bcastInetAddr.getHostAddress());
- client = new LFXClient(bcastInetAddr.getHostAddress());
- client.getLights().addLightCollectionListener(new MyLightListener(lifxMap));
- client.getGroups().addGroupCollectionListener(new MyGroupListener(lifxMap));
- client.open(false);
- aGsonHandler =
- new GsonBuilder()
- .create();
- } else {
- log.warn("Could not open LIFX, no bcast addr available, check your upnp config address.");
- client = null;
- validLifx = false;
- return this;
- }
- } catch (IOException e) {
- log.warn("Could not open LIFX, with IO Exception", e);
- client = null;
- validLifx = false;
- return this;
- } catch (InterruptedException e) {
- log.warn("Could not open LIFX, with Interruprted Exception", e);
- client = null;
+ aGsonHandler =
+ new GsonBuilder()
+ .create();
+ try {
+ configuredAddress = InetAddress.getByName(bridgeSettings.getBridgeSettingsDescriptor().getUpnpConfigAddress());
+ } catch (UnknownHostException e) {
+ log.warn("Could not get Inet Address for Lifx broadcast.");
validLifx = false;
return this;
}
+ broadcastDiscover();
}
return this;
}
@@ -117,7 +89,7 @@ public class LifxHome implements Home {
@Override
public Object getItems(String type) {
log.debug("consolidating devices for lifx");
- if(!validLifx)
+ if(!validLifx || lifxMap == null)
return null;
LifxEntry theResponse = null;
Iterator keys = lifxMap.keySet().iterator();
@@ -271,4 +243,47 @@ public class LifxHome implements Home {
}
}
+
+ private void broadcastDiscover() {
+ try {
+ log.info("Open Lifx client....");
+ NetworkInterface networkInterface = NetworkInterface.getByInetAddress(configuredAddress);
+ InetAddress bcastInetAddr = null;
+ if (networkInterface != null) {
+ for (InterfaceAddress ifaceAddr : networkInterface.getInterfaceAddresses()) {
+ InetAddress addr = ifaceAddr.getAddress();
+ if (addr instanceof Inet4Address) {
+ bcastInetAddr = ifaceAddr.getBroadcast();
+ break;
+ }
+ }
+ }
+ if(bcastInetAddr != null) {
+ lifxMap = new HashMap();
+ log.info("Opening LFX Client with broadcast address: " + bcastInetAddr.getHostAddress());
+ client = new LFXClient(bcastInetAddr.getHostAddress());
+ client.getLights().addLightCollectionListener(new MyLightListener(lifxMap));
+ client.getGroups().addGroupCollectionListener(new MyGroupListener(lifxMap));
+ client.open(false);
+ } else {
+ log.warn("Could not open LIFX, no bcast addr available, check your upnp config address.");
+ client = null;
+ return;
+ }
+ } catch (IOException e) {
+ log.warn("Could not open LIFX, with IO Exception", e);
+ client = null;
+ return;
+ } catch (InterruptedException e) {
+ log.warn("Could not open LIFX, with Interruprted Exception", e);
+ client = null;
+ return;
+ }
+ }
+
+ @Override
+ public void refresh() {
+ if(client == null)
+ broadcastDiscover();
+ }
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/mqtt/MQTTHome.java b/src/main/java/com/bwssystems/HABridge/plugins/mqtt/MQTTHome.java
index 6d03445..d9ae673 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/mqtt/MQTTHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/mqtt/MQTTHome.java
@@ -150,4 +150,9 @@ public class MQTTHome implements Home {
}
return this;
}
+
+ @Override
+ public void refresh() {
+ // noop
+ }
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/openhab/OpenHABHome.java b/src/main/java/com/bwssystems/HABridge/plugins/openhab/OpenHABHome.java
index e7cb4a0..2022bf6 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/openhab/OpenHABHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/openhab/OpenHABHome.java
@@ -200,6 +200,9 @@ public class OpenHABHome implements Home {
openhabMap = null;
closed = true;
}
-
-
+
+ @Override
+ public void refresh() {
+ // noop
+ }
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/somfy/SomfyHome.java b/src/main/java/com/bwssystems/HABridge/plugins/somfy/SomfyHome.java
index 7ac13d5..8fee882 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/somfy/SomfyHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/somfy/SomfyHome.java
@@ -125,4 +125,9 @@ public class SomfyHome implements Home {
somfys = null;
closed = true;
}
+
+ @Override
+ public void refresh() {
+ // noop
+ }
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/tcp/TCPHome.java b/src/main/java/com/bwssystems/HABridge/plugins/tcp/TCPHome.java
index b4ddebe..f40edf3 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/tcp/TCPHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/tcp/TCPHome.java
@@ -172,5 +172,9 @@ public class TCPHome implements Home {
}
closed = true;
}
-
+
+ @Override
+ public void refresh() {
+ // noop
+ }
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/udp/UDPHome.java b/src/main/java/com/bwssystems/HABridge/plugins/udp/UDPHome.java
index 483d78d..22315fd 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/udp/UDPHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/udp/UDPHome.java
@@ -114,5 +114,9 @@ public class UDPHome implements Home {
}
closed = true;
}
-
+
+ @Override
+ public void refresh() {
+ // noop
+ }
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/vera/VeraHome.java b/src/main/java/com/bwssystems/HABridge/plugins/vera/VeraHome.java
index 51f0104..61bc7c6 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/vera/VeraHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/vera/VeraHome.java
@@ -118,4 +118,9 @@ public class VeraHome implements Home {
veras = null;
closed = true;
}
+
+ @Override
+ public void refresh() {
+ // noop
+ }
}
diff --git a/src/main/java/com/bwssystems/HABridge/util/UDPDatagramSender.java b/src/main/java/com/bwssystems/HABridge/util/UDPDatagramSender.java
index 0cb8860..ef3af2e 100644
--- a/src/main/java/com/bwssystems/HABridge/util/UDPDatagramSender.java
+++ b/src/main/java/com/bwssystems/HABridge/util/UDPDatagramSender.java
@@ -50,7 +50,7 @@ public class UDPDatagramSender {
udpResponsePort++;
}
}
- log.info("UDP response Seocket initialized to: " + udpResponsePort);
+ log.info("UDP response Socket initialized to: " + udpResponsePort);
return true;
}
diff --git a/src/main/resources/public/scripts/app.js b/src/main/resources/public/scripts/app.js
index 4a1986e..c7b3fcf 100644
--- a/src/main/resources/public/scripts/app.js
+++ b/src/main/resources/public/scripts/app.js
@@ -959,6 +959,17 @@ app.service ('bridgeService', function ($rootScope, $http, $base64, $location, n
);
};
+ this.refreshDevices = function (typeIndex) {
+ return $http.get(this.state.base + "/refresh/" + typeIndex).then(
+ function (response) {
+ self.displaySuccess("Refresh devices request complete");
+ },
+ function (error) {
+ self.displayWarn("Refresh devices request Error: ", error);
+ }
+ );
+ };
+
this.formatCallItem = function (currentItem) {
if(!currentItem.startsWith("{\"item") && !currentItem.startsWith("[{\"item")) {
if (currentItem.startsWith("[") || currentItem.startsWith("{"))
@@ -3518,6 +3529,11 @@ app.controller('LifxController', function ($scope, $location, bridgeService, ngD
$scope.device = bridgeService.state.device;
};
+ $scope.refreshDevices = function () {
+ bridgeService.refreshDevices("lifxDevice");
+ bridgeService.viewLifxDevices();
+ };
+
$scope.buildDeviceUrls = function (lifxdevice, dim_control, buildonly) {
dimpayload = angular.toJson(lifxdevice);
onpayload = angular.toJson(lifxdevice);
@@ -4074,6 +4090,11 @@ app.controller('BroadlinkController', function ($scope, $location, bridgeService
$scope.device = bridgeService.state.device;
};
+ $scope.refreshDevices = function () {
+ bridgeService.refreshDevices("broadlinkDevice");
+ bridgeService.viewBroadlinkDevices();
+ };
+
$scope.buildDeviceUrls = function (broadlinkdevice, dim_control, ondata, dimdata, offdata, colordata, buildonly) {
var preCmd = "{\"id\":\"" + broadlinkdevice.id + "\",\"name\":\"" + broadlinkdevice.name +"\",\"command\":\"";
if(broadlinkdevice.type === 'SP1' || broadlinkdevice.type === 'SP2') {
diff --git a/src/main/resources/public/views/broadlinkdevice.html b/src/main/resources/public/views/broadlinkdevice.html
index 1072e67..7a74337 100644
--- a/src/main/resources/public/views/broadlinkdevice.html
+++ b/src/main/resources/public/views/broadlinkdevice.html
@@ -52,6 +52,10 @@
feature. Select your items and dim control type if wanted, then click
bulk add below. Your items will be added with on and off or dim and
off if selected with the name of the device from the Broadlink.
+
+
+
diff --git a/src/main/resources/public/views/lifxdevice.html b/src/main/resources/public/views/lifxdevice.html
index b40297b..2230dd1 100644
--- a/src/main/resources/public/views/lifxdevice.html
+++ b/src/main/resources/public/views/lifxdevice.html
@@ -41,6 +41,10 @@
feature. Select your items and dim control type if wanted, then click
bulk add below. Your items will be added with on, off and dim
with the name of the device from the LIFX device.
+