Adjusting setLocationMode for global-variable conflict detection.
[smartthings-infrastructure.git] / Location / LocationVar.groovy
index 43c88cd078867f09eed4ae22cb884f4d0034871b..a114c1f019bf02ee1b8a29beacdf566e62a0b519 100644 (file)
@@ -4,18 +4,57 @@ package Location
 class LocationVar {
        private int contactBookEnabled
        private def modes
+       private def timeZone
+       private def hubs
        private String mode
+       private String name
        private List contacts
        private List phoneNumbers
-    
+       private String temperatureScale 
+       def sendEvent
+       
        private Phrase helloHome
 
-       LocationVar() {
-               this.modes = [[name: "home"],[name: "away"],[name: "night"]]
-               this.mode = "home"
-               this.helloHome = new Phrase()
-               this.contactBookEnabled = 1
-               this.contacts = ['AJ']
-               this.phoneNumbers = [9495379373]
+       LocationVar(Closure sendEvent, boolean init) {
+       
+                       if (init) {
+                               this.hubs = [[id:0, localIP:"128.195.204.105"]]
+                               this.modes = [[name: "home"],[name: "away"],[name: "night"]]
+                               this.mode = "away"
+                               this.helloHome = new Phrase()
+                               this.contactBookEnabled = 1
+                               this.contacts = ['AJ']
+                               this.phoneNumbers = [9495379373]
+                               this.sendEvent = sendEvent
+                               this.timeZone = TimeZone.getTimeZone("America/New_York")
+                               this.name = "hub0"
+                               this.temperatureScale = "F"
+                       } else {
+                               this.hubs = [[id:0, localIP:"128.195.204.105"]]
+                               this.modes = [[name: "home"],[name: "away"],[name: "night"]]
+                               this.mode = "home"
+                               this.helloHome = new Phrase()
+                               this.contactBookEnabled = 1
+                               this.contacts = ['AJ']
+                               this.phoneNumbers = [9495379373]
+                               this.sendEvent = sendEvent
+                               this.timeZone = TimeZone.getTimeZone("America/New_York")
+                               this.name = "hub0"
+                               this.temperatureScale = "F"
+                       
+                       }
        }
+
+       //By Model Checker
+       def setValue(LinkedHashMap eventDataMap) {
+               def sentMode = eventDataMap['value']
+               println("The location is changed to $sentMode!")
+               this.mode = sentMode
+               sendEvent(eventDataMap)
+       }
+
+       def currentValue(String deviceFeature) {
+               if (deviceFeature == "sunsetTime" || deviceFeature == "sunset")
+                       return System.currentTimeMillis()
+       }
 }