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