to github
[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="regalleinwand labortisch bluebar couchred couchwhite all lichter ambientlights cxleds mashadecke boiler"
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_regalleinwand="LEDs Regal Leinwand"
77 DESC_bluebar="Blaue LEDs Bar"
78 DESC_labortisch="Labortisch"
79 DESC_couchred="LEDs Couch Red"
80 DESC_couchwhite="LEDS Couch White"
81 DESC_cxleds="CX Leds"
82 DESC_mashadecke="MaSha Decke"
83 DESC_ambientlights="Ambient Lichter"
84 DESC_boiler="Warmwasser K&uuml;che"
85 DESC_lichter="Alle Lichter"
86 DESC_all="Alles"
87 DESC_ymhpoweron="Receiver On (off+tgl)"
88 DESC_ymhpoweroff="Receiver Off"
89 DESC_ymhpower="Receiver On/Off"
90 DESC_ymhvolup="VolumeUp"
91 DESC_ymhvoldown="VolumeDown"
92 DESC_ymhcd="Input CD"
93 DESC_ymhwdtv="Input S/PDIF Wuerfel"
94 DESC_ymhtuner="Input Tuner"
95 DESC_ymhvolmute="Mute"
96 DESC_ymhmenu="Menu"
97 DESC_ymhplus="+"
98 DESC_ymhminus="-"
99 DESC_ymhtest="Test"
100 DESC_ymhtimelevel="Time/Levels"
101 DESC_ymheffect="DSP Effect Toggle"
102 DESC_ymhprgup="DSP Up"
103 DESC_ymhprgdown="DSP Down"
104 DESC_ymhtunplus="Tuner +"
105 DESC_ymhtunminus="Tuner -"
106 DESC_ymhtunabcde="Tuner ABCDE"
107 DESC_ymhtape="Tape"
108 DESC_ymhvcr="VCR"
109 DESC_ymhextdec="ExtDec Toggle"
110 DESC_seep="Sleep Modus"
111 DESC_panicled="HAL9000 says hi"
112 DESC_blueled="Blue Led"
113 DESC_moviemode="Movie Mode"
114 DESC_w="Cam >"
115 DESC_W="Cam >>"
116 DESC_c="Cam <"
117 DESC_C="Cam <<"
118
119 echo "Content-type: text/html"
120 echo ""
121 echo "<html>"
122 echo "<head>"
123 echo "<title>Realraum rf433ctl</title>"
124 echo '<script type="text/javascript">'
125 echo 'function sendButton( onoff, btn )'
126 echo '{'
127 echo ' var req = new XMLHttpRequest();'
128 echo ' url = "http://slug.realraum.at/cgi-bin/switch.cgi?power="+onoff+"&id="+btn;'
129 echo ' req.open("GET", url ,false);'
130 echo ' //google chrome workaround'
131 echo ' req.setRequestHeader("googlechromefix","");'
132 echo ' req.send(null);'
133 echo '}'
134 [ "$NOFLOAT" == "1" ] && tail -n+6 /www/ymhremote.html | head -n 58
135 echo '</script>'
136 [ "$NOFLOAT" == "1" ] && tail -n+67 /www/ymhremote.html | head -n 37
137 echo '<style>'
138 echo 'div.switchbox {'
139 echo '    float:left;'
140 echo '    margin:2px;'
141 #echo '    max-width:236px;'
142 echo '    max-width:300px;'
143 echo '    font-size:10pt;'
144 echo '    border:1px solid black;'
145 #echo '    height: 32px;'
146 echo '    padding:0;'
147 echo '}'
148   
149 echo 'div.switchnameleft {'
150 echo '    width:12em; display:inline-block; vertical-align:middle; margin-left:3px;'
151 echo '}'
152
153 echo 'span.alignbuttonsright {'
154 echo '    top:0px; float:right; display:inline-block; text-align:right; padding:0;'
155 echo '}'
156
157 echo 'div.switchnameright {'
158 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;'
159 echo '}'
160
161 echo 'span.alignbuttonsleft {'
162 echo '    float:left; text-align:left; padding:0;'
163 echo '}'
164
165 echo '.onbutton {'
166 echo '    font-size:11pt;'
167 echo '    width: 40px;'
168 echo '    height: 32px;'
169 echo '    background-color: lime;'
170 echo '    margin: 0px;'
171 echo '}'
172
173 echo '.offbutton {'
174 echo '    font-size:11pt;'
175 echo '    width: 40px;'
176 echo '    height: 32px;'
177 echo '    background-color: red;'
178 echo '    margin: 0px;'
179 echo '}'
180
181 echo '.sendbutton {'
182 echo '    font-size:11pt;'
183 echo '    width: 40px;'
184 echo '    height: 32px;'
185 #echo '    background-color: grey;'
186 echo '    margin: 0px;'
187 echo '}'
188 echo '</style>'
189 echo "</head>"
190 echo "<body>"
191 #echo "<h1>Realraum rf433ctl</h1>"
192 #echo "<div style=\"float:left; border:1px solid black;\">"
193 echo "<div style=\"float:left;\">"
194 echo "<div style=\"float:left; border:1px solid black; margin-right:2ex; margin-bottom:2ex;\">"
195 for DISPID in $VALID_ONOFF_IDS; do
196   NAME="$(eval echo \$DESC_$DISPID)"
197   [ -z "$NAME" ] && NAME=$DISPID
198
199 echo "<div class=\"switchbox\">"
200   echo "<span class=\"alignbuttonsleft\">"
201   echo " <button class=\"onbutton\" onClick='sendButton(\"on\",\"$DISPID\");'>On</button>"
202   echo " <button class=\"offbutton\" onClick='sendButton(\"off\",\"$DISPID\");'>Off</button>"
203   echo "</span>"
204   echo "<div class=\"switchnameright\">$NAME</div>"
205   echo "</div>"
206   
207   if [ "$NOFLOAT" == "1" ]; then
208     echo "<br/>"
209   fi 
210 done
211
212 #Custom Buttons Start
213 echo "<div class=\"switchbox\">"
214 echo "<span class=\"alignbuttonsleft\">"
215 echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"ymhpower\");'>Tgl</button>"
216 echo " <button class=\"offbutton\" onClick='sendButton(\"on\",\"ymhpoweroff\");'>Off</button>"
217 echo "</span>"
218 echo "<div class=\"switchnameright\">Receiver Power</div>"
219 echo "</div>"
220   if [ "$NOFLOAT" == "1" ]; then
221     echo "<br/>"
222   fi 
223 echo "<div class=\"switchbox\">"
224 echo "<span class=\"alignbuttonsleft\">"
225 echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"ymhvolup\");'>&uarr;</button>"
226 echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"ymhvoldown\");'>&darr;</button>"
227 echo "</span>"
228 echo "<div class=\"switchnameright\">Receiver Volume</div>"
229 echo "</div>"
230   if [ "$NOFLOAT" == "1" ]; then
231     echo "<br/>"
232   fi 
233 #Custom Buttons End
234
235 echo "</div>"
236
237 if [ "$MOBILE" != "1" ]; then                                                             
238
239 echo "<div style=\"float:left; border:1px solid black; margin-right:2ex; margin-bottom:2ex;\">"
240
241 ITEMCOUNT=0
242
243 for DISPID in $VALID_SEND_IDS; do
244   ITEMCOUNT=$((ITEMCOUNT+1))
245   NAME="$(eval echo \$DESC_$DISPID)"
246   [ -z "$NAME" ] && NAME=$DISPID
247   
248   echo "<div class=\"switchbox\">"
249   echo "<span class=\"alignbuttonsleft\">"
250   echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"$DISPID\");'> </button>"
251   echo "</span>"
252   echo "<div class=\"switchnameright\">$NAME</div>"
253   echo "</div>"
254   if [ "$NOFLOAT" == "1" -a $((ITEMCOUNT % 2 )) -ne 1 ]; then
255     echo "<br/>"
256   fi 
257   
258 done
259 echo '<div class="switchbox">Goto <a href="/ymhremote.html">Yamaha Receiver Remote</a></div>'
260 echo "</div>"
261
262  if [ "$NOFLOAT" == "1" ]; then
263     echo "<div style=\"float:left; border:1px solid black;\">"
264     tail -n+107 /www/ymhremote.html | head -n 5
265     echo "</div>"
266  fi 
267
268 echo "<div style=\"float:left; border:1px solid black; margin-top:5px;\">"
269 for DISPID in $VALID_BANSHEE_IDS $VALID_CAM_MOTOR_IDS; do
270   NAME="$(eval echo \$DESC_$DISPID)"
271   [ -z "$NAME" ] && NAME=$DISPID
272   
273   echo "<div class=\"switchbox\">"
274   echo "<span class=\"alignbuttonsleft\">"
275   echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"$DISPID\");'> </button>"
276   echo "</span>"
277   echo "<div class=\"switchnameright\">$NAME</div>"
278   echo "</div>"
279   if [ "$NOFLOAT" == "1" ]; then
280     echo "<br/>"
281   fi 
282
283 done
284 echo "</div>"
285 fi
286 echo "</div>"
287 echo "</body>"
288 echo "</html>"