private String displayName = "colorControl0"
private String color = "red"
private String currentColor = "red"
- private String currentSwitch = "off"
+ private String currentSwitch = "on"
private int level = 50
private int currentLevel = 50
private int hue = 50
this.deviceNumbers = deviceNumbers
this.colorControls = []
- def initHue = Verify.getIntFromList(30, 50)
+ /*def initHue = Verify.getIntFromList(30, 50)
this.hue = initHue
def initSat = Verify.getIntFromList(40, 50)
this.saturation = initSat
- def init = Verify.getInt(0,2)
- if (init == 0) {
+ def initColor = Verify.getBoolean()
+ if (initColor) {
this.color = "red"
} else {
this.color = "blue"
}
+ def init = Verify.getBoolean()
+ if (init) {
+ this.currentSwitch = "off"
+ } else {
+ this.currentSwitch = "on"
+ }*/
colorControls.add(new ColorControl(sendEvent, id, label, displayName, this.color, this.hue, this.saturation, this.level, this.currentSwitch, this.colorTemperature))
}
}
}
- def setColorTemperature(String colorTemperature) {
+ def setColorTemperature(int colorTemperature) {
if (colorTemperature != this.colorTemperature) {
this.colorTemperature = colorTemperature
colorControls[0].setColorTemperature(colorTemperature)
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
}
}
+
+ def setLevel(long level) {
+ if (level != this.level) {
+ this.currentLevel = level
+ this.level = level
+ println("The level of the light is changed to $level!")
+ sendEvent([name: "level", value: "$level", deviceId: this.id, descriptionText: "",
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+ }
+ }
def setColorTemperature(int colorTemperature) {
if (colorTemperature != this.colorTemperature) {
private String id = "colorTemperatureID0"
private String label = "colorTemperature0"
private String displayName = "colorTemperature0"
- private String currentSwitch = "off"
+ private String currentSwitch = "on"
private int level = 50
private int currentLevel = 50
private int colorTemperature = 15000
this.deviceNumbers = deviceNumbers
this.colorTemperatues = []
- def initLevel = Verify.getIntFromList(50, 70)
+ /*def initLevel = Verify.getIntFromList(50, 70)
this.level = initLevel
def initTemp = Verify.getIntFromList(10000, 15000)
this.colorTemperature = initTemp
this.currentSwitch = "off"
} else {
this.currentSwitch = "on"
- }
+ }*/
colorTemperatues.add(new ColorTemperature(sendEvent, id, label, displayName, this.level, this.currentSwitch, this.colorTemperature))
}
//methods
+ def setLevel(long level) {
+ if (level != this.level) {
+ this.currentLevel = level
+ this.level = level
+ colorTemperatues[0].setLevel(level)
+ }
+ }
+
def setLevel(int level) {
if (level != this.level) {
this.currentLevel = level
colorTemperatues[0].setColorTemperature(colorTemperature)
}
}
+
+ def setColorTemperature(int colorTemperature) {
+ if (colorTemperature != this.colorTemperature) {
+ this.colorTemperature = colorTemperature
+ colorTemperatues[0].setColorTemperature(colorTemperature)
+ }
+ }
def on(String currentSwitch) {
if (currentSwitch != this.currentSwitch) {
case "mode":
//def randomVariable = Math.abs(new Random().nextInt() % 3)
def modes = ["away", "home", "night"]
- def userInput = modes[0]
+ def userInput = modes[1]
if (modeVariables == 0) {
mode0 = metaData['name']
'switch.off' : 1,
'location' : 3,
'mode' : 3,
+ 'sunset' : 1,
+ 'sunsetTime' : 1,
+ 'sunrise' : 1,
+ 'sunriseTime' : 1,
'acceleration' : 2,
'acceleration.active' : 1,
'acceleration.inactive' : 1,
variable = Temp
while (Temp != "\"" and Temp != "app" and Temp != "location"):
Temp = GetToken(F)
+ if Temp == "location":
+ # See if we have another case for location
+ Temp = GetToken(F) # Get ','
+ Temp = GetToken(F) # Get '"'
+ if Temp == "\"":
+ Temp = GetToken(F)
+ else:
+ # This is the special case where we will see, e.g., sunset, sunrise, etc.
+ Temp = "location"
if Temp == "\"":
- Temp = GetToken(F)
+ Temp = GetToken(F)
#print "DEBUG: %s - %s" % (variable, Temp)
#print capabilityMap
- if Temp == "app" or Temp == "location":
+ #print "DEBUG: location variable: %s" % Temp
+ if Temp == "app" or Temp == "location" or Temp == "mode" or Temp == "sunset" or Temp == "sunrise" or Temp == "sunsetTime" or Temp == "sunriseTime":
if Temp not in eventList:
eventList.append(Temp)
if (appName == "App1"):
def CountEvents():
global eventList
numOfActualEvents = 0
+ #print "DEBUG: eventlist: %d" % len(eventList)
for event in eventList:
+ #print "DEBUG: Event: %s %d" % (event, eventTypeCounterMap[event])
numOfActualEvents = numOfActualEvents + eventTypeCounterMap[event]
return numOfActualEvents
#print "DEBUG: App2: %d" % indexApp2
#print "DEBUG: eventList: %d" % len(eventList)
isApp1 = True
- while counter < len(eventList):
+ while counter < numOfActualEvents:
# Interleave events from App1 and App2
if isApp1 is True:
i = indexApp1
indexApp2 = indexApp2 + 1
if indexApp1 < indexApp2Start:
isApp1 = True
- print "DEBUG: i: %d" % i
+ #print "DEBUG: i: %d" % i
extractedEvents.write("\t\tcase %d:\n" % counter)
if eventList[i] == "lock":
#Write two events subsequently
extractedEvents.write(line)
event.close()
elif eventList[i] == "button":
+ #Check which capability
+ variable = eventVarMap[eventList[i]]
+ if eventList[i] not in eventVarCounterMap.keys():
+ eventVarCounterMap[eventList[i]] = 1
+ eventVarCount = 0
+ else:
+ eventVarCount = eventVarCounterMap[eventList[i]]
+ eventVarCounterMap[eventList[i]] = eventVarCount + 1
+ capability = capabilityMap[variable[eventVarCount]]
#Write two events subsequently
- event = open("eventSimulator/buttonPushedEvent.groovy", "r")
+ if capability == "capability.button":
+ event = open("eventSimulator/buttonHeldEvent.groovy", "r")
+ elif capability == "device.aeonKeyFob":
+ event = open("eventSimulator/aeonKeyFobHeldEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
extractedEvents.write("\n\t\t\tbreak\n")
counter = counter + 1
extractedEvents.write("\t\tcase %d:\n" % counter)
- event = open("eventSimulator/buttonHeldEvent.groovy", "r")
+ if capability == "capability.button":
+ event = open("eventSimulator/buttonPushedEvent.groovy", "r")
+ elif capability == "device.aeonKeyFob":
+ event = open("eventSimulator/aeonKeyFobPushedEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "sunrise":
+ event = open("eventSimulator/locationSunriseEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "sunset":
+ event = open("eventSimulator/locationSunsetEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "sunsetTime":
+ event = open("eventSimulator/locationSunsetTimeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "sunriseTime":
+ event = open("eventSimulator/locationSunriseTimeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "acceleration":
#Write two events subsequently
event = open("eventSimulator/accelerationActiveEvent.groovy", "r")
this.deviceNumbers = deviceNumbers
this.switches = []
- /*def initLevel = Verify.getIntFromList(30, 50, 70)
+ def initLevel = Verify.getIntFromList(30, 50, 70)
this.currentLevel = initLevel
def init = Verify.getBoolean()
- if (init) {
+ /*if (init) {
this.switchState = "off"
this.currentSwitch = "off"
this.switchLatestValue = "off"
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
}
}
+
+ def setLevel(long level) {
+ if (this.level != level) {
+ println("the switch with id:$id is setted to level $level!")
+ this.level = level
+ this.rate = level
+ sendEvent([name: "level", value: "$level", deviceId: this.id, descriptionText: "",
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+ }
+ }
def on() {
if (this.switchState != "on") {
private String displayName = "switchLevel0"
private int level = 50
private int rate = 50
- private String switchState = "off"
- private String currentSwitch = "off"
- private String switchLatestValue = "off"
+ private String switchState = "on"
+ private String currentSwitch = "on"
+ private String switchLatestValue = "on"
SwitchLevels(Closure sendEvent, int deviceNumbers) {
this.sendEvent = sendEvent
this.rate = level
}
}
+
+ def setLevel(long level) {
+ if (this.level != level) {
+ switchLevels[0].setLevel(level)
+ this.level = level
+ this.rate = level
+ }
+ }
def on() {
switchLatestValue = "on"
--- /dev/null
+ aeonKeyFobObject.setValue([name: "button", value: "held", deviceId: "aeonKeyFobID0", descriptionText: "",
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
--- /dev/null
+ aeonKeyFobObject.setValue([name: "button", value: "pushed", deviceId: "aeonKeyFobID0", descriptionText: "",
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
- aeonKeyFobObject.setValue([name: "button", value: "held", deviceId: "aeonKeyFobID0", descriptionText: "",
- displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+ buttonObject.setValue([name: "button", value: "held", deviceId: "switchID0", descriptionText: "",
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"buttonNumber": 1}'])
- aeonKeyFobObject.setValue([name: "button", value: "pushed", deviceId: "aeonKeyFobID0", descriptionText: "",
- displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+ buttonObject.setValue([name: "button", value: "push", deviceId: "switchID0", descriptionText: "",
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"buttonNumber": 1}'])
--- /dev/null
+ locationObject.setValue([name: "sunrise", value: "sunrise", deviceId: "locationID0", descriptionText: "",
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
--- /dev/null
+ locationObject.setValue([name: "sunriseTime", value: "sunriseTime", deviceId: "locationID0", descriptionText: "",
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
--- /dev/null
+ locationObject.setValue([name: "sunset", value: "sunset", deviceId: "locationID0", descriptionText: "",
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
--- /dev/null
+ locationObject.setValue([name: "sunsetTime", value: "sunsetTime", deviceId: "locationID0", descriptionText: "",
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])