9f530972fd5c0bc020a47bd20a5c38583b9d4183
[svn42.git] / router_gpio_relay_licht / 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 GPIOPATH=/sys/class/gpio/gpio
25 #VALID_ONOFF_IDS="7 18 20 29"
26 VALID_ONOFF_IDS="7 18 20"
27
28 if [ "$POWER" == "1" -o "$POWER" == "0" ]; then
29   for CHECKID in $VALID_ONOFF_IDS ; do 
30     if [ "$CHECKID" == "$ID" ]; then
31       echo "$POWER" > "${GPIOPATH}${ID}/value"
32       echo "Content-type: text/html"
33       echo ""
34       echo "<html>"
35       echo "<head>"
36       echo "<title>Realraum Relay Switch</title>"
37       echo '<script type="text/javascript">window.location="/cgi-bin/switch.cgi";</script>'
38       echo "</head></html>"
39       exit 0
40     fi
41   done
42 fi
43
44 DESC_7="Decke Links Vorne"
45 DESC_20="Decke Rechts Vorne"
46 DESC_18="Decke Rechts Mitte"
47 #DESC_29="GPIO Nicht Belegt"
48
49 echo "Content-type: text/html"
50 echo ""
51 echo "<html>"
52 echo "<head>"
53 echo "<title>Realraum Relay Power</title>"
54 echo '<script type="text/javascript">'
55 echo 'function sendButton( onoff, btn )'
56 echo '{'
57 echo ' var req = new XMLHttpRequest();'
58 echo ' url = "/cgi-bin/switch.cgi?power="+onoff+"&id="+btn;'
59 echo ' req.open("GET", url ,false);'
60 echo ' //google chrome workaround'
61 echo ' req.setRequestHeader("googlechromefix","");'
62 echo ' req.send(null);'
63 echo '}'
64 echo '</script>'
65 echo '<style>'
66 echo 'div.switchbox {'
67 echo '    float:left;'
68 echo '    margin:2px;'
69 #echo '    max-width:236px;'
70 echo '    max-width:300px;'
71 echo '    font-size:10pt;'
72 echo '    border:1px solid black;'
73 #echo '    height: 32px;'
74 echo '    padding:0;'
75 echo '}'
76   
77 echo 'div.switchnameleft {'
78 echo '    width:12em; display:inline-block; vertical-align:middle; margin-left:3px;'
79 echo '}'
80
81 echo 'span.alignbuttonsright {'
82 echo '    top:0px; float:right; display:inline-block; text-align:right; padding:0;'
83 echo '}'
84
85 echo 'div.switchnameright {'
86 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;'
87 echo '}'
88
89 echo 'span.alignbuttonsleft {'
90 echo '    float:left; text-align:left; padding:0;'
91 echo '}'
92
93 echo '.onbutton {'
94 echo '    font-size:11pt;'
95 echo '    width: 40px;'
96 echo '    height: 32px;'
97 echo '    background-color: lime;'
98 echo '    margin: 0px;'
99 echo '}'
100
101 echo '.offbutton {'
102 echo '    font-size:11pt;'
103 echo '    width: 40px;'
104 echo '    height: 32px;'
105 echo '    background-color: red;'
106 echo '    margin: 0px;'
107 echo '}'
108
109 echo '.sendbutton {'
110 echo '    font-size:11pt;'
111 echo '    width: 40px;'
112 echo '    height: 32px;'
113 #echo '    background-color: grey;'
114 echo '    margin: 0px;'
115 echo '}'
116 echo '</style>'
117 echo "</head>"
118 echo "<body>"
119 #echo "<h1>Realraum rf433ctl</h1>"
120 #echo "<div style=\"float:left; border:1px solid black;\">"
121 echo "<div style=\"float:left;\">"
122 echo "<div style=\"float:left; border:1px solid black; margin-right:2ex; margin-bottom:2ex;\">"
123 for DISPID in $VALID_ONOFF_IDS; do
124   NAME="$(eval echo \$DESC_$DISPID)"
125   [ -z "$NAME" ] && NAME=$DISPID
126
127 echo "<div class=\"switchbox\">"
128   echo "<span class=\"alignbuttonsleft\">"
129   echo " <button class=\"onbutton\" onClick='sendButton(\"1\",\"$DISPID\");'>On</button>"
130   echo " <button class=\"offbutton\" onClick='sendButton(\"0\",\"$DISPID\");'>Off</button>"
131   echo "</span>"
132   echo "<div class=\"switchnameright\">$NAME</div>"
133   echo "</div>"
134   
135   if [ "$NOFLOAT" == "1" ]; then
136     echo "<br/>"
137   fi 
138 done
139
140 echo "</div>"
141
142 if [ "$MOBILE" != "1" ]; then                                                             
143
144 echo "<div style=\"float:left; border:1px solid black; margin-right:2ex; margin-bottom:2ex;\">"
145
146 ITEMCOUNT=0
147
148 for DISPID in $VALID_SEND_IDS; do
149   ITEMCOUNT=$((ITEMCOUNT+1))
150   NAME="$(eval echo \$DESC_$DISPID)"
151   [ -z "$NAME" ] && NAME=$DISPID
152   
153   echo "<div class=\"switchbox\">"
154   echo "<span class=\"alignbuttonsleft\">"
155   echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"$DISPID\");'> </button>"
156   echo "</span>"
157   echo "<div class=\"switchnameright\">$NAME</div>"
158   echo "</div>"
159   if [ "$NOFLOAT" == "1" -a $((ITEMCOUNT % 2 )) -ne 1 ]; then
160     echo "<br/>"
161   fi 
162   
163 done
164 echo "</div>"
165
166  if [ "$NOFLOAT" == "1" ]; then
167     echo "<div style=\"float:left; border:1px solid black;\">"
168     tail -n+107 /www/ymhremote.html | head -n 5
169     echo "</div>"
170  fi 
171
172 echo "<div style=\"float:left; border:1px solid black; margin-top:5px;\">"
173 for DISPID in $VALID_BANSHEE_IDS $VALID_CAM_MOTOR_IDS; do
174   NAME="$(eval echo \$DESC_$DISPID)"
175   [ -z "$NAME" ] && NAME=$DISPID
176   
177   echo "<div class=\"switchbox\">"
178   echo "<span class=\"alignbuttonsleft\">"
179   echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"$DISPID\");'> </button>"
180   echo "</span>"
181   echo "<div class=\"switchnameright\">$NAME</div>"
182   echo "</div>"
183   if [ "$NOFLOAT" == "1" ]; then
184     echo "<br/>"
185   fi 
186
187 done
188 echo "</div>"
189 fi
190 echo "</div>"
191 echo "</body>"
192 echo "</html>"