Adding a feature to extract scheduled method as an event when it is scheduled inside...
[smartthings-infrastructure.git] / Event / Event.groovy
1 //Create a class for Events
2 package Event
3 import groovy.json.JsonSlurper
4
5 public class Event {
6         private String deviceId
7         private String value
8         private String linkText
9         private String displayName
10         private boolean displayed
11         private String name
12         private String descriptionText
13         private boolean isStateChange
14         private String unit
15         private String data
16         private jsonData
17         private int integerValue
18         private double doubleValue
19         private List integerValues = ["battery", "hue", "saturation", "energy", "level", "temperature", 
20                                       "heatingSetpoint", "coolingSetpoint", "thermostatSetpoint", "illuminance"]
21         private boolean physical
22         private def date
23         
24         Event(String value, String name, String deviceId, String descriptionText, boolean displayed, String linkText, String displayName, boolean isStateChange, String unit, String data) {
25                 this.deviceId = deviceId
26                 this.linkText = linkText
27                 this.value = value
28                 this.displayName = displayName
29                 this.name = name
30                 this.descriptionText = descriptionText
31                 this.isStateChange = isStateChange
32                 this.unit = unit
33                 this.data = data
34                 this.jsonData = new groovy.json.JsonSlurper().parseText(data)
35                 this.displayed = displayed
36                 if (integerValues.contains(name)) {
37                         int dot = value.indexOf('.')
38                         if (dot != -1)
39               value = value.substring(0, dot)
40                         this.integerValue = value.toInteger()
41                         this.doubleValue = Double.parseDouble(value);           
42                 }
43                 this.physical = true
44                 this.date = new Date()
45         }
46 }