you get an error in the logs for the device unless you comment out the delay lines in the following function
def setColor(value) {
if (debugEnable) log.debug "setColor() : ${value}"
def myred
def mygreen
def myblue
def hexValue
def cmds = []
if ( value.level == 1 && value.saturation > 20) {
def rgb = huesatToRGB(value.hue as Integer, 100)
myred = rgb[0] >=128 ? 255 : 0
mygreen = rgb[1] >=128 ? 255 : 0
myblue = rgb[2] >=128 ? 255 : 0
}
else if ( value.level > 1 ) {
def rgb = huesatToRGB(value.hue as Integer, value.saturation as Integer)
myred = rgb[0] >=128 ? 255 : 0
mygreen = rgb[1] >=128 ? 255 : 0
myblue = rgb[2] >=128 ? 255 : 0
}
else if (value.hex) {
def rgb = value.hex.findAll(/[0-9a-fA-F]{2}/).collect { Integer.parseInt(it, 16) }
myred = rgb[0] >=128 ? 255 : 0
mygreen = rgb[1] >=128 ? 255 : 0
myblue = rgb[2] >=128 ? 255 : 0
}
else {
myred=value.red >=128 ? 255 : 0
mygreen=value.green >=128 ? 255 : 0
myblue=value.blue>=128 ? 255 : 0
}
cmds << "200100"
// cmds << " delay 250"
if (myred!=0) {
cmds << "33060002FF"
//cmds << "delay 150"
cmds << "330702"
}
if (mygreen!=0) {
cmds << "33060003FF"
//cmds << "delay 150"
cmds << "330703"
}
if (myblue!=0) {
cmds << "3306000400"
//cmds << "delay 150"
cmds << "330704"
}
// cmds << " delay 100"
cmds << zwave.basicV1.basicGet()
hexValue = rgbToHex([r:myred, g:mygreen, b:myblue])
if(hexValue) sendEvent(name: "color", value: hexValue, displayed: true)
commands(cmds)
}