Fixing a bug in Locks group: we have to change the state of the device before sending...
[smartthings-infrastructure.git] / Lock / Locks.groovy
index 8ebf46b8aff74d91e5777a5bda9c371513866945..951020f106508ab90eb94454258cfd3382c60ef4 100644 (file)
@@ -25,44 +25,44 @@ public class Locks{
                this.deviceNumbers = deviceNumbers
                this.locks = []
 
-               /*def init = Verify.getBoolean()
+               def init = Verify.getBoolean()
                if (init) {
                        this.lockState = "locked"
                        this.lockLatestValue = "locked"
                } else {
                        this.lockState = "unlocked"
                        this.lockLatestValue = "unlocked"
-               }*/
+               }
                locks.add(new Lock(sendEvent,id, label, displayName, this.lockState, this.lockLatestValue))
        }
 
        //By Apps
        def lock() {
                if (lockState != "locked") {
-                       locks[0].lock()
                        lockLatestValue = lockState
                        lockState = "locked"
                        currentLock = "locked"
+                       locks[0].lock()
                }
        }
 
        def lock(LinkedHashMap metaData) {
                if (lockState != "locked") {
                        def task = timers.runAfter(metaData["delay"]) {
-                               locks[0].lock()
                                lockLatestValue = lockState
                                lockState = "locked"
                                currentLock = "locked"
+                               locks[0].lock()
                        }
                }
        }
 
        def unlock() {
                if (lockState != "unlocked") {
-                       locks[0].unlock()
                        lockLatestValue = lockState
                        lockState = "unlocked"
                        currentLock = "unlocked"
+                       locks[0].unlock()
                }
        }
 
@@ -70,10 +70,10 @@ public class Locks{
        def unlock(LinkedHashMap metaData) {
                if (lockState != "unlocked") {
                        def task = timers.runAfter(metaData["delay"]) {
-                               locks[0].unlock()
                                lockLatestValue = lockState
                                lockState = "unlocked"
                                currentLock = "unlocked"
+                               locks[0].unlock()
                        }
                }
        }