X-Git-Url: http://plrg.eecs.uci.edu/git/?p=smartthings-infrastructure.git;a=blobdiff_plain;f=Event%2FEvent.groovy;h=15e34589786222b88aaf895c739efc8bb9572d60;hp=8c1d1c932bfcc4a1e9365e89349901996be578d1;hb=4e6463b38690279fa3ea38f4d8ef09827d8d6b09;hpb=b4a0eb4ecf95103960505a8249c43586a24631e9 diff --git a/Event/Event.groovy b/Event/Event.groovy index 8c1d1c9..15e3458 100644 --- a/Event/Event.groovy +++ b/Event/Event.groovy @@ -1,5 +1,6 @@ //Create a class for Events package Event +import groovy.json.JsonSlurper public class Event { private String deviceId @@ -11,10 +12,16 @@ 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(String value, String name, String deviceId, String descriptionText, boolean displayed, String linkText, String displayName, boolean isStateChange, String unit, LinkedHashMap data) { + 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 @@ -24,8 +31,16 @@ public class Event { this.isStateChange = isStateChange this.unit = unit this.data = data + this.jsonData = new groovy.json.JsonSlurper().parseText(data) this.displayed = displayed - if (name == "battery") + if (integerValues.contains(name)) { + int dot = value.indexOf('.') + if (dot != -1) + value = value.substring(0, dot) this.integerValue = value.toInteger() + this.doubleValue = Double.parseDouble(value); + } + this.physical = true + this.date = new Date() } }