command regex and who
[svn42.git] / powersensordaemon / switch.cgi
1 #!/bin/sh
2
3 for QUERY in `echo $QUERY_STRING | tr '&' ' '`; do
4   for VALUE in `echo $QUERY | tr '=' ' '`; do
5     if [ "$VALUE" == "id" ]; then
6       ID='?'
7     elif [ "$ID" == "?" ]; then
8       ID=$VALUE
9     elif [ "$VALUE" == "power" ]; then
10       POWER='?'
11     elif [ "$POWER" == "?" ]; then
12       POWER=$VALUE
13     elif [ "$VALUE" == "mobile" ]; then
14       MOBILE='1'
15       NOFLOAT='1'
16     elif [ "$VALUE" == "nofloat" ]; then
17       NOFLOAT='1'
18     fi
19     i=$i+1
20   done
21 done
22
23
24 UNIXSOCK=/var/run/powersensordaemon/cmd.sock
25 VALID_ONOFF_IDS="decke ambientlights lichter all werkzeug labor dart logo spots1 deckehinten deckevorne boiler whiteboard pcblueleds bikewcblue"
26 VALID_SEND_IDS_CUSTOM_DISPLAY="ymhpoweroff ymhpower ymhvolup ymhvoldown"
27 VALID_SEND_IDS="ymhpoweron ymhcd ymhwdtv ymhtuner ymhaux ymhsattv ymhvolmute ymhmenu ymhplus ymhminus ymhtest ymhtimelevel ymheffect ymhprgup ymhprgdown ymhtunplus ymhtunminus ymhtunabcde ymhtape ymhvcr ymhextdec ymhsleep ymhp5 panicled blueled moviemode"
28 #VALID_BANSHEE_IDS="playPause next prev"
29 #VALID_CAM_MOTOR_IDS="c C w W"
30
31 [ "$POWER" == "send" ] && POWER=on
32 if [ "$POWER" == "on" -o "$POWER" == "off" ]; then
33   for CHECKID in $VALID_ONOFF_IDS $VALID_SEND_IDS $VALID_SEND_IDS_CUSTOM_DISPLAY; do 
34     if [ "$CHECKID" == "$ID" ]; then
35       echo "power $POWER $ID" | usocket $UNIXSOCK
36       echo "Content-type: text/html"
37       echo ""
38       echo "<html>"
39       echo "<head>"
40       echo "<title>Realraum rf433ctl</title>"
41       echo '<script type="text/javascript">window.location="http://slug.realraum.at/cgi-bin/switch.cgi";</script>'
42       echo "</head></html>"
43       exit 0
44     fi
45   done
46
47   for CHECKID in $VALID_BANSHEE_IDS; do
48     if [ "$CHECKID" == "$ID" ]; then
49       echo "$ID/" | nc wuerfel.realraum.at 8484
50       echo "Content-type: text/html"
51       echo ""
52       echo "<html>"
53       echo "<head>"
54       echo "<title>Realraum rf433ctl</title>"
55       echo '<script type="text/javascript">window.location="http://slug.realraum.at/cgi-bin/switch.cgi";</script>'
56       echo "</head></html>"
57       exit 0
58     fi
59   done
60
61   for CHECKID in $VALID_CAM_MOTOR_IDS; do
62     if [ "$CHECKID" == "$ID" ]; then
63       echo "$ID" > /dev/ttyACM0
64       echo "Content-type: text/html"
65       echo ""
66       echo "<html>"
67       echo "<head>"
68       echo "<title>Realraum rf433ctl</title>"
69       echo '<script type="text/javascript">window.location="http://slug.realraum.at/cgi-bin/switch.cgi";</script>'
70       echo "</head></html>"
71       exit 0
72     fi
73   done
74 fi
75
76 DESC_pcblueleds="Blaue Leds PC"
77 DESC_bikewcblue="Blaue Lichterkette WC"
78 DESC_weissB="WeissB"
79 DESC_werkzeug="Werkzeug LEDs"
80 DESC_stereo="Receiver On/Off"
81 DESC_ambientlights="Ambient Lichter"
82 DESC_labor="Labor Licht"
83 DESC_boiler="Warmwasser WC"
84 DESC_dart="Dart Scheibe"
85 DESC_logo="Logo"
86 DESC_spots1="Spots"
87 DESC_deckehinten="Decke Hinten"
88 DESC_deckevorne="Decke Vorne"
89 DESC_whiteboard="Whiteboard Vorne"
90 DESC_decke="Deckenlichter"
91 DESC_lichter="Alle Lichter"
92 DESC_all="Alles"
93 DESC_ymhpoweron="Receiver On (off+tgl)"
94 DESC_ymhpoweroff="Receiver Off"
95 DESC_ymhpower="Receiver On/Off"
96 DESC_ymhvolup="VolumeUp"
97 DESC_ymhvoldown="VolumeDown"
98 DESC_ymhcd="Input CD"
99 DESC_ymhwdtv="Input S/PDIF Wuerfel"
100 DESC_ymhtuner="Input Tuner"
101 DESC_ymhvolmute="Mute"
102 DESC_ymhmenu="Menu"
103 DESC_ymhplus="+"
104 DESC_ymhminus="-"
105 DESC_ymhtest="Test"
106 DESC_ymhtimelevel="Time/Levels"
107 DESC_ymheffect="DSP Effect Toggle"
108 DESC_ymhprgup="DSP Up"
109 DESC_ymhprgdown="DSP Down"
110 DESC_ymhtunplus="Tuner +"
111 DESC_ymhtunminus="Tuner -"
112 DESC_ymhtunabcde="Tuner ABCDE"
113 DESC_ymhtape="Tape"
114 DESC_ymhvcr="VCR"
115 DESC_ymhextdec="ExtDec Toggle"
116 DESC_seep="Sleep Modus"
117 DESC_panicled="HAL9000 says hi"
118 DESC_blueled="Blue Led"
119 DESC_moviemode="Movie Mode"
120 DESC_w="Cam >"
121 DESC_W="Cam >>"
122 DESC_c="Cam <"
123 DESC_C="Cam <<"
124
125 echo "Content-type: text/html"
126 echo ""
127 echo "<html>"
128 echo "<head>"
129 echo "<title>Realraum rf433ctl</title>"
130 echo '<script type="text/javascript">'
131 echo 'function sendButton( onoff, btn )'
132 echo '{'
133 echo ' var req = new XMLHttpRequest();'
134 echo ' url = "http://slug.realraum.at/cgi-bin/switch.cgi?power="+onoff+"&id="+btn;'
135 echo ' req.open("GET", url ,false);'
136 echo ' //google chrome workaround'
137 echo ' req.setRequestHeader("googlechromefix","");'
138 echo ' req.send(null);'
139 echo '}'
140 [ "$NOFLOAT" == "1" ] && tail -n+6 /www/ymhremote.html | head -n 58
141 echo '</script>'
142 [ "$NOFLOAT" == "1" ] && tail -n+67 /www/ymhremote.html | head -n 37
143 echo '<style>'
144 echo 'div.switchbox {'
145 echo '    float:left;'
146 echo '    margin:2px;'
147 #echo '    max-width:236px;'
148 echo '    max-width:300px;'
149 echo '    font-size:10pt;'
150 echo '    border:1px solid black;'
151 #echo '    height: 32px;'
152 echo '    padding:0;'
153 echo '}'
154   
155 echo 'div.switchnameleft {'
156 echo '    width:12em; display:inline-block; vertical-align:middle; margin-left:3px;'
157 echo '}'
158
159 echo 'span.alignbuttonsright {'
160 echo '    top:0px; float:right; display:inline-block; text-align:right; padding:0;'
161 echo '}'
162
163 echo 'div.switchnameright {'
164 echo '    width:12em; display:inline-block; vertical-align:middle; float:right; display:inline-block; margin-left:1ex; margin-right:3px; margin-top:3px; margin-bottom:3px;'
165 echo '}'
166
167 echo 'span.alignbuttonsleft {'
168 echo '    float:left; text-align:left; padding:0;'
169 echo '}'
170
171 echo '.onbutton {'
172 echo '    font-size:11pt;'
173 echo '    width: 40px;'
174 echo '    height: 32px;'
175 echo '    background-color: lime;'
176 echo '    margin: 0px;'
177 echo '}'
178
179 echo '.offbutton {'
180 echo '    font-size:11pt;'
181 echo '    width: 40px;'
182 echo '    height: 32px;'
183 echo '    background-color: red;'
184 echo '    margin: 0px;'
185 echo '}'
186
187 echo '.sendbutton {'
188 echo '    font-size:11pt;'
189 echo '    width: 40px;'
190 echo '    height: 32px;'
191 #echo '    background-color: grey;'
192 echo '    margin: 0px;'
193 echo '}'
194 echo '</style>'
195 echo "</head>"
196 echo "<body>"
197 #echo "<h1>Realraum rf433ctl</h1>"
198 #echo "<div style=\"float:left; border:1px solid black;\">"
199 echo "<div style=\"float:left;\">"
200 echo "<div style=\"float:left; border:1px solid black; margin-right:2ex; margin-bottom:2ex;\">"
201 for DISPID in $VALID_ONOFF_IDS; do
202   NAME="$(eval echo \$DESC_$DISPID)"
203   [ -z "$NAME" ] && NAME=$DISPID
204
205 echo "<div class=\"switchbox\">"
206   echo "<span class=\"alignbuttonsleft\">"
207   echo " <button class=\"onbutton\" onClick='sendButton(\"on\",\"$DISPID\");'>On</button>"
208   echo " <button class=\"offbutton\" onClick='sendButton(\"off\",\"$DISPID\");'>Off</button>"
209   echo "</span>"
210   echo "<div class=\"switchnameright\">$NAME</div>"
211   echo "</div>"
212   
213   if [ "$NOFLOAT" == "1" ]; then
214     echo "<br/>"
215   fi 
216 done
217
218 #Custom Buttons Start
219 echo "<div class=\"switchbox\">"
220 echo "<span class=\"alignbuttonsleft\">"
221 echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"ymhpower\");'>Tgl</button>"
222 echo " <button class=\"offbutton\" onClick='sendButton(\"on\",\"ymhpoweroff\");'>Off</button>"
223 echo "</span>"
224 echo "<div class=\"switchnameright\">Receiver Power</div>"
225 echo "</div>"
226   if [ "$NOFLOAT" == "1" ]; then
227     echo "<br/>"
228   fi 
229 echo "<div class=\"switchbox\">"
230 echo "<span class=\"alignbuttonsleft\">"
231 echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"ymhvolup\");'>&uarr;</button>"
232 echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"ymhvoldown\");'>&darr;</button>"
233 echo "</span>"
234 echo "<div class=\"switchnameright\">Receiver Volume</div>"
235 echo "</div>"
236   if [ "$NOFLOAT" == "1" ]; then
237     echo "<br/>"
238   fi 
239 #Custom Buttons End
240
241 echo "</div>"
242
243 if [ "$MOBILE" != "1" ]; then                                                             
244
245 echo "<div style=\"float:left; border:1px solid black; margin-right:2ex; margin-bottom:2ex;\">"
246
247 ITEMCOUNT=0
248
249 for DISPID in $VALID_SEND_IDS; do
250   ITEMCOUNT=$((ITEMCOUNT+1))
251   NAME="$(eval echo \$DESC_$DISPID)"
252   [ -z "$NAME" ] && NAME=$DISPID
253   
254   echo "<div class=\"switchbox\">"
255   echo "<span class=\"alignbuttonsleft\">"
256   echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"$DISPID\");'> </button>"
257   echo "</span>"
258   echo "<div class=\"switchnameright\">$NAME</div>"
259   echo "</div>"
260   if [ "$NOFLOAT" == "1" -a $((ITEMCOUNT % 2 )) -ne 1 ]; then
261     echo "<br/>"
262   fi 
263   
264 done
265 echo '<div class="switchbox">Goto <a href="/ymhremote.html">Yamaha Receiver Remote</a></div>'
266 echo "</div>"
267
268  if [ "$NOFLOAT" == "1" ]; then
269     echo "<div style=\"float:left; border:1px solid black;\">"
270     tail -n+107 /www/ymhremote.html | head -n 5
271     echo "</div>"
272  fi 
273
274 echo "<div style=\"float:left; border:1px solid black; margin-top:5px;\">"
275 for DISPID in $VALID_BANSHEE_IDS $VALID_CAM_MOTOR_IDS; do
276   NAME="$(eval echo \$DESC_$DISPID)"
277   [ -z "$NAME" ] && NAME=$DISPID
278   
279   echo "<div class=\"switchbox\">"
280   echo "<span class=\"alignbuttonsleft\">"
281   echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"$DISPID\");'> </button>"
282   echo "</span>"
283   echo "<div class=\"switchnameright\">$NAME</div>"
284   echo "</div>"
285   if [ "$NOFLOAT" == "1" ]; then
286     echo "<br/>"
287   fi 
288
289 done
290 echo "</div>"
291 fi
292 echo "</div>"
293 echo "</body>"
294 echo "</html>"