Infrastructure works for lights' group now!
authoramiraj <amiraj.95@uci.edu>
Mon, 5 Aug 2019 02:57:28 +0000 (19:57 -0700)
committeramiraj <amiraj.95@uci.edu>
Mon, 5 Aug 2019 02:57:28 +0000 (19:57 -0700)
ColorControl/ColorControl.groovy
ColorControl/ColorControls.groovy
Event/Event.groovy
Methods/httpPostJson.groovy
PresenceSensor/PresenceSensor.groovy
PresenceSensor/PresenceSensors.groovy
StepSensor/StepSensor.groovy
StepSensor/StepSensors.groovy
Variables and events for each device
appTouch/Touched.groovy

index cd33e8e6ebc7756d27447d5af1a16809c09ce07d..c60afb1620e7cbec1bbe659f4e6cbd20b2db40ef 100644 (file)
@@ -64,6 +64,43 @@ public class ColorControl {
        }
 
        //methods
        }
 
        //methods
+       def setColor(LinkedHashMap metaData) {
+               def hexColor = metaData.hex
+               switch (hexColor) {
+                       case "#0000FF":
+                               color = "Blue"
+                               break;
+                       case "#00FF00":
+                               color = "Green"
+                               break;
+                       case "#FFFF00":
+                               color = "Yellow"
+                               break;
+                       case "#FF6000":
+                               color = "Orange"
+                               break;
+                       case "#BF7FBF":
+                               color = "Purple"
+                               break;
+                       case "#FF5F5F":
+                               color = "Pink"
+                               break;
+                       case "#FF0000":
+                               color = "Red"
+                               break;
+                       default:
+                               color = "Blue"
+                               break;
+               }
+               if (color != this.color) {
+                       this.currentColor = color
+                       this.color = color
+                       println("The color of the light is changed to $color!")
+                       sendEvent([name: "color", value: "$color", deviceId: this.id, descriptionText: "",
+                                  displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+               }
+       }
+
        def setColor(String color) {
                if (color != this.color) {
                        this.currentColor = color
        def setColor(String color) {
                if (color != this.color) {
                        this.currentColor = color
index 5122f6b9b55f9150f3a6a8a51202c341499c73c6..306ba87db72324ef0a295e879ba0223e9f6ecde0 100644 (file)
@@ -114,6 +114,41 @@ public class ColorControls {
 
 
        //methods
 
 
        //methods
+       def setColor(LinkedHashMap metaData) {
+               def hexColor = metaData.hex
+               switch (hexColor) {
+                       case "#0000FF":
+                               color = "Blue"
+                               break;
+                       case "#00FF00":
+                               color = "Green"
+                               break;
+                       case "#FFFF00":
+                               color = "Yellow"
+                               break;
+                       case "#FF6000":
+                               color = "Orange"
+                               break;
+                       case "#BF7FBF":
+                               color = "Purple"
+                               break;
+                       case "#FF5F5F":
+                               color = "Pink"
+                               break;
+                       case "#FF0000":
+                               color = "Red"
+                               break;
+                       default:
+                               color = "Blue"
+                               break;
+               }
+               if (color != this.color) {
+                       this.currentColor = color
+                       this.color = color
+                       colorControls[0].setColor(color)                        
+               }
+       }
+
        def setColor(String color) {
                if (color != this.color) {
                        this.currentColor = color
        def setColor(String color) {
                if (color != this.color) {
                        this.currentColor = color
index 60d7276f7ce4ad7e46452daaad4d70a198e81341..eecbc7bda63fbbbee31a5e79751601f08e328cb0 100644 (file)
@@ -1,5 +1,6 @@
 //Create a class for Events
 package Event
 //Create a class for Events
 package Event
+import groovy.json.JsonSlurper
 
 public class Event {
        private String deviceId
 
 public class Event {
        private String deviceId
@@ -12,6 +13,7 @@ public class Event {
        private boolean isStateChange
        private String unit
        private String data
        private boolean isStateChange
        private String unit
        private String data
+       private jsonData
        private int integerValue
        private double doubleValue
        private List integerValues = ["battery", "hue", "saturation", "energy", "level", "temperature", 
        private int integerValue
        private double doubleValue
        private List integerValues = ["battery", "hue", "saturation", "energy", "level", "temperature", 
@@ -27,6 +29,7 @@ public class Event {
                this.isStateChange = isStateChange
                this.unit = unit
                this.data = data
                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.displayed = displayed
                if (integerValues.contains(name)) {
                        this.integerValue = value.toInteger()
index e53be7216953075b3cd61f1c119eb03c3a1feaad..d856bed7c24c5c6ccb928d73ac55281d6699150a 100644 (file)
@@ -2,3 +2,7 @@
 def httpPostJson(LinkedHashMap metaData, Closure inputData) {
        inputData(metaData)
 }
 def httpPostJson(LinkedHashMap metaData, Closure inputData) {
        inputData(metaData)
 }
+
+def httpPostJson(LinkedHashMap metaData) {
+
+}
index c1553fb942d1ac05e3d71d7c02ea40ac306c39e9..b3707361e2aa3fb86d334935fd93a7a4d05fd3c4 100644 (file)
@@ -26,6 +26,9 @@ public class PresenceSensor {
                this.currentPresence = value
        }
 
                this.currentPresence = value
        }
 
+       def currentState(String deviceFeature) {
+               return [rawDateCreated: [time: System.currentTimeMillis()]]
+       }
        
        def currentValue(String deviceFeature) {
                if (deviceFeature == "presence") {
        
        def currentValue(String deviceFeature) {
                if (deviceFeature == "presence") {
index ec24f3b0c675ebf8433a0a42b279701a5ae9c2ae..181be404dc46d8f1cf2dbc046e98ef94826e1f74 100644 (file)
@@ -66,6 +66,9 @@ public class PresenceSensors {
                presenceSensors.collect(Input)
        }
 
                presenceSensors.collect(Input)
        }
 
+       def currentState(String deviceFeature) {
+               presenceSensors[0].currentState(deviceFeature)  
+       }
 
        def currentValue(String deviceFeature) {
                presenceSensors[0].currentValue(deviceFeature)//It is called if we have only one device
 
        def currentValue(String deviceFeature) {
                presenceSensors[0].currentValue(deviceFeature)//It is called if we have only one device
index 4a408ad7cca45bd119ccccef1a76490b7c5f619e..6ec578fa7cad1ec1d66776e10788f46b6ff22478 100644 (file)
@@ -27,4 +27,18 @@ public class StepSensor {
                        this.goal = value.toInteger()
                }
        }
                        this.goal = value.toInteger()
                }
        }
+
+       def currentValue(String deviceFeature) {
+               if (deviceFeature == "steps")
+                       return steps
+               else if (deviceFeature == "goal")
+                       return goal
+       }
+
+       def latestValue(String deviceFeature) {
+               if (deviceFeature == "steps")
+                       return steps
+               else if (deviceFeature == "goal")
+                       return goal
+       }
 }
 }
index 021db256317e3006a4bf8b86ecbf2d3f8305604e..fbfe70ff48fabd34813d64d2ee59e92af1b9097c 100644 (file)
@@ -73,6 +73,10 @@ public class StepSensors {
                stepSensors[0].currentValue(deviceFeature)//It is called if we have only one device
        }
 
                stepSensors[0].currentValue(deviceFeature)//It is called if we have only one device
        }
 
+       def latestValue(String deviceFeature) {
+               stepSensors[0].currentValue(deviceFeature)//It is called if we have only one device
+       }
+
        def getAt(int ix) {
                stepSensors[ix]
        }
        def getAt(int ix) {
                stepSensors[ix]
        }
index 9594b895eec1695e74d85d0218a8fe337d3eb2cd..bf5e119fc4e4cbf29f43f99d298be6d0f24277b8 100644 (file)
@@ -139,6 +139,8 @@ presenceSensorObject.setValue([name: "presence", value: "not present", deviceId:
 displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"presence":"0","dni":"mobile0"}'])
 presenceSensorObject.setValue([name: "presence.present", value: "present", deviceId: "presenceSensorID0", descriptionText: "",
 displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"presence":"1","dni":"mobile0"}'])
 displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"presence":"0","dni":"mobile0"}'])
 presenceSensorObject.setValue([name: "presence.present", value: "present", deviceId: "presenceSensorID0", descriptionText: "",
 displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"presence":"1","dni":"mobile0"}'])
+presenceSensorObject.setValue([name: "presence.not present", value: "present", deviceId: "presenceSensorID0", descriptionText: "",
+displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"presence":"1","dni":"mobile0"}'])
 /////
 /*events*/
 //
 /////
 /*events*/
 //
@@ -259,7 +261,7 @@ displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "
 
 //For appTouch:
 /*events*/
 
 //For appTouch:
 /*events*/
-appObject.setValue([name: "Touched", value: "touched", deviceId: "appID0", descriptionText: "",
+appObject.setValue([name: "Touched", value: "touched", deviceId: "appTouchID0", descriptionText: "",
 displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
 /////
 /*events*/
 displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
 /////
 /*events*/
index 1d9e57fd18ff17c1cb95bc3e91ea931674aca6e4..89d575e670ad99eb5125de3f85a66c24eb77bfc7 100644 (file)
@@ -6,12 +6,15 @@ public class Touched{
        private String id
        private int isTouched
        private String label
        private String id
        private int isTouched
        private String label
+       private String name
+
 
        Touched(Closure sendEvent, int isTouched) {
                this.sendEvent = sendEvent
                this.isTouched = isTouched
                this.label = "app0"
                this.id = "appID0"
 
        Touched(Closure sendEvent, int isTouched) {
                this.sendEvent = sendEvent
                this.isTouched = isTouched
                this.label = "app0"
                this.id = "appID0"
+               this.name = "app0"
        }
 
        //By Model Checker
        }
 
        //By Model Checker