Adding exclusion check for button as part of direct-direct relationship warning to...
[smartthings-infrastructure.git] / Extractor / ExtractorScript.py
index 1643c43b02ee8e6d758333bc5fd76fe319d785a5..0fa30bad5a28e734e4d8539ca527ff67907de962 100644 (file)
@@ -47,7 +47,7 @@ eventTypeCounterMap =  {'lock': 2,
                                                'saturation' : 1,
                                                'energy' : 1,
                                                'power' : 2,
-                                               'illuminance' : 1,
+                                               'illuminance' : 2,
                                                'humidity' : 2,
                                                'alarm' : 4,
                                                'contact' : 2,
@@ -60,7 +60,21 @@ eventTypeCounterMap =  {'lock': 2,
                                                'heatingSetpoint' : 1,
                                                'coolingSetpoint' : 1,
                                                'thermostatSetpoint' : 1,
-                                                'threeAxis' : 1}
+                                               'threeAxis' : 1,
+                                               'carbonDioxide' : 1,
+                                               'consumableStatus' : 1,
+                                               'pH' : 1,
+                                               'pressure': 1,
+                                               'shock': 1,
+                                               'lqi': 1,
+                                               'rssi': 1,
+                                               'sound': 1,
+                                               'soundPressureLevel' : 1,
+                                               'tamper' : 1,
+                                               'ultravioletIndex': 1,
+                                               'voltage': 1,
+                                               'windowShade': 1,
+                                               'touched': 1}
 
 # Mapping for specific event types
 eventTypesMap =           {'alarm.both': 'alarm',
@@ -311,7 +325,7 @@ def CountEvents():
        #print "DEBUG: eventlist: %d" % len(eventList)
        #print "DEBUG: eventlist: %s" % eventList
        for event in eventList:
-               #print "DEBUG: Event: %s %d" % (event, eventTypeCounterMap[event])
+               print "DEBUG: Event: %s %d" % (event, eventTypeCounterMap[event])
                numOfActualEvents = numOfActualEvents + eventTypeCounterMap[event]
        return numOfActualEvents
 
@@ -462,6 +476,7 @@ def ExtractEvents(extractedEvents):
                                extractedEvents.write(line)
                        event.close()
                elif eventList[i] == "motion":
+                        print("HERE????")
                        #Write two events subsequently
                        event = open("eventSimulator/motionActiveEvent.groovy", "r")                    
                        for line in event:
@@ -824,7 +839,14 @@ def ExtractEvents(extractedEvents):
                                extractedEvents.write(line)
                        event.close()
                elif eventList[i] == "illuminance":
-                       event = open("eventSimulator/illuminanceMeasurementEvent.groovy", "r")
+                       event = open("eventSimulator/illuminanceMeasurementLowEvent.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/illuminanceMeasurementHighEvent.groovy", "r")
                        for line in event:
                                extractedEvents.write(line)
                        event.close()
@@ -1007,6 +1029,71 @@ def ExtractEvents(extractedEvents):
                         for line in event:
                                 extractedEvents.write(line)
                         event.close()
+               elif eventList[i] == "carbonDioxide":
+                       event = open("eventSimulator/carbonDioxideEvent.groovy", "r")
+                       for line in event:
+                               extractedEvents.write(line)
+                       event.close()
+               elif eventList[i] == "consumableStatus":
+                       event = open("eventSimulator/consumableStatusEvent.groovy", "r")
+                       for line in event:
+                               extractedEvents.write(line)
+                       event.close()
+               elif eventList[i] == "pH":
+                       event = open("eventSimulator/pHEvent.groovy", "r")
+                       for line in event:
+                               extractedEvents.write(line)
+                       event.close()
+               elif eventList[i] == "pressure":
+                       event = open("eventSimulator/pressureEvent.groovy", "r")
+                       for line in event:
+                               extractedEvents.write(line)
+                       event.close()
+               elif eventList[i] == "shock":
+                       event = open("eventSimulator/shockEvent.groovy", "r")
+                       for line in event:
+                               extractedEvents.write(line)
+                       event.close()
+               elif eventList[i] == "lqi":
+                       event = open("eventSimulator/lqiEvent.groovy", "r")
+                       for line in event:
+                               extractedEvents.write(line)
+                       event.close()
+               elif eventList[i] == "rssi":
+                       event = open("eventSimulator/rssiEvent.groovy", "r")
+                       for line in event:
+                               extractedEvents.write(line)
+                       event.close()
+               elif eventList[i] == "sound":
+                       event = open("eventSimulator/soundEvent.groovy", "r")
+                       for line in event:
+                               extractedEvents.write(line)
+                       event.close()
+               elif eventList[i] == "soundPressureLevel":
+                       event = open("eventSimulator/soundPressureLevelEvent.groovy", "r")
+                       for line in event:
+                               extractedEvents.write(line)
+                       event.close()
+               elif eventList[i] == "tamper":
+                       event = open("eventSimulator/tamperEvent.groovy", "r")
+                       for line in event:
+                               extractedEvents.write(line)
+                       event.close()
+               elif eventList[i] == "voltage":
+                       event = open("eventSimulator/voltageEvent.groovy", "r")
+                       for line in event:
+                               extractedEvents.write(line)
+                       event.close()
+               elif eventList[i] == "ultravioletIndex":
+                       event = open("eventSimulator/ultravioletIndexEvent.groovy", "r")
+                       for line in event:
+                               extractedEvents.write(line)
+                       event.close()
+               elif eventList[i] == "windowShade":
+                       event = open("eventSimulator/windowShadeEvent.groovy", "r")
+                       for line in event:
+                               extractedEvents.write(line)
+                       event.close()
                        
                ###TODO: Add more events later
                extractedEvents.write("\n\t\t\tbreak\n")
@@ -1019,7 +1106,7 @@ def CheckIfOnlyTouchEvents():
        #This is called Direct-Direct interaction and we do not model-check for this case
        onlyTouchEvents = True
        for item in eventList:
-               if item != "nfcTouch" and item != "app":
+               if item != "nfcTouch" and item != "app" and item != "button":
                        onlyTouchEvents = False
        if onlyTouchEvents is True and app1Subscribe is True and app2Subscribe is True:
                # Write error log file