1 //Create a class for switch device
4 public class Switching{
10 Switching(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 switches = [new Switches(sendEvent, 0, "switch0", "off", "off")]
18 } else if (deviceNumbers == 2) {
19 switches = [new Switches(sendEvent, 0, "switch0", "off", "off"), new Switches(sendEvent, 1, "switch1", "off", "off")]
20 } else if (deviceNumbers == 3) {
21 switches = [new Switches(sendEvent, 0, "switch0", "off", "off"), new Switches(sendEvent, 1, "switch1", "off", "off")
22 ,new Switches(sendEvent, 2, "switch2", "off", "off")]
32 def on(LinkedHashMap metaData) {
33 def task = timers.runAfter(metaData["delay"]) {
42 def off(LinkedHashMap metaData) {
43 def task = timers.runAfter(metaData["delay"]) {
49 def setValue(LinkedHashMap eventDataMap) {
50 switches[eventDataMap["deviceId"]].setValue(eventDataMap["value"])
51 sendEvent(eventDataMap)
55 def currentValue(String deviceFeature) {
56 if (deviceNumbers == 1)
57 switches[0].currentValue(deviceFeature)
59 switches*.currentValue(deviceFeature)
62 def latestValue(String deviceFeature) {
63 if (deviceNumbers == 1)
64 switches[0].latestValue(deviceFeature)
66 switches*.latestValue(deviceFeature)