From 750056df06554a50ce1b048cfac23b56eaf4383b Mon Sep 17 00:00:00 2001 From: BWS Systems Date: Tue, 13 Nov 2018 14:09:53 -0600 Subject: [PATCH] add new device param for on with dim and changed behavior for onFirstDim --- pom.xml | 2 +- .../com/bwssystems/HABridge/dao/DeviceDescriptor.java | 11 +++++++++++ .../java/com/bwssystems/HABridge/hue/HueMulator.java | 9 +++++++++ src/main/resources/public/views/editdevice.html | 6 ++++++ 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d642db8..baa1206 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.bwssystems.HABridge ha-bridge - 5.2.1c + 5.2.1d jar HA Bridge diff --git a/src/main/java/com/bwssystems/HABridge/dao/DeviceDescriptor.java b/src/main/java/com/bwssystems/HABridge/dao/DeviceDescriptor.java index 7d81c8f..cef95c6 100644 --- a/src/main/java/com/bwssystems/HABridge/dao/DeviceDescriptor.java +++ b/src/main/java/com/bwssystems/HABridge/dao/DeviceDescriptor.java @@ -83,6 +83,9 @@ public class DeviceDescriptor{ @SerializedName("onFirstDim") @Expose private boolean onFirstDim; + @SerializedName("onWhenDimPresent") + @Expose + private boolean onWhenDimPresent; public String getName() { return name; @@ -286,6 +289,14 @@ public class DeviceDescriptor{ this.onFirstDim = onFirstDim; } + public boolean isOnWhenDimPresent() { + return onWhenDimPresent; + } + + public void setOnWhenDimPresent(boolean onWhenDimPresent) { + this.onWhenDimPresent = onWhenDimPresent; + } + public boolean containsType(String aType) { if(aType == null) return false; diff --git a/src/main/java/com/bwssystems/HABridge/hue/HueMulator.java b/src/main/java/com/bwssystems/HABridge/hue/HueMulator.java index 4034578..7b6725b 100644 --- a/src/main/java/com/bwssystems/HABridge/hue/HueMulator.java +++ b/src/main/java/com/bwssystems/HABridge/hue/HueMulator.java @@ -1186,13 +1186,22 @@ public class HueMulator { isOnRequest = true; } + if(!device.isOnFirstDim() && device.isOnWhenDimPresent() && isDimRequest) { + isOnRequest = true; + theStateChanges.setOn(true); + } else if(!device.isOnFirstDim() && !device.isOnWhenDimPresent() && isDimRequest) { + isOnRequest = false; + } + if(device.isOnFirstDim() && isDimRequest && !device.getDeviceState().isOn()) { isOnRequest = true; + theStateChanges.setOn(true); isDimRequest = false; isColorRequest = false; } else if(device.isOnFirstDim() && isDimRequest && device.getDeviceState().isOn()) { if(device.getDeviceState().getBri() == theStateChanges.getBri()) { isOnRequest = true; + theStateChanges.setOn(true); isDimRequest = false; isColorRequest = false; } else { diff --git a/src/main/resources/public/views/editdevice.html b/src/main/resources/public/views/editdevice.html index 8984ae0..37c715c 100644 --- a/src/main/resources/public/views/editdevice.html +++ b/src/main/resources/public/views/editdevice.html @@ -94,6 +94,12 @@ ng-model="device.offState" ng-true-value=true ng-false-value=false> {{device.offState}} + + + {{device.onWhenDimPresent}} +