Fixing bug in Mobile Presence class
[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 boolean physical
20         private def date
21         private boolean isManualTransaction
22         
23         Event(String value, String name, String deviceId, String descriptionText, boolean displayed, String linkText, String displayName, boolean isStateChange, String unit, String data) {
24                 this.deviceId = deviceId
25                 this.linkText = linkText
26                 this.value = value
27                 this.displayName = displayName
28                 this.name = name
29                 this.descriptionText = descriptionText
30                 this.isStateChange = isStateChange
31                 this.unit = unit
32                 this.data = data
33                 this.jsonData = new groovy.json.JsonSlurper().parseText(data)
34                 this.displayed = displayed
35                 if (["battery", "hue", "saturation", "energy", "level", "temperature", "heatingSetpoint", "coolingSetpoint", "thermostatSetpoint", "illuminance"].contains(name)) {
36                         int dot = value.indexOf('.')
37                         if (dot != -1)
38                         value = value.substring(0, dot)
39                         this.integerValue = value.toInteger()
40                         this.doubleValue = Double.parseDouble(value);
41                 }
42                 this.physical = true
43                 this.date = new Date()
44         }
45
46         void setManualTransaction(boolean isTrue) {
47                 isManualTransaction = isTrue;
48         }
49 }