Infrastruction modification
[smartthings-infrastructure.git] / PresenceSensor / PresenceSensor.groovy
1 // Create a class for presence sensor
2 package PresenceSensor
3 import SmartThing.SmartThing
4
5 public class PresenceSensor extends SmartThing {
6         // id, label, and display name of the device
7         StringBuilder id = new StringBuilder()
8         StringBuilder label = new StringBuilder()
9         StringBuilder displayName = new StringBuilder()
10         // Features with string values
11         StringBuilder currentPresence = new StringBuilder()
12         // Maps from features to values
13         HashMap<String, StringBuilder> deviceValuesMap = new HashMap<String, StringBuilder>()
14         // Possible values for eventsSince method
15         List<StringBuilder> possibleValues = new ArrayList<StringBuilder>();
16
17         PresenceSensor(Closure sendEvent, StringBuilder id, StringBuilder label, StringBuilder displayName, StringBuilder currentPresence) {
18                 deviceValuesMap = deviceValueSmartThing
19                 idSmartThing = id
20                 labelSmartThing = label
21                 displayNameSmartThing = displayName
22                 sendEventSmartThings = sendEvent
23                 possibleValuesSmartThings = possibleValues
24
25                 // Initialization
26                 this.id = id
27                 this.label = label
28                 this.displayName = displayName
29                 this.currentPresence = currentPresence
30                 possibleValues.add("present")
31                 possibleValues.add("not present")
32
33                 deviceValuesMap.put("presence", currentPresence)
34         }
35
36         // Methods to return values
37         def getCurrentPresence() {
38                 return currentPresence.toString()
39         }
40 }