switch.cgi
[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     elif [ "$POWER" == "?" ]; then
16       POWER=$VALUE
17     elif [ "$VALUE" == "ajax" ]; then
18       AJAX='?'
19     elif [ "$AJAX" == "?" ]; then
20       AJAX=$VALUE
21     fi
22     i=$i+1
23   done
24 done
25
26 UNIXSOCK=/var/run/powersensordaemon/cmd.sock
27 VALID_ONOFF_IDS="decke ambientlights lichter all werkzeug labor dart logo spots1 deckehinten deckevorne boiler whiteboard pcblueleds bikewcblue"
28 VALID_SEND_IDS="ymhpoweron ymhpoweroff ymhpower ymhvolup ymhvoldown 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"
29 #VALID_BANSHEE_IDS="playPause next prev"
30 #VALID_CAM_MOTOR_IDS="c C w W"
31
32 [ "$POWER" == "send" ] && POWER=on
33 if [ "$POWER" == "on" -o "$POWER" == "off" ]; then
34   for CHECKID in $VALID_ONOFF_IDS $VALID_SEND_IDS; do 
35     if [ "$CHECKID" == "$ID" ]; then
36       echo "power $POWER $ID" | usocket $UNIXSOCK
37       echo "Content-type: text/html"
38       echo ""
39       echo "<html>"
40       echo "<head>"
41       echo "<title>Realraum rf433ctl</title>"
42       echo '<script type="text/javascript">window.location="http://slug.realraum.at/cgi-bin/switch.cgi";</script>'
43       echo "</head></html>"
44       exit 0
45     fi
46   done
47
48   for CHECKID in $VALID_BANSHEE_IDS; do
49     if [ "$CHECKID" == "$ID" ]; then
50       echo "$ID/" | nc wuerfel.realraum.at 8484
51       echo "Content-type: text/html"
52       echo ""
53       echo "<html>"
54       echo "<head>"
55       echo "<title>Realraum rf433ctl</title>"
56       echo '<script type="text/javascript">window.location="http://slug.realraum.at/cgi-bin/switch.cgi";</script>'
57       echo "</head></html>"
58       exit 0
59     fi
60   done
61
62   for CHECKID in $VALID_CAM_MOTOR_IDS; do
63     if [ "$CHECKID" == "$ID" ]; then
64       echo "$ID" > /dev/ttyACM0
65       echo "Content-type: text/html"
66       echo ""
67       echo "<html>"
68       echo "<head>"
69       echo "<title>Realraum rf433ctl</title>"
70       echo '<script type="text/javascript">window.location="http://slug.realraum.at/cgi-bin/switch.cgi";</script>'
71       echo "</head></html>"
72       exit 0
73     fi
74   done
75 fi
76
77 DESC_pcblueleds="Blaue Leds PC"
78 DESC_bikewcblue="Blaue Lichterkette WC"
79 DESC_weissB="WeissB"
80 DESC_werkzeug="Werkzeug LEDs"
81 DESC_stereo="Receiver On/Off"
82 DESC_ambientlights="Ambient Lichter"
83 DESC_labor="Labor Licht"
84 DESC_boiler="Warmwasser WC"
85 DESC_dart="Dart Scheibe"
86 DESC_logo="Logo"
87 DESC_spots1="Spots"
88 DESC_deckehinten="Decke Hinten"
89 DESC_deckevorne="Decke Vorne"
90 DESC_whiteboard="Whiteboard Vorne"
91 DESC_decke="Deckenlichter"
92 DESC_lichter="Alle Lichter"
93 DESC_all="Alles"
94 DESC_ymhpoweron="Receiver On"
95 DESC_ymhpoweroff="Receiver Off"
96 DESC_ymhpower="Receiver On/Off"
97 DESC_ymhvolup="VolumeUp"
98 DESC_ymhvoldown="VolumeDown"
99 DESC_ymhcd="Input CD"
100 DESC_ymhwdtv="Input S/PDIF Wuerfel"
101 DESC_ymhtuner="Input Tuner"
102 DESC_ymhvolmute="Mute"
103 DESC_ymhmenu="Menu"
104 DESC_ymhplus="+"
105 DESC_ymhminus="-"
106 DESC_ymhtest="Test"
107 DESC_ymhtimelevel="Time/Levels"
108 DESC_ymheffect="DSP Effect Toggle"
109 DESC_ymhprgup="DSP Up"
110 DESC_ymhprgdown="DSP Down"
111 DESC_ymhtunplus="Tuner +"
112 DESC_ymhtunminus="Tuner -"
113 DESC_ymhtunabcde="Tuner ABCDE"
114 DESC_ymhtape="Tape"
115 DESC_ymhvcr="VCR"
116 DESC_ymhextdec="ExtDec Toggle"
117 DESC_seep="Sleep Modus"
118 DESC_panicled="HAL9000 says hi"
119 DESC_blueled="Blue Led"
120 DESC_moviemode="Movie Mode"
121 DESC_w="Cam >"
122 DESC_W="Cam >>"
123 DESC_c="Cam <"
124 DESC_C="Cam <<"
125
126 echo "Content-type: text/html"
127 echo ""
128 echo "<html>"
129 echo "<head>"
130 echo "<title>Realraum rf433ctl</title>"
131 echo '<script type="text/javascript">'
132 echo 'function sendButton( onoff, btn )'
133 echo '{'
134 echo ' var req = new XMLHttpRequest();'
135 echo ' url = "http://slug.realraum.at/cgi-bin/switch.cgi?power="+onoff+"&id="+btn;'
136 echo ' req.open("GET", url ,false);'
137 echo ' //google chrome workaround'
138 echo ' req.setRequestHeader("googlechromefix","");'
139 echo ' req.send(null);'
140 echo '}'
141 echo '</script>'
142 echo '<style>'
143 echo 'div.switchbox {'
144 echo '    float:left;'
145 echo '    margin:2px;'
146 echo '    max-width:236px;'
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:10em; 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:10em; 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 for DISPID in $VALID_ONOFF_IDS; do
198   NAME="$(eval echo \$DESC_$DISPID)"
199   [ -z "$NAME" ] && NAME=$DISPID
200   if [ -z "$AJAX" ]; then
201
202   echo "<form action=\"/cgi-bin/switch.cgi\">"
203   echo "<input type=\"hidden\" name=\"id\" value=\"$DISPID\" />"
204   echo "<div class=\"switchbox\"><div class=\"switchnameleft\">$NAME</div><span class=\"alignbuttonsright\">"
205   echo " <input class=\"onbutton\" type='submit' name='power' value='on' />"
206   echo " <input class=\"offbutton\" type='submit' name='power' value='off' />"
207   echo "</span>"
208   echo "</div>"
209   echo "</form>"
210   
211   else
212   
213   echo "<div class=\"switchbox\">"
214   echo "<span class=\"alignbuttonsleft\">"
215   echo " <button class=\"onbutton\" onClick='sendButton(\"on\",\"$DISPID\");'>On</button>"
216   echo " <button class=\"offbutton\" onClick='sendButton(\"off\",\"$DISPID\");'>Off</button>"
217   echo "</span>"
218   echo "<div class=\"switchnameright\">$NAME</div>"
219   echo "</div>"
220   
221   fi
222   if [ "$MOBILE" == "1" ]; then
223     echo "<br/>"
224   fi 
225 done
226 echo "</div>"
227 if [ "$MOBILE" != "1" ]; then                                                                                   
228 echo "<div style=\"float:left; border:1px solid black; margin-top:5px;\">"
229 for DISPID in $VALID_SEND_IDS; do
230   NAME="$(eval echo \$DESC_$DISPID)"
231   [ -z "$NAME" ] && NAME=$DISPID
232   if [ -z "$AJAX" ]; then
233
234   echo "<form action=\"/cgi-bin/switch.cgi\">"
235   echo "<input type=\"hidden\" name=\"id\" value=\"$DISPID\" />"
236   echo "<div style=\"float:left; margin:2px; padding:1px; max-width:236px; font-size:10pt; border:1px solid black;\"><div style='width:10em; display:inline-block; vertical-align:middle;'>$NAME</div><span style='float:right; text-align:right;'>"
237   echo " <input class=\"sendbutton\" type='submit' name='power' value='  ' />"
238   echo "</span></div>"
239   echo "</form>"
240
241   else
242   
243   echo "<div class=\"switchbox\">"
244   echo "<span class=\"alignbuttonsleft\">"
245   echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"$DISPID\");'> </button>"
246   echo "</span>"
247   echo "<div class=\"switchnameright\">$NAME</div>"
248   echo "</div>"
249     
250   fi
251 done
252 echo "</div>"
253 echo "<div style=\"float:left; border:1px solid black; margin-top:5px;\">"
254 for DISPID in $VALID_BANSHEE_IDS $VALID_CAM_MOTOR_IDS; do
255   NAME="$(eval echo \$DESC_$DISPID)"
256   [ -z "$NAME" ] && NAME=$DISPID
257   if [ -z "$AJAX" ]; then
258
259   echo "<form action=\"/cgi-bin/switch.cgi\">"
260   echo "<input type=\"hidden\" name=\"id\" value=\"$DISPID\" />"
261   echo "<div style=\"float:left; margin:2px; padding:1px; max-width:236px; font-size:10pt; border:1px solid black;\"><div style='width:10em; display:inline-block; vertical-align:middle;'>$NAME</div><span style='float:right; text-align:right;'>"
262   echo " <input class=\"sendbutton\" type='submit' name='power' value='  ' />"
263   echo "</span></div>"
264   echo "</form>"
265
266   else
267   
268   echo "<div class=\"switchbox\">"
269   echo "<span class=\"alignbuttonsleft\">"
270   echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"$DISPID\");'> </button>"
271   echo "</span>"
272   echo "<div class=\"switchnameright\">$NAME</div>"
273   echo "</div>"
274     
275   fi
276 done
277 echo "</div>"
278 fi
279 echo "</body>"
280 echo "</html>"