Infrastruction modification
[smartthings-infrastructure.git] / Event / Event.groovy
index 1ef8f77d85b4399160a97ec9afb973d4b27336d7..aac847b5ccd32d51d30b8581d35e418059f4403f 100644 (file)
@@ -1,9 +1,10 @@
 //Create a class for Events
 package Event
+import groovy.json.JsonSlurper
 
 public class Event {
        private String deviceId
-       private String value
+       private Object value
        private String linkText
        private String displayName
        private boolean displayed
@@ -11,11 +12,14 @@ public class Event {
        private String descriptionText
        private boolean isStateChange
        private String unit
-       private LinkedHashMap data
+       private String data
+       private jsonData
        private int integerValue
-       private List integerValues = ["battery", "hue", "saturation", "energy", "level", "temperature", "heatingSetpoint", "coolingSetpoint", "thermostatSetpoint"]
+       private double doubleValue
+       private boolean physical
+       private def date
        
-       Event(String value, String name, String deviceId, String descriptionText, boolean displayed, String linkText, String displayName, boolean isStateChange, String unit, LinkedHashMap data) {
+       Event(Object 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
@@ -25,8 +29,13 @@ public class Event {
                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()
+               if (["battery", "hue", "saturation", "energy", "level", "temperature", "heatingSetpoint", "coolingSetpoint", "thermostatSetpoint", "illuminance"].contains(name)) {
+                       this.integerValue = value
+                       this.doubleValue = value
+               }
+               this.physical = true
+               this.date = new Date()
        }
 }