From: rtrimana Date: Mon, 5 Aug 2019 20:41:06 +0000 (-0700) Subject: Reducing and pruning event types. X-Git-Url: http://plrg.eecs.uci.edu/git/?p=smartthings-infrastructure.git;a=commitdiff_plain;h=bf9fb66292b69346c4682b6a885fe761e88c410b Reducing and pruning event types. --- diff --git a/Extractor/ExtractorScript.py b/Extractor/ExtractorScript.py index bd7a320..5ed1a14 100644 --- a/Extractor/ExtractorScript.py +++ b/Extractor/ExtractorScript.py @@ -16,9 +16,6 @@ app2Subscribe = False # e.g., switch has 2 events: on and off eventTypeCounterMap = {'lock': 2, 'unlock' : 1, - 'contact.open' : 1, - 'contact.closed' : 1, - 'tamper.tampered' : 1, 'nfcTouch' : 1, 'app' : 1, 'button' : 2, @@ -26,26 +23,15 @@ eventTypeCounterMap = {'lock': 2, 'water.dry' : 1, 'water.wet' : 1, 'presence' : 2, - 'presence.present' : 1, 'doorState' : 2, 'motion' : 2, - 'motion.active' : 1, - 'motion.inactive' : 1, 'smoke' : 3, - 'smoke.clear' : 1, - 'smoke.detected' : 1, - 'smoke.tested' : 1, 'carbonMonoxide' : 3, - 'carbonMonoxide.clear' : 1, - 'carbonMonoxide.detected' : 1, - 'carbonMonoxide.tested' : 1, 'battery' : 1, 'thermostatMode' : 5, 'thermostatFanMode' : 5, 'thermostatOperatingState' : 5, 'switch' : 2, - 'switch.on' : 1, - 'switch.off' : 1, 'location' : 3, 'mode' : 3, 'sunset' : 1, @@ -53,8 +39,6 @@ eventTypeCounterMap = {'lock': 2, 'sunrise' : 1, 'sunriseTime' : 1, 'acceleration' : 2, - 'acceleration.active' : 1, - 'acceleration.inactive' : 1, 'sleeping' : 2, 'goal' : 1, 'steps' : 1, @@ -78,6 +62,64 @@ eventTypeCounterMap = {'lock': 2, 'coolingSetpoint' : 1, 'thermostatSetpoint' : 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', + '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', + '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'} + def GetToken(f): global readyToReturn global ToReturn @@ -111,6 +153,7 @@ def GetToken(f): def ExtractFunctions(F, appName): global eventList global eventAppList + global eventTypesMap global app1Subscribe global app2Subscribe Temp = GetToken(F) @@ -169,6 +212,10 @@ def ExtractFunctions(F, appName): #print "DEBUG: %s - %s" % (variable, Temp) #print capabilityMap #print "DEBUG: location variable: %s" % Temp + + #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": if Temp not in eventList: eventList.append(Temp) @@ -308,31 +355,8 @@ def ExtractEvents(extractedEvents): extractedEvents.write(line) event.close() elif eventList[i] == "unlock": - #Don't do anything for this case - counter = counter - 1 - elif eventList[i] == "contact.open": - event = open("eventSimulator/contactOpenEvent.groovy", "r") - for line in event: - extractedEvents.write(line) - event.close() - elif eventList[i] == "contact.closed": - event = open("eventSimulator/contactClosedEvent.groovy", "r") - for line in event: - extractedEvents.write(line) - event.close() - elif eventList[i] == "tamper.tampered": - #Write two events subsequently - event = open("eventSimulator/tamperTamperedOpenEvent.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/tamperTamperedClosedEvent.groovy", "r") - for line in event: - extractedEvents.write(line) - event.close() + #Don't do anything for this case + counter = counter - 1 elif eventList[i] == "nfcTouch": event = open("eventSimulator/nfcTouchEvent.groovy", "r") for line in event: @@ -384,16 +408,6 @@ def ExtractEvents(extractedEvents): for line in event: extractedEvents.write(line) event.close() - elif eventList[i] == "water.dry": - event = open("eventSimulator/waterDefaultDryEvent.groovy", "r") - for line in event: - extractedEvents.write(line) - event.close() - elif eventList[i] == "water.wet": - event = open("eventSimulator/waterDefaultWetEvent.groovy", "r") - for line in event: - extractedEvents.write(line) - event.close() elif eventList[i] == "presence": #Check which capability variable = eventVarMap[eventList[i]] @@ -422,11 +436,6 @@ def ExtractEvents(extractedEvents): for line in event: extractedEvents.write(line) event.close() - elif eventList[i] == "presence.present": #Case for Touched event - event = open("eventSimulator/presencePresencePresentEvent.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") @@ -453,16 +462,6 @@ def ExtractEvents(extractedEvents): for line in event: extractedEvents.write(line) event.close() - elif eventList[i] == "motion.active": - event = open("eventSimulator/motionDefaultActiveEvent.groovy", "r") - for line in event: - extractedEvents.write(line) - event.close() - elif eventList[i] == "motion.inactive": - event = open("eventSimulator/motionDefaultInactiveEvent.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") @@ -483,21 +482,6 @@ def ExtractEvents(extractedEvents): for line in event: extractedEvents.write(line) event.close() - elif eventList[i] == "smoke.clear": - event = open("eventSimulator/smokeDefaultClearEvent.groovy", "r") - for line in event: - extractedEvents.write(line) - event.close() - elif eventList[i] == "smoke.detected": - event = open("eventSimulator/smokeDefaultDetectedEvent.groovy", "r") - for line in event: - extractedEvents.write(line) - event.close() - elif eventList[i] == "smoke.tested": - event = open("eventSimulator/smokeDefaultTestedEvent.groovy", "r") - for line in event: - extractedEvents.write(line) - event.close() elif eventList[i] == "carbonMonoxide": #Check which capability variable = eventVarMap[eventList[i]] @@ -536,57 +520,6 @@ def ExtractEvents(extractedEvents): 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]] - if capability == "capability.smokeDetector": - event = open("eventSimulator/smokeCarbonMonoxideDefaultClearEvent.groovy", "r") - elif capability == "capability.carbonMonoxideDetector": - event = open("eventSimulator/carbonMonoxideDefaultClearEvent.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]] - if capability == "capability.smokeDetector": - event = open("eventSimulator/smokeCarbonMonoxideDefaultDetectedEvent.groovy", "r") - elif capability == "capability.carbonMonoxideDetector": - event = open("eventSimulator/carbonMonoxideDefaultDetectedEvent.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]] - if capability == "capability.smokeDetector": - event = open("eventSimulator/smokeCarbonMonoxideDefaultTestedEvent.groovy", "r") - elif capability == "capability.carbonMonoxideDetector": - event = open("eventSimulator/carbonMonoxideDefaultTestedEvent.groovy", "r") - for line in event: - extractedEvents.write(line) - event.close() elif eventList[i] == "battery": #Check which capability variable = eventVarMap[eventList[i]] @@ -746,54 +679,6 @@ def ExtractEvents(extractedEvents): for line in event: extractedEvents.write(line) event.close() - 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]] - #Write two events subsequently - if capability == "capability.switch": - event = open("eventSimulator/switchOnDefaultEvent.groovy", "r") - elif capability == "capability.switchLevel": - event = open("eventSimulator/switchLevelOnDefaultEvent.groovy", "r") - elif capability == "capability.relaySwitch": - event = open("eventSimulator/relaySwitchOnDefaultEvent.groovy", "r") - elif capability == "capability.colorControl": - event = open("eventSimulator/colorControlSwitchOnDefaultEvent.groovy", "r") - elif capability == "capability.colorTemperature": - event = open("eventSimulator/colorTemperatureSwitchOnDefaultEvent.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]] - #Write two events subsequently - if capability == "capability.switch": - event = open("eventSimulator/switchOffDefaultEvent.groovy", "r") - elif capability == "capability.switchLevel": - event = open("eventSimulator/switchLevelOffDefaultEvent.groovy", "r") - elif capability == "capability.relaySwitch": - event = open("eventSimulator/relaySwitchOffDefaultEvent.groovy", "r") - elif capability == "capability.colorControl": - event = open("eventSimulator/colorControlSwitchOffDefaultEvent.groovy", "r") - elif capability == "capability.colorTemperature": - event = open("eventSimulator/colorTemperatureSwitchOffDefaultEvent.groovy", "r") - for line in event: - extractedEvents.write(line) - event.close() elif eventList[i] == "location": #Case for Location event #Write three events subsequently event = open("eventSimulator/locationHomeEvent.groovy", "r") @@ -814,26 +699,6 @@ def ExtractEvents(extractedEvents): for line in event: extractedEvents.write(line) event.close() - elif eventList[i] == "mode": - #Write three events subsequently - event = open("eventSimulator/modeHomeEvent.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/modeAwayEvent.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/modeNightEvent.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: