switch.cgi no more non-ajax but nofloat version
[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; 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 echo '</script>'
141 echo '<style>'
142 echo 'div.switchbox {'
143 echo '    float:left;'
144 echo '    margin:2px;'
145 #echo '    max-width:236px;'
146 echo '    max-width:300px;'
147 echo '    font-size:10pt;'
148 echo '    border:1px solid black;'
149 #echo '    height: 32px;'
150 echo '    padding:0;'
151 echo '}'
152   
153 echo 'div.switchnameleft {'
154 echo '    width:12em; display:inline-block; vertical-align:middle; margin-left:3px;'
155 echo '}'
156
157 echo 'span.alignbuttonsright {'
158 echo '    top:0px; float:right; display:inline-block; text-align:right; padding:0;'
159 echo '}'
160
161 echo 'div.switchnameright {'
162 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;'
163 echo '}'
164
165 echo 'span.alignbuttonsleft {'
166 echo '    float:left; text-align:left; padding:0;'
167 echo '}'
168
169 echo '.onbutton {'
170 echo '    font-size:11pt;'
171 echo '    width: 40px;'
172 echo '    height: 32px;'
173 echo '    background-color: lime;'
174 echo '    margin: 0px;'
175 echo '}'
176
177 echo '.offbutton {'
178 echo '    font-size:11pt;'
179 echo '    width: 40px;'
180 echo '    height: 32px;'
181 echo '    background-color: red;'
182 echo '    margin: 0px;'
183 echo '}'
184
185 echo '.sendbutton {'
186 echo '    font-size:11pt;'
187 echo '    width: 40px;'
188 echo '    height: 32px;'
189 #echo '    background-color: grey;'
190 echo '    margin: 0px;'
191 echo '}'
192 echo '</style>'
193 echo "</head>"
194 echo "<body>"
195 #echo "<h1>Realraum rf433ctl</h1>"
196 #echo "<div style=\"float:left; border:1px solid black;\">"
197 echo "<div style=\"float:left;\">"
198 echo "<div style=\"float:left; border:1px solid black; margin-right:2ex; margin-bottom:2ex;\">"
199 for DISPID in $VALID_ONOFF_IDS; do
200   NAME="$(eval echo \$DESC_$DISPID)"
201   [ -z "$NAME" ] && NAME=$DISPID
202
203 echo "<div class=\"switchbox\">"
204   echo "<span class=\"alignbuttonsleft\">"
205   echo " <button class=\"onbutton\" onClick='sendButton(\"on\",\"$DISPID\");'>On</button>"
206   echo " <button class=\"offbutton\" onClick='sendButton(\"off\",\"$DISPID\");'>Off</button>"
207   echo "</span>"
208   echo "<div class=\"switchnameright\">$NAME</div>"
209   echo "</div>"
210   
211   if [ "$NOFLOAT" == "1" ]; then
212     echo "<br/>"
213   fi 
214 done
215
216 #Custom Buttons Start
217 echo "<div class=\"switchbox\">"
218 echo "<span class=\"alignbuttonsleft\">"
219 echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"ymhpower\");'>Tgl</button>"
220 echo " <button class=\"offbutton\" onClick='sendButton(\"on\",\"ymhpoweroff\");'>Off</button>"
221 echo "</span>"
222 echo "<div class=\"switchnameright\">Receiver Power</div>"
223 echo "</div>"
224   if [ "$NOFLOAT" == "1" ]; then
225     echo "<br/>"
226   fi 
227 echo "<div class=\"switchbox\">"
228 echo "<span class=\"alignbuttonsleft\">"
229 echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"ymhvolup\");'>&uarr;</button>"
230 echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"ymhvoldown\");'>&darr;</button>"
231 echo "</span>"
232 echo "<div class=\"switchnameright\">Receiver Volume</div>"
233 echo "</div>"
234   if [ "$NOFLOAT" == "1" ]; then
235     echo "<br/>"
236   fi 
237 #Custom Buttons End
238
239 echo "</div>"
240
241 if [ "$MOBILE" != "1" ]; then                                                             
242
243 echo "<div style=\"float:left; border:1px solid black;\">"
244
245 ITEMCOUNT=0
246
247 for DISPID in $VALID_SEND_IDS; do
248   ITEMCOUNT=$((ITEMCOUNT+1))
249   NAME="$(eval echo \$DESC_$DISPID)"
250   [ -z "$NAME" ] && NAME=$DISPID
251   
252   echo "<div class=\"switchbox\">"
253   echo "<span class=\"alignbuttonsleft\">"
254   echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"$DISPID\");'> </button>"
255   echo "</span>"
256   echo "<div class=\"switchnameright\">$NAME</div>"
257   echo "</div>"
258   if [ "$NOFLOAT" == "1" -a $((ITEMCOUNT % 2 )) -ne 1 ]; then
259     echo "<br/>"
260   fi 
261   
262 done
263 echo '<div class="switchbox">Goto <a href="/ymhremote.html">Yamaha Receiver Remote</a></div>'
264 echo "</div>"
265 echo "<div style=\"float:left; border:1px solid black; margin-top:5px;\">"
266 for DISPID in $VALID_BANSHEE_IDS $VALID_CAM_MOTOR_IDS; do
267   NAME="$(eval echo \$DESC_$DISPID)"
268   [ -z "$NAME" ] && NAME=$DISPID
269   
270   echo "<div class=\"switchbox\">"
271   echo "<span class=\"alignbuttonsleft\">"
272   echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"$DISPID\");'> </button>"
273   echo "</span>"
274   echo "<div class=\"switchnameright\">$NAME</div>"
275   echo "</div>"
276   if [ "$NOFLOAT" == "1" ]; then
277     echo "<br/>"
278   fi 
279
280 done
281 echo "</div>"
282 fi
283 echo "</div>"
284 echo "</body>"
285 echo "</html>"