1 //Create a class for lock device
10 Locking(Closure sendEvent, int deviceNumbers) {
11 this.sendEvent = sendEvent
12 this.timers = new Timer()
13 this.deviceNumbers = deviceNumbers
16 for (int i = 0;i < deviceNumbers;i++) {
17 locks.add(new Locks(sendEvent, id, "lock"+id, "locked", "locked"))//By default locked
27 def lock(LinkedHashMap metaData) {
28 def task = timers.runAfter(metaData["delay"]) {
37 def unlock(LinkedHashMap metaData) {
38 def task = timers.runAfter(metaData["delay"]) {
44 def setValue(LinkedHashMap eventDataMap) {
45 locks[eventDataMap["deviceId"]].setValue(eventDataMap["value"])
46 sendEvent(eventDataMap)
49 def currentValue(String deviceFeature) {
50 if (deviceNumbers == 1)
51 locks[0].currentValue(deviceFeature)
53 locks*.currentValue(deviceFeature)
56 def latestValue(String deviceFeature) {
57 if (deviceNumbers == 1)
58 locks[0].latestValue(deviceFeature)
60 locks*.latestValue(deviceFeature)