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 ColorTemperature.ColorTemperature
74 import ColorTemperature.ColorTemperatures
77 import Timer.SimulatedTimer
80 @Field def location = new LocationVar()
81 //Settings variable defined to settings on purpose
82 @Field def settings = [app: "app"]
83 //Global variable for state[mode]
84 @Field def state = [home:[],away:[],night:[]]
85 //Create a global logger object for methods
86 @Field def log = new Logger()
87 //Create a global variable for optional property
88 @Field def optional = false //by default for now
89 //Global Object for class AtomicState!
90 @Field def atomicState = [history: "15:00"]
93 //Global variables for files
94 @Field File globalObjects = new File("Extractor/globalObjects.groovy")
95 @Field File extractedObjectsApp1 = new File("Extractor/App1/extractedObjectsApp1.groovy")
96 @Field File extractedObjectsApp2 = new File("Extractor/App2/extractedObjectsApp2.groovy")
97 @Field File extractedObjectsConstructorApp1 = new File("Extractor/App1/extractedObjectsConstructorApp1.groovy")
98 @Field File extractedObjectsConstructorApp2 = new File("Extractor/App2/extractedObjectsConstructorApp2.groovy")
103 globalObjects.write("")
104 extractedObjectsApp1.write("")
105 extractedObjectsConstructorApp1.write("")
106 } else if (App == "App2") {
107 extractedObjectsApp2.write("")
108 extractedObjectsConstructorApp2.write("")
113 //Some of methods-May be needed even in install
114 /////////////////////////////////////////////////////////////////////
115 def timeToday(String time, Object timeZone) {
116 def timeOfDay = new Date()
117 def _inputTime = time.split(':')
118 def inputTime = Integer.parseInt(_inputTime[0])*3600+Integer.parseInt(_inputTime[1])*60+1564191100415
119 timeOfDay.time = inputTime
126 //Global Object for class Touch Sensor!
127 @Field touchSensorObjects = 0
128 @Field def touchSensorObject0
129 @Field def touchSensorObject1
130 @Field def touchSensorObject2
131 //Global Object for class switch!
132 @Field switchObjects = 0
133 @Field def switchObject0
134 @Field def switchObject1
135 @Field def switchObject2
136 //Global Object for class lock!
137 @Field lockObjects = 0
138 @Field def lockObject0
139 @Field def lockObject1
140 @Field def lockObject2
141 //Global Object for class door control!
142 @Field doorControlObjects = 0
143 @Field def doorControlObject0
144 @Field def doorControlObject1
145 @Field def doorControlObject2
146 //Global Object for class contact sensor!
147 @Field contactObjects = 0
148 @Field def contactObject0
149 @Field def contactObject1
150 @Field def contactObject2
151 //Global Object for class presence sensor!
152 @Field presenceSensorObjects = 0
153 @Field def presenceSensorObject0
154 @Field def presenceSensorObject1
155 @Field def presenceSensorObject2
156 //Global Object for class thermostat!
157 @Field thermostatObjects = 0
158 @Field def thermostatObject0
159 @Field def thermostatObject1
160 @Field def thermostatObject2
161 //Global Object for class music player!
162 @Field musicPlayerObjects = 0
163 @Field def musicPlayerObject0
164 @Field def musicPlayerObject1
165 @Field def musicPlayerObject2
166 //Global Object for class aeon key fob!
167 @Field aeonKeyFobObjects = 0
168 @Field def aeonKeyFobObject0
169 @Field def aeonKeyFobObject1
170 @Field def aeonKeyFobObject2
171 //Global Object for class motion sensor!
172 @Field motionSensorObjects = 0
173 @Field def motionSensorObject0
174 @Field def motionSensorObject1
175 @Field def motionSensorObject2
176 //Global Object for class image capture!
177 @Field imageCaptureObjects = 0
178 @Field def imageCaptureObject0
179 @Field def imageCaptureObject1
180 @Field def imageCaptureObject2
181 //Global Object for class smoke detector!
182 @Field smokeDetectorObjects = 0
183 @Field def smokeDetectorObject0
184 @Field def smokeDetectorObject1
185 @Field def smokeDetectorObject2
186 //Global Object for class alarm!
187 @Field alarmObjects = 0
188 @Field def alarmObject0
189 @Field def alarmObject1
190 @Field def alarmObject2
191 //Global Object for class speech synthesis!
192 @Field speechSynthesisObjects = 0
193 @Field def speechSynthesisObject0
194 @Field def speechSynthesisObject1
195 @Field def speechSynthesisObject2
196 //Global Object for class acceleration sensor!
197 @Field accelerationSensorObjects = 0
198 @Field def accelerationSensorObject0
199 @Field def accelerationSensorObject1
200 @Field def accelerationSensorObject2
201 //Global Object for class battery!
202 @Field batteryObjects = 0
203 @Field def batteryObject0
204 @Field def batteryObject1
205 @Field def batteryObject2
206 //Global Object for class beacon sensor!
207 @Field beaconSensorObjects = 0
208 @Field def beaconSensorObject0
209 @Field def beaconSensorObject1
210 @Field def beaconSensorObject2
211 //Global Object for class carbon monoxide detector!
212 @Field carbonMonoxideDetectorObjects = 0
213 @Field def carbonMonoxideDetectorObject0
214 @Field def carbonMonoxideDetectorObject1
215 @Field def carbonMonoxideDetectorObject2
216 //Global Object for class color control!
217 @Field colorControlObjects = 0
218 @Field def colorControlObject0
219 @Field def colorControlObject1
220 @Field def colorControlObject2
221 //Global Object for class energy meter!
222 @Field energyMeterObjects = 0
223 @Field def energyMeterObject0
224 @Field def energyMeterObject1
225 @Field def energyMeterObject2
226 //Global Object for class energy meter!
227 @Field illuminanceMeasurementObjects = 0
228 @Field def illuminanceMeasurementObject0
229 @Field def illuminanceMeasurementObject1
230 @Field def illuminanceMeasurementObject2
231 //Global Object for class power meter!
232 @Field powerMeterObjects = 0
233 @Field def powerMeterObject0
234 @Field def powerMeterObject1
235 @Field def powerMeterObject2
236 //Global Object for class power meter!
237 @Field humidityMeasurementObjects = 0
238 @Field def humidityMeasurementObject0
239 @Field def humidityMeasurementObject1
240 @Field def humidityMeasurementObject2
241 //Global Object for class relay switch!
242 @Field relaySwitchObjects = 0
243 @Field def relaySwitchObject0
244 @Field def relaySwitchObject1
245 @Field def relaySwitchObject2
246 //Global Object for class sleep sensor!
247 @Field sleepSensorObjects = 0
248 @Field def sleepSensorObject0
249 @Field def sleepSensorObject1
250 @Field def sleepSensorObject2
251 //Global Object for class step sensor!
252 @Field stepSensorObjects = 0
253 @Field def stepSensorObject0
254 @Field def stepSensorObject1
255 @Field def stepSensorObject2
256 //Global Object for class switch level!
257 @Field switchLevelObjects = 0
258 @Field def switchLevelObject0
259 @Field def switchLevelObject1
260 @Field def switchLevelObject2
261 //Global Object for class temperature measurement!
262 @Field temperatureMeasurementObjects = 0
263 @Field def temperatureMeasurementObject0
264 @Field def temperatureMeasurementObject1
265 @Field def temperatureMeasurementObject2
266 //Global Object for class water sensor!
267 @Field waterSensorObjects = 0
268 @Field def waterSensorObject0
269 @Field def waterSensorObject1
270 @Field def waterSensorObject2
271 //Global Object for class valve!
272 @Field valveObjects = 0
273 @Field def valveObject0
274 @Field def valveObject1
275 @Field def valveObject2
276 //Global Object for class mobile presence!
277 @Field mobilePresenceObjects = 0
278 @Field def mobilePresenceObject0
279 @Field def mobilePresenceObject1
280 @Field def mobilePresenceObject2
281 //Global Object for class color temperature!
282 @Field colorTemperatureObjects = 0
283 @Field def colorTemperatureObject0
284 @Field def colorTemperatureObject1
285 @Field def colorTemperatureObject2
286 //Global Object for class button!
287 @Field buttonObjects = 0
288 @Field def buttonObject0
289 @Field def buttonObject1
290 @Field def buttonObject2
295 @Field modeVariables = 0
303 @Field numberVariables = 0
311 @Field decimalVariables = 0
319 @Field timeVariables = 0
327 @Field enumVariables = 0
335 @Field phoneVariables = 0
343 @Field contactVariables = 0
351 @Field textVariables = 0
359 @Field boolVariables = 0
367 /////Input Methods/////
369 def input(String name, String type) {
370 LinkedHashMap metaData = []
371 metaData.put('name',name)
372 metaData.put('type',type)
376 //input "","",linkedHashMap
377 def input(LinkedHashMap metaData, String name, String type) {
378 metaData.put('name',name)
379 metaData.put('type',type)
383 //input "", "", linkedHashMap, Closure
384 def input(LinkedHashMap metaData, String name, String type, Closure Input) {
385 metaData.put('name',name)
386 metaData.put('type',type)
391 //input linkedHashMap
392 def input(LinkedHashMap metaData) {
393 if (metaData.containsKey('title')) {
394 println metaData['title']
396 if (metaData.containsKey('options')) {
397 println "Options: "+metaData['options']
400 switch(metaData['type']) {
401 case "capability.lock":
402 globalObjects.eachLine { line ->
403 if(line.contains("lockObject")){
409 globalObjects.append("@Field def lockObject = new Locks(sendEvent, 1)\n")
411 if (lockObjects == 0) {
412 lockObject0 = metaData['name']
413 this[lockObject0] = new Locks({}, 1)
414 } else if (lockObjects == 1) {
415 lockObject1 = metaData['name']
416 this[lockObject1] = new Locks({}, 1)
417 } else if (lockObjects == 2) {
418 lockObject2 = metaData['name']
419 this[lockObject2] = new Locks({}, 1)
422 lockObjects=lockObjects+1
424 settings.put(metaData['name'], new Locks({}, 1))
427 extractedObjectsApp1.append("//Object for class lock!\n")
428 extractedObjectsApp1.append("def "+metaData['name']+"\n")
429 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.lockObject\n")
431 extractedObjectsApp2.append("//Object for class lock!\n")
432 extractedObjectsApp2.append("def "+metaData['name']+"\n")
433 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.lockObject\n")
436 case "capability.alarm":
437 globalObjects.eachLine { line ->
438 if(line.contains("alarmObject")){
444 globalObjects.append("@Field def alarmObject = new Alarms(sendEvent, 1)\n")
446 if (alarmObjects == 0) {
447 alarmObject0 = metaData['name']
448 this[alarmObject0] = new Alarms({}, 1)
449 } else if (alarmObjects == 1) {
450 alarmObject1 = metaData['name']
451 this[alarmObject1] = new Alarms({}, 1)
452 } else if (alarmObjects == 2) {
453 alarmObject2 = metaData['name']
454 this[alarmObject2] = new Alarms({}, 1)
457 alarmObjects=alarmObjects+1
459 settings.put(metaData['name'], new Alarms({}, 1))
462 extractedObjectsApp1.append("//Object for class alarm!\n")
463 extractedObjectsApp1.append("def "+metaData['name']+"\n")
464 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.alarmObject\n")
466 extractedObjectsApp2.append("//Object for class alarm!\n")
467 extractedObjectsApp2.append("def "+metaData['name']+"\n")
468 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.alarmObject\n")
471 case "capability.button":
472 globalObjects.eachLine { line ->
473 if(line.contains("buttonObject")){
479 globalObjects.append("@Field def buttonObject = new Buttons(sendEvent, 1)\n")
481 if (buttonObjects == 0) {
482 buttonObject0 = metaData['name']
483 this[buttonObject0] = new Buttons({}, 1)
484 } else if (buttonObjects == 1) {
485 buttonObject1 = metaData['name']
486 this[buttonObject1] = new Buttons({}, 1)
487 } else if (buttonObjects == 2) {
488 buttonObject2 = metaData['name']
489 this[buttonObject2] = new Buttons({}, 1)
492 buttonObjects=buttonObjects+1
494 settings.put(metaData['name'], new Buttons({}, 1))
497 extractedObjectsApp1.append("//Object for class Button!\n")
498 extractedObjectsApp1.append("def "+metaData['name']+"\n")
499 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.buttonObject\n")
501 extractedObjectsApp2.append("//Object for class Button!\n")
502 extractedObjectsApp2.append("def "+metaData['name']+"\n")
503 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.buttonObject\n")
506 case "capability.battery":
507 globalObjects.eachLine { line ->
508 if(line.contains("batteryObject")){
514 globalObjects.append("@Field def batteryObject = new Batteries(sendEvent, 1)\n")
516 if (batteryObjects == 0) {
517 batteryObject0 = metaData['name']
518 this[batteryObject0] = new Batteries({}, 1)
519 } else if (batteryObjects == 1) {
520 batteryObject1 = metaData['name']
521 this[batteryObject1] = new Batteries({}, 1)
522 } else if (batteryObjects == 2) {
523 batteryObject2 = metaData['name']
524 this[batteryObject2] = new Batteries({}, 1)
527 batteryObjects=batteryObjects+1
529 settings.put(metaData['name'], new Batteries({}, 1))
532 extractedObjectsApp1.append("//Object for class Battery!\n")
533 extractedObjectsApp1.append("def "+metaData['name']+"\n")
534 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.batteryObject\n")
536 extractedObjectsApp2.append("//Object for class Battery!\n")
537 extractedObjectsApp2.append("def "+metaData['name']+"\n")
538 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.batteryObject\n")
541 case "capability.beacon":
542 globalObjects.eachLine { line ->
543 if(line.contains("beaconSensorObject")){
549 globalObjects.append("@Field def beaconSensorObject = new BeaconSensors(sendEvent, 1)\n")
551 if (beaconSensorObjects == 0) {
552 beaconSensorObject0 = metaData['name']
553 this[beaconSensorObject0] = new BeaconSensors({}, 1)
554 } else if (beaconSensorObjects == 1) {
555 beaconSensorObject1 = metaData['name']
556 this[beaconSensorObject1] = new BeaconSensors({}, 1)
557 } else if (beaconSensorObjects == 2) {
558 beaconSensorObject2 = metaData['name']
559 this[beaconSensorObject2] = new BeaconSensors({}, 1)
562 beaconSensorObjects=beaconSensorObjects+1
564 settings.put(metaData['name'], new BeaconSensors({}, 1))
567 extractedObjectsApp1.append("//Object for class beacon sensor!\n")
568 extractedObjectsApp1.append("def "+metaData['name']+"\n")
569 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.beaconSensorObject\n")
571 extractedObjectsApp2.append("//Object for class beacon sensor!\n")
572 extractedObjectsApp2.append("def "+metaData['name']+"\n")
573 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.beaconSensorObject\n")
576 case "capability.carbonMonoxideDetector":
577 globalObjects.eachLine { line ->
578 if(line.contains("carbonMonoxideDetectorObject")){
584 globalObjects.append("@Field def carbonMonoxideDetectorObject = new CarbonMonoxideDetectors(sendEvent, 1)\n")
586 if (carbonMonoxideDetectorObjects == 0) {
587 carbonMonoxideDetectorObject0 = metaData['name']
588 this[carbonMonoxideDetectorObject0] = new CarbonMonoxideDetectors({}, 1)
589 } else if (carbonMonoxideDetectorObjects == 1) {
590 carbonMonoxideDetectorObject1 = metaData['name']
591 this[carbonMonoxideDetectorObject1] = new CarbonMonoxideDetectors({}, 1)
592 } else if (carbonMonoxideDetectorObjects == 2) {
593 carbonMonoxideDetectorObject2 = metaData['name']
594 this[carbonMonoxideDetectorObject2] = new CarbonMonoxideDetectors({}, 1)
597 carbonMonoxideDetectorObjects=carbonMonoxideDetectorObjects+1
599 settings.put(metaData['name'], new CarbonMonoxideDetectors({}, 1))
602 extractedObjectsApp1.append("//Object for class carbon monoxide detector!\n")
603 extractedObjectsApp1.append("def "+metaData['name']+"\n")
604 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
606 extractedObjectsApp2.append("//Object for class carbon monoxide detector!\n")
607 extractedObjectsApp2.append("def "+metaData['name']+"\n")
608 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.carbonMonoxideDetectorObject\n")
611 case "capability.colorTemperature":
612 globalObjects.eachLine { line ->
613 if(line.contains("colorTemperatureObject")){
619 globalObjects.append("@Field def colorTemperatureObject = new ColorTemperatures(sendEvent, 1)\n")
621 if (colorTemperatureObjects == 0) {
622 colorTemperatureObject0 = metaData['name']
623 this[colorTemperatureObject0] = new ColorTemperatures({}, 1)
624 } else if (colorTemperatureObjects == 1) {
625 colorTemperatureObject1 = metaData['name']
626 this[colorTemperatureObject1] = new ColorTemperatures({}, 1)
627 } else if (colorTemperatureObjects == 2) {
628 colorTemperatureObject2 = metaData['name']
629 this[colorTemperatureObject2] = new ColorTemperatures({}, 1)
632 colorTemperatureObjects=colorTemperatureObjects+1
634 settings.put(metaData['name'], new ColorTemperatures({}, 1))
637 extractedObjectsApp1.append("//Object for class color temperature!\n")
638 extractedObjectsApp1.append("def "+metaData['name']+"\n")
639 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.colorTemperatureObject\n")
641 extractedObjectsApp2.append("//Object for class color control!\n")
642 extractedObjectsApp2.append("def "+metaData['name']+"\n")
643 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.colorTemperatureObject\n")
646 case "capability.colorControl":
647 globalObjects.eachLine { line ->
648 if(line.contains("colorControlObject")){
654 globalObjects.append("@Field def colorControlObject = new ColorControls(sendEvent, 1)\n")
656 if (colorControlObjects == 0) {
657 colorControlObject0 = metaData['name']
658 this[colorControlObject0] = new ColorControls({}, 1)
659 } else if (colorControlObjects == 1) {
660 colorControlObject1 = metaData['name']
661 this[colorControlObject1] = new ColorControls({}, 1)
662 } else if (colorControlObjects == 2) {
663 colorControlObject2 = metaData['name']
664 this[colorControlObject2] = new ColorControls({}, 1)
667 colorControlObjects=colorControlObjects+1
669 settings.put(metaData['name'], new ColorControls({}, 1))
672 extractedObjectsApp1.append("//Object for class color control!\n")
673 extractedObjectsApp1.append("def "+metaData['name']+"\n")
674 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.colorControlObject\n")
676 extractedObjectsApp2.append("//Object for class color control!\n")
677 extractedObjectsApp2.append("def "+metaData['name']+"\n")
678 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.colorControlObject\n")
681 case "capability.contactSensor":
682 globalObjects.eachLine { line ->
683 if(line.contains("contactObject")){
689 globalObjects.append("@Field def contactObject = new ContactSensors(sendEvent, 1)\n")
691 if (contactObjects == 0) {
692 contactObject0 = metaData['name']
693 this[contactObject0] = new ContactSensors({}, 1)
694 } else if (contactObjects == 1) {
695 contactObject1 = metaData['name']
696 this[contactObject1] = new ContactSensors({}, 1)
697 } else if (contactObjects == 2) {
698 contactObject2 = metaData['name']
699 this[contactObject2] = new ContactSensors({}, 1)
702 contactObjects=contactObjects+1
704 settings.put(metaData['name'], new ContactSensors({}, 1))
707 extractedObjectsApp1.append("//Object for class contactSensor!\n")
708 extractedObjectsApp1.append("def "+metaData['name']+"\n")
709 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.contactObject\n")
711 extractedObjectsApp2.append("//Object for class contactSensor!\n")
712 extractedObjectsApp2.append("def "+metaData['name']+"\n")
713 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.contactObject\n")
716 case "capability.doorControl":
717 globalObjects.eachLine { line ->
718 if(line.contains("doorControlObject")){
724 globalObjects.append("@Field def doorControlObject = new DoorControls(sendEvent, 1)\n")
726 if (doorControlObjects == 0) {
727 doorControlObject0 = metaData['name']
728 this[doorControlObject0] = new DoorControls({}, 1)
729 } else if (doorControlObjects == 1) {
730 doorControlObject1 = metaData['name']
731 this[doorControlObject1] = new DoorControls({}, 1)
732 } else if (doorControlObjects == 2) {
733 doorControlObject2 = metaData['name']
734 this[doorControlObject2] = new DoorControls({}, 1)
737 doorControlObjects=doorControlObjects+1
739 settings.put(metaData['name'], new DoorControls({}, 1))
742 extractedObjectsApp1.append("//Object for class door control!\n")
743 extractedObjectsApp1.append("def "+metaData['name']+"\n")
744 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.doorControlObject\n")
746 extractedObjectsApp2.append("//Object for class door control!\n")
747 extractedObjectsApp2.append("def "+metaData['name']+"\n")
748 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.doorControlObject\n")
751 case "capability.energyMeter":
752 globalObjects.eachLine { line ->
753 if(line.contains("energyMeterObject")){
759 globalObjects.append("@Field def energyMeterObject = new EnergyMeters(sendEvent, 1)\n")
761 if (energyMeterObjects == 0) {
762 energyMeterObject0 = metaData['name']
763 this[energyMeterObject0] = new EnergyMeters({}, 1)
764 } else if (energyMeterObjects == 1) {
765 energyMeterObject1 = metaData['name']
766 this[energyMeterObject1] = new EnergyMeters({}, 1)
767 } else if (energyMeterObjects == 2) {
768 energyMeterObject2 = metaData['name']
769 this[energyMeterObject2] = new EnergyMeters({}, 1)
772 energyMeterObjects=energyMeterObjects+1
774 settings.put(metaData['name'], new EnergyMeters({}, 1))
777 extractedObjectsApp1.append("//Object for class energy meter!\n")
778 extractedObjectsApp1.append("def "+metaData['name']+"\n")
779 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.energyMeterObject\n")
781 extractedObjectsApp2.append("//Object for class energy meter!\n")
782 extractedObjectsApp2.append("def "+metaData['name']+"\n")
783 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.energyMeterObject\n")
786 case "capability.illuminanceMeasurement":
787 globalObjects.eachLine { line ->
788 if(line.contains("illuminanceMeasurementObject")){
794 globalObjects.append("@Field def illuminanceMeasurementObject = new IlluminanceMeasurements(sendEvent, 1)\n")
796 if (illuminanceMeasurementObjects == 0) {
797 illuminanceMeasurementObject0 = metaData['name']
798 this[illuminanceMeasurementObject0] = new IlluminanceMeasurements({}, 1)
799 } else if (illuminanceMeasurementObjects == 1) {
800 illuminanceMeasurementObject1 = metaData['name']
801 this[illuminanceMeasurementObject1] = new IlluminanceMeasurements({}, 1)
802 } else if (illuminanceMeasurementObjects == 2) {
803 illuminanceMeasurementObject2 = metaData['name']
804 this[illuminanceMeasurementObject2] = new IlluminanceMeasurements({}, 1)
807 illuminanceMeasurementObjects=illuminanceMeasurementObjects+1
809 settings.put(metaData['name'], new IlluminanceMeasurements({}, 1))
812 extractedObjectsApp1.append("//Object for class illuminance measurement!\n")
813 extractedObjectsApp1.append("def "+metaData['name']+"\n")
814 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
816 extractedObjectsApp2.append("//Object for class illuminance measurement!\n")
817 extractedObjectsApp2.append("def "+metaData['name']+"\n")
818 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.illuminanceMeasurementObject\n")
821 case "capability.accelerationSensor":
822 globalObjects.eachLine { line ->
823 if(line.contains("accelerationSensorObject")){
829 globalObjects.append("@Field def accelerationSensorObject = new AccelerationSensors(sendEvent, 1)\n")
831 if (accelerationSensorObjects == 0) {
832 accelerationSensorObject0 = metaData['name']
833 this[accelerationSensorObject0] = new AccelerationSensors({}, 1)
834 } else if (accelerationSensorObjects == 1) {
835 accelerationSensorObject1 = metaData['name']
836 this[accelerationSensorObject1] = new AccelerationSensors({}, 1)
837 } else if (accelerationSensorObjects == 2) {
838 accelerationSensorObject2 = metaData['name']
839 this[accelerationSensorObject2] = new AccelerationSensors({}, 1)
842 accelerationSensorObjects=accelerationSensorObjects+1
844 settings.put(metaData['name'], new AccelerationSensors({}, 1))
847 extractedObjectsApp1.append("//Object for class Acceleration Sensor!\n")
848 extractedObjectsApp1.append("def "+metaData['name']+"\n")
849 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.accelerationSensorObject\n")
851 extractedObjectsApp2.append("//Object for class Acceleration Sensor!\n")
852 extractedObjectsApp2.append("def "+metaData['name']+"\n")
853 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.accelerationSensorObject\n")
856 case "capability.motionSensor":
857 globalObjects.eachLine { line ->
858 if(line.contains("motionSensorObject")){
864 globalObjects.append("@Field def motionSensorObject = new MotionSensors(sendEvent, 1)\n")
866 if (motionSensorObjects == 0) {
867 motionSensorObject0 = metaData['name']
868 this[motionSensorObject0] = new MotionSensors({}, 1)
869 } else if (motionSensorObjects == 1) {
870 motionSensorObject1 = metaData['name']
871 this[motionSensorObject1] = new MotionSensors({}, 1)
872 } else if (motionSensorObjects == 2) {
873 motionSensorObject2 = metaData['name']
874 this[motionSensorObject2] = new MotionSensors({}, 1)
877 motionSensorObjects=motionSensorObjects+1
879 settings.put(metaData['name'], new MotionSensors({}, 1))
882 extractedObjectsApp1.append("//Object for class Motion Sensor!\n")
883 extractedObjectsApp1.append("def "+metaData['name']+"\n")
884 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.motionSensorObject\n")
886 extractedObjectsApp2.append("//Object for class Motion Sensor!\n")
887 extractedObjectsApp2.append("def "+metaData['name']+"\n")
888 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.motionSensorObject\n")
891 case "capability.musicPlayer":
892 globalObjects.eachLine { line ->
893 if(line.contains("musicPlayerObject")){
899 globalObjects.append("@Field def musicPlayerObject = new MusicPlayers(sendEvent, 1)\n")
901 if (musicPlayerObjects == 0) {
902 musicPlayerObject0 = metaData['name']
903 this[musicPlayerObject0] = new MusicPlayers({}, 1)
904 } else if (musicPlayerObjects == 1) {
905 musicPlayerObject1 = metaData['name']
906 this[musicPlayerObject1] = new MusicPlayers({}, 1)
907 } else if (musicPlayerObjects == 2) {
908 musicPlayerObject2 = metaData['name']
909 this[musicPlayerObject2] = new MusicPlayers({}, 1)
912 musicPlayerObjects=musicPlayerObjects+1
914 settings.put(metaData['name'], new MusicPlayers({}, 1))
917 extractedObjectsApp1.append("//Object for class music player!\n")
918 extractedObjectsApp1.append("def "+metaData['name']+"\n")
919 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.musicPlayerObject\n")
921 extractedObjectsApp2.append("//Object for class music player!\n")
922 extractedObjectsApp2.append("def "+metaData['name']+"\n")
923 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.musicPlayerObject\n")
926 case "capability.powerMeter":
927 globalObjects.eachLine { line ->
928 if(line.contains("powerMeterObject")){
934 globalObjects.append("@Field def powerMeterObject = new PowerMeters(sendEvent, 1)\n")
936 if (powerMeterObjects == 0) {
937 powerMeterObject0 = metaData['name']
938 this[powerMeterObject0] = new PowerMeters({}, 1)
939 } else if (powerMeterObjects == 1) {
940 powerMeterObject1 = metaData['name']
941 this[powerMeterObject1] = new PowerMeters({}, 1)
942 } else if (powerMeterObjects == 2) {
943 powerMeterObject2 = metaData['name']
944 this[powerMeterObject2] = new PowerMeters({}, 1)
947 powerMeterObjects=powerMeterObjects+1
949 settings.put(metaData['name'], new PowerMeters({}, 1))
952 extractedObjectsApp1.append("//Object for class power meter!\n")
953 extractedObjectsApp1.append("def "+metaData['name']+"\n")
954 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.powerMeterObject\n")
956 extractedObjectsApp2.append("//Object for class power meter!\n")
957 extractedObjectsApp2.append("def "+metaData['name']+"\n")
958 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.powerMeterObject\n")
961 case "capability.presenceSensor":
962 globalObjects.eachLine { line ->
963 if(line.contains("presenceSensorObject")){
969 globalObjects.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent, 1)\n")
971 if (presenceSensorObjects == 0) {
972 presenceSensorObject0 = metaData['name']
973 this[presenceSensorObject0] = new PresenceSensors({}, 1)
974 } else if (presenceSensorObjects == 1) {
975 presenceSensorObject1 = metaData['name']
976 this[presenceSensorObject1] = new PresenceSensors({}, 1)
977 } else if (presenceSensorObjects == 2) {
978 presenceSensorObject2 = metaData['name']
979 this[presenceSensorObject2] = new PresenceSensors({}, 1)
982 presenceSensorObjects=presenceSensorObjects+1
984 settings.put(metaData['name'], new PresenceSensors({}, 1))
987 extractedObjectsApp1.append("//Object for class presence sensor!\n")
988 extractedObjectsApp1.append("def "+metaData['name']+"\n")
989 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.presenceSensorObject\n")
991 extractedObjectsApp2.append("//Object for class presence sensor!\n")
992 extractedObjectsApp2.append("def "+metaData['name']+"\n")
993 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.presenceSensorObject\n")
996 case "capability.relativeHumidityMeasurement":
997 globalObjects.eachLine { line ->
998 if(line.contains("humidityMeasurementObject")){
1004 globalObjects.append("@Field def humidityMeasurementObject = new RelativeHumidityMeasurements(sendEvent, 1)\n")
1006 if (humidityMeasurementObjects == 0) {
1007 humidityMeasurementObject0 = metaData['name']
1008 this[humidityMeasurementObject0] = new RelativeHumidityMeasurements({}, 1)
1009 } else if (humidityMeasurementObjects == 1) {
1010 humidityMeasurementObject1 = metaData['name']
1011 this[humidityMeasurementObject1] = new RelativeHumidityMeasurements({}, 1)
1012 } else if (humidityMeasurementObjects == 2) {
1013 humidityMeasurementObject2 = metaData['name']
1014 this[humidityMeasurementObject2] = new RelativeHumidityMeasurements({}, 1)
1017 humidityMeasurementObjects=humidityMeasurementObjects+1
1019 settings.put(metaData['name'], new RelativeHumidityMeasurements({}, 1))
1021 if (App == "App1") {
1022 extractedObjectsApp1.append("//Object for class humidity measurement!\n")
1023 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1024 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.humidityMeasurementObject\n")
1026 extractedObjectsApp2.append("//Object for class humidity measurement!\n")
1027 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1028 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.humidityMeasurementObject\n")
1031 case "capability.relaySwitch":
1032 globalObjects.eachLine { line ->
1033 if(line.contains("relaySwitchObject")){
1039 globalObjects.append("@Field def relaySwitchObject = new RelaySwitches(sendEvent, 1)\n")
1041 if (relaySwitchObjects == 0) {
1042 relaySwitchObject0 = metaData['name']
1043 this[relaySwitchObject0] = new RelaySwitches({}, 1)
1044 } else if (relaySwitchObjects == 1) {
1045 relaySwitchObject1 = metaData['name']
1046 this[relaySwitchObject1] = new RelaySwitches({}, 1)
1047 } else if (relaySwitchObjects == 2) {
1048 relaySwitchObject2 = metaData['name']
1049 this[relaySwitchObject2] = new RelaySwitches({}, 1)
1052 relaySwitchObjects=relaySwitchObjects+1
1054 settings.put(metaData['name'], new RelaySwitches({}, 1))
1056 if (App == "App1") {
1057 extractedObjectsApp1.append("//Object for class relay switch!\n")
1058 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1059 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.relaySwitchObject\n")
1061 extractedObjectsApp2.append("//Object for class relay switch!\n")
1062 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1063 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.relaySwitchObject\n")
1066 case "capability.sleepSensor":
1067 globalObjects.eachLine { line ->
1068 if(line.contains("sleepSensorObject")){
1074 globalObjects.append("@Field def sleepSensorObject = new SleepSensors(sendEvent, 1)\n")
1076 if (sleepSensorObjects == 0) {
1077 sleepSensorObject0 = metaData['name']
1078 this[sleepSensorObject0] = new SleepSensors({}, 1)
1079 } else if (sleepSensorObjects == 1) {
1080 sleepSensorObject1 = metaData['name']
1081 this[sleepSensorObject1] = new SleepSensors({}, 1)
1082 } else if (sleepSensorObjects == 2) {
1083 sleepSensorObject2 = metaData['name']
1084 this[sleepSensorObject2] = new SleepSensors({}, 1)
1087 sleepSensorObjects=sleepSensorObjects+1
1089 settings.put(metaData['name'], new SleepSensors({}, 1))
1091 if (App == "App1") {
1092 extractedObjectsApp1.append("//Object for class sleep sensor!\n")
1093 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1094 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.sleepSensorObject\n")
1096 extractedObjectsApp2.append("//Object for class sleep sensor!\n")
1097 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1098 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.sleepSensorObject\n")
1101 case "capability.smokeDetector":
1102 globalObjects.eachLine { line ->
1103 if(line.contains("smokeDetectorObject")){
1109 globalObjects.append("@Field def smokeDetectorObject = new SmokeDetectors(sendEvent, 1)\n")
1111 if (smokeDetectorObjects == 0) {
1112 smokeDetectorObject0 = metaData['name']
1113 this[smokeDetectorObject0] = new SmokeDetectors({}, 1)
1114 } else if (smokeDetectorObjects == 1) {
1115 smokeDetectorObject1 = metaData['name']
1116 this[smokeDetectorObject1] = new SmokeDetectors({}, 1)
1117 } else if (smokeDetectorObjects == 2) {
1118 smokeDetectorObject2 = metaData['name']
1119 this[smokeDetectorObject2] = new SmokeDetectors({}, 1)
1122 smokeDetectorObjects=smokeDetectorObjects+1
1124 settings.put(metaData['name'], new SmokeDetectors({}, 1))
1126 if (App == "App1") {
1127 extractedObjectsApp1.append("//Object for class smoke detector!\n")
1128 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1129 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.smokeDetectorObject\n")
1131 extractedObjectsApp2.append("//Object for class smoke detector!\n")
1132 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1133 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.smokeDetectorObject\n")
1136 case "capability.stepSensor":
1137 globalObjects.eachLine { line ->
1138 if(line.contains("stepSensorObject")){
1144 globalObjects.append("@Field def stepSensorObject = new StepSensors(sendEvent, 1)\n")
1146 if (stepSensorObjects == 0) {
1147 stepSensorObject0 = metaData['name']
1148 this[stepSensorObject0] = new StepSensors({}, 1)
1149 } else if (stepSensorObjects == 1) {
1150 stepSensorObject1 = metaData['name']
1151 this[stepSensorObject1] = new StepSensors({}, 1)
1152 } else if (stepSensorObjects == 2) {
1153 stepSensorObject2 = metaData['name']
1154 this[stepSensorObject2] = new StepSensors({}, 1)
1157 stepSensorObjects=stepSensorObjects+1
1159 settings.put(metaData['name'], new StepSensors({}, 1))
1161 if (App == "App1") {
1162 extractedObjectsApp1.append("//Object for class step sensor!\n")
1163 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1164 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.stepSensorObject\n")
1166 extractedObjectsApp2.append("//Object for class step sensor!\n")
1167 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1168 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.stepSensorObject\n")
1171 case "capability.switch":
1172 globalObjects.eachLine { line ->
1173 if(line.contains("switchObject")){
1179 globalObjects.append("@Field def switchObject = new Switches(sendEvent, 1)\n")
1181 if (switchObjects == 0) {
1182 switchObject0 = metaData['name']
1183 this[switchObject0] = new Switches({}, 1)
1184 } else if (switchObjects == 1) {
1185 switchObject1 = metaData['name']
1186 this[switchObject1] = new Switches({}, 1)
1187 } else if (switchObjects == 2) {
1188 switchObject2 = metaData['name']
1189 this[switchObject2] = new Switches({}, 1)
1192 switchObjects=switchObjects+1
1194 settings.put(metaData['name'], new Switches({}, 1))
1196 if (App == "App1") {
1197 extractedObjectsApp1.append("//Object for class switch!\n")
1198 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1199 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchObject\n")
1201 extractedObjectsApp2.append("//Object for class switch!\n")
1202 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1203 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchObject\n")
1206 case "capability.switchLevel":
1207 globalObjects.eachLine { line ->
1208 if(line.contains("switchLevelObject")){
1214 globalObjects.append("@Field def switchLevelObject = new SwitchLevels(sendEvent, 1)\n")
1216 if (switchLevelObjects == 0) {
1217 switchLevelObject0 = metaData['name']
1218 this[switchLevelObject0] = new SwitchLevels({}, 1)
1219 } else if (switchLevelObjects == 1) {
1220 switchLevelObject1 = metaData['name']
1221 this[switchLevelObject1] = new SwitchLevels({}, 1)
1222 } else if (switchLevelObjects == 2) {
1223 switchLevelObject2 = metaData['name']
1224 this[switchLevelObject2] = new SwitchLevels({}, 1)
1227 switchLevelObjects=switchLevelObjects+1
1229 settings.put(metaData['name'], new SwitchLevels({}, 1))
1231 if (App == "App1") {
1232 extractedObjectsApp1.append("//Object for class switch level!\n")
1233 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1234 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.switchLevelObject\n")
1236 extractedObjectsApp2.append("//Object for class switch level!\n")
1237 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1238 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.switchLevelObject\n")
1241 case "capability.temperatureMeasurement":
1242 globalObjects.eachLine { line ->
1243 if(line.contains("temperatureMeasurementObject")){
1249 globalObjects.append("@Field def temperatureMeasurementObject = new TemperatureMeasurements(sendEvent, 1)\n")
1251 if (temperatureMeasurementObjects == 0) {
1252 temperatureMeasurementObject0 = metaData['name']
1253 this[temperatureMeasurementObject0] = new TemperatureMeasurements({}, 1)
1254 } else if (temperatureMeasurementObjects == 1) {
1255 temperatureMeasurementObject1 = metaData['name']
1256 this[temperatureMeasurementObject1] = new TemperatureMeasurements({}, 1)
1257 } else if (temperatureMeasurementObjects == 2) {
1258 temperatureMeasurementObject2 = metaData['name']
1259 this[temperatureMeasurementObject2] = new TemperatureMeasurements({}, 1)
1262 temperatureMeasurementObjects=temperatureMeasurementObjects+1
1264 settings.put(metaData['name'], new TemperatureMeasurements({}, 1))
1266 if (App == "App1") {
1267 extractedObjectsApp1.append("//Object for class temperature measurement!\n")
1268 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1269 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
1271 extractedObjectsApp2.append("//Object for class temperature measurement!\n")
1272 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1273 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.temperatureMeasurementObject\n")
1276 case "capability.thermostat":
1277 globalObjects.eachLine { line ->
1278 if(line.contains("thermostatObject")){
1284 globalObjects.append("@Field def thermostatObject = new Thermostats(sendEvent, 1)\n")
1286 if (thermostatObjects == 0) {
1287 thermostatObject0 = metaData['name']
1288 this[thermostatObject0] = new Thermostats({}, 1)
1289 } else if (thermostatObjects == 1) {
1290 thermostatObject1 = metaData['name']
1291 this[thermostatObject1] = new Thermostats({}, 1)
1292 } else if (thermostatObjects == 2) {
1293 thermostatObject2 = metaData['name']
1294 this[thermostatObject2] = new Thermostats({}, 1)
1297 thermostatObjects=thermostatObjects+1
1299 settings.put(metaData['name'], new Thermostats({}, 1))
1301 if (App == "App1") {
1302 extractedObjectsApp1.append("//Object for class thermostat!\n")
1303 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1304 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.thermostatObject\n")
1306 extractedObjectsApp2.append("//Object for class thermostat!\n")
1307 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1308 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.thermostatObject\n")
1311 case "capability.valve":
1312 globalObjects.eachLine { line ->
1313 if(line.contains("valveObject")){
1319 globalObjects.append("@Field def valveObject = new Valves(sendEvent, 1)\n")
1321 if (valveObjects == 0) {
1322 valveObject0 = metaData['name']
1323 this[valveObject0] = new Valves({}, 1)
1324 } else if (valveObjects == 1) {
1325 valveObject1 = metaData['name']
1326 this[valveObject1] = new Valves({}, 1)
1327 } else if (valveObjects == 2) {
1328 valveObject2 = metaData['name']
1329 this[valveObject2] = new Valves({}, 1)
1332 valveObjects=valveObjects+1
1334 settings.put(metaData['name'], new Valves({}, 1))
1336 if (App == "App1") {
1337 extractedObjectsApp1.append("//Object for class valve!\n")
1338 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1339 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.valveObject\n")
1341 extractedObjectsApp2.append("//Object for class valve!\n")
1342 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1343 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.valveObject\n")
1346 case "capability.speechSynthesis":
1347 globalObjects.eachLine { line ->
1348 if(line.contains("speechSynthesisObject")){
1354 globalObjects.append("@Field def speechSynthesisObject = new SpeechSynthesises(sendEvent, 1)\n")
1356 if (speechSynthesisObjects == 0) {
1357 speechSynthesisObject0 = metaData['name']
1358 this[speechSynthesisObject0] = new SpeechSynthesises({}, 1)
1359 } else if (speechSynthesisObjects == 1) {
1360 speechSynthesisObject1 = metaData['name']
1361 this[speechSynthesisObject1] = new SpeechSynthesises({}, 1)
1362 } else if (speechSynthesisObjects == 2) {
1363 speechSynthesisObject2 = metaData['name']
1364 this[speechSynthesisObject2] = new SpeechSynthesises({}, 1)
1367 speechSynthesisObjects=speechSynthesisObjects+1
1369 settings.put(metaData['name'], new SpeechSynthesises({}, 1))
1371 if (App == "App1") {
1372 extractedObjectsApp1.append("//Object for class speech synthesis!\n")
1373 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1374 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.speechSynthesisObject\n")
1376 extractedObjectsApp2.append("//Object for class speech synthesis!\n")
1377 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1378 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.speechSynthesisObject\n")
1381 case "capability.waterSensor":
1382 globalObjects.eachLine { line ->
1383 if(line.contains("waterSensorObject")){
1389 globalObjects.append("@Field def waterSensorObject = new WaterSensors(sendEvent, 1)\n")
1391 if (waterSensorObjects == 0) {
1392 waterSensorObject0 = metaData['name']
1393 this[waterSensorObject0] = new WaterSensors({}, 1)
1394 } else if (waterSensorObjects == 1) {
1395 waterSensorObject1 = metaData['name']
1396 this[waterSensorObject1] = new WaterSensors({}, 1)
1397 } else if (waterSensorObjects == 2) {
1398 waterSensorObject2 = metaData['name']
1399 this[waterSensorObject2] = new WaterSensors({}, 1)
1402 waterSensorObjects=waterSensorObjects+1
1404 settings.put(metaData['name'], new WaterSensors({}, 1))
1406 if (App == "App1") {
1407 extractedObjectsApp1.append("//Object for class water sensor!\n")
1408 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1409 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.waterSensorObject\n")
1411 extractedObjectsApp2.append("//Object for class water sensor!\n")
1412 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1413 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.waterSensorObject\n")
1416 case "capability.touchSensor":
1417 globalObjects.eachLine { line ->
1418 if(line.contains("touchSensorObject")){
1424 globalObjects.append("@Field def touchSensorObject = new NfcTouch(sendEvent, 1)\n")
1426 if (touchSensorObjects == 0) {
1427 touchSensorObject0 = metaData['name']
1428 this[touchSensorObject0] = new NfcTouch({}, 1)
1429 } else if (touchSensorObjects == 1) {
1430 touchSensorObject1 = metaData['name']
1431 this[touchSensorObject1] = new NfcTouch({}, 1)
1432 } else if (touchSensorObjects == 2) {
1433 touchSensorObject2 = metaData['name']
1434 this[touchSensorObject2] = new NfcTouch({}, 1)
1437 touchSensorObjects=touchSensorObjects+1
1439 settings.put(metaData['name'], new NfcTouch({}, 1))
1441 if (App == "App1") {
1442 extractedObjectsApp1.append("//Object for class Touch Sensor!\n")
1443 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1444 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.touchSensorObject\n")
1446 extractedObjectsApp2.append("//Object for class Touch Sensor!\n")
1447 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1448 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.touchSensorObject\n")
1451 case "capability.imageCapture":
1452 globalObjects.eachLine { line ->
1453 if(line.contains("imageCaptureObject")){
1459 globalObjects.append("@Field def imageCaptureObject = new ImageCaptures(sendEvent, 1)\n")
1461 if (imageCaptureObjects == 0) {
1462 imageCaptureObject0 = metaData['name']
1463 this[imageCaptureObject0] = new ImageCaptures({}, 1)
1464 } else if (imageCaptureObjects == 1) {
1465 imageCaptureObject1 = metaData['name']
1466 this[imageCaptureObject1] = new ImageCaptures({}, 1)
1467 } else if (imageCaptureObjects == 2) {
1468 imageCaptureObject2 = metaData['name']
1469 this[imageCaptureObject2] = new ImageCaptures({}, 1)
1472 imageCaptureObjects=imageCaptureObjects+1
1474 settings.put(metaData['name'], new ImageCaptures({}, 1))
1476 if (App == "App1") {
1477 extractedObjectsApp1.append("//Object for class Image Capture!\n")
1478 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1479 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.imageCaptureObject\n")
1481 extractedObjectsApp2.append("//Object for class Image Capture!\n")
1482 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1483 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.imageCaptureObject\n")
1486 case "device.mobilePresence":
1487 globalObjects.eachLine { line ->
1488 if(line.contains("mobilePresenceObject")){
1494 globalObjects.append("@Field def mobilePresenceObject = new MobilePresences(sendEvent, 1)\n")
1496 if (mobilePresenceObjects == 0) {
1497 mobilePresenceObject0 = metaData['name']
1498 this[mobilePresenceObject0] = new MobilePresences({}, 1)
1499 } else if (mobilePresenceObjects == 1) {
1500 mobilePresenceObject1 = metaData['name']
1501 this[mobilePresenceObject1] = new MobilePresences({}, 1)
1502 } else if (mobilePresenceObjects == 2) {
1503 mobilePresenceObject2 = metaData['name']
1504 this[mobilePresenceObject2] = new MobilePresences({}, 1)
1507 mobilePresenceObjects=mobilePresenceObjects+1
1509 settings.put(metaData['name'], new MobilePresences({}, 1))
1511 if (App == "App1") {
1512 extractedObjectsApp1.append("//Object for class mobile presence!\n")
1513 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1514 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.mobilePresenceObject\n")
1516 extractedObjectsApp2.append("//Object for class mobile presence!\n")
1517 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1518 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.mobilePresenceObject\n")
1521 case "capability.button":
1522 case "device.aeonKeyFob":
1523 globalObjects.eachLine { line ->
1524 if(line.contains("aeonKeyFobObject")){
1529 globalObjects.append("@Field def aeonKeyFobObject = new AeonKeyFobs(sendEvent, 1)\n")
1531 if (aeonKeyFobObjects == 0) {
1532 aeonKeyFobObject0 = metaData['name']
1533 this[aeonKeyFobObject0] = new AeonKeyFobs({}, 1)
1534 } else if (aeonKeyFobObjects == 1) {
1535 aeonKeyFobObject1 = metaData['name']
1536 this[aeonKeyFobObject1] = new AeonKeyFobs({}, 1)
1537 } else if (aeonKeyFobObjects == 2) {
1538 aeonKeyFobObject2 = metaData['name']
1539 this[aeonKeyFobObject2] = new AeonKeyFobs({}, 1)
1542 aeonKeyFobObjects=aeonKeyFobObjects+1
1544 settings.put(metaData['name'], new AeonKeyFobs({}, 1))
1546 if (App == "App1") {
1547 extractedObjectsApp1.append("//Object for class aeon key fob!\n")
1548 extractedObjectsApp1.append("def "+metaData['name']+"\n")
1549 extractedObjectsConstructorApp1.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1551 extractedObjectsApp2.append("//Object for class aeon key fob!\n")
1552 extractedObjectsApp2.append("def "+metaData['name']+"\n")
1553 extractedObjectsConstructorApp2.append(metaData['name']+" = obj.aeonKeyFobObject\n")
1557 //def randomVariable = Math.abs(new Random().nextInt() % 3)
1558 def modes = ["away", "home", "night"]
1559 def userInput = modes[0]
1561 if (modeVariables == 0) {
1562 mode0 = metaData['name']
1563 this[mode0] = userInput
1564 } else if (modeVariables == 1) {
1565 mode1 = metaData['name']
1566 this[mode1] = userInput
1567 } else if (modeVariables == 2) {
1568 mode2 = metaData['name']
1569 this[mode2] = userInput
1570 } else if (modeVariables == 3) {
1571 mode3 = metaData['name']
1572 this[mode3] = userInput
1573 } else if (modeVariables == 4) {
1574 mode4 = metaData['name']
1575 this[mode4] = userInput
1576 } else if (modeVariables == 5) {
1577 mode5 = metaData['name']
1578 this[mode5] = userInput
1581 if (modeVariables != 5)
1582 modeVariables=modeVariables+1
1587 settings.put(metaData['name'], metaData['name'])
1589 if (App == "App1") {
1590 extractedObjectsApp1.append("//Global variable for mode!\n")
1591 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1593 extractedObjectsApp2.append("//Global variable for mode!\n")
1594 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1598 //def userInput = Math.abs(new Random().nextInt() % 60) + 40
1601 if (decimalVariables == 0) {
1602 decimal0 = metaData['name']
1603 this[decimal0] = userInput
1604 } else if (decimalVariables == 1) {
1605 decimal1 = metaData['name']
1606 this[decimal1] = userInput
1607 } else if (decimalVariables == 2) {
1608 decimal2 = metaData['name']
1609 this[decimal2] = userInput
1610 } else if (decimalVariables == 3) {
1611 decimal3 = metaData['name']
1612 this[decimal3] = userInput
1613 } else if (decimalVariables == 4) {
1614 decimal4 = metaData['name']
1615 this[decimal4] = userInput
1616 } else if (decimalVariables == 5) {
1617 decimal5 = metaData['name']
1618 this[decimal5] = userInput
1621 if (decimalVariables != 5)
1622 decimalVariables=decimalVariables+1
1626 settings.put(metaData['name'], metaData['name'])
1628 if (App == "App1") {
1629 extractedObjectsApp1.append("//Global variable for decimal number!\n")
1630 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1632 extractedObjectsApp2.append("//Global variable for decimal number!\n")
1633 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1637 def userInput = "This is just a text!"
1639 if (textVariables == 0) {
1640 text0 = metaData['name']
1641 this[text0] = userInput
1642 } else if (textVariables == 1) {
1643 text1 = metaData['name']
1644 this[text1] = userInput
1645 } else if (textVariables == 2) {
1646 text2 = metaData['name']
1647 this[text2] = userInput
1648 } else if (textVariables == 3) {
1649 text3 = metaData['name']
1650 this[text3] = userInput
1651 } else if (textVariables == 4) {
1652 text4 = metaData['name']
1653 this[text4] = userInput
1654 } else if (textVariables == 5) {
1655 text5 = metaData['name']
1656 this[text5] = userInput
1659 if (textVariables != 5)
1660 textVariables=textVariables+1
1665 settings.put(metaData['name'], metaData['name'])
1667 if (App == "App1") {
1668 extractedObjectsApp1.append("//Global variable for text!\n")
1669 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1671 extractedObjectsApp2.append("//Global variable for text!\n")
1672 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1676 //def userInput = Math.abs(new Random().nextInt() % 60) + 40
1679 if (numberVariables == 0) {
1680 number0 = metaData['name']
1681 this[number0] = userInput
1682 } else if (numberVariables == 1) {
1683 number1 = metaData['name']
1684 this[number1] = userInput
1685 } else if (numberVariables == 2) {
1686 number2 = metaData['name']
1687 this[number2] = userInput
1688 } else if (numberVariables == 3) {
1689 number3 = metaData['name']
1690 this[number3] = userInput
1691 } else if (numberVariables == 4) {
1692 number4 = metaData['name']
1693 this[number4] = userInput
1694 } else if (numberVariables == 5) {
1695 number5 = metaData['name']
1696 this[number5] = userInput
1700 if (numberVariables != 5)
1701 numberVariables=numberVariables+1
1706 settings.put(metaData['name'], metaData['name'])
1708 if (App == "App1") {
1709 extractedObjectsApp1.append("//Global variable for number!\n")
1710 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1712 extractedObjectsApp2.append("//Global variable for number!\n")
1713 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1717 def userInput = "15:00"
1719 if (timeVariables == 0) {
1720 time0 = metaData['name']
1721 this[time0] = userInput
1722 } else if (timeVariables == 1) {
1723 time1 = metaData['name']
1724 this[time1] = userInput
1725 } else if (timeVariables == 2) {
1726 time2 = metaData['name']
1727 this[time2] = userInput
1728 } else if (timeVariables == 3) {
1729 time3 = metaData['name']
1730 this[time3] = userInput
1731 } else if (timeVariables == 4) {
1732 time4 = metaData['name']
1733 this[time4] = userInput
1734 } else if (timeVariables == 5) {
1735 time5 = metaData['name']
1736 this[time5] = userInput
1739 if (timeVariables != 5)
1740 timeVariables=timeVariables+1
1744 settings.put(metaData['name'], metaData['name'])
1746 if (App == "App1") {
1747 extractedObjectsApp1.append("//Global variable for time!\n")
1748 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1750 extractedObjectsApp2.append("//Global variable for time!\n")
1751 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1755 if (metaData['options'] != null)
1756 modes = metaData['options']
1757 else if (metaData['metadata'] != null) { // If it is not named 'options' then it is captured as 'metadata'
1758 modes = metaData['metadata']
1759 modes = modes['values']
1761 def userInput = modes[0]
1763 if (enumVariables == 0) {
1764 enum0 = metaData['name']
1765 this[enum0] = userInput
1766 } else if (enumVariables == 1) {
1767 enum1 = metaData['name']
1768 this[enum1] = userInput
1769 } else if (enumVariables == 2) {
1770 enum2 = metaData['name']
1771 this[enum2] = userInput
1772 } else if (enumVariables == 3) {
1773 enum3 = metaData['name']
1774 this[enum3] = userInput
1775 } else if (enumVariables == 4) {
1776 enum4 = metaData['name']
1777 this[enum4] = userInput
1778 } else if (enumVariables == 5) {
1779 enum5 = metaData['name']
1780 this[enum5] = userInput
1783 if (enumVariables != 5)
1784 enumVariables=enumVariables+1
1789 settings.put(metaData['name'], metaData['name'])
1791 if (App == "App1") {
1792 extractedObjectsApp1.append("//Global variable for enum!\n")
1793 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1795 extractedObjectsApp2.append("//Global variable for enum!\n")
1796 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1800 //def userInput = Math.abs(new Random().nextInt() % 2)
1801 def userInput = true
1803 if (boolVariables == 0) {
1804 bool0 = metaData['name']
1805 this[bool0] = userInput
1806 } else if (boolVariables == 1) {
1807 bool1 = metaData['name']
1808 this[bool1] = userInput
1809 } else if (boolVariables == 2) {
1810 bool2 = metaData['name']
1811 this[bool2] = userInput
1812 } else if (boolVariables == 3) {
1813 bool3 = metaData['name']
1814 this[bool3] = userInput
1815 } else if (boolVariables == 4) {
1816 bool4 = metaData['name']
1817 this[bool4] = userInput
1818 } else if (boolVariables == 5) {
1819 bool5 = metaData['name']
1820 this[bool5] = userInput
1823 if (boolVariables != 5)
1824 boolVariables=boolVariables+1
1829 settings.put(metaData['name'], metaData['name'])
1831 if (App == "App1") {
1832 extractedObjectsApp1.append("//Global variable for boolean!\n")
1833 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1835 extractedObjectsApp2.append("//Global variable for boolean!\n")
1836 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1840 def userInput = 9495379373
1842 if (phoneVariables == 0) {
1843 phone0 = metaData['name']
1844 this[phone0] = userInput
1845 } else if (phoneVariables == 1) {
1846 phone1 = metaData['name']
1847 this[phone1] = userInput
1848 } else if (phoneVariables == 2) {
1849 phone2 = metaData['name']
1850 this[phone2] = userInput
1851 } else if (phoneVariables == 3) {
1852 phone3 = metaData['name']
1853 this[phone3] = userInput
1854 } else if (phoneVariables == 4) {
1855 phone4 = metaData['name']
1856 this[phone4] = userInput
1857 } else if (phoneVariables == 5) {
1858 phone5 = metaData['name']
1859 this[phone5] = userInput
1862 if (phoneVariables != 5)
1863 phoneVariables=phoneVariables+1
1867 settings.put(metaData['name'], metaData['name'])
1869 if (App == "App1") {
1870 extractedObjectsApp1.append("//Global variable for phone!\n")
1871 extractedObjectsApp1.append("def "+metaData['name']+" = "+userInput+"\n")
1873 extractedObjectsApp2.append("//Global variable for phone!\n")
1874 extractedObjectsApp2.append("def "+metaData['name']+" = "+userInput+"\n")
1878 def userInput = "AJ"
1880 if (contactVariables == 0) {
1881 contact0 = metaData['name']
1882 this[contact0] = userInput
1883 } else if (contactVariables == 1) {
1884 contact1 = metaData['name']
1885 this[contact1] = userInput
1886 } else if (contactVariables == 2) {
1887 contact2 = metaData['name']
1888 this[contact2] = userInput
1889 } else if (contactVariables == 3) {
1890 contact3 = metaData['name']
1891 this[contact3] = userInput
1892 } else if (contactVariables == 4) {
1893 contact4 = metaData['name']
1894 this[contact4] = userInput
1895 } else if (contactVariables == 5) {
1896 contact5 = metaData['name']
1897 this[contact5] = userInput
1900 if (contactVariables != 5)
1901 contactVariables=contactVariables+1
1905 settings.put(metaData['name'], metaData['name'])
1907 if (App == "App1") {
1908 extractedObjectsApp1.append("//Global variable for contact!\n")
1909 extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1911 extractedObjectsApp2.append("//Global variable for contact!\n")
1912 extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n")
1920 def label(LinkedHashMap metaData) {
1921 if (metaData.containsKey('title')) {
1922 println metaData['title']
1924 if (metaData.containsKey('options')) {
1925 println "Options: "+metaData['options']
1928 println("//IGNORE--ForMobileUse//")
1931 def mode(LinkedHashMap metaData) {
1932 if (metaData.containsKey('title')) {
1933 println metaData['title']
1935 if (metaData.containsKey('options')) {
1936 println "Options: "+metaData['options']
1939 println("//IGNORE--ForMobileUse//")
1942 def href(LinkedHashMap metaData) {
1943 println("//IGNORE--some data//")
1946 def href(LinkedHashMap metaData, String name) {
1947 println("//IGNORE--some data//")
1949 /////Input Methods/////
1952 /////MethodsForExtraction/////
1953 def definition(LinkedHashMap metaData) {
1954 println("///Just some information///")
1957 def preferences(Closure inputData) {
1958 find(inputData) //Run the closure to extract pages/sections/inputMethods
1959 settings.put("END", "END")
1960 if (App == "App1") {
1961 extractedObjectsConstructorApp1.append("//Global variable for settings!\n")
1962 extractedObjectsConstructorApp1.append("settings = [")
1966 extractedObjectsConstructorApp1.append("$key: $key, ")
1968 extractedObjectsConstructorApp1.append("END: \"END\"]\n")
1971 extractedObjectsConstructorApp2.append("//Global variable for settings!\n")
1972 extractedObjectsConstructorApp2.append("settings = [")
1976 extractedObjectsConstructorApp2.append("$key: $key, ")
1978 extractedObjectsConstructorApp2.append("END: \"END\"]\n")
1981 File GlobalVariablesBothApps = new File("GlobalVariables/GlobalVariablesBothApps.groovy")
1982 GlobalVariablesBothApps.write("")
1983 GlobalVariablesBothApps.append("//Creating Global variables for both apps\n")
1984 GlobalVariablesBothApps.append("@Field def sendEvent = {eventDataMap -> eventHandler(eventDataMap)}\n")
1985 GlobalVariablesBothApps.append("@Field def locationObject = new LocationVar(sendEvent)\n")
1986 GlobalVariablesBothApps.append("@Field def appObject = new Touched(sendEvent, 0)\n")
1988 globalObjects.withReader { reader ->
1989 while ((line = reader.readLine()) != null) {
1990 GlobalVariablesBothApps.append(line)
1991 GlobalVariablesBothApps.append("\n")
1997 def page(LinkedHashMap metaData, Closure inputData) {
1998 if (metaData.containsKey('name'))
1999 println(metaData['name'])
2000 if (metaData.containsKey('title'))
2001 println(metaData['title'])
2003 find(inputData) //Run the closure to extract sections/inputMethods
2006 def page(LinkedHashMap metaData) {
2007 def nameOfFunction = metaData['name']
2008 "$nameOfFunction"() //Call the page
2011 def dynamicPage(LinkedHashMap metaData, Closure inputData) {
2012 if (metaData.containsKey('name'))
2013 println(metaData['name'])
2014 if (metaData.containsKey('title'))
2015 println(metaData['title'])
2017 find(inputData) //Run the closure to extract sections/inputMethods
2020 def paragraph(String paragraphText) {
2021 println(paragraphText)
2024 def section(String title, Closure inputData) {
2026 find(inputData) //Run the closure to extract inputMethods
2029 def section(Closure inputData) {
2030 find(inputData) //Run the closure to extract inputMethods
2033 def section(LinkedHashMap metaData, Closure inputData) {
2034 find(inputData) //Run the closure to extract inputMethods
2037 def section(LinkedHashMap metaData, String data, Closure inputData) {
2041 def mappings(Closure inputData) {
2042 println("//IGNORE--some data//")
2044 /////MethodsForExtraction/////