1 ////////////////////////////////////////
3 import groovy.transform.Field
8 import ContactSensor.ContactSensor
9 import ContactSensor.ContactSensors
10 import DoorControl.DoorControl
11 import DoorControl.DoorControls
14 import Thermostat.Thermostat
15 import Thermostat.Thermostats
17 import Switch.Switches
18 import PresenceSensor.PresenceSensor
19 import PresenceSensor.PresenceSensors
21 import Location.LocationVar
22 import Location.Phrase
23 import appTouch.Touched
24 import NfcTouch.NfcTouch
25 import AeonKeyFob.AeonKeyFob
26 import AeonKeyFob.AeonKeyFobs
27 import MusicPlayer.MusicPlayer
28 import MusicPlayer.MusicPlayers
29 import MotionSensor.MotionSensor
30 import MotionSensor.MotionSensors
31 import ImageCapture.ImageCapture
32 import ImageCapture.ImageCaptures
33 import SmokeDetector.SmokeDetector
34 import SmokeDetector.SmokeDetectors
37 import SpeechSynthesis.SpeechSynthesis
38 import SpeechSynthesis.SpeechSynthesises
39 import AccelerationSensor.AccelerationSensor
40 import AccelerationSensor.AccelerationSensors
41 import Battery.Battery
42 import Battery.Batteries
43 import BeaconSensor.BeaconSensor
44 import BeaconSensor.BeaconSensors
45 import CarbonMonoxideDetector.CarbonMonoxideDetector
46 import CarbonMonoxideDetector.CarbonMonoxideDetectors
47 import ColorControl.ColorControl
48 import ColorControl.ColorControls
49 import EnergyMeter.EnergyMeter
50 import EnergyMeter.EnergyMeters
51 import IlluminanceMeasurement.IlluminanceMeasurement
52 import IlluminanceMeasurement.IlluminanceMeasurements
53 import PowerMeter.PowerMeter
54 import PowerMeter.PowerMeters
55 import RelativeHumidityMeasurement.RelativeHumidityMeasurement
56 import RelativeHumidityMeasurement.RelativeHumidityMeasurements
57 import RelaySwitch.RelaySwitch
58 import RelaySwitch.RelaySwitches
59 import SleepSensor.SleepSensor
60 import SleepSensor.SleepSensors
61 import StepSensor.StepSensor
62 import StepSensor.StepSensors
63 import SwitchLevel.SwitchLevel
64 import SwitchLevel.SwitchLevels
65 import TemperatureMeasurement.TemperatureMeasurement
66 import TemperatureMeasurement.TemperatureMeasurements
67 import WaterSensor.WaterSensor
68 import WaterSensor.WaterSensors
71 import MobilePresence.MobilePresence
72 import MobilePresence.MobilePresences
73 import Timer.SimulatedTimer
76 @Field def location = new LocationVar()
77 //Settings variable defined to settings on purpose
78 @Field def settings = [app: "app"]
79 //Global variable for state[mode]
80 @Field def state = [home:[],away:[],night:[]]
81 //Create a global logger object for methods
82 @Field def log = new Logger()
83 //Create a global variable for optional property
84 @Field def optional = false //by default for now
85 //Global Object for class AtomicState!
86 @Field def atomicState = [history: "15:00"]
89 //Global variables for files
90 @Field File globalObjects = new File("Extractor/globalObjects.groovy")
91 @Field File extractedObjectsApp1 = new File("Extractor/App1/extractedObjectsApp1.groovy")
92 @Field File extractedObjectsApp2 = new File("Extractor/App2/extractedObjectsApp2.groovy")
93 @Field File extractedObjectsConstructorApp1 = new File("Extractor/App1/extractedObjectsConstructorApp1.groovy")
94 @Field File extractedObjectsConstructorApp2 = new File("Extractor/App2/extractedObjectsConstructorApp2.groovy")
99 globalObjects.write("")
100 extractedObjectsApp1.write("")
101 extractedObjectsConstructorApp1.write("")
102 } else if (App == "App2") {
103 extractedObjectsApp2.write("")
104 extractedObjectsConstructorApp2.write("")
109 //Some of methods-May be needed even in install
110 /////////////////////////////////////////////////////////////////////
111 def timeToday(String time, Object timeZone) {
112 def timeOfDay = new Date()
113 def _inputTime = time.split(':')
114 def inputTime = Integer.parseInt(_inputTime[0])*3600+Integer.parseInt(_inputTime[1])*60+1564191100415
115 timeOfDay.time = inputTime
122 //Global Object for class Touch Sensor!
123 @Field touchSensorObjects = 0
124 @Field def touchSensorObject0
125 @Field def touchSensorObject1
126 @Field def touchSensorObject2
127 //Global Object for class switch!
128 @Field switchObjects = 0
129 @Field def switchObject0
130 @Field def switchObject1
131 @Field def switchObject2
132 //Global Object for class lock!
133 @Field lockObjects = 0
134 @Field def lockObject0
135 @Field def lockObject1
136 @Field def lockObject2
137 //Global Object for class door control!
138 @Field doorControlObjects = 0
139 @Field def doorControlObject0
140 @Field def doorControlObject1
141 @Field def doorControlObject2
142 //Global Object for class contact sensor!
143 @Field contactObjects = 0
144 @Field def contactObject0
145 @Field def contactObject1
146 @Field def contactObject2
147 //Global Object for class presence sensor!
148 @Field presenceSensorObjects = 0
149 @Field def presenceSensorObject0
150 @Field def presenceSensorObject1
151 @Field def presenceSensorObject2
152 //Global Object for class thermostat!
153 @Field thermostatObjects = 0
154 @Field def thermostatObject0
155 @Field def thermostatObject1
156 @Field def thermostatObject2
157 //Global Object for class music player!
158 @Field musicPlayerObjects = 0
159 @Field def musicPlayerObject0
160 @Field def musicPlayerObject1
161 @Field def musicPlayerObject2
162 //Global Object for class aeon key fob!
163 @Field aeonKeyFobObjects = 0
164 @Field def aeonKeyFobObject0
165 @Field def aeonKeyFobObject1
166 @Field def aeonKeyFobObject2
167 //Global Object for class motion sensor!
168 @Field motionSensorObjects = 0
169 @Field def motionSensorObject0
170 @Field def motionSensorObject1
171 @Field def motionSensorObject2
172 //Global Object for class image capture!
173 @Field imageCaptureObjects = 0
174 @Field def imageCaptureObject0
175 @Field def imageCaptureObject1
176 @Field def imageCaptureObject2
177 //Global Object for class smoke detector!
178 @Field smokeDetectorObjects = 0
179 @Field def smokeDetectorObject0
180 @Field def smokeDetectorObject1
181 @Field def smokeDetectorObject2
182 //Global Object for class alarm!
183 @Field alarmObjects = 0
184 @Field def alarmObject0
185 @Field def alarmObject1
186 @Field def alarmObject2
187 //Global Object for class speech synthesis!
188 @Field speechSynthesisObjects = 0
189 @Field def speechSynthesisObject0
190 @Field def speechSynthesisObject1
191 @Field def speechSynthesisObject2
192 //Global Object for class acceleration sensor!
193 @Field accelerationSensorObjects = 0
194 @Field def accelerationSensorObject0
195 @Field def accelerationSensorObject1
196 @Field def accelerationSensorObject2
197 //Global Object for class battery!
198 @Field batteryObjects = 0
199 @Field def batteryObject0
200 @Field def batteryObject1
201 @Field def batteryObject2
202 //Global Object for class beacon sensor!
203 @Field beaconSensorObjects = 0
204 @Field def beaconSensorObject0
205 @Field def beaconSensorObject1
206 @Field def beaconSensorObject2
207 //Global Object for class carbon monoxide detector!
208 @Field carbonMonoxideDetectorObjects = 0
209 @Field def carbonMonoxideDetectorObject0
210 @Field def carbonMonoxideDetectorObject1
211 @Field def carbonMonoxideDetectorObject2
212 //Global Object for class color control!
213 @Field colorControlObjects = 0
214 @Field def colorControlObject0
215 @Field def colorControlObject1
216 @Field def colorControlObject2
217 //Global Object for class energy meter!
218 @Field energyMeterObjects = 0
219 @Field def energyMeterObject0
220 @Field def energyMeterObject1
221 @Field def energyMeterObject2
222 //Global Object for class energy meter!
223 @Field illuminanceMeasurementObjects = 0
224 @Field def illuminanceMeasurementObject0
225 @Field def illuminanceMeasurementObject1
226 @Field def illuminanceMeasurementObject2
227 //Global Object for class power meter!
228 @Field powerMeterObjects = 0
229 @Field def powerMeterObject0
230 @Field def powerMeterObject1
231 @Field def powerMeterObject2
232 //Global Object for class power meter!
233 @Field humidityMeasurementObjects = 0
234 @Field def humidityMeasurementObject0
235 @Field def humidityMeasurementObject1
236 @Field def humidityMeasurementObject2
237 //Global Object for class relay switch!
238 @Field relaySwitchObjects = 0
239 @Field def relaySwitchObject0
240 @Field def relaySwitchObject1
241 @Field def relaySwitchObject2
242 //Global Object for class sleep sensor!
243 @Field sleepSensorObjects = 0
244 @Field def sleepSensorObject0
245 @Field def sleepSensorObject1
246 @Field def sleepSensorObject2
247 //Global Object for class sleep sensor!
248 @Field stepSensorObjects = 0
249 @Field def stepSensorObject0
250 @Field def stepSensorObject1
251 @Field def stepSensorObject2
252 //Global Object for class switch level!
253 @Field switchLevelObjects = 0
254 @Field def switchLevelObject0
255 @Field def switchLevelObject1
256 @Field def switchLevelObject2
257 //Global Object for class temperature measurement!
258 @Field temperatureMeasurementObjects = 0
259 @Field def temperatureMeasurementObject0
260 @Field def temperatureMeasurementObject1
261 @Field def temperatureMeasurementObject2
262 //Global Object for class temperature measurement!
263 @Field waterSensorObjects = 0
264 @Field def waterSensorObject0
265 @Field def waterSensorObject1
266 @Field def waterSensorObject2
267 //Global Object for class valve!
268 @Field valveObjects = 0
269 @Field def valveObject0
270 @Field def valveObject1
271 @Field def valveObject2
272 //Global Object for class valve!
273 @Field mobilePresenceObjects = 0
274 @Field def mobilePresenceObject0
275 @Field def mobilePresenceObject1
276 @Field def mobilePresenceObject2
282 @Field modeVariables = 0
290 @Field numberVariables = 0
298 @Field decimalVariables = 0
306 @Field timeVariables = 0
314 @Field enumVariables = 0
322 @Field phoneVariables = 0
330 @Field contactVariables = 0
338 @Field textVariables = 0
346 @Field boolVariables = 0
354 /////Input Methods/////
356 def input(String name, String type) {
357 LinkedHashMap metaData = []
358 metaData.put('name',name)
359 metaData.put('type',type)
363 //input "","",linkedHashMap
364 def input(LinkedHashMap metaData, String name, String type) {
365 metaData.put('name',name)
366 metaData.put('type',type)
370 //input "", "", linkedHashMap, Closure
371 def input(LinkedHashMap metaData, String name, String type, Closure Input) {
372 metaData.put('name',name)
373 metaData.put('type',type)
378 //input linkedHashMap
379 def input(LinkedHashMap metaData) {
380 if (metaData.containsKey('title')) {
381 println metaData['title']
383 if (metaData.containsKey('options')) {
384 println "Options: "+metaData['options']
387 switch(metaData['type']) {
388 case "capability.lock":
389 globalObjects.eachLine { line ->
390 if(line.contains("lockObject")){
396 globalObjects.append("@Field def lockObject = new Locks(sendEvent, 1)\n")
398 if (lockObjects == 0) {
399 lockObject0 = metaData['name']
400 this[lockObject0] = new Locks({}, 1)
401 } else if (lockObjects == 1) {
402 lockObject1 = metaData['name']
403 this[lockObject1] = new Locks({}, 1)
404 } else if (lockObjects == 2) {
405 lockObject2 = metaData['name']
406 this[lockObject2] = new Locks({}, 1)
409 lockObjects=lockObjects+1
411 settings.put(metaData['name'], new Locks({}, 1))
414 extractedObjectsApp1.append("//Object for class lock!\n")
415 extractedObjectsApp1.append("def "+metaData['name']+"\n")
416 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.lockObject\n")
418 extractedObjectsApp2.append("//Object for class lock!\n")
419 extractedObjectsApp2.append("def "+metaData['name']+"\n")
420 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.lockObject\n")
423 case "capability.alarm":
424 globalObjects.eachLine { line ->
425 if(line.contains("alarmObject")){
431 globalObjects.append("@Field def alarmObject = new Alarms(sendEvent, 1)\n")
433 if (alarmObjects == 0) {
434 alarmObject0 = metaData['name']
435 this[alarmObject0] = new Alarms({}, 1)
436 } else if (alarmObjects == 1) {
437 alarmObject1 = metaData['name']
438 this[alarmObject1] = new Alarms({}, 1)
439 } else if (alarmObjects == 2) {
440 alarmObject2 = metaData['name']
441 this[alarmObject2] = new Alarms({}, 1)
444 alarmObjects=alarmObjects+1
446 settings.put(metaData['name'], new Alarms({}, 1))
449 extractedObjectsApp1.append("//Object for class alarm!\n")
450 extractedObjectsApp1.append("def "+metaData['name']+"\n")
451 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.alarmObject\n")
453 extractedObjectsApp2.append("//Object for class alarm!\n")
454 extractedObjectsApp2.append("def "+metaData['name']+"\n")
455 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.alarmObject\n")
458 case "capability.battery":
459 globalObjects.eachLine { line ->
460 if(line.contains("batteryObject")){
466 globalObjects.append("@Field def batteryObject = new Batteries(sendEvent, 1)\n")
468 if (batteryObjects == 0) {
469 batteryObject0 = metaData['name']
470 this[batteryObject0] = new Batteries({}, 1)
471 } else if (batteryObjects == 1) {
472 batteryObject1 = metaData['name']
473 this[batteryObject1] = new Batteries({}, 1)
474 } else if (batteryObjects == 2) {
475 batteryObject2 = metaData['name']
476 this[batteryObject2] = new Batteries({}, 1)
479 batteryObjects=batteryObjects+1
481 settings.put(metaData['name'], new Batteries({}, 1))
484 extractedObjectsApp1.append("//Object for class Battery!\n")
485 extractedObjectsApp1.append("def "+metaData['name']+"\n")
486 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.batteryObject\n")
488 extractedObjectsApp2.append("//Object for class Battery!\n")
489 extractedObjectsApp2.append("def "+metaData['name']+"\n")
490 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.batteryObject\n")
493 case "capability.beacon":
494 globalObjects.eachLine { line ->
495 if(line.contains("beaconSensorObject")){
501 globalObjects.append("@Field def beaconSensorObject = new BeaconSensors(sendEvent, 1)\n")
503 if (beaconSensorObjects == 0) {
504 beaconSensorObject0 = metaData['name']
505 this[beaconSensorObject0] = new BeaconSensors({}, 1)
506 } else if (beaconSensorObjects == 1) {
507 beaconSensorObject1 = metaData['name']
508 this[beaconSensorObject1] = new BeaconSensors({}, 1)
509 } else if (beaconSensorObjects == 2) {
510 beaconSensorObject2 = metaData['name']
511 this[beaconSensorObject2] = new BeaconSensors({}, 1)
514 beaconSensorObjects=beaconSensorObjects+1
516 settings.put(metaData['name'], new BeaconSensors({}, 1))
519 extractedObjectsApp1.append("//Object for class beacon sensor!\n")
520 extractedObjectsApp1.append("def "+metaData['name']+"\n")
521 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.beaconSensorObject\n")
523 extractedObjectsApp2.append("//Object for class beacon sensor!\n")
524 extractedObjectsApp2.append("def "+metaData['name']+"\n")
525 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.beaconSensorObject\n")
528 case "capability.carbonMonoxideDetector":
529 globalObjects.eachLine { line ->
530 if(line.contains("carbonMonoxideDetectorObject")){
536 globalObjects.append("@Field def carbonMonoxideDetectorObject = new CarbonMonoxideDetectors(sendEvent, 1)\n")
538 if (carbonMonoxideDetectorObjects == 0) {
539 carbonMonoxideDetectorObject0 = metaData['name']
540 this[carbonMonoxideDetectorObject0] = new CarbonMonoxideDetectors({}, 1)
541 } else if (carbonMonoxideDetectorObjects == 1) {
542 carbonMonoxideDetectorObject1 = metaData['name']
543 this[carbonMonoxideDetectorObject1] = new CarbonMonoxideDetectors({}, 1)
544 } else if (carbonMonoxideDetectorObjects == 2) {
545 carbonMonoxideDetectorObject2 = metaData['name']
546 this[carbonMonoxideDetectorObject2] = new CarbonMonoxideDetectors({}, 1)
549 carbonMonoxideDetectorObjects=carbonMonoxideDetectorObjects+1
551 settings.put(metaData['name'], new CarbonMonoxideDetectors({}, 1))
554 extractedObjectsApp1.append("//Object for class carbon monoxide detector!\n")
555 extractedObjectsApp1.append("def "+metaData['name']+"\n")
556 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
558 extractedObjectsApp2.append("//Object for class carbon monoxide detector!\n")
559 extractedObjectsApp2.append("def "+metaData['name']+"\n")
560 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
563 case "capability.colorControl":
564 globalObjects.eachLine { line ->
565 if(line.contains("colorControlObject")){
571 globalObjects.append("@Field def colorControlObject = new ColorControls(sendEvent, 1)\n")
573 if (colorControlObjects == 0) {
574 colorControlObject0 = metaData['name']
575 this[colorControlObject0] = new ColorControls({}, 1)
576 } else if (colorControlObjects == 1) {
577 colorControlObject1 = metaData['name']
578 this[colorControlObject1] = new ColorControls({}, 1)
579 } else if (colorControlObjects == 2) {
580 colorControlObject2 = metaData['name']
581 this[colorControlObject2] = new ColorControls({}, 1)
584 colorControlObjects=colorControlObjects+1
586 settings.put(metaData['name'], new ColorControls({}, 1))
589 extractedObjectsApp1.append("//Object for class color control!\n")
590 extractedObjectsApp1.append("def "+metaData['name']+"\n")
591 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.colorControlObject\n")
593 extractedObjectsApp2.append("//Object for class color control!\n")
594 extractedObjectsApp2.append("def "+metaData['name']+"\n")
595 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.colorControlObject\n")
598 case "capability.contactSensor":
599 globalObjects.eachLine { line ->
600 if(line.contains("contactObject")){
606 globalObjects.append("@Field def contactObject = new ContactSensors(sendEvent, 1)\n")
608 if (contactObjects == 0) {
609 contactObject0 = metaData['name']
610 this[contactObject0] = new ContactSensors({}, 1)
611 } else if (contactObjects == 1) {
612 contactObject1 = metaData['name']
613 this[contactObject1] = new ContactSensors({}, 1)
614 } else if (contactObjects == 2) {
615 contactObject2 = metaData['name']
616 this[contactObject2] = new ContactSensors({}, 1)
619 contactObjects=contactObjects+1
621 settings.put(metaData['name'], new ContactSensors({}, 1))
624 extractedObjectsApp1.append("//Object for class contactSensor!\n")
625 extractedObjectsApp1.append("def "+metaData['name']+"\n")
626 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.contactObject\n")
628 extractedObjectsApp2.append("//Object for class contactSensor!\n")
629 extractedObjectsApp2.append("def "+metaData['name']+"\n")
630 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.contactObject\n")
633 case "capability.doorControl":
634 globalObjects.eachLine { line ->
635 if(line.contains("doorControlObject")){
641 globalObjects.append("@Field def doorControlObject = new DoorControls(sendEvent, 1)\n")
643 if (doorControlObjects == 0) {
644 doorControlObject0 = metaData['name']
645 this[doorControlObject0] = new DoorControls({}, 1)
646 } else if (doorControlObjects == 1) {
647 doorControlObject1 = metaData['name']
648 this[doorControlObject1] = new DoorControls({}, 1)
649 } else if (doorControlObjects == 2) {
650 doorControlObject2 = metaData['name']
651 this[doorControlObject2] = new DoorControls({}, 1)
654 doorControlObjects=doorControlObjects+1
656 settings.put(metaData['name'], new DoorControls({}, 1))
659 extractedObjectsApp1.append("//Object for class door control!\n")
660 extractedObjectsApp1.append("def "+metaData['name']+"\n")
661 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.doorControlObject\n")
663 extractedObjectsApp2.append("//Object for class door control!\n")
664 extractedObjectsApp2.append("def "+metaData['name']+"\n")
665 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.doorControlObject\n")
668 case "capability.energyMeter":
669 globalObjects.eachLine { line ->
670 if(line.contains("energyMeterObject")){
676 globalObjects.append("@Field def energyMeterObject = new EnergyMeters(sendEvent, 1)\n")
678 if (energyMeterObjects == 0) {
679 energyMeterObject0 = metaData['name']
680 this[energyMeterObject0] = new EnergyMeters({}, 1)
681 } else if (energyMeterObjects == 1) {
682 energyMeterObject1 = metaData['name']
683 this[energyMeterObject1] = new EnergyMeters({}, 1)
684 } else if (energyMeterObjects == 2) {
685 energyMeterObject2 = metaData['name']
686 this[energyMeterObject2] = new EnergyMeters({}, 1)
689 energyMeterObjects=energyMeterObjects+1
691 settings.put(metaData['name'], new EnergyMeters({}, 1))
694 extractedObjectsApp1.append("//Object for class energy meter!\n")
695 extractedObjectsApp1.append("def "+metaData['name']+"\n")
696 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.energyMeterObject\n")
698 extractedObjectsApp2.append("//Object for class energy meter!\n")
699 extractedObjectsApp2.append("def "+metaData['name']+"\n")
700 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.energyMeterObject\n")
703 case "capability.illuminanceMeasurement":
704 globalObjects.eachLine { line ->
705 if(line.contains("illuminanceMeasurementObject")){
711 globalObjects.append("@Field def illuminanceMeasurementObject = new IlluminanceMeasurements(sendEvent, 1)\n")
713 if (illuminanceMeasurementObjects == 0) {
714 illuminanceMeasurementObject0 = metaData['name']
715 this[illuminanceMeasurementObject0] = new IlluminanceMeasurements({}, 1)
716 } else if (illuminanceMeasurementObjects == 1) {
717 illuminanceMeasurementObject1 = metaData['name']
718 this[illuminanceMeasurementObject1] = new IlluminanceMeasurements({}, 1)
719 } else if (illuminanceMeasurementObjects == 2) {
720 illuminanceMeasurementObject2 = metaData['name']
721 this[illuminanceMeasurementObject2] = new IlluminanceMeasurements({}, 1)
724 illuminanceMeasurementObjects=illuminanceMeasurementObjects+1
726 settings.put(metaData['name'], new IlluminanceMeasurements({}, 1))
729 extractedObjectsApp1.append("//Object for class illuminance measurement!\n")
730 extractedObjectsApp1.append("def "+metaData['name']+"\n")
731 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
733 extractedObjectsApp2.append("//Object for class illuminance measurement!\n")
734 extractedObjectsApp2.append("def "+metaData['name']+"\n")
735 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
738 case "capability.accelerationSensor":
739 globalObjects.eachLine { line ->
740 if(line.contains("accelerationSensorObject")){
746 globalObjects.append("@Field def accelerationSensorObject = new AccelerationSensors(sendEvent, 1)\n")
748 if (accelerationSensorObjects == 0) {
749 accelerationSensorObject0 = metaData['name']
750 this[accelerationSensorObject0] = new AccelerationSensors({}, 1)
751 } else if (accelerationSensorObjects == 1) {
752 accelerationSensorObject1 = metaData['name']
753 this[accelerationSensorObject1] = new AccelerationSensors({}, 1)
754 } else if (accelerationSensorObjects == 2) {
755 accelerationSensorObject2 = metaData['name']
756 this[accelerationSensorObject2] = new AccelerationSensors({}, 1)
759 accelerationSensorObjects=accelerationSensorObjects+1
761 settings.put(metaData['name'], new AccelerationSensors({}, 1))
764 extractedObjectsApp1.append("//Object for class Acceleration Sensor!\n")
765 extractedObjectsApp1.append("def "+metaData['name']+"\n")
766 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.accelerationSensorObject\n")
768 extractedObjectsApp2.append("//Object for class Acceleration Sensor!\n")
769 extractedObjectsApp2.append("def "+metaData['name']+"\n")
770 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.accelerationSensorObject\n")
773 case "capability.motionSensor":
774 globalObjects.eachLine { line ->
775 if(line.contains("motionSensorObject")){
781 globalObjects.append("@Field def motionSensorObject = new MotionSensors(sendEvent, 1)\n")
783 if (motionSensorObjects == 0) {
784 motionSensorObject0 = metaData['name']
785 this[motionSensorObject0] = new MotionSensors({}, 1)
786 } else if (motionSensorObjects == 1) {
787 motionSensorObject1 = metaData['name']
788 this[motionSensorObject1] = new MotionSensors({}, 1)
789 } else if (motionSensorObjects == 2) {
790 motionSensorObject2 = metaData['name']
791 this[motionSensorObject2] = new MotionSensors({}, 1)
794 motionSensorObjects=motionSensorObjects+1
796 settings.put(metaData['name'], new MotionSensors({}, 1))
799 extractedObjectsApp1.append("//Object for class Motion Sensor!\n")
800 extractedObjectsApp1.append("def "+metaData['name']+"\n")
801 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.motionSensorObject\n")
803 extractedObjectsApp2.append("//Object for class Motion Sensor!\n")
804 extractedObjectsApp2.append("def "+metaData['name']+"\n")
805 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.motionSensorObject\n")
808 case "capability.musicPlayer":
809 globalObjects.eachLine { line ->
810 if(line.contains("musicPlayerObject")){
816 globalObjects.append("@Field def musicPlayerObject = new MusicPlayers(sendEvent, 1)\n")
818 if (musicPlayerObjects == 0) {
819 musicPlayerObject0 = metaData['name']
820 this[musicPlayerObject0] = new MusicPlayers({}, 1)
821 } else if (musicPlayerObjects == 1) {
822 musicPlayerObject1 = metaData['name']
823 this[musicPlayerObject1] = new MusicPlayers({}, 1)
824 } else if (musicPlayerObjects == 2) {
825 musicPlayerObject2 = metaData['name']
826 this[musicPlayerObject2] = new MusicPlayers({}, 1)
829 musicPlayerObjects=musicPlayerObjects+1
831 settings.put(metaData['name'], new MusicPlayers({}, 1))
834 extractedObjectsApp1.append("//Object for class music player!\n")
835 extractedObjectsApp1.append("def "+metaData['name']+"\n")
836 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.musicPlayerObject\n")
838 extractedObjectsApp2.append("//Object for class music player!\n")
839 extractedObjectsApp2.append("def "+metaData['name']+"\n")
840 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.musicPlayerObject\n")
843 case "capability.powerMeter":
844 globalObjects.eachLine { line ->
845 if(line.contains("powerMeterObject")){
851 globalObjects.append("@Field def powerMeterObject = new PowerMeters(sendEvent, 1)\n")
853 if (powerMeterObjects == 0) {
854 powerMeterObject0 = metaData['name']
855 this[powerMeterObject0] = new PowerMeters({}, 1)
856 } else if (powerMeterObjects == 1) {
857 powerMeterObject1 = metaData['name']
858 this[powerMeterObject1] = new PowerMeters({}, 1)
859 } else if (powerMeterObjects == 2) {
860 powerMeterObject2 = metaData['name']
861 this[powerMeterObject2] = new PowerMeters({}, 1)
864 powerMeterObjects=powerMeterObjects+1
866 settings.put(metaData['name'], new PowerMeters({}, 1))
869 extractedObjectsApp1.append("//Object for class power meter!\n")
870 extractedObjectsApp1.append("def "+metaData['name']+"\n")
871 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.powerMeterObject\n")
873 extractedObjectsApp2.append("//Object for class power meter!\n")
874 extractedObjectsApp2.append("def "+metaData['name']+"\n")
875 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.powerMeterObject\n")
878 case "capability.presenceSensor":
879 globalObjects.eachLine { line ->
880 if(line.contains("presenceSensorObject")){
886 globalObjects.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent, 1)\n")
888 if (presenceSensorObjects == 0) {
889 presenceSensorObject0 = metaData['name']
890 this[presenceSensorObject0] = new PresenceSensors({}, 1)
891 } else if (presenceSensorObjects == 1) {
892 presenceSensorObject1 = metaData['name']
893 this[presenceSensorObject1] = new PresenceSensors({}, 1)
894 } else if (presenceSensorObjects == 2) {
895 presenceSensorObject2 = metaData['name']
896 this[presenceSensorObject2] = new PresenceSensors({}, 1)
899 presenceSensorObjects=presenceSensorObjects+1
901 settings.put(metaData['name'], new PresenceSensors({}, 1))
904 extractedObjectsApp1.append("//Object for class presence sensor!\n")
905 extractedObjectsApp1.append("def "+metaData['name']+"\n")
906 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.presenceSensorObject\n")
908 extractedObjectsApp2.append("//Object for class presence sensor!\n")
909 extractedObjectsApp2.append("def "+metaData['name']+"\n")
910 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.presenceSensorObject\n")
913 case "capability.relativeHumidityMeasurement":
914 globalObjects.eachLine { line ->
915 if(line.contains("humidityMeasurementObject")){
921 globalObjects.append("@Field def humidityMeasurementObject = new RelativeHumidityMeasurements(sendEvent, 1)\n")
923 if (humidityMeasurementObjects == 0) {
924 humidityMeasurementObject0 = metaData['name']
925 this[humidityMeasurementObject0] = new RelativeHumidityMeasurements({}, 1)
926 } else if (humidityMeasurementObjects == 1) {
927 humidityMeasurementObject1 = metaData['name']
928 this[humidityMeasurementObject1] = new RelativeHumidityMeasurements({}, 1)
929 } else if (humidityMeasurementObjects == 2) {
930 humidityMeasurementObject2 = metaData['name']
931 this[humidityMeasurementObject2] = new RelativeHumidityMeasurements({}, 1)
934 humidityMeasurementObjects=humidityMeasurementObjects+1
936 settings.put(metaData['name'], new RelativeHumidityMeasurements({}, 1))
939 extractedObjectsApp1.append("//Object for class humidity measurement!\n")
940 extractedObjectsApp1.append("def "+metaData['name']+"\n")
941 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.humidityMeasurementObject\n")
943 extractedObjectsApp2.append("//Object for class humidity measurement!\n")
944 extractedObjectsApp2.append("def "+metaData['name']+"\n")
945 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.humidityMeasurementObject\n")
948 case "capability.relaySwitch":
949 globalObjects.eachLine { line ->
950 if(line.contains("relaySwitchObject")){
956 globalObjects.append("@Field def relaySwitchObject = new RelaySwitches(sendEvent, 1)\n")
958 if (relaySwitchObjects == 0) {
959 relaySwitchObject0 = metaData['name']
960 this[relaySwitchObject0] = new RelaySwitches({}, 1)
961 } else if (relaySwitchObjects == 1) {
962 relaySwitchObject1 = metaData['name']
963 this[relaySwitchObject1] = new RelaySwitches({}, 1)
964 } else if (relaySwitchObjects == 2) {
965 relaySwitchObject2 = metaData['name']
966 this[relaySwitchObject2] = new RelaySwitches({}, 1)
969 relaySwitchObjects=relaySwitchObjects+1
971 settings.put(metaData['name'], new RelaySwitches({}, 1))
974 extractedObjectsApp1.append("//Object for class relay switch!\n")
975 extractedObjectsApp1.append("def "+metaData['name']+"\n")
976 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.relaySwitchObject\n")
978 extractedObjectsApp2.append("//Object for class relay switch!\n")
979 extractedObjectsApp2.append("def "+metaData['name']+"\n")
980 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.relaySwitchObject\n")
983 case "capability.sleepSensor":
984 globalObjects.eachLine { line ->
985 if(line.contains("sleepSensorObject")){
991 globalObjects.append("@Field def sleepSensorObject = new SleepSensors(sendEvent, 1)\n")
993 if (sleepSensorObjects == 0) {
994 sleepSensorObject0 = metaData['name']
995 this[sleepSensorObject0] = new SleepSensors({}, 1)
996 } else if (sleepSensorObjects == 1) {
997 sleepSensorObject1 = metaData['name']
998 this[sleepSensorObject1] = new SleepSensors({}, 1)
999 } else if (sleepSensorObjects == 2) {
1000 sleepSensorObject2 = metaData['name']
1001 this[sleepSensorObject2] = new SleepSensors({}, 1)
1004 sleepSensorObjects=sleepSensorObjects+1
1006 settings.put(metaData['name'], new SleepSensors({}, 1))
1008 if (App == "App1") {
1009 extractedObjectsApp1.append("//Object for class sleep sensor!\n")
1010 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1011 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.sleepSensorObject\n")
1013 extractedObjectsApp2.append("//Object for class sleep sensor!\n")
1014 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1015 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.sleepSensorObject\n")
1018 case "capability.smokeDetector":
1019 globalObjects.eachLine { line ->
1020 if(line.contains("smokeDetectorObject")){
1026 globalObjects.append("@Field def smokeDetectorObject = new SmokeDetectors(sendEvent, 1)\n")
1028 if (smokeDetectorObjects == 0) {
1029 smokeDetectorObject0 = metaData['name']
1030 this[smokeDetectorObject0] = new SmokeDetectors({}, 1)
1031 } else if (smokeDetectorObjects == 1) {
1032 smokeDetectorObject1 = metaData['name']
1033 this[smokeDetectorObject1] = new SmokeDetectors({}, 1)
1034 } else if (smokeDetectorObjects == 2) {
1035 smokeDetectorObject2 = metaData['name']
1036 this[smokeDetectorObject2] = new SmokeDetectors({}, 1)
1039 smokeDetectorObjects=smokeDetectorObjects+1
1041 settings.put(metaData['name'], new SmokeDetectors({}, 1))
1043 if (App == "App1") {
1044 extractedObjectsApp1.append("//Object for class smoke detector!\n")
1045 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1046 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.smokeDetectorObject\n")
1048 extractedObjectsApp2.append("//Object for class smoke detector!\n")
1049 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1050 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.smokeDetectorObject\n")
1053 case "capability.stepSensor":
1054 globalObjects.eachLine { line ->
1055 if(line.contains("stepSensorObject")){
1061 globalObjects.append("@Field def stepSensorObject = new StepSensors(sendEvent, 1)\n")
1063 if (stepSensorObjects == 0) {
1064 stepSensorObject0 = metaData['name']
1065 this[stepSensorObject0] = new StepSensors({}, 1)
1066 } else if (stepSensorObjects == 1) {
1067 stepSensorObject1 = metaData['name']
1068 this[stepSensorObject1] = new StepSensors({}, 1)
1069 } else if (stepSensorObjects == 2) {
1070 stepSensorObject2 = metaData['name']
1071 this[stepSensorObject2] = new StepSensors({}, 1)
1074 stepSensorObjects=stepSensorObjects+1
1076 settings.put(metaData['name'], new StepSensors({}, 1))
1078 if (App == "App1") {
1079 extractedObjectsApp1.append("//Object for class step sensor!\n")
1080 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1081 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.stepSensorObject\n")
1083 extractedObjectsApp2.append("//Object for class step sensor!\n")
1084 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1085 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.stepSensorObject\n")
1088 case "capability.switch":
1089 globalObjects.eachLine { line ->
1090 if(line.contains("switchObject")){
1096 globalObjects.append("@Field def switchObject = new Switches(sendEvent, 1)\n")
1098 if (switchObjects == 0) {
1099 switchObject0 = metaData['name']
1100 this[switchObject0] = new Switches({}, 1)
1101 } else if (switchObjects == 1) {
1102 switchObject1 = metaData['name']
1103 this[switchObject1] = new Switches({}, 1)
1104 } else if (switchObjects == 2) {
1105 switchObject2 = metaData['name']
1106 this[switchObject2] = new Switches({}, 1)
1109 switchObjects=switchObjects+1
1111 settings.put(metaData['name'], new Switches({}, 1))
1113 if (App == "App1") {
1114 extractedObjectsApp1.append("//Object for class switch!\n")
1115 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1116 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchObject\n")
1118 extractedObjectsApp2.append("//Object for class switch!\n")
1119 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1120 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchObject\n")
1123 case "capability.switchLevel":
1124 globalObjects.eachLine { line ->
1125 if(line.contains("switchLevelObject")){
1131 globalObjects.append("@Field def switchLevelObject = new SwitchLevels(sendEvent, 1)\n")
1133 if (switchLevelObjects == 0) {
1134 switchLevelObject0 = metaData['name']
1135 this[switchLevelObject0] = new SwitchLevels({}, 1)
1136 } else if (switchLevelObjects == 1) {
1137 switchLevelObject1 = metaData['name']
1138 this[switchLevelObject1] = new SwitchLevels({}, 1)
1139 } else if (switchLevelObjects == 2) {
1140 switchLevelObject2 = metaData['name']
1141 this[switchLevelObject2] = new SwitchLevels({}, 1)
1144 switchLevelObjects=switchLevelObjects+1
1146 settings.put(metaData['name'], new SwitchLevels({}, 1))
1148 if (App == "App1") {
1149 extractedObjectsApp1.append("//Object for class switch level!\n")
1150 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1151 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchLevelObject\n")
1153 extractedObjectsApp2.append("//Object for class switch level!\n")
1154 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1155 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchLevelObject\n")
1158 case "capability.temperatureMeasurement":
1159 globalObjects.eachLine { line ->
1160 if(line.contains("temperatureMeasurementObject")){
1166 globalObjects.append("@Field def temperatureMeasurementObject = new TemperatureMeasurements(sendEvent, 1)\n")
1168 if (temperatureMeasurementObjects == 0) {
1169 temperatureMeasurementObject0 = metaData['name']
1170 this[temperatureMeasurementObject0] = new TemperatureMeasurements({}, 1)
1171 } else if (temperatureMeasurementObjects == 1) {
1172 temperatureMeasurementObject1 = metaData['name']
1173 this[temperatureMeasurementObject1] = new TemperatureMeasurements({}, 1)
1174 } else if (temperatureMeasurementObjects == 2) {
1175 temperatureMeasurementObject2 = metaData['name']
1176 this[temperatureMeasurementObject2] = new TemperatureMeasurements({}, 1)
1179 temperatureMeasurementObjects=temperatureMeasurementObjects+1
1181 settings.put(metaData['name'], new TemperatureMeasurements({}, 1))
1183 if (App == "App1") {
1184 extractedObjectsApp1.append("//Object for class temperature measurement!\n")
1185 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1186 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
1188 extractedObjectsApp2.append("//Object for class temperature measurement!\n")
1189 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1190 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
1193 case "capability.thermostat":
1194 globalObjects.eachLine { line ->
1195 if(line.contains("thermostatObject")){
1201 globalObjects.append("@Field def thermostatObject = new Thermostats(sendEvent, 1)\n")
1203 if (thermostatObjects == 0) {
1204 thermostatObject0 = metaData['name']
1205 this[thermostatObject0] = new Thermostats({}, 1)
1206 } else if (thermostatObjects == 1) {
1207 thermostatObject1 = metaData['name']
1208 this[thermostatObject1] = new Thermostats({}, 1)
1209 } else if (thermostatObjects == 2) {
1210 thermostatObject2 = metaData['name']
1211 this[thermostatObject2] = new Thermostats({}, 1)
1214 thermostatObjects=thermostatObjects+1
1216 settings.put(metaData['name'], new Thermostats({}, 1))
1218 if (App == "App1") {
1219 extractedObjectsApp1.append("//Object for class thermostat!\n")
1220 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1221 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.thermostatObject\n")
1223 extractedObjectsApp2.append("//Object for class thermostat!\n")
1224 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1225 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.thermostatObject\n")
1228 case "capability.valve":
1229 globalObjects.eachLine { line ->
1230 if(line.contains("valveObject")){
1236 globalObjects.append("@Field def valveObject = new Valves(sendEvent, 1)\n")
1238 if (valveObjects == 0) {
1239 valveObject0 = metaData['name']
1240 this[valveObject0] = new Valves({}, 1)
1241 } else if (valveObjects == 1) {
1242 valveObject1 = metaData['name']
1243 this[valveObject1] = new Valves({}, 1)
1244 } else if (valveObjects == 2) {
1245 valveObject2 = metaData['name']
1246 this[valveObject2] = new Valves({}, 1)
1249 valveObjects=valveObjects+1
1251 settings.put(metaData['name'], new Valves({}, 1))
1253 if (App == "App1") {
1254 extractedObjectsApp1.append("//Object for class valve!\n")
1255 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1256 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.valveObject\n")
1258 extractedObjectsApp2.append("//Object for class valve!\n")
1259 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1260 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.valveObject\n")
1263 case "capability.speechSynthesis":
1264 globalObjects.eachLine { line ->
1265 if(line.contains("speechSynthesisObject")){
1271 globalObjects.append("@Field def speechSynthesisObject = new SpeechSynthesises(sendEvent, 1)\n")
1273 if (speechSynthesisObjects == 0) {
1274 speechSynthesisObject0 = metaData['name']
1275 this[speechSynthesisObject0] = new SpeechSynthesises({}, 1)
1276 } else if (speechSynthesisObjects == 1) {
1277 speechSynthesisObject1 = metaData['name']
1278 this[speechSynthesisObject1] = new SpeechSynthesises({}, 1)
1279 } else if (speechSynthesisObjects == 2) {
1280 speechSynthesisObject2 = metaData['name']
1281 this[speechSynthesisObject2] = new SpeechSynthesises({}, 1)
1284 speechSynthesisObjects=speechSynthesisObjects+1
1286 settings.put(metaData['name'], new SpeechSynthesises({}, 1))
1288 if (App == "App1") {
1289 extractedObjectsApp1.append("//Object for class speech synthesis!\n")
1290 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1291 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.speechSynthesisObject\n")
1293 extractedObjectsApp2.append("//Object for class speech synthesis!\n")
1294 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1295 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.speechSynthesisObject\n")
1298 case "capability.waterSensor":
1299 globalObjects.eachLine { line ->
1300 if(line.contains("waterSensorObject")){
1306 globalObjects.append("@Field def waterSensorObject = new WaterSensors(sendEvent, 1)\n")
1308 if (waterSensorObjects == 0) {
1309 waterSensorObject0 = metaData['name']
1310 this[waterSensorObject0] = new WaterSensors({}, 1)
1311 } else if (waterSensorObjects == 1) {
1312 waterSensorObject1 = metaData['name']
1313 this[waterSensorObject1] = new WaterSensors({}, 1)
1314 } else if (waterSensorObjects == 2) {
1315 waterSensorObject2 = metaData['name']
1316 this[waterSensorObject2] = new WaterSensors({}, 1)
1319 waterSensorObjects=waterSensorObjects+1
1321 settings.put(metaData['name'], new WaterSensors({}, 1))
1323 if (App == "App1") {
1324 extractedObjectsApp1.append("//Object for class water sensor!\n")
1325 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1326 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.waterSensorObject\n")
1328 extractedObjectsApp2.append("//Object for class water sensor!\n")
1329 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1330 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.waterSensorObject\n")
1333 case "capability.touchSensor":
1334 globalObjects.eachLine { line ->
1335 if(line.contains("touchSensorObject")){
1341 globalObjects.append("@Field def touchSensorObject = new NfcTouch(sendEvent, 1)\n")
1343 if (touchSensorObjects == 0) {
1344 touchSensorObject0 = metaData['name']
1345 this[touchSensorObject0] = new NfcTouch({}, 1)
1346 } else if (touchSensorObjects == 1) {
1347 touchSensorObject1 = metaData['name']
1348 this[touchSensorObject1] = new NfcTouch({}, 1)
1349 } else if (touchSensorObjects == 2) {
1350 touchSensorObject2 = metaData['name']
1351 this[touchSensorObject2] = new NfcTouch({}, 1)
1354 touchSensorObjects=touchSensorObjects+1
1356 settings.put(metaData['name'], new NfcTouch({}, 1))
1358 if (App == "App1") {
1359 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
1360 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1361 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.touchSensorObject\n")
1363 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
1364 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1365 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.touchSensorObject\n")
1368 case "capability.imageCapture":
1369 globalObjects.eachLine { line ->
1370 if(line.contains("imageCaptureObject")){
1376 globalObjects.append("@Field def imageCaptureObject = new ImageCaptures(sendEvent, 1)\n")
1378 if (imageCaptureObjects == 0) {
1379 imageCaptureObject0 = metaData['name']
1380 this[imageCaptureObject0] = new ImageCaptures({}, 1)
1381 } else if (imageCaptureObjects == 1) {
1382 imageCaptureObject1 = metaData['name']
1383 this[imageCaptureObject1] = new ImageCaptures({}, 1)
1384 } else if (imageCaptureObjects == 2) {
1385 imageCaptureObject2 = metaData['name']
1386 this[imageCaptureObject2] = new ImageCaptures({}, 1)
1389 imageCaptureObjects=imageCaptureObjects+1
1391 settings.put(metaData['name'], new ImageCaptures({}, 1))
1393 if (App == "App1") {
1394 extractedObjectsApp1.append("//Object for class Image Capture!\n")
1395 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1396 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.imageCaptureObject\n")
1398 extractedObjectsApp2.append("//Object for class Image Capture!\n")
1399 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1400 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.imageCaptureObject\n")
1403 case "device.mobilePresence":
1404 globalObjects.eachLine { line ->
1405 if(line.contains("mobilePresenceObject")){
1411 globalObjects.append("@Field def mobilePresenceObject = new MobilePresences(sendEvent, 1)\n")
1413 if (mobilePresenceObjects == 0) {
1414 mobilePresenceObject0 = metaData['name']
1415 this[mobilePresenceObject0] = new MobilePresences({}, 1)
1416 } else if (mobilePresenceObjects == 1) {
1417 mobilePresenceObject1 = metaData['name']
1418 this[mobilePresenceObject1] = new MobilePresences({}, 1)
1419 } else if (mobilePresenceObjects == 2) {
1420 mobilePresenceObject2 = metaData['name']
1421 this[mobilePresenceObject2] = new MobilePresences({}, 1)
1424 mobilePresenceObjects=mobilePresenceObjects+1
1426 settings.put(metaData['name'], new MobilePresences({}, 1))
1428 if (App == "App1") {
1429 extractedObjectsApp1.append("//Object for class mobile presence!\n")
1430 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1431 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.mobilePresenceObject\n")
1433 extractedObjectsApp2.append("//Object for class mobile presence!\n")
1434 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1435 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.mobilePresenceObject\n")
1438 case "device.aeonKeyFob":
1439 globalObjects.eachLine { line ->
1440 if(line.contains("aeonKeyFobObject")){
1445 globalObjects.append("@Field def aeonKeyFobObject = new AeonKeyFobs(sendEvent, 1)\n")
1447 if (aeonKeyFobObjects == 0) {
1448 aeonKeyFobObject0 = metaData['name']
1449 this[aeonKeyFobObject0] = new AeonKeyFobs({}, 1)
1450 } else if (aeonKeyFobObjects == 1) {
1451 aeonKeyFobObject1 = metaData['name']
1452 this[aeonKeyFobObject1] = new AeonKeyFobs({}, 1)
1453 } else if (aeonKeyFobObjects == 2) {
1454 aeonKeyFobObject2 = metaData['name']
1455 this[aeonKeyFobObject2] = new AeonKeyFobs({}, 1)
1458 aeonKeyFobObjects=aeonKeyFobObjects+1
1460 settings.put(metaData['name'], new AeonKeyFobs({}, 1))
1462 if (App == "App1") {
1463 extractedObjectsApp1.append("//Object for class aeon key fob!\n")
1464 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1465 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1467 extractedObjectsApp2.append("//Object for class aeon key fob!\n")
1468 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1469 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1473 //def randomVariable = Math.abs(new Random().nextInt() % 3)
1474 def modes = ["away", "home", "night"]
1475 def userInput = modes[0]
1477 if (modeVariables == 0) {
1478 mode0 = metaData['name']
1479 this[mode0] = userInput
1480 } else if (modeVariables == 1) {
1481 mode1 = metaData['name']
1482 this[mode1] = userInput
1483 } else if (modeVariables == 2) {
1484 mode2 = metaData['name']
1485 this[mode2] = userInput
1486 } else if (modeVariables == 3) {
1487 mode3 = metaData['name']
1488 this[mode3] = userInput
1489 } else if (modeVariables == 4) {
1490 mode4 = metaData['name']
1491 this[mode4] = userInput
1492 } else if (modeVariables == 5) {
1493 mode5 = metaData['name']
1494 this[mode5] = userInput
1497 if (modeVariables != 5)
1498 modeVariables=modeVariables+1
1503 settings.put(metaData['name'], metaData['name'])
1505 if (App == "App1") {
1506 extractedObjectsApp1.append("//Global variable for mode!\n")
1507 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1509 extractedObjectsApp2.append("//Global variable for mode!\n")
1510 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1514 //def userInput = Math.abs(new Random().nextInt() % 60) + 40
1517 if (decimalVariables == 0) {
1518 decimal0 = metaData['name']
1519 this[decimal0] = userInput
1520 } else if (decimalVariables == 1) {
1521 decimal1 = metaData['name']
1522 this[decimal1] = userInput
1523 } else if (decimalVariables == 2) {
1524 decimal2 = metaData['name']
1525 this[decimal2] = userInput
1526 } else if (decimalVariables == 3) {
1527 decimal3 = metaData['name']
1528 this[decimal3] = userInput
1529 } else if (decimalVariables == 4) {
1530 decimal4 = metaData['name']
1531 this[decimal4] = userInput
1532 } else if (decimalVariables == 5) {
1533 decimal5 = metaData['name']
1534 this[decimal5] = userInput
1537 if (decimalVariables != 5)
1538 decimalVariables=decimalVariables+1
1542 settings.put(metaData['name'], metaData['name'])
1544 if (App == "App1") {
1545 extractedObjectsApp1.append("//Global variable for decimal number!\n")
1546 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1548 extractedObjectsApp2.append("//Global variable for decimal number!\n")
1549 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1553 def userInput = "This is just a text!"
1555 if (textVariables == 0) {
1556 text0 = metaData['name']
1557 this[text0] = userInput
1558 } else if (textVariables == 1) {
1559 text1 = metaData['name']
1560 this[text1] = userInput
1561 } else if (textVariables == 2) {
1562 text2 = metaData['name']
1563 this[text2] = userInput
1564 } else if (textVariables == 3) {
1565 text3 = metaData['name']
1566 this[text3] = userInput
1567 } else if (textVariables == 4) {
1568 text4 = metaData['name']
1569 this[text4] = userInput
1570 } else if (textVariables == 5) {
1571 text5 = metaData['name']
1572 this[text5] = userInput
1575 if (textVariables != 5)
1576 textVariables=textVariables+1
1581 settings.put(metaData['name'], metaData['name'])
1583 if (App == "App1") {
1584 extractedObjectsApp1.append("//Global variable for text!\n")
1585 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1587 extractedObjectsApp2.append("//Global variable for text!\n")
1588 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1592 //def userInput = Math.abs(new Random().nextInt() % 60) + 40
1595 if (numberVariables == 0) {
1596 number0 = metaData['name']
1597 this[number0] = userInput
1598 } else if (numberVariables == 1) {
1599 number1 = metaData['name']
1600 this[number1] = userInput
1601 } else if (numberVariables == 2) {
1602 number2 = metaData['name']
1603 this[number2] = userInput
1604 } else if (numberVariables == 3) {
1605 number3 = metaData['name']
1606 this[number3] = userInput
1607 } else if (numberVariables == 4) {
1608 number4 = metaData['name']
1609 this[number4] = userInput
1610 } else if (numberVariables == 5) {
1611 number5 = metaData['name']
1612 this[number5] = userInput
1616 if (numberVariables != 5)
1617 numberVariables=numberVariables+1
1622 settings.put(metaData['name'], metaData['name'])
1624 if (App == "App1") {
1625 extractedObjectsApp1.append("//Global variable for number!\n")
1626 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1628 extractedObjectsApp2.append("//Global variable for number!\n")
1629 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1633 def userInput = "15:00"
1635 if (timeVariables == 0) {
1636 time0 = metaData['name']
1637 this[time0] = userInput
1638 } else if (timeVariables == 1) {
1639 time1 = metaData['name']
1640 this[time1] = userInput
1641 } else if (timeVariables == 2) {
1642 time2 = metaData['name']
1643 this[time2] = userInput
1644 } else if (timeVariables == 3) {
1645 time3 = metaData['name']
1646 this[time3] = userInput
1647 } else if (timeVariables == 4) {
1648 time4 = metaData['name']
1649 this[time4] = userInput
1650 } else if (timeVariables == 5) {
1651 time5 = metaData['name']
1652 this[time5] = userInput
1655 if (timeVariables != 5)
1656 timeVariables=timeVariables+1
1660 settings.put(metaData['name'], metaData['name'])
1662 if (App == "App1") {
1663 extractedObjectsApp1.append("//Global variable for time!\n")
1664 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1666 extractedObjectsApp2.append("//Global variable for time!\n")
1667 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1671 if (metaData['options'] != null)
1672 modes = metaData['options']
1673 else if (metaData['metadata'] != null) { // If it is not named 'options' then it is captured as 'metadata'
1674 modes = metaData['metadata']
1675 modes = modes['values']
1677 def userInput = modes[0]
1679 if (enumVariables == 0) {
1680 enum0 = metaData['name']
1681 this[enum0] = userInput
1682 } else if (enumVariables == 1) {
1683 enum1 = metaData['name']
1684 this[enum1] = userInput
1685 } else if (enumVariables == 2) {
1686 enum2 = metaData['name']
1687 this[enum2] = userInput
1688 } else if (enumVariables == 3) {
1689 enum3 = metaData['name']
1690 this[enum3] = userInput
1691 } else if (enumVariables == 4) {
1692 enum4 = metaData['name']
1693 this[enum4] = userInput
1694 } else if (enumVariables == 5) {
1695 enum5 = metaData['name']
1696 this[enum5] = userInput
1699 if (enumVariables != 5)
1700 enumVariables=enumVariables+1
1705 settings.put(metaData['name'], metaData['name'])
1707 if (App == "App1") {
1708 extractedObjectsApp1.append("//Global variable for enum!\n")
1709 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1711 extractedObjectsApp2.append("//Global variable for enum!\n")
1712 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1716 //def userInput = Math.abs(new Random().nextInt() % 2)
1717 def userInput = true
1719 if (boolVariables == 0) {
1720 bool0 = metaData['name']
1721 this[bool0] = userInput
1722 } else if (boolVariables == 1) {
1723 bool1 = metaData['name']
1724 this[bool1] = userInput
1725 } else if (boolVariables == 2) {
1726 bool2 = metaData['name']
1727 this[bool2] = userInput
1728 } else if (boolVariables == 3) {
1729 bool3 = metaData['name']
1730 this[bool3] = userInput
1731 } else if (boolVariables == 4) {
1732 bool4 = metaData['name']
1733 this[bool4] = userInput
1734 } else if (boolVariables == 5) {
1735 bool5 = metaData['name']
1736 this[bool5] = userInput
1739 if (boolVariables != 5)
1740 boolVariables=boolVariables+1
1745 settings.put(metaData['name'], metaData['name'])
1747 if (App == "App1") {
1748 extractedObjectsApp1.append("//Global variable for boolean!\n")
1749 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1751 extractedObjectsApp2.append("//Global variable for boolean!\n")
1752 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1756 def userInput = 9495379373
1758 if (phoneVariables == 0) {
1759 phone0 = metaData['name']
1760 this[phone0] = userInput
1761 } else if (phoneVariables == 1) {
1762 phone1 = metaData['name']
1763 this[phone1] = userInput
1764 } else if (phoneVariables == 2) {
1765 phone2 = metaData['name']
1766 this[phone2] = userInput
1767 } else if (phoneVariables == 3) {
1768 phone3 = metaData['name']
1769 this[phone3] = userInput
1770 } else if (phoneVariables == 4) {
1771 phone4 = metaData['name']
1772 this[phone4] = userInput
1773 } else if (phoneVariables == 5) {
1774 phone5 = metaData['name']
1775 this[phone5] = userInput
1778 if (phoneVariables != 5)
1779 phoneVariables=phoneVariables+1
1783 settings.put(metaData['name'], metaData['name'])
1785 if (App == "App1") {
1786 extractedObjectsApp1.append("//Global variable for phone!\n")
1787 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1789 extractedObjectsApp2.append("//Global variable for phone!\n")
1790 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1794 def userInput = "AJ"
1796 if (contactVariables == 0) {
1797 contact0 = metaData['name']
1798 this[contact0] = userInput
1799 } else if (contactVariables == 1) {
1800 contact1 = metaData['name']
1801 this[contact1] = userInput
1802 } else if (contactVariables == 2) {
1803 contact2 = metaData['name']
1804 this[contact2] = userInput
1805 } else if (contactVariables == 3) {
1806 contact3 = metaData['name']
1807 this[contact3] = userInput
1808 } else if (contactVariables == 4) {
1809 contact4 = metaData['name']
1810 this[contact4] = userInput
1811 } else if (contactVariables == 5) {
1812 contact5 = metaData['name']
1813 this[contact5] = userInput
1816 if (contactVariables != 5)
1817 contactVariables=contactVariables+1
1821 settings.put(metaData['name'], metaData['name'])
1823 if (App == "App1") {
1824 extractedObjectsApp1.append("//Global variable for contact!\n")
1825 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1827 extractedObjectsApp2.append("//Global variable for contact!\n")
1828 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1836 def label(LinkedHashMap metaData) {
1837 if (metaData.containsKey('title')) {
1838 println metaData['title']
1840 if (metaData.containsKey('options')) {
1841 println "Options: "+metaData['options']
1844 println("//IGNORE--ForMobileUse//")
1847 def mode(LinkedHashMap metaData) {
1848 if (metaData.containsKey('title')) {
1849 println metaData['title']
1851 if (metaData.containsKey('options')) {
1852 println "Options: "+metaData['options']
1855 println("//IGNORE--ForMobileUse//")
1858 def href(LinkedHashMap metaData) {
1859 println("//IGNORE--some data//")
1862 def href(LinkedHashMap metaData, String name) {
1863 println("//IGNORE--some data//")
1865 /////Input Methods/////
1868 /////MethodsForExtraction/////
1869 def definition(LinkedHashMap metaData) {
1870 println("///Just some information///")
1873 def preferences(Closure inputData) {
1874 find(inputData) //Run the closure to extract pages/sections/inputMethods
1875 settings.put("END", "END")
1876 if (App == "App1") {
1877 extractedObjectsConstructorApp1.append("//Global variable for settings!\n")
1878 extractedObjectsConstructorApp1.append("settings = [")
1882 extractedObjectsConstructorApp1.append("$key: $key, ")
1884 extractedObjectsConstructorApp1.append("END: \"END\"]\n")
1887 extractedObjectsConstructorApp2.append("//Global variable for settings!\n")
1888 extractedObjectsConstructorApp2.append("settings = [")
1892 extractedObjectsConstructorApp2.append("$key: $key, ")
1894 extractedObjectsConstructorApp2.append("END: \"END\"]\n")
1897 File GlobalVariablesBothApps = new File("GlobalVariables/GlobalVariablesBothApps.groovy")
1898 GlobalVariablesBothApps.write("")
1899 GlobalVariablesBothApps.append("//Creating Global variables for both apps\n")
1900 GlobalVariablesBothApps.append("@Field def sendEvent = {eventDataMap -> eventHandler(eventDataMap)}\n")
1901 GlobalVariablesBothApps.append("@Field def locationObject = new LocationVar(sendEvent)\n")
1902 GlobalVariablesBothApps.append("@Field def appObject = new Touched(sendEvent, 0)\n")
1904 globalObjects.withReader { reader ->
1905 while ((line = reader.readLine()) != null) {
1906 GlobalVariablesBothApps.append(line)
1907 GlobalVariablesBothApps.append("\n")
1913 def page(LinkedHashMap metaData, Closure inputData) {
1914 if (metaData.containsKey('name'))
1915 println(metaData['name'])
1916 if (metaData.containsKey('title'))
1917 println(metaData['title'])
1919 find(inputData) //Run the closure to extract sections/inputMethods
1922 def page(LinkedHashMap metaData) {
1923 def nameOfFunction = metaData['name']
1924 "$nameOfFunction"() //Call the page
1927 def dynamicPage(LinkedHashMap metaData, Closure inputData) {
1928 if (metaData.containsKey('name'))
1929 println(metaData['name'])
1930 if (metaData.containsKey('title'))
1931 println(metaData['title'])
1933 find(inputData) //Run the closure to extract sections/inputMethods
1936 def paragraph(String paragraphText) {
1937 println(paragraphText)
1940 def section(String title, Closure inputData) {
1942 find(inputData) //Run the closure to extract inputMethods
1945 def section(Closure inputData) {
1946 find(inputData) //Run the closure to extract inputMethods
1949 def section(LinkedHashMap metaData, Closure inputData) {
1950 find(inputData) //Run the closure to extract inputMethods
1953 def section(LinkedHashMap metaData, String data, Closure inputData) {
1957 def mappings(Closure inputData) {
1958 println("//IGNORE--some data//")
1960 /////MethodsForExtraction/////