diff --git a/README.md b/README.md
index e0c06d8..67c80a7 100644
--- a/README.md
+++ b/README.md
@@ -33,23 +33,27 @@ ATTENTION: This requires JDK 1.8 to run
ATTENTION: Due to port 80 being the default, Linux restricts this to super user. Use the instructions below.
```
-java -jar ha-bridge-4.1.2.jar
+java -jar ha-bridge-4.1.4.jar
```
### Automation on Linux systems
To have this configured and running automatically there are a few resources to use. One is using Docker and a docker container has been built for this and can be gotten here: https://github.com/aptalca/docker-ha-bridge
Create the directory and make sure that ha-bridge-4.1.2.jar is in your /home/pi/habridge directory.
+Create the directory and make sure that ha-bridge-4.1.4.jar is in your /home/pi/habridge directory.
```
pi@raspberrypi:~ $ mkdir habridge
pi@raspberrypi:~ $ cd habridge
pi@raspberrypi:~/habridge $ wget https://github.com/bwssytems/ha-bridge/releases/download/v4.1.2/ha-bridge-4.1.2.jar
+pi@raspberrypi:~/habridge $ wget https://github.com/bwssytems/ha-bridge/releases/download/v4.1.4/ha-bridge-4.1.4.jar
```
Create the directory and make sure that ha-bridge-4.1.2.jar is in your /home/pi/habridge directory.
+Create the directory and make sure that ha-bridge-4.1.4.jar is in your /home/pi/habridge directory.
```
pi@raspberrypi:~ $ mkdir habridge
pi@raspberrypi:~ $ cd habridge
pi@raspberrypi:~/habridge $ wget https://github.com/bwssytems/ha-bridge/releases/download/v4.1.2/ha-bridge-4.1.2.jar
+pi@raspberrypi:~/habridge $ wget https://github.com/bwssytems/ha-bridge/releases/download/v4.1.4/ha-bridge-4.1.4.jar
```
#### System Control Setup on a pi (preferred)
For next gen Linux systems (this includes the Raspberry Pi), here is a systemctl unit file that you can install. Here is a link on how to do this: https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units
@@ -70,6 +74,7 @@ After=network.target
Type=simple
ExecStart=/usr/bin/java -jar -Dconfig.file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge-4.1.2.jar
+ExecStart=/usr/bin/java -jar -Dconfig.file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge-4.1.4.jar
[Install]
WantedBy=multi-user.target
@@ -105,6 +110,7 @@ Then cut and past this, modify any locations that are not correct
cd /home/pi/habridge
rm /home/pi/habridge/habridge-log.txt
nohup java -jar -Dconfig.file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge-4.1.2.jar > /home/pi/habridge/habridge-log.txt 2>&1 &
+nohup java -jar -Dconfig.file=/home/pi/habridge/data/habridge.config /home/pi/habridge/ha-bridge-4.1.4.jar > /home/pi/habridge/habridge-log.txt 2>&1 &
chmod 777 /home/pi/habridge/habridge-log.txt
```
@@ -692,7 +698,7 @@ This call returns a null json "{}".
### Get HA Bridge Version
Get current version of the HA bridge software.
```
-GET http://host:port/api/devices/habridge/version
+GET http://host:port/system/habridge/version
```
#### Response
Name | Type | Description
diff --git a/pom.xml b/pom.xml
index 9ee9ce6..95c0edc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.bwssystems.HABridge
ha-bridge
- 4.1.2g
+ 4.1.4
jar
HA Bridge
diff --git a/src/main/java/com/bwssystems/HABridge/HABridge.java b/src/main/java/com/bwssystems/HABridge/HABridge.java
index b6d23a1..81cb921 100644
--- a/src/main/java/com/bwssystems/HABridge/HABridge.java
+++ b/src/main/java/com/bwssystems/HABridge/HABridge.java
@@ -87,6 +87,7 @@ public class HABridge {
bridgeSettings.save(bridgeSettings.getBridgeSettingsDescriptor());
homeManager.closeHomes();
udpSender.closeResponseSocket();
+ udpSender = null;
}
bridgeSettings.getBridgeControl().setReinit(false);
stop();
diff --git a/src/main/java/com/bwssystems/HABridge/HomeManager.java b/src/main/java/com/bwssystems/HABridge/HomeManager.java
index ed51668..798fbc1 100644
--- a/src/main/java/com/bwssystems/HABridge/HomeManager.java
+++ b/src/main/java/com/bwssystems/HABridge/HomeManager.java
@@ -1,5 +1,6 @@
package com.bwssystems.HABridge;
+import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -101,6 +102,11 @@ public class HomeManager {
}
public void closeHomes() {
-
+ Collection theHomes = homeList.values();
+ for(Home aHome : theHomes) {
+ aHome.closeHome();
+ }
+ homeList.clear();
+ homeList = null;
}
}
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 3e4bc9d..0a66b1b 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/NestBridge/NestHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/NestBridge/NestHome.java
@@ -94,10 +94,10 @@ public class NestHome implements com.bwssystems.HABridge.Home {
public void closeHome() {
if(theSession != null) {
theNest.endNestSession();
- theNest = null;
- theSession = null;
- nestItems = null;
}
+ theNest = null;
+ theSession = null;
+ nestItems = null;
}
@Override
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/hal/HalInfo.java b/src/main/java/com/bwssystems/HABridge/plugins/hal/HalInfo.java
index 4b8c693..7f13862 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/hal/HalInfo.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/hal/HalInfo.java
@@ -185,4 +185,11 @@ public class HalInfo {
this.halAddress = halAddress;
}
+ public void closeInfo() {
+ if(httpClient != null)
+ httpClient.closeHandler();
+ httpClient = null;
+ halAddress = null;
+ theToken = null;
+ }
}
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 fd73f33..adac4c3 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/hass/HassHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/hass/HassHome.java
@@ -151,10 +151,14 @@ public class HassHome implements Home {
public void closeHome() {
if(!validHass)
return;
+ if(hassMap == null)
+ return;
Iterator keys = hassMap.keySet().iterator();
while(keys.hasNext()) {
String key = keys.next();
hassMap.get(key).closeClient();
}
+
+ hassMap = null;
}
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/hass/HomeAssistant.java b/src/main/java/com/bwssystems/HABridge/plugins/hass/HomeAssistant.java
index 0075181..9f6a702 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/hass/HomeAssistant.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/hass/HomeAssistant.java
@@ -104,5 +104,6 @@ public class HomeAssistant {
protected void closeClient() {
anHttpHandler.closeHandler();
+ anHttpHandler = null;
}
}
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 1e096f3..97cb753 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/http/HTTPHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/http/HTTPHome.java
@@ -81,7 +81,9 @@ public class HTTPHome implements Home {
@Override
public void closeHome() {
- anHttpHandler.closeHandler();
+ if(anHttpHandler != null)
+ anHttpHandler.closeHandler();
+ anHttpHandler = null;
}
}
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 c032196..9aa0e2b 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/hue/HueHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/hue/HueHome.java
@@ -124,10 +124,13 @@ public class HueHome implements Home {
public void closeHome() {
if(!validHue)
return;
+ if(hues == null)
+ return;
Iterator keys = hues.keySet().iterator();
while(keys.hasNext()) {
String key = keys.next();
hues.get(key).closeHue();;
}
+ hues = null;
}
}
diff --git a/src/main/java/com/bwssystems/HABridge/plugins/mqtt/MQTTHandler.java b/src/main/java/com/bwssystems/HABridge/plugins/mqtt/MQTTHandler.java
index 1535e57..d96ab68 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/mqtt/MQTTHandler.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/mqtt/MQTTHandler.java
@@ -68,5 +68,6 @@ public class MQTTHandler {
} catch (MqttException e) {
log.warn("Could not disconnect MQTT client for name: " + myConfig.getName() + " and ip: " + myConfig.getIp());
}
+ myClient = null;
}
}
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 a3e331a..79212c1 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/mqtt/MQTTHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/mqtt/MQTTHome.java
@@ -42,6 +42,7 @@ public class MQTTHome implements Home {
handlers.get(key).shutdown();
}
}
+ handlers = null;
}
public MQTTHandler getMQTTHandler(String aName) {
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 9fc10d8..52e94bc 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/tcp/TCPHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/tcp/TCPHome.java
@@ -49,11 +49,12 @@ public class TCPHome implements Home {
// noop
}
- theUrlBody = BrightnessDecode.calculateReplaceIntensityValue(theUrlBody, intensity, targetBri, targetBriInc, true);
theUrlBody = TimeDecode.replaceTimeValue(theUrlBody);
if (theUrlBody.startsWith("0x")) {
+ theUrlBody = BrightnessDecode.calculateReplaceIntensityValue(theUrlBody, intensity, targetBri, targetBriInc, true);
sendData = DatatypeConverter.parseHexBinary(theUrlBody.substring(2));
} else {
+ theUrlBody = BrightnessDecode.calculateReplaceIntensityValue(theUrlBody, intensity, targetBri, targetBriInc, false);
sendData = theUrlBody.getBytes();
}
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 bec5f9e..3669081 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/udp/UDPHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/udp/UDPHome.java
@@ -51,11 +51,12 @@ public class UDPHome implements Home {
return null;
}
- theUrlBody = BrightnessDecode.calculateReplaceIntensityValue(theUrlBody, intensity, targetBri, targetBriInc, true);
theUrlBody = TimeDecode.replaceTimeValue(theUrlBody);
if (theUrlBody.startsWith("0x")) {
+ theUrlBody = BrightnessDecode.calculateReplaceIntensityValue(theUrlBody, intensity, targetBri, targetBriInc, true);
sendData = DatatypeConverter.parseHexBinary(theUrlBody.substring(2));
} else {
+ theUrlBody = BrightnessDecode.calculateReplaceIntensityValue(theUrlBody, intensity, targetBri, targetBriInc, false);
sendData = theUrlBody.getBytes();
}
try {
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 23770d6..6effc88 100644
--- a/src/main/java/com/bwssystems/HABridge/plugins/vera/VeraHome.java
+++ b/src/main/java/com/bwssystems/HABridge/plugins/vera/VeraHome.java
@@ -106,7 +106,6 @@ public class VeraHome implements Home {
@Override
public void closeHome() {
- // TODO Auto-generated method stub
-
+ veras = null;
}
}
diff --git a/src/main/resources/public/scripts/app.js b/src/main/resources/public/scripts/app.js
index 9e0cbf6..a13642a 100644
--- a/src/main/resources/public/scripts/app.js
+++ b/src/main/resources/public/scripts/app.js
@@ -1167,7 +1167,7 @@ app.controller('ValueDialogCtrl', function ($scope, bridgeService, ngDialog) {
$scope.slider = {
value: 100,
options: {
- floor: 0,
+ floor: 1,
ceil: 100,
showSelectionBar: true
}
@@ -1176,8 +1176,8 @@ app.controller('ValueDialogCtrl', function ($scope, bridgeService, ngDialog) {
$scope.valueType = "percentage";
$scope.changeScale = function () {
if($scope.valueType === "raw") {
- $scope.slider.options.ceil = 255;
- $scope.slider.value = 255;
+ $scope.slider.options.ceil = 254;
+ $scope.slider.value = 254;
}
else {
$scope.slider.options.ceil = 100;
@@ -1186,7 +1186,7 @@ app.controller('ValueDialogCtrl', function ($scope, bridgeService, ngDialog) {
};
$scope.setValue = function () {
ngDialog.close('ngdialog1');
- var theValue = 0;
+ var theValue = 1;
if($scope.valueType === "percentage")
theValue = Math.round(($scope.slider.value * .01) * 255);
else