Fixing some bugs
[smartthings-infrastructure.git] / Event / Event.groovy
index a1d5e71d1b5b80f55eada67cf6dbe136254e1e3b..7e834345ac2da8b4b09f47427e99c6f8e806cf4f 100644 (file)
@@ -1,8 +1,9 @@
 //Create a class for Events
 package Event
+import groovy.json.JsonSlurper
 
 public class Event {
-       private int deviceId
+       private String deviceId
        private String value
        private String linkText
        private String displayName
@@ -11,18 +12,32 @@ public class Event {
        private String descriptionText
        private boolean isStateChange
        private String unit
-       private LinkedHashMap data
+       private String data
+       private jsonData
+       private int integerValue
+       private double doubleValue
+       private List integerValues = ["battery", "hue", "saturation", "energy", "level", "temperature", 
+                                     "heatingSetpoint", "coolingSetpoint", "thermostatSetpoint", "illuminance"]
+       private boolean physical
+       private def date
        
-       Event() {
-               this.deviceId = 0
-               this.linkText = ""
-               this.value = ""
-               this.displayName = ""
-               this.name = ""
-               this.descriptionText = ""
-               this.isStateChange = false
-               this.unit = ""
-               this.data = []
-               this.displayed = false
+       Event(String value, String name, String deviceId, String descriptionText, boolean displayed, String linkText, String displayName, boolean isStateChange, String unit, String data) {
+               this.deviceId = deviceId
+               this.linkText = linkText
+               this.value = value
+               this.displayName = displayName
+               this.name = name
+               this.descriptionText = descriptionText
+               this.isStateChange = isStateChange
+               this.unit = unit
+               this.data = data
+               this.jsonData = new groovy.json.JsonSlurper().parseText(data)
+               this.displayed = displayed
+               if (integerValues.contains(name)) {
+                       this.integerValue = value.toInteger()
+                       this.doubleValue = Double.parseDouble(value);           
+               }
+               this.physical = true
+               this.date = new Date()
        }
 }