switch
[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 lichterkette pcblueleds pollina weissB"
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_pollina="Blaue Lichterkette"
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_lichterkette="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 WDlxTV"
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 "</head>"
143 echo "<body>"
144 #echo "<h1>Realraum rf433ctl</h1>"
145 echo "<div style=\"float:left; border:1px solid black;\">"
146 for DISPID in $VALID_ONOFF_IDS; do
147   NAME="$(eval echo \$DESC_$DISPID)"
148   [ -z "$NAME" ] && NAME=$DISPID
149   if [ -z "$AJAX" ]; then
150
151   echo "<form action=\"/cgi-bin/switch.cgi\">"
152   echo "<input type=\"hidden\" name=\"id\" value=\"$DISPID\" />"
153   echo "<div style=\"float:left; margin:2px; padding:1px; max-width:236px; font-size:10pt; border:1px solid black;\">"
154   echo "<div style='width:10em; display:inline-block; vertical-align:middle;'>$NAME</div>"
155   echo "<span style='float:right; text-align:right;'>"
156   echo " <input type='submit' name='power' value='on' />"
157   echo " <input type='submit' name='power' value='off' />"
158   echo "</span>"
159   echo "</div>"
160   echo "</form>"
161   
162   else
163   
164   echo "<div style=\"float:left; margin:2px; padding:1px; max-width:236px; font-size:10pt; border:1px solid black;\">"
165   echo "<span style='float:left; text-align:left;'>"
166   echo " <button onClick='sendButton(\"on\",\"$DISPID\");'>On</button>"
167   echo " <button onClick='sendButton(\"off\",\"$DISPID\");'>Off</button>"
168   echo "</span>"
169   echo "<div style='width:10em; float:right; display:inline-block; margin-left:1ex; vertical-align:middle;'>$NAME</div>"
170   echo "</div>"
171   
172   fi
173   if [ "$MOBILE" == "1" ]; then
174     echo "<br/>"
175   fi 
176 done
177 echo "</div>"
178 if [ "$MOBILE" != "1" ]; then                                                                                   
179 echo "<div style=\"float:left; border:1px solid black; margin-top:5px;\">"
180 for DISPID in $VALID_SEND_IDS; do
181   NAME="$(eval echo \$DESC_$DISPID)"
182   [ -z "$NAME" ] && NAME=$DISPID
183   if [ -z "$AJAX" ]; then
184
185   echo "<form action=\"/cgi-bin/switch.cgi\">"
186   echo "<input type=\"hidden\" name=\"id\" value=\"$DISPID\" />"
187   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;'>"
188   echo " <input type='submit' name='power' value='send' />"
189   echo "</span></div>"
190   echo "</form>"
191
192   else
193   
194   echo "<div style=\"float:left; margin:2px; padding:1px; max-width:236px; font-size:10pt; border:1px solid black;\">"
195   echo "<span style='float:left; text-align:left;'>"
196   echo " <button onClick='sendButton(\"on\",\"$DISPID\");'>Send</button>"
197   echo "</span>"
198   echo "<div style='width:10em; float:right; display:inline-block; margin-left:1ex; vertical-align:middle;'>$NAME</div>"
199   echo "</div>"
200     
201   fi
202 done
203 echo "</div>"
204 echo "<div style=\"float:left; border:1px solid black; margin-top:5px;\">"
205 for DISPID in $VALID_BANSHEE_IDS $VALID_CAM_MOTOR_IDS; do
206   NAME="$(eval echo \$DESC_$DISPID)"
207   [ -z "$NAME" ] && NAME=$DISPID
208   if [ -z "$AJAX" ]; then
209
210   echo "<form action=\"/cgi-bin/switch.cgi\">"
211   echo "<input type=\"hidden\" name=\"id\" value=\"$DISPID\" />"
212   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;'>"
213   echo " <input type='submit' name='power' value='send' />"
214   echo "</span></div>"
215   echo "</form>"
216
217   else
218   
219   echo "<div style=\"float:left; margin:2px; padding:1px; max-width:236px; font-size:10pt; border:1px solid black;\">"
220   echo "<span style='float:left; text-align:left;'>"
221   echo " <button onClick='sendButton(\"on\",\"$DISPID\");'>Send</button>"
222   echo "</span>"
223   echo "<div style='width:10em; float:right; display:inline-block; margin-left:1ex; vertical-align:middle;'>$NAME</div>"
224   echo "</div>"
225     
226   fi
227 done
228 echo "</div>"
229 fi
230 echo "</body>"
231 echo "</html>"