Merge pull request #1405 from larsfinander/lifx_device_watch_statefix_staging

DVCSMP-2108 LIFX: Add devicewatch support
This commit is contained in:
Lars Finander
2016-11-07 09:12:44 -07:00
committed by GitHub

View File

@@ -381,26 +381,17 @@ def updateDevices() {
selectors.add("${device.id}") selectors.add("${device.id}")
if (!childDevice) { if (!childDevice) {
// log.info("Adding device ${device.id}: ${device.product}") // log.info("Adding device ${device.id}: ${device.product}")
def data = [
label: device.label,
level: Math.round((device.brightness ?: 1) * 100),
switch: device.power,
colorTemperature: device.color.kelvin
]
if (device.product.capabilities.has_color) { if (device.product.capabilities.has_color) {
data["color"] = colorUtil.hslToHex((device.color.hue / 3.6) as int, (device.color.saturation * 100) as int) childDevice = addChildDevice(app.namespace, "LIFX Color Bulb", device.id, null, ["label": device.label, "completedSetup": true])
data["hue"] = device.color.hue / 3.6
data["saturation"] = device.color.saturation * 100
childDevice = addChildDevice(app.namespace, "LIFX Color Bulb", device.id, null, data)
} else { } else {
childDevice = addChildDevice(app.namespace, "LIFX White Bulb", device.id, null, data) childDevice = addChildDevice(app.namespace, "LIFX White Bulb", device.id, null, ["label": device.label, "completedSetup": true])
} }
childDevice?.completedSetup = true }
} else {
if (device.product.capabilities.has_color) { if (device.product.capabilities.has_color) {
sendEvent(name: "color", value: colorUtil.hslToHex((device.color.hue / 3.6) as int, (device.color.saturation * 100) as int)) childDevice.sendEvent(name: "color", value: colorUtil.hslToHex((device.color.hue / 3.6) as int, (device.color.saturation * 100) as int))
sendEvent(name: "hue", value: device.color.hue / 3.6) childDevice.sendEvent(name: "hue", value: device.color.hue / 3.6)
sendEvent(name: "saturation", value: device.color.saturation * 100) childDevice.sendEvent(name: "saturation", value: device.color.saturation * 100)
} }
childDevice.sendEvent(name: "label", value: device.label) childDevice.sendEvent(name: "label", value: device.label)
childDevice.sendEvent(name: "level", value: Math.round((device.brightness ?: 1) * 100)) childDevice.sendEvent(name: "level", value: Math.round((device.brightness ?: 1) * 100))
@@ -408,7 +399,6 @@ def updateDevices() {
childDevice.sendEvent(name: "switch", value: device.power) childDevice.sendEvent(name: "switch", value: device.power)
childDevice.sendEvent(name: "colorTemperature", value: device.color.kelvin) childDevice.sendEvent(name: "colorTemperature", value: device.color.kelvin)
childDevice.sendEvent(name: "model", value: device.product.name) childDevice.sendEvent(name: "model", value: device.product.name)
}
if (state.devices[device.id] == null) { if (state.devices[device.id] == null) {
// State missing, add it and set it to opposite status as current status to provoke event below // State missing, add it and set it to opposite status as current status to provoke event below