1 /////////////////////////////////////////////////////////////////////
2 ////subscribe(obj, func)
3 def subscribe(Object obj, Closure FunctionToCall) {
6 eventList.add("Touched")
7 functionList.add(FunctionToCall)
8 } else if (obj == location) {
10 eventList.add("Location")
11 functionList.add(FunctionToCall)
14 ////subscribe(obj, event, func)
15 def subscribe(Object obj, String event, Closure FunctionToCall) {
16 if ((event == "alarm.both")||(event == "alarm.siren")||(event == "alarm.strobe")||(event == "alarm.off")||(event == "alarm")) {
18 eventList.add("alarm")
19 functionList.add(FunctionToCall)
20 } else if ((event == "contact.open")||(event == "contact.closed")||(event == "contact")||(event == "tamper.tampered")) {
22 eventList.add("contact")
23 functionList.add(FunctionToCall)
24 } else if ((event == "doorState.open")||(event == "doorState.closed")||(event == "doorState")) {
26 eventList.add("doorState")
27 functionList.add(FunctionToCall)
28 } else if ((event == "mode")||(event == "mode.away")||(event == "mode.home")||(event == "mode.night")) {
30 eventList.add("Location")
31 functionList.add(FunctionToCall)
32 } else if ((event == "lock.locked")||(event == "lock.unlocked")||(event == "lock")||(event == "unlock")) {
35 functionList.add(FunctionToCall)
36 } else if ((event == "motion.active")||(event == "motion.inactive")||(event == "motion")) {
38 eventList.add("motion")
39 functionList.add(FunctionToCall)
40 } else if ((event == "status")||(event == "status.playing")||(event == "status.stopped")||(event == "status.paused")) {
42 eventList.add("status")
43 functionList.add(FunctionToCall)
44 } else if ((event == "mute")||(event == "mute.muted")||(event == "mute.unmuted")) {
47 functionList.add(FunctionToCall)
48 } else if ((event == "presence")||(event == "presence.present")||(event == "presence.not present")) {
50 eventList.add("presence")
51 functionList.add(FunctionToCall)
52 } else if ((event == "smoke")||(event == "smoke.detected")||(event == "smoke.clear")||(event == "smoke.tested")) {
54 eventList.add("smoke")
55 functionList.add(FunctionToCall)
56 } else if ((event == "carbonMonoxide")||(event == "carbonMonoxide.detected")||(event == "carbonMonoxide.clear")||(event == "carbonMonoxide.tested")) {
58 eventList.add("carbonMonoxide")
59 functionList.add(FunctionToCall)
60 } else if ((event == "thermostatMode")||(event == "thermostatMode.cool")||(event == "thermostatMode.auto")||(event == "thermostatMode.emergencyHeat")||(event == "thermostatMode.heat")||(event == "thermostatMode.off")) {
62 eventList.add("thermostatMode")
63 functionList.add(FunctionToCall)
64 } else if ((event == "thermostatFanMode")||(event == "thermostatFanMode.auto")||(event == "thermostatFanMode.fanCirculate")||(event == "thermostatFanMode.circulate")||(event == "thermostatFanMode.fanOn")||(event == "thermostatFanMode.on")
65 ||(event == "fanMode")||(event == "fanMode.auto")||(event == "fanMode.fanCirculate")||(event == "fanMode.circulate")||(event == "fanMode.fanOn")||(event == "fanMode.on")) {
67 eventList.add("thermostatFanMode")
68 functionList.add(FunctionToCall)
69 } else if ((event == "thermostatOperatingState")||(event == "thermostatOperatingState.cooling")||(event == "thermostatOperatingState.fan only")||(event == "thermostatOperatingState.heating")||(event == "thermostatOperatingState.idle")
70 ||(event == "thermostatOperatingState.pending cool")||(event == "thermostatOperatingState.pending heat")||(event == "thermostatOperatingState.vent economizer")) {
72 eventList.add("thermostatOperatingState")
73 functionList.add(FunctionToCall)
74 } else if ((event == "switch")||(event == "switch.on")||(event == "switch.off")) {
76 eventList.add("switch")
77 functionList.add(FunctionToCall)
78 } else if ((event == "button")||(event == "button.pushed")||(event == "button.held")) {
80 eventList.add("button")
81 functionList.add(FunctionToCall)
82 } else if ((event == "acceleration")||(event == "acceleration.active")||(event == "acceleration.inactive")) {
84 eventList.add("acceleration")
85 functionList.add(FunctionToCall)
86 } else if ((event == "sleeping")||(event == "sleeping.sleeping")||(event == "sleeping.not sleeping")) {
88 eventList.add("sleeping")
89 functionList.add(FunctionToCall)
90 } else if ((event == "water")||(event == "water.dry")||(event == "water.wet")) {
92 eventList.add("water")
93 functionList.add(FunctionToCall)
97 functionList.add(FunctionToCall)
100 ////subscribe(obj, event, nameOfFunc)
101 def subscribe(Object obj, String event, String FunctionToCall) {
102 if ((event == "alarm.both")||(event == "alarm.siren")||(event == "alarm.strobe")||(event == "alarm.off")||(event == "alarm")) {
104 eventList.add("alarm")
105 functionList.add(FunctionToCall)
106 } else if ((event == "contact.open")||(event == "contact.closed")||(event == "contact")||(event == "tamper.tampered")) {
108 eventList.add("contact")
109 functionList.add(FunctionToCall)
110 } else if ((event == "doorState.open")||(event == "doorState.closed")||(event == "doorState")) {
112 eventList.add("doorState")
113 functionList.add(FunctionToCall)
114 } else if ((event == "mode")||(event == "mode.away")||(event == "mode.home")||(event == "mode.night")) {
116 eventList.add("Location")
117 functionList.add(FunctionToCall)
118 } else if ((event == "lock.locked")||(event == "lock.unlocked")||(event == "lock")) {
120 eventList.add("lock")
121 functionList.add(FunctionToCall)
122 } else if ((event == "motion.active")||(event == "motion.inactive")||(event == "motion")) {
124 eventList.add("motion")
125 functionList.add(FunctionToCall)
126 } else if ((event == "status")||(event == "status.playing")||(event == "status.stopped")||(event == "status.paused")) {
128 eventList.add("status")
129 functionList.add(FunctionToCall)
130 } else if ((event == "mute")||(event == "mute.muted")||(event == "mute.unmuted")) {
132 eventList.add("mute")
133 functionList.add(FunctionToCall)
134 } else if ((event == "presence")||(event == "presence.present")||(event == "presence.not present")) {
136 eventList.add("presence")
137 functionList.add(FunctionToCall)
138 } else if ((event == "smoke")||(event == "smoke.detected")||(event == "smoke.clear")||(event == "smoke.tested")) {
140 eventList.add("smoke")
141 functionList.add(FunctionToCall)
142 } else if ((event == "carbonMonoxide")||(event == "carbonMonoxide.detected")||(event == "carbonMonoxide.clear")||(event == "carbonMonoxide.tested")) {
144 eventList.add("carbonMonoxide")
145 functionList.add(FunctionToCall)
146 } else if ((event == "thermostatMode")||(event == "thermostatMode.cool")||(event == "thermostatMode.auto")||(event == "thermostatMode.emergencyHeat")||(event == "thermostatMode.heat")||(event == "thermostatMode.off")) {
148 eventList.add("thermostatMode")
149 functionList.add(FunctionToCall)
150 } else if ((event == "thermostatFanMode")||(event == "thermostatFanMode.auto")||(event == "thermostatFanMode.fanCirculate")||(event == "thermostatFanMode.circulate")||(event == "thermostatFanMode.fanOn")||(event == "thermostatFanMode.on")
151 ||(event == "fanMode")||(event == "fanMode.auto")||(event == "fanMode.fanCirculate")||(event == "fanMode.circulate")||(event == "fanMode.fanOn")||(event == "fanMode.on")) {
153 eventList.add("thermostatFanMode")
154 functionList.add(FunctionToCall)
155 } else if ((event == "thermostatOperatingState")||(event == "thermostatOperatingState.cooling")||(event == "thermostatOperatingState.fan only")||(event == "thermostatOperatingState.heating")||(event == "thermostatOperatingState.idle")
156 ||(event == "thermostatOperatingState.pending cool")||(event == "thermostatOperatingState.pending heat")||(event == "thermostatOperatingState.vent economizer")) {
158 eventList.add("thermostatOperatingState")
159 functionList.add(FunctionToCall)
160 } else if ((event == "switch")||(event == "switch.on")||(event == "switch.off")) {
162 eventList.add("switch")
163 functionList.add(FunctionToCall)
164 } else if ((event == "button")||(event == "button.pushed")||(event == "button.held")) {
166 eventList.add("button")
167 functionList.add(FunctionToCall)
168 } else if ((event == "acceleration")||(event == "acceleration.active")||(event == "acceleration.inactive")) {
170 eventList.add("acceleration")
171 functionList.add(FunctionToCall)
172 } else if ((event == "sleeping")||(event == "sleeping.sleeping")||(event == "sleeping.not sleeping")) {
174 eventList.add("sleeping")
175 functionList.add(FunctionToCall)
176 } else if ((event == "water")||(event == "water.dry")||(event == "water.wet")) {
178 eventList.add("water")
179 functionList.add(FunctionToCall)
183 functionList.add(FunctionToCall)
186 ////subscribe(obj, event, func, data)
187 def subscribe(Object obj, String event, Closure FunctionToCall, LinkedHashMap metaData) {
188 subscribe(obj, event, FunctionToCall)