mirror of
https://github.com/mtan93/SmartThingsPublic.git
synced 2026-03-26 21:04:08 +00:00
Merge pull request #1295 from SmartThingsCommunity/production
Rolling down production hotfix to staging
This commit is contained in:
@@ -333,9 +333,9 @@ def bulbListHandler(hub, data = "") {
|
|||||||
def bridge = null
|
def bridge = null
|
||||||
if (selectedHue) {
|
if (selectedHue) {
|
||||||
bridge = getChildDevice(selectedHue)
|
bridge = getChildDevice(selectedHue)
|
||||||
|
bridge?.sendEvent(name: "bulbList", value: hub, data: bulbs, isStateChange: true, displayed: false)
|
||||||
}
|
}
|
||||||
bridge.sendEvent(name: "bulbList", value: hub, data: bulbs, isStateChange: true, displayed: false)
|
msg = "${bulbs.size()} bulbs found. ${bulbs}"
|
||||||
msg = "${bulbs.size()} bulbs found. ${bulbs}"
|
|
||||||
return msg
|
return msg
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -490,24 +490,25 @@ def ssdpBridgeHandler(evt) {
|
|||||||
def host = ip + ":" + port
|
def host = ip + ":" + port
|
||||||
log.debug "Device ($parsedEvent.mac) was already found in state with ip = $host."
|
log.debug "Device ($parsedEvent.mac) was already found in state with ip = $host."
|
||||||
def dstate = bridges."${parsedEvent.ssdpUSN.toString()}"
|
def dstate = bridges."${parsedEvent.ssdpUSN.toString()}"
|
||||||
def dni = "${parsedEvent.mac}"
|
def dniReceived = "${parsedEvent.mac}"
|
||||||
def d = getChildDevice(dni)
|
def currentDni = dstate.mac
|
||||||
|
def d = getChildDevice(dniReceived)
|
||||||
def networkAddress = null
|
def networkAddress = null
|
||||||
if (!d) {
|
if (!d) {
|
||||||
childDevices.each {
|
// There might be a mismatch between bridge DNI and the actual bridge mac address, correct that
|
||||||
if (it.getDeviceDataByName("mac")) {
|
log.debug "Bridge with $dniReceived not found"
|
||||||
def newDNI = "${it.getDeviceDataByName("mac")}"
|
def bridge = childDevices.find { it.deviceNetworkId == currentDni }
|
||||||
d = it
|
if (bridge != null) {
|
||||||
if (newDNI != it.deviceNetworkId) {
|
log.warn "Bridge is set to ${bridge.deviceNetworkId}, updating to $dniReceived"
|
||||||
def oldDNI = it.deviceNetworkId
|
bridge.setDeviceNetworkId("${dniReceived}")
|
||||||
log.debug "updating dni for device ${it} with $newDNI - previous DNI = ${it.deviceNetworkId}"
|
dstate.mac = dniReceived
|
||||||
it.setDeviceNetworkId("${newDNI}")
|
// Check to see if selectedHue is a valid bridge, otherwise update it
|
||||||
if (oldDNI == selectedHue) {
|
def isSelectedValid = bridges?.find {it.value?.mac == selectedHue}
|
||||||
app.updateSetting("selectedHue", newDNI)
|
if (isSelectedValid == null) {
|
||||||
}
|
log.warn "Correcting selectedHue in state"
|
||||||
doDeviceSync()
|
app.updateSetting("selectedHue", dniReceived)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
doDeviceSync()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
updateBridgeStatus(d)
|
updateBridgeStatus(d)
|
||||||
@@ -525,6 +526,18 @@ def ssdpBridgeHandler(evt) {
|
|||||||
d.sendEvent(name:"networkAddress", value: host)
|
d.sendEvent(name:"networkAddress", value: host)
|
||||||
d.updateDataValue("networkAddress", host)
|
d.updateDataValue("networkAddress", host)
|
||||||
}
|
}
|
||||||
|
if (dstate.mac != dniReceived) {
|
||||||
|
log.warn "Correcting bridge mac address in state"
|
||||||
|
dstate.mac = dniReceived
|
||||||
|
}
|
||||||
|
if (selectedHue != dniReceived) {
|
||||||
|
// Check to see if selectedHue is a valid bridge, otherwise update it
|
||||||
|
def isSelectedValid = bridges?.find {it.value?.mac == selectedHue}
|
||||||
|
if (isSelectedValid == null) {
|
||||||
|
log.warn "Correcting selectedHue in state"
|
||||||
|
app.updateSetting("selectedHue", dniReceived)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user