1 //Create a class for door control device
3 import Timer.SimulatedTimer
5 public class DoorControls {
11 //If we have only one device
12 private String id = "DoorControlID0"
13 private String label = "DoorControl0"
14 private String displayName = "DoorControl0"
15 private String doorState = "closed"
16 private String doorLatestValue = "closed"
18 DoorControls(Closure sendEvent, int deviceNumbers) {
19 this.sendEvent = sendEvent
20 this.timers = new SimulatedTimer()
21 this.deviceNumbers = deviceNumbers
22 this.doorControls = []
24 doorControls.add(new DoorControl(sendEvent, id, label, displayName, this.doorState, this.doorLatestValue))
27 //Methods for closures
28 def count(Closure Input) {
29 doorControls.count(Input)
34 def each(Closure Input) {
35 doorControls.each(Input)
37 def find(Closure Input) {
38 doorControls.find(Input)
40 def collect(Closure Input) {
41 doorControls.collect(Input)
49 def open(LinkedHashMap metaData) {
50 def task = timers.runAfter(metaData["delay"]) {
59 def close(LinkedHashMap metaData) {
60 def task = timers.runAfter(metaData["delay"]) {
66 def setValue(LinkedHashMap eventDataMap) {
67 doorControls[0].setValue(eventDataMap["value"])
68 this.doorState = doorControls[0].doorState
69 sendEvent(eventDataMap)
73 def currentValue(String deviceFeature) {
74 doorControls[0].currentValue(deviceFeature)
77 def latestValue(String deviceFeature) {
78 doorControls[0].latestValue(deviceFeature)