mirror of
https://github.com/mtan93/SmartThingsPublic.git
synced 2026-03-17 05:10:50 +00:00
Revert "DVCSMP-1615 & DEVC-372"
This reverts commit 6fbef3b297.
(temporary for staging, MArch 25 deploy)
This commit is contained in:
@@ -24,7 +24,7 @@ definition(
|
||||
category: "SmartThings Labs",
|
||||
iconUrl: "https://s3.amazonaws.com/smartapp-icons/Partner/hue.png",
|
||||
iconX2Url: "https://s3.amazonaws.com/smartapp-icons/Partner/hue@2x.png",
|
||||
singleInstance: true
|
||||
//singleInstance: true
|
||||
)
|
||||
|
||||
preferences {
|
||||
@@ -643,25 +643,21 @@ def setColorTemperature(childDevice, huesettings) {
|
||||
|
||||
def setColor(childDevice, huesettings) {
|
||||
log.debug "Executing 'setColor($huesettings)'"
|
||||
def hue = null
|
||||
def sat = null
|
||||
def xy = null
|
||||
if (huesettings.hex) {
|
||||
xy = getHextoXY(huesettings.hex)
|
||||
} else if (huesettings.hue && huesettings.saturation) {
|
||||
hue = Math.min(Math.round(huesettings.hue * 65535 / 100), 65535)
|
||||
sat = Math.min(Math.round(huesettings.saturation * 255 / 100), 255)
|
||||
}
|
||||
def hue = Math.min(Math.round(huesettings.hue * 65535 / 100), 65535)
|
||||
def sat = Math.min(Math.round(huesettings.saturation * 255 / 100), 255)
|
||||
def alert = huesettings.alert ? huesettings.alert : "none"
|
||||
def transition = huesettings.transition ? huesettings.transition : 4
|
||||
|
||||
def value = [xy: xy, sat: sat, hue: hue, alert: alert, transitiontime: transition, on: true]
|
||||
|
||||
def value = [sat: sat, hue: hue, alert: alert, transitiontime: transition]
|
||||
if (huesettings.level != null) {
|
||||
if (huesettings.level == 1) value.bri = 1 else value.bri = Math.min(Math.round(huesettings.level * 255 / 100), 255)
|
||||
value.on = value.bri > 0
|
||||
}
|
||||
|
||||
if (huesettings.switch) {
|
||||
value.on = huesettings.switch == "on"
|
||||
}
|
||||
|
||||
log.debug "sending command $value"
|
||||
put("lights/${getId(childDevice)}/state", value)
|
||||
}
|
||||
@@ -747,59 +743,6 @@ private getBridgeIP() {
|
||||
return host
|
||||
}
|
||||
|
||||
private getHextoXY(String colorStr) {
|
||||
// For the hue bulb the corners of the triangle are:
|
||||
// -Red: 0.675, 0.322
|
||||
// -Green: 0.4091, 0.518
|
||||
// -Blue: 0.167, 0.04
|
||||
|
||||
def cred = Integer.valueOf( colorStr.substring( 1, 3 ), 16 )
|
||||
def cgreen = Integer.valueOf( colorStr.substring( 3, 5 ), 16 )
|
||||
def cblue = Integer.valueOf( colorStr.substring( 5, 7 ), 16 )
|
||||
|
||||
double[] normalizedToOne = new double[3];
|
||||
normalizedToOne[0] = (cred / 255);
|
||||
normalizedToOne[1] = (cgreen / 255);
|
||||
normalizedToOne[2] = (cblue / 255);
|
||||
float red, green, blue;
|
||||
|
||||
// Make red more vivid
|
||||
if (normalizedToOne[0] > 0.04045) {
|
||||
red = (float) Math.pow(
|
||||
(normalizedToOne[0] + 0.055) / (1.0 + 0.055), 2.4);
|
||||
} else {
|
||||
red = (float) (normalizedToOne[0] / 12.92);
|
||||
}
|
||||
|
||||
// Make green more vivid
|
||||
if (normalizedToOne[1] > 0.04045) {
|
||||
green = (float) Math.pow((normalizedToOne[1] + 0.055)
|
||||
/ (1.0 + 0.055), 2.4);
|
||||
} else {
|
||||
green = (float) (normalizedToOne[1] / 12.92);
|
||||
}
|
||||
|
||||
// Make blue more vivid
|
||||
if (normalizedToOne[2] > 0.04045) {
|
||||
blue = (float) Math.pow((normalizedToOne[2] + 0.055)
|
||||
/ (1.0 + 0.055), 2.4);
|
||||
} else {
|
||||
blue = (float) (normalizedToOne[2] / 12.92);
|
||||
}
|
||||
|
||||
float X = (float) (red * 0.649926 + green * 0.103455 + blue * 0.197109);
|
||||
float Y = (float) (red * 0.234327 + green * 0.743075 + blue * 0.022598);
|
||||
float Z = (float) (red * 0.0000000 + green * 0.053077 + blue * 1.035763);
|
||||
|
||||
float x = X / (X + Y + Z);
|
||||
float y = Y / (X + Y + Z);
|
||||
|
||||
double[] xy = new double[2];
|
||||
xy[0] = x;
|
||||
xy[1] = y;
|
||||
return xy;
|
||||
}
|
||||
|
||||
private Integer convertHexToInt(hex) {
|
||||
Integer.parseInt(hex,16)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user