'energy' : 1,
'power' : 2,
'illuminance' : 1,
- 'humidity' : 1,
+ 'humidity' : 2,
'alarm' : 4,
'contact' : 2,
'status' : 3,
'trackDescription' : 1,
'trackData' : 1,
'mute' : 2,
- 'temperature' : 1,
+ 'temperature' : 2,
'heatingSetpoint' : 1,
'coolingSetpoint' : 1,
- 'thermostatSetpoint' : 1}
+ 'thermostatSetpoint' : 1,
+ 'threeAxis' : 1}
# Mapping for specific event types
eventTypesMap = {'alarm.both': 'alarm',
'tamper.tampered' : 'contact',
'doorState.open' : 'doorState',
'doorState.closed' : 'doorState',
+ 'position' : 'location',
'mode' : 'location',
'mode.away' : 'location',
'mode.home' : 'location',
Temp == "capability.switchLevel" or
Temp == "capability.illuminanceMeasurement" or
Temp == "capability.colorControl" or
+ Temp == "capability.colorTemperature" or
#Motion related
Temp == "capability.motionSensor" or
Temp == "capability.accelerationSensor" or
def AnalyzePhysicalInteraction(app1Capab, app2Capab):
#Light
if ("capability.illuminanceMeasurement" in app1Capab) and ("capability.switch" in app2Capab or
- "capability.switchLevel" in app2Capab or "capability.colorControl" in app2Capab):
+ "capability.switchLevel" in app2Capab or "capability.colorControl" or "capability.colorTemperature" in app2Capab):
print ("\nWARNING: Potential PHYSICAL CONFLICT (light) detected between App1 and App2!\n")
#Motion
# TODO: Technically this is not entirely precise since we need to be able to detect that the other app creates motion
#print "DEBUG: App1: %d" % indexApp1
#print "DEBUG: App2: %d" % indexApp2
#print "DEBUG: eventList: %d" % len(eventList)
+ #print eventAppList
#print eventList
- isApp1 = True
+ if indexApp2Start > 0:
+ isApp1 = True
+ else:
+ isApp1 = False
while counter < numOfActualEvents:
# Interleave events from App1 and App2
if isApp1 is True:
extractedEvents.write(line)
event.close()
elif eventList[i] == "switch":
-
#Check which capability
variable = eventVarMap[eventList[i]]
if eventList[i] not in eventVarCounterMap.keys():
for line in event:
extractedEvents.write(line)
event.close()
- elif eventList[i] == "acceleration.active":
- event = open("eventSimulator/accelerationDefaultActiveEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
- elif eventList[i] == "acceleration.inactive":
- event = open("eventSimulator/accelerationDefaultInactiveEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
elif eventList[i] == "sleeping":
#Write two events subsequently
event = open("eventSimulator/sleepSleepingEvent.groovy", "r")
extractedEvents.write(line)
event.close()
elif eventList[i] == "humidity":
- event = open("eventSimulator/humidityMeasurementEvent.groovy", "r")
+ event = open("eventSimulator/humidityHighMeasurementEvent.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/humidityLowMeasurementEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
eventVarCount = eventVarCounterMap[eventList[i]]
eventVarCounterMap[eventList[i]] = eventVarCount + 1
capability = capabilityMap[variable[eventVarCount]]
+ #Write two events subsequently
+ if capability == "capability.thermostat":
+ event = open("eventSimulator/temperatureHighEvent.groovy", "r")
+ elif capability == "capability.temperatureMeasurement":
+ event = open("eventSimulator/temperatureHighMeasurementEvent.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)
if capability == "capability.thermostat":
- event = open("eventSimulator/temperatureEvent.groovy", "r")
+ event = open("eventSimulator/temperatureLowEvent.groovy", "r")
elif capability == "capability.temperatureMeasurement":
- event = open("eventSimulator/temperatureMeasurementEvent.groovy", "r")
+ event = open("eventSimulator/temperatureLowMeasurementEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "threeAxis":
+ event = open("eventSimulator/threeAxisChangeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
###TODO: Add more events later
extractedEvents.write("\n\t\t\tbreak\n")