1 //Create a class for lock device
10 Locking(Closure sendEvent, int deviceNumbers) {
11 this.sendEvent = sendEvent
12 this.timers = new Timer()
13 timers.cancel() //Timer is ready to use
14 this.deviceNumbers = deviceNumbers
16 if (deviceNumbers == 1) {
17 locks = [new Locks(sendEvent, 0, "lock0", "locked", "locked")]
18 } else if (deviceNumbers == 2) {
19 locks = [new Locks(sendEvent, 0, "lock0", "locked", "locked"), new Locks(sendEvent, 1, "lock1", "locked", "locked")]
20 } else if (deviceNumbers == 3) {
21 locks = [new Locks(sendEvent, 0, "lock0", "locked", "locked"), new Locks(sendEvent, 1, "lock1", "locked", "locked")
22 ,new Locks(sendEvent, 2, "lock2", "locked", "locked")]
31 def lock(LinkedHashMap metaData) {
32 def task = timers.runAfter(metaData["delay"]) {
41 def unlock(LinkedHashMap metaData) {
42 def task = timers.runAfter(metaData["delay"]) {
48 def setValue(LinkedHashMap eventDataMap) {
49 locks[eventDataMap["deviceId"]].setValue(eventDataMap["value"])
50 sendEvent(eventDataMap)
53 def currentValue(String deviceFeature) {
54 if (deviceNumbers == 1)
55 locks[0].currentValue(deviceFeature)
57 locks*.currentValue(deviceFeature)
60 def latestValue(String deviceFeature) {
61 if (deviceNumbers == 1)
62 locks[0].latestValue(deviceFeature)
64 locks*.latestValue(deviceFeature)