'ultravioletIndex': 1,
'voltage': 1,
'windowShade': 1,
- 'touched': 1}
-
-# Mapping for specific event types
-eventTypesMap = {'alarm.both': 'alarm',
- 'alarm.siren' : 'alarm',
- 'alarm.strobe' : 'alarm',
- 'alarm.off' : 'alarm',
- 'contact.open' : 'contact',
- 'contact.closed' : 'contact',
- 'tamper.tampered' : 'contact',
- 'doorState.open' : 'doorState',
- 'doorState.closed' : 'doorState',
- 'position' : 'location',
- 'mode' : 'location',
- 'mode.away' : 'location',
- 'mode.home' : 'location',
- 'mode.night' : 'location',
- 'lock.locked' : 'lock',
- 'lock.unlocked' : 'lock',
- 'motion.active' : 'motion',
- 'motion.inactive' : 'motion',
- 'status.playing' : 'status',
- 'status.stopped' : 'status',
- 'status.paused' : 'status',
- 'mute.muted' : 'mute',
- 'mute.unmuted' : 'mute',
- 'presence.present' : 'presence',
- 'presence.not present' : 'presence',
- 'presence.not' : 'presence',
- 'smoke.detected' : 'smoke',
- 'smoke.clear' : 'smoke',
- 'smoke.tested' : 'smoke',
- 'carbonMonoxide.detected' : 'carbonMonoxide',
- 'carbonMonoxide.clear' : 'carbonMonoxide',
- 'carbonMonoxide.tested' : 'carbonMonoxide',
- 'thermostatMode.cool' : 'thermostatMode',
- 'thermostatMode.auto' : 'thermostatMode',
- 'thermostatMode.emergencyHeat' : 'thermostatMode',
- 'thermostatMode.heat' : 'thermostatMode',
- 'thermostatMode.off' : 'thermostatMode',
- 'thermostatFanMode.auto' : 'thermostatFanMode',
- 'thermostatFanMode.fanCirculate' : 'thermostatFanMode',
- 'thermostatFanMode.circulate' : 'thermostatFanMode',
- 'thermostatFanMode.fanOn' : 'thermostatFanMode',
- 'thermostatFanMode.on' : 'thermostatFanMode',
- 'fanMode' : 'thermostatFanMode',
- 'fanMode.auto' : 'thermostatFanMode',
- 'fanMode.fanCirculate' : 'thermostatFanMode',
- 'fanMode.circulate' : 'thermostatFanMode',
- 'fanMode.fanOn' : 'thermostatFanMode',
- 'fanMode.on' : 'thermostatFanMode',
- 'switch.on' : 'switch',
- 'switch.off' : 'switch',
- 'button.pushed' : 'button',
- 'button.held' : 'button',
- 'acceleration.active' : 'acceleration',
- 'acceleration.inactive' : 'acceleration',
- 'sleeping.sleeping' : 'sleeping',
- 'sleeping.not sleeping' : 'sleeping',
- 'water.dry' : 'water',
- 'water.wet' : 'water'}
+ 'touched': 1,
+ 'alarm.both': 1,
+ 'alarm.siren' : 1,
+ 'alarm.strobe' : 1,
+ 'alarm.off' : 1,
+ 'contact.open' : 1,
+ 'contact.closed' : 1,
+ 'tamper.tampered' : 2,
+ 'doorState.open' : 1,
+ 'doorState.closed' : 1,
+ 'position' : 3,
+ 'mode' : 3,
+ 'mode.away' : 1,
+ 'mode.home' : 1,
+ 'mode.night' : 1,
+ 'lock.locked' : 1,
+ 'lock.unlocked' : 1,
+ 'motion.active' : 1,
+ 'motion.inactive' : 1,
+ 'status.playing' : 1,
+ 'status.stopped' : 1,
+ 'status.paused' : 1,
+ 'mute.muted' : 1,
+ 'mute.unmuted' : 1,
+ 'presence.present' : 1,
+ 'presence.not present' : 1,
+ 'presence.not' : 1,
+ 'smoke.detected' : 1,
+ 'smoke.clear' : 1,
+ 'smoke.tested' : 1,
+ 'carbonMonoxide.detected' : 1,
+ 'carbonMonoxide.clear' : 1,
+ 'carbonMonoxide.tested' : 1,
+ 'thermostatMode.cool' : 1,
+ 'thermostatMode.auto' : 1,
+ 'thermostatMode.emergencyHeat' : 1,
+ 'thermostatMode.heat' : 1,
+ 'thermostatMode.off' : 1,
+ 'thermostatFanMode.auto' : 1,
+ 'thermostatFanMode.fanCirculate' : 1,
+ 'thermostatFanMode.circulate' : 1,
+ 'thermostatFanMode.fanOn' : 1,
+ 'thermostatFanMode.on' : 1,
+ 'fanMode' : 5,
+ 'fanMode.auto' : 1,
+ 'fanMode.fanCirculate' : 1,
+ 'fanMode.circulate' : 1,
+ 'fanMode.fanOn' : 1,
+ 'fanMode.on' : 1,
+ 'switch.on' : 1,
+ 'switch.off' : 1,
+ 'button.pushed' : 1,
+ 'button.held' : 1,
+ 'acceleration.active' : 1,
+ 'acceleration.inactive' : 1,
+ 'sleeping.sleeping' : 1,
+ 'sleeping.not sleeping' : 1,
+ 'water.dry' : 1,
+ 'water.wet' : 1
+ }
def GetToken(f):
global readyToReturn
def ExtractFunctions(F, appName):
global eventList
global eventAppList
- global eventTypesMap
global app1Subscribe
global app2Subscribe
Temp = GetToken(F)
#This is a bogus event, just skip it...
if Temp == "unlock":
- continue
- #Translate and reduce through mapping
- if Temp in eventTypesMap.keys():
- Temp = eventTypesMap[Temp]
- if Temp == "app" or Temp == "location" or Temp == "mode" or Temp == "sunset" or Temp == "sunrise" or Temp == "sunsetTime" or Temp == "sunriseTime":
+ continue
+ if Temp == "app" or Temp == "location" or Temp == "position" or Temp == "mode" or Temp == "mode.away" or Temp == "mode.home" or Temp == "mode.night" or \
+ Temp == "sunset" or Temp == "sunrise" or Temp == "sunsetTime" or Temp == "sunriseTime":
if Temp not in eventList:
eventList.append(Temp)
if (appName == "App1"):
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "lock.locked":
+ event = open("eventSimulator/lockLockedEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "lock.unlocked":
+ event = open("eventSimulator/lockUnlockedEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "nfcTouch":
event = open("eventSimulator/nfcTouchEvent.groovy", "r")
for line in event:
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "button.pushed":
+ event = open("eventSimulator/buttonPushedEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "button.held":
+ event = open("eventSimulator/buttonHeldEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "water":
#Write two events subsequently
event = open("eventSimulator/waterDryEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "water.dry":
+ event = open("eventSimulator/waterDryEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "water.wet":
+ event = open("eventSimulator/waterWetEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "presence":
#Check which capability
variable = eventVarMap[eventList[i]]
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "presence.present":
+ event = open("eventSimulator/presencePresentEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "presence.not present" or eventList[i] == "presence.not":
+ event = open("eventSimulator/presenceLeftEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "doorState":
#Write two events subsequently
event = open("eventSimulator/doorOpenEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "doorState.open":
+ event = open("eventSimulator/doorOpenEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "doorState.closed":
+ event = open("eventSimulator/doorClosedEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "motion":
#Write two events subsequently
event = open("eventSimulator/motionActiveEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "motion.active":
+ event = open("eventSimulator/motionActiveEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "motion.inactive":
+ event = open("eventSimulator/motionInactiveEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "smoke":
#Write three events subsequently
event = open("eventSimulator/smokeClearEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "smoke.clear":
+ event = open("eventSimulator/smokeClearEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "smoke.detected":
+ event = open("eventSimulator/smokeDetectedEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "smoke.tested":
+ event = open("eventSimulator/smokeTestedEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "carbonMonoxide":
#Check which capability
variable = eventVarMap[eventList[i]]
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "carbonMonoxide.clear":
+ #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 three events subsequently
+ if capability == "capability.smokeDetector":
+ event = open("eventSimulator/smokeCarbonMonoxideClearEvent.groovy", "r")
+ elif capability == "capability.carbonMonoxideDetector":
+ event = open("eventSimulator/carbonMonoxideClearEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "carbonMonoxide.detected":
+ #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 three events subsequently
+ if capability == "capability.smokeDetector":
+ event = open("eventSimulator/smokeCarbonMonoxideDetectedEvent.groovy", "r")
+ elif capability == "capability.carbonMonoxideDetector":
+ event = open("eventSimulator/carbonMonoxideDetectedEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "carbonMonoxide.tested":
+ #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 three events subsequently
+ if capability == "capability.smokeDetector":
+ event = open("eventSimulator/smokeCarbonMonoxideTestedEvent.groovy", "r")
+ elif capability == "capability.carbonMonoxideDetector":
+ event = open("eventSimulator/carbonMonoxideTestedEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "battery":
#Check which capability
variable = eventVarMap[eventList[i]]
for line in event:
extractedEvents.write(line)
event.close()
- elif eventList[i] == "thermostatFanMode":
+ elif eventList[i] == "thermostatMode.cool":
+ event = open("eventSimulator/thermostatCoolModeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "thermostatMode.auto":
+ event = open("eventSimulator/thermostatAutoModeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "thermostatMode.emergencyHeat":
+ event = open("eventSimulator/thermostatEmergencyHeatModeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "thermostatMode.heat":
+ event = open("eventSimulator/thermostatHeatModeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "thermostatMode.off":
+ event = open("eventSimulator/thermostatOffModeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "thermostatFanMode" or eventList[i] == "fanMode":
#Write five events subsequently
event = open("eventSimulator/thermostatAutoFanModeEvent.groovy", "r")
for line in event:
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "thermostatFanMode.auto" or eventList[i] == "fanMode.auto":
+ event = open("eventSimulator/thermostatAutoFanModeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "thermostatFanMode.fanCirculate" or eventList[i] == "fanMode.fanCirculate":
+ event = open("eventSimulator/thermostatFanCirculateFanModeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "thermostatFanMode.circulate" or eventList[i] == "fanMode.circulate":
+ event = open("eventSimulator/thermostatCirculateFanModeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "thermostatFanMode.fanOn" or eventList[i] == "fanMode.fanOn":
+ event = open("eventSimulator/thermostatFanOnFanModeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "thermostatFanMode.on" or eventList[i] == "fanMode.on":
+ event = open("eventSimulator/thermostatOnFanModeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "thermostatOperatingState":
#Write five events subsequently
event = open("eventSimulator/thermostatOperatingStateAutoEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
- elif eventList[i] == "location": #Case for Location event
+ elif eventList[i] == "switch.on":
+ #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]]
+ if capability == "capability.switch":
+ event = open("eventSimulator/switchOnEvent.groovy", "r")
+ elif capability == "capability.switchLevel":
+ event = open("eventSimulator/switchLevelOnEvent.groovy", "r")
+ elif capability == "capability.relaySwitch":
+ event = open("eventSimulator/relaySwitchOnEvent.groovy", "r")
+ elif capability == "capability.colorControl":
+ event = open("eventSimulator/colorControlSwitchOnEvent.groovy", "r")
+ elif capability == "capability.colorTemperature":
+ event = open("eventSimulator/colorTemperatureSwitchOnEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "switch.off":
+ #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]]
+ if capability == "capability.switch":
+ event = open("eventSimulator/switchOffEvent.groovy", "r")
+ elif capability == "capability.switchLevel":
+ event = open("eventSimulator/switchLevelOffEvent.groovy", "r")
+ elif capability == "capability.relaySwitch":
+ event = open("eventSimulator/relaySwitchOffEvent.groovy", "r")
+ elif capability == "capability.colorControl":
+ event = open("eventSimulator/colorControlSwitchOffEvent.groovy", "r")
+ elif capability == "capability.colorTemperature":
+ event = open("eventSimulator/colorTemperatureSwitchOffEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "location" or eventList[i] == "position" or eventList[i] == "mode": #Case for Location event
#Write three events subsequently
event = open("eventSimulator/locationHomeEvent.groovy", "r")
for line in event:
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "mode.home":
+ event = open("eventSimulator/locationHomeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "mode.away":
+ event = open("eventSimulator/locationAwayEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "mode.night":
+ event = open("eventSimulator/locationNightEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "sunrise":
event = open("eventSimulator/locationSunriseEvent.groovy", "r")
for line in event:
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "acceleration.active":
+ event = open("eventSimulator/accelerationActiveEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "acceleration.inactive":
+ event = open("eventSimulator/accelerationInactiveEvent.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")
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "sleeping.sleeping":
+ event = open("eventSimulator/sleepSleepingEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "sleeping.not sleeping":
+ event = open("eventSimulator/sleepNotSleepingEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "goal":
#Write two events subsequently
event = open("eventSimulator/stepGoalHighEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
- elif eventList[i] == "contact":
+ elif eventList[i] == "alarm.both":
+ event = open("eventSimulator/alarmBothEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "alarm.siren":
+ event = open("eventSimulator/alarmSirenEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "alarm.strobe":
+ event = open("eventSimulator/alarmStrobeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "alarm.off":
+ event = open("eventSimulator/alarmOffEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "contact" or eventList[i] == "tamper.tampered":
#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] == "contact.closed":
+ #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]]
+ if capability == "capability.contactSensor":
+ event = open("eventSimulator/contactDefaultClosedEvent.groovy", "r")
+ elif capability == "capability.valve":
+ event = open("eventSimulator/valveClosedEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "contact.open":
+ 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]]
+ if capability == "capability.contactSensor":
+ event = open("eventSimulator/contactDefaultOpenEvent.groovy", "r")
+ elif capability == "capability.valve":
+ event = open("eventSimulator/valveOpenEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "status":
#Write three events subsequently
event = open("eventSimulator/musicPlayerPlayingEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "status.playing":
+ event = open("eventSimulator/musicPlayerPlayingEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "status.stopped":
+ event = open("eventSimulator/musicPlayerStoppedEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "status.paused":
+ event = open("eventSimulator/musicPlayerPausedEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "level":
#Check which capability
variable = eventVarMap[eventList[i]]
for line in event:
extractedEvents.write(line)
event.close()
+ elif eventList[i] == "mute.muted":
+ event = open("eventSimulator/musicPlayerUnmutedEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "mute.unmuted":
+ event = open("eventSimulator/musicPlayerMutedEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
elif eventList[i] == "temperature":
#Check which capability
variable = eventVarMap[eventList[i]]