//Create a class for SmartThings package SmartThing public class SmartThings { List smartThings = new ArrayList() // Methods for closures def count(Closure Input) { smartThings.count(Input) } def size() { smartThings.size() } def each(Closure Input) { smartThings.each(Input) } def find(Closure Input) { smartThings.find(Input) } def sort(Closure Input) { smartThings.sort(Input) } def collect(Closure Input) { smartThings.collect(Input) } // Methods to handle events def eventsSince(Date dateObj, LinkedHashMap info) { return smartThings[0].eventsSince() } def eventsSince(Date dateObj) { return smartThings[0].eventsSince() } def statesSince(String info, Date dateObj) { return smartThings[0].statesSince() } // Methods to return states of the devices def propertyMissing(String currentProperty) { if (smartThings[0] == null) return List tmpValues = new ArrayList() tmpValues.add(smartThings[0].propertyMissing(currentProperty)) return tmpValues } def currentState(String deviceFeature) { List tmpValues = new ArrayList() tmpValues.add(smartThings[0].currentState(deviceFeature)) return tmpValues } def currentValue(String deviceFeature) { List tmpValues = new ArrayList() tmpValues.add(smartThings[0].currentValue(deviceFeature)) return tmpValues } def latestValue(String deviceFeature) { List tmpValues = new ArrayList() tmpValues.add(smartThings[0].latestValue(deviceFeature)) return tmpValues } def getAt(int ix) { smartThings[ix] } }