this.sendEvent = sendEvent
this.deviceNumbers = deviceNumbers
this.batteries = []
+
+ def init = Verify.getIntFromList(30, 50, 70)
+ this.battery = init
def init = Verify.getIntFromList(30, 50, 70)
this.battery = init
this.carbonMonoxide = "tested"
this.carbonMonoxideLatestValue = "tested"
}
+<<<<<<< HEAD
carbonMonoxideDetectors.add(new CarbonMonoxideDetector(id, label, displayName, this.currentCarbonMonoxideValue, this.carbonMonoxideLatestValue))
+=======
+ carbonMonoxideDetectors.add(new CarbonMonoxideDetector(id, label, displayName, this.carbonMonoxide, this.carbonMonoxideLatestValue))
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
}
//By Model Checker
this.sendEvent = sendEvent
this.deviceNumbers = deviceNumbers
this.colorControls = []
+
+ def initHue = Verify.getIntFromList(30, 50, 70)
+ this.hue = initHue
+ def initSat = Verify.getIntFromList(40, 50, 60)
+ this.saturation = initSat
+ def init = Verify.getInt(0,2)
+ if (init == 0) {
+ this.color = "red"
+ } else if (init == 1) {
+ this.color = "green"
+ } else {
+ this.color = "blue"
+ }
def initHue = Verify.getIntFromList(30, 50, 70)
this.hue = initHue
this.timers = new SimulatedTimer()
this.deviceNumbers = deviceNumbers
this.doorControls = []
+<<<<<<< HEAD
+=======
+
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
def init = Verify.getBoolean()
if (init) {
this.doorState = "closed"
this.sendEvent = sendEvent
this.deviceNumbers = deviceNumbers
this.energyMeters = []
+<<<<<<< HEAD
def init = Verify.getIntFromList(30, 50, 70)
this.energy = init
+=======
+
+ def init = Verify.getIntFromList(30, 50, 70)
+ this.energy = init
+
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
energyMeters.add(new EnergyMeter(id, label, displayName, this.energy))
}
}
break
case "enum":
+<<<<<<< HEAD
+=======
+ def randomVariable = Math.abs(new Random().nextInt() % 2)
+ def modes = ["Yes", "No"]
+ //def userInput = modes[randomVariable]
+ //def modes = metaData['options']
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
if (metaData['options'] != null)
modes = metaData['options']
else // If it is not named 'options' then it is captured as 'metadata'
onlyTouchEvents = False
if onlyTouchEvents is True and app1Subscribe is True and app2Subscribe is True:
raise Exception("\n\nDirect-Direct Interaction detected: we are skipping this pair...\n\n")
+<<<<<<< HEAD
+=======
+
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
#Extract objects to call functions from App1
F1 = open("Extractor/App1/App1.groovy", "r")
extractedFunctionsApp1 = open("Extractor/App1/extractedFunctionsApp1.groovy", "w+")
Extractor.close()
F2.close()
os.system("groovy -classpath lib/jpf.jar Extractor/extractorFile.groovy")
+<<<<<<< HEAD
+=======
+
+
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
@Field def appObject = new Touched(sendEvent, 0)
//Create a global list for events
//@Field def evt = []
+<<<<<<< HEAD
//Global Object for class AtomicState!
@Field def atomicState = new AtomicState()
+=======
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
//Global Object for class Touch Sensor!
@Field def touchSensorObject = new NfcTouch(sendEvent, 1)
//Global Object for class switch!
for (int i = 0;i < app2.eventList.size();i++) {
if (app2.eventList[i] == name) {
def event = new Event(value, name, deviceId, descriptionText, displayed, linkText, linkText, isStateChange, unit, data)
+<<<<<<< HEAD
+=======
+ //evt.add(event)
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
app2.functionList[i](event)
}
}
for (int i = 0;i < app1.eventList.size();i++) {
if (app1.eventList[i] == name) {
def event = new Event(value, name, deviceId, descriptionText, displayed, linkText, linkText, isStateChange, unit, data)
+<<<<<<< HEAD
+=======
+ //evt.add(event)
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
app1.functionList[i](event)
}
}
+<<<<<<< HEAD
+=======
+
+
+
+
+
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
this.sendEvent = sendEvent
this.deviceNumbers = deviceNumbers
this.musicPlayers = []
+
+ def initLevel = Verify.getIntFromList(10, 20, 30)
+ this.level = initLevel
+ def initTrack = Verify.getIntFromList(1, 2, 3)
+ this.trackNumber = initTrack
+ def initMute = Verify.getBoolean()
+ if (initMute) {
+ this.mute = "unmuted"
+ } else {
+ this.mute = "mute"
+ }
+ def initStatus = Verify.getBoolean()
+ if (initStatus) {
+ this.status = "pause"
+ } else {
+ this.status = "play"
+ }
+ def initTrackData = Verify.getBoolean()
+ if (initTrackData) {
+ this.trackData = "someTrack"
+ } else {
+ this.trackData = "someOtherTrack"
+ }
+ def initTrackDesc = Verify.getBoolean()
+ if (initTrackDesc) {
+ this.trackDescription = "someDescriptions"
+ } else {
+ this.trackDescription = "someOtherDescriptions"
+ }
def initLevel = Verify.getIntFromList(10, 20, 30)
this.level = initLevel
Out.write("\tapp1.installed()\n")
Out.write("\tapp2.installed()\n")
Out.write("} else {\n")
+<<<<<<< HEAD
Out.write("\tapp2.installed()\n")
Out.write("\tapp1.installed()\n")
+=======
+Out.write("\tapp1.installed()\n")
+Out.write("\tapp2.installed()\n")
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
Out.write("}\n\n")
for line in eventSimulator:
Out.write(line)
this.timers = new SimulatedTimer()
this.deviceNumbers = deviceNumbers
this.switches = []
+
+ def initLevel = Verify.getIntFromList(30, 50, 70)
+ this.currentLevel = initLevel
+ def init = Verify.getBoolean()
+ if (init) {
+ this.switchState = "off"
+ this.currentSwitch = "off"
+ this.switchLatestValue = "off"
+ } else {
+ this.switchState = "on"
+ this.currentSwitch = "on"
+ this.switchLatestValue = "on"
+ }
def initLevel = Verify.getIntFromList(30, 50, 70)
this.currentLevel = initLevel
this.heatingSetpoint = initHeatingSetpoint
def initThermostatSetpoint = Verify.getIntFromList(50, 60, 70)
+<<<<<<< HEAD
this.thermostatSetpoint = initThermostatSetpoint
+=======
+ this.currentHeatingSetpoint = initThermostatSetpoint
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
def initFanMode = Verify.getInt(0,4)
if (initFanMode == 0) {
--- /dev/null
+its-too-cold.groovy
+its-too-hot.groovy
+virtual-thermostat.groovy
\ No newline at end of file
--- /dev/null
+lock-it-at-a-specific-time.groovy
+#lock-it-when-i-leave.groovy
+#make-it-so.groovy
+nfc-tag-toggle.groovy
--- /dev/null
+camera-power-scheduler.groovy
+cameras-on-when-im-away.groovy
\ No newline at end of file
--- /dev/null
+foscam-connect.groovy
+opent2t-smartapp-test.groovy
+photo-burst-when.groovy
\ No newline at end of file
--- /dev/null
+03-sms-to-hue.groovy
+door-state-to-color-light-hue-bulb.groovy
+hue-minimote.groovy
+hue-mood-lighting.groovy
+jenkins-notifier.groovy
+notify-me-with-hue.groovy
+step-notifier.groovy
+tweet-to-hue.groovy
+BetterLaundryMonitor.groovy
+Hue Party Mode.groovy
+mini-hue-controller.groovy
+hue-lights-and-groups-and-scenes-oh-my.groovy
+loft.groovy
\ No newline at end of file
--- /dev/null
+brighten-dark-places.groovy
+brighten-my-path.groovy
+darken-behind-me.groovy
+forgiving-security.groovy
+good-night-house.groovy
+hall-light-welcome-home.groovy
+hue-minimote.groovy
+laundry-monitor.groovy
+let-there-be-dark.groovy
+let-there-be-light.groovy
+Light_Rule.groovy
+light-follows-me.groovy
+lighting-director.groovy
+lights-off-with-no-motion-and-presence.groovy
+light-up-the-night.groovy
+mood-cube.groovy
+my-light-toggle.groovy
+smart-light-timer-x-minutes-unless-already-on.groovy
+smart-nightlight.groovy
+smart-security.groovy
+step-notifier.groovy
+turn-on-at-sunset.groovy
+turn-on-before-sunset.groovy
+turn-on-by-zip-code.groovy
+turn-it-on-when-im-here.groovy
+turn-it-on-when-it-opens.groovy
+turn-off-with-motion.groovy
+turn-on-only-if-i-arrive-after-sunset.groovy
+undead-early-warning.groovy
+vacation-lighting-director.groovy
+ecobeeAwayFromHome.groovy
+FireCO2Alarm.groovy
\ No newline at end of file
--- /dev/null
+#beacon-control.groovy
+enhanced-auto-lock-door.groovy
+good-night-house.groovy
+#initial-state-event-streamer.groovy
+lock-it-at-a-specific-time.groovy
+lock-it-when-i-leave.groovy
+make-it-so.groovy
+nfc-tag-toggle.groovy
+#single-button-controller.groovy
+#smart-auto-lock-unlock.groovy
+unlock-it-when-i-arrive.groovy
+auto-lock-door.smartapp.groovy
+#buffered-event-sender.groovy
+#ecobeeAwayFromHome.groovy
+#FireCO2Alarm.groovy
+#groveStreams.groovy
+#influxdb-logger.groovy
+#initial-state-event-sender.groovy
+#initialstate-smart-app-v1.2.0.groovy
+#NotifyIfLeftUnlocked.groovy
+#unbuffered-event-sender.groovy
\ No newline at end of file
--- /dev/null
+initial-state-event-streamer.groovy
+buffered-event-sender.groovy
+influxdb-logger.groovy
+initialstate-smart-app-v1.2.0.groovy
+unbuffered-event-sender.groovy
\ No newline at end of file
--- /dev/null
+color-coordinator.groovy
+initial-state-event-streamer.groovy
+medicine-management-contact-sensor.groovy
+medicine-management-temp-motion.groovy
+buffered-event-sender.groovy
+circadian-daylight.groovy
+influxdb-logger.groovy
+initial-state-event-sender.groovy
+initialstate-smart-app-v1.2.0.groovy
+unbuffered-event-sender.groovy
+hue-minimote.groovy
\ No newline at end of file
--- /dev/null
+initial-state-event-streamer.groovy
+buffered-event-sender.groovy
+initial-state-event-sender.groovy
+initialstate-smart-app-v1.2.0.groovy
+unbuffered-event-sender.groovy
\ No newline at end of file
--- /dev/null
+BetterLaundryMonitor.groovy
+FireCO2Alarm.groovy
+WindowOrDoorOpen.groovy
\ No newline at end of file
--- /dev/null
+01-control-lights-and-locks-with-contact-sensor.groovy
+beacon-control.groovy
+big-turn-off.groovy
+big-turn-on.groovy
+control-switch-with-contact-sensor.groovy
+double-tap.groovy
+energy-saver.groovy
+gentle-wake-up.groovy
+good-night.groovy
+humidity-alert.groovy
+jenkins-notifier.groovy
+make-it-so.groovy
+monitor-on-sense.groovy
+nfc-tag-toggle.groovy
+once-a-day.groovy
+power-allowance.groovy
+rise-and-shine.groovy
+smart-turn-it-on.groovy
+sunrise-sunset.groovy
+the-big-switch.groovy
+turn-it-on-for-5-minutes.groovy
+BetterLaundryMonitor.groovy
+garage-switch.groovy
+loft.groovy
\ No newline at end of file
--- /dev/null
+initial-state-event-streamer.groovy
+keep-me-cozy.groovy
+keep-me-cozy-ii.groovy
+make-it-so.groovy
+talking-alarm-clock.groovy
+thermostat.groovy
+thermostat-auto-off.groovy
+thermostat-mode-director.groovy
+thermostat-window-check.groovy
+whole-house-fan.groovy
+buffered-event-sender.groovy
+FireCO2Alarm.groovy
+groveStreams.groovy
+hvac-auto-off.smartapp.groovy
+influxdb-logger.groovy
+initial-state-event-sender.groovy
+initialstate-smart-app-v1.2.0.groovy
+unbuffered-event-sender.groovy
+WindowOrDoorOpen.groovy
\ No newline at end of file
--- /dev/null
+close-the-valve.groovy
+initial-state-event-streamer.groovy
+buffered-event-sender.groovy
+influxdb-logger.groovy
+initial-state-event-sender.groovy
+initialstate-smart-app-v1.2.0.groovy
+unbuffered-event-sender.groovy
\ No newline at end of file
--- /dev/null
+auto-humidity-vent.groovy
+smart-home-ventilation.groovy
+whole-house-fan.groovy
\ No newline at end of file
--- /dev/null
+beacon-control.groovy
+bon-voyage.groovy
+bose-soundtouch-control.groovy
+bright-when-dark-and-or-bright-after-sunset.groovy
+button-controller.groovy
+forgiving-security.groovy
+gentle-wake-up.groovy
+good-night.groovy
+good-night-house.groovy
+greetings-earthling.groovy
+hello-home-phrase-director.groovy
+hue-mood-lighting.groovy
+keep-me-cozy.groovy
+lighting-director.groovy
+make-it-so.groovy
+nobody-home.groovy
+notify-me-with-hue.groovy
+rise-and-shine.groovy
+routine-director.groovy
+scheduled-mode-change.groovy
+simple-sync-trigger.groovy
+single-button-controller.groovy
+smart-alarm.groovy
+smart-home-ventilation.groovy
+smart-security.groovy
+sonos-music-modes.groovy
+speaker-control.groovy
+speaker-mood-music.groovy
+speaker-notify-with-sound.groovy
+speaker-weather-forecast.groovy
+sunrise-sunset.groovy
+switch-activates-home-phrase-or-mode.groovy
+switch-changes-mode.groovy
+talking-alarm-clock.groovy
+thermostat-mode-director.groovy
+vacation-lighting-director.groovy
+working-from-home.groovy
+button-controller-for-hlgs.groovy
+circadian-daylight.groovy
+ecobeeChangeMode.groovy
+ecobeeGenerateWeeklyStats.groovy
+ecobeeManageClimate.groovy
+ecobeeResumeProg.groovy
+MonitorAndSetEcobeeHumidity.groovy
+SmartPresence.groovy
+Switches.groovy
+WorkingFromHome.groovy
\ No newline at end of file
--- /dev/null
+brighten-dark-places.groovy
+bright-when-dark-and-or-bright-after-sunset.groovy
+lighting-director.groovy
+light-up-the-night.groovy
+smart-nightlight.groovy
\ No newline at end of file
--- /dev/null
+brighten-dark-places.groovy
+brighten-my-path.groovy
+darken-behind-me.groovy
+forgiving-security.groovy
+good-night-house.groovy
+hall-light-welcome-home.groovy
+hue-minimote.groovy
+laundry-monitor.groovy
+let-there-be-dark.groovy
+let-there-be-light.groovy
+Light_Rule.groovy
+light-follows-me.groovy
+lighting-director.groovy
+lights-off-with-no-motion-and-presence.groovy
+light-up-the-night.groovy
+mood-cube.groovy
+my-light-toggle.groovy
+smart-light-timer-x-minutes-unless-already-on.groovy
+smart-nightlight.groovy
+smart-security.groovy
+step-notifier.groovy
+turn-on-at-sunset.groovy
+turn-on-before-sunset.groovy
+turn-on-by-zip-code.groovy
+turn-it-on-when-im-here.groovy
+turn-it-on-when-it-opens.groovy
+turn-off-with-motion.groovy
+turn-on-only-if-i-arrive-after-sunset.groovy
+undead-early-warning.groovy
+vacation-lighting-director.groovy
+ecobeeAwayFromHome.groovy
+FireCO2Alarm.groovy
+bright-when-dark-and-or-bright-after-sunset.groovy
+03-sms-to-hue.groovy
+color-coordinator.groovy
+door-state-to-color-light-hue-bulb.groovy
+hue-mood-lighting.groovy
+medicine-management-contact-sensor.groovy
+medicine-management-temp-motion.groovy
+notify-me-with-hue.groovy
+tweet-to-hue.groovy
+gentle-wake-up.groovy
\ No newline at end of file
--- /dev/null
+coffee-after-shower.groovy
+neato-connect.groovy
\ No newline at end of file
--- /dev/null
+bose-soundtouch-control.groovy
+brighten-my-path.groovy
+bright-when-dark-and-or-bright-after-sunset.groovy
+curling-iron.groovy
+darken-behind-me.groovy
+elder-care-daily-routine.groovy
+elder-care-slip-fall.groovy
+forgiving-security.groovy
+good-night.groovy
+hue-mood-lighting.groovy
+light-follows-me.groovy
+lights-off-with-no-motion-and-presence.groovy
+my-light-toggle.groovy
+notify-me-when.groovy
+notify-me-with-hue.groovy
+photo-burst-when.groovy rise-and-shine.groovy
+safe-watch.groovy
+send-ham-bridge-command-when.groovy
+simple-sync-trigger.groovy
+smart-alarm.groovy
+smart-light-timer-x-minutes-unless-already-on.groovy
+smart-nightlight.groovy smart-security.groovy
+speaker-control.groovy
+speaker-mood-music.groovy
+speaker-notify-with-sound.groovy
+speaker-weather-forecast.groovy
+text-me-when-theres-motion-and-im-not-here.groovy
+the-flasher.groovy
+turn-off-with-motion.groovy
+ubi.groovy
+virtual-thermostat.groovy
+camera-motion.groovy
+ecobeeAwayFromHome.groovy
+ecobeeResumeProg.groovy
+loft.groovy
+MonitorAndSetEcobeeTemp.groovy
+it-moved.groovy
\ No newline at end of file
--- /dev/null
+bose-soundtouch-control.groovy
+forgiving-security.groovy
+ifttt.groovy
+initial-state-event-streamer.groovy
+logitech-harmony-connect.groovy
+smart-alarm.groovy
+smart-security.groovy
+initial-state-event-streamer.groovy
+simple-control.groovy
+single-button-controller.groovy
+sonos-music-modes.groovy
+sonos-remote-control.groovy
+step-notifier.groovy
+talking-alarm-clock.groovy
+buffered-event-sender.groovy
+influxdb-logger.groovy
+initialstate-smart-app-v1.2.0.groovy
+Sonos.groovy
+unbuffered-event-sender.groovy
+BetterLaundryMonitor.groovy
+FireCO2Alarm.groovy
+loft.groovy
+WindowOrDoorOpen.groovy
\ No newline at end of file
--- /dev/null
+influxdb-logger.groovy
\ No newline at end of file
--- /dev/null
+bose-soundtouch-control.groovy
+close-the-valve.groovy
+dry-the-wetspot.groovy
+flood-alert.groovy
+hue-mood-lighting.groovy
+notify-me-when.groovy
+notify-me-with-hue.groovy
+speaker-control.groovy
+speaker-mood-music.groovy
+speaker-notify-with-sound.groovy
+speaker-weather-forecast.groovy
\ No newline at end of file
--- /dev/null
+close-the-valve.groovy
+sprayer-controller-2.groovy
\ No newline at end of file
accelerationSensorObject.setValue([name: "acceleration", value: "active", deviceId: "accelerationSensorID0", descriptionText: "",
+<<<<<<< HEAD
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+=======
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: [info: "info"]])
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
accelerationSensorObject.setValue([name: "acceleration", value: "inactive", deviceId: "accelerationSensorID0", descriptionText: "",
+<<<<<<< HEAD
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+=======
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: [info: "info"]])
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
+<<<<<<< HEAD
beaconSensorObject.setValue([name: "presence", value: "not present", deviceId: "beaconSensorID0", descriptionText: "",
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"presence":"0","dni":"mobile0"}'])
+=======
+ beaconSensorObject.setValue([name: "beacon", value: "not present", deviceId: "beaconSensorID0", descriptionText: "",
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: [info: "info"]])
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
+<<<<<<< HEAD
beaconSensorObject.setValue([name: "presence", value: "present", deviceId: "beaconeSensorID0", descriptionText: "",
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"presence":"1","dni":"mobile0"}'])
+=======
+ beaconSensorObject.setValue([name: "beacon", value: "present", deviceId: "beaconeSensorID0", descriptionText: "",
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: [info: "info"]])
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
carbonMonoxideDetectorObject.setValue([name: "carbonMonoxide", value: "clear", deviceId: "carbonMonoxideDetectorID0", descriptionText: "",
+<<<<<<< HEAD
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+=======
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: [info: "info"]])
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
carbonMonoxideDetectorObject.setValue([name: "carbonMonoxide", value: "tested", deviceId: "carbonMonoxideDetectorID0", descriptionText: "",
+<<<<<<< HEAD
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+=======
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: [info: "info"]])
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
carbonMonoxideDetectorObject.setValue([name: "carbonMonoxide", value: "tested", deviceId: "carbonMonoxideDetectorID0", descriptionText: "",
+<<<<<<< HEAD
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+=======
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: [info: "info"]])
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
colorControlObject.setValue([name: "color", value: "red", deviceId: "colorControlID0", descriptionText: "",
+<<<<<<< HEAD
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+=======
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: [info: "info"]])
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
colorControlObject.setValue([name: "hue", value: "50", deviceId: "colorControlID0", descriptionText: "",
+<<<<<<< HEAD
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+=======
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: [info: "info"]])
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
colorControlObject.setValue([name: "saturation", value: "50", deviceId: "colorControlID0", descriptionText: "",
+<<<<<<< HEAD
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+=======
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: [info: "info"]])
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
smokeDetectorObject.setValue([name: "carbonMonoxide", value: "clear", deviceId: "smokeDetectorID0", descriptionText: "",
+<<<<<<< HEAD
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+=======
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: [info: "info"]])
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
smokeDetectorObject.setValue([name: "carbonMonoxide", value: "detected", deviceId: "smokeDetectorID0", descriptionText: "",
+<<<<<<< HEAD
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+=======
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: [info: "info"]])
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
smokeDetectorObject.setValue([name: "carbonMonoxide", value: "tested", deviceId: "smokeDetectorID0", descriptionText: "",
+<<<<<<< HEAD
displayed: true, linkText: "", isStateChange: false, unit: "", data: '{"info": "info"}'])
+=======
+ displayed: true, linkText: "", isStateChange: false, unit: "", data: [info: "info"]])
+>>>>>>> e378d6a65b25030f8914dc97f04b81ddff351d9c
#!/bin/bash
-python ModelCheck.py ../jpf-core/ ../logs/ ../smartapps/ ../smartapps/appList1
+
+# Device conflict
+#python ModelCheck.py ../jpf-core/ ../logs/ ../smartapps/ ../smartapps/appList1
+
+# Physical conflict
+python ModelCheck.py ../jpf-core/ ../logs/ ../smartapps/ appLists/physical-interaction/soundsensorAppList appLists/physical-interaction/soundAppList
+python ModelCheck.py ../jpf-core/ ../logs/ ../smartapps/ appLists/physical-interaction/motionsensorAppList appLists/physical-interaction/motionAppList
+python ModelCheck.py ../jpf-core/ ../logs/ ../smartapps/ appLists/physical-interaction/illuminancesensorAppList appLists/physical-interaction/lightAppList
+python ModelCheck.py ../jpf-core/ ../logs/ ../smartapps/ appLists/physical-interaction/watersensorAppList appLists/physical-interaction/watervalveAppList
\ No newline at end of file