raspberrypi_licht
[svn42.git] / raspberrypi_gpio_relay_licht / mswitch.cgi
1 #!/bin/sh
2
3 VALID_ONOFF_IDS="4 17 18 21 22 23"
4 GPIOPATH=/sys/class/gpio/gpio
5
6 for QUERY in `echo $QUERY_STRING | tr '&' ' '`; do
7   for VALIDID in $VALID_ONOFF_IDS; do
8     if [ "$QUERY" = "$VALIDID=1" ]; then
9       eval "GPIO_$VALIDID"=1
10     elif [ "$QUERY" = "$VALIDID=0" ]; then
11       eval "GPIO_$VALIDID=0"
12     elif [ "$QUERY" = "$VALIDID=q" ]; then
13       eval "GPIO_$VALIDID=q"
14     fi
15   done
16   if [ "$QUERY" = "mobile=1" ]; then
17     MOBILE='1'
18     NOFLOAT='1'
19   elif [ "$QUERY" = "nofloat=1" ]; then
20     NOFLOAT='1'
21   fi
22 done
23
24
25 print_gpio_state() {
26   GPIOVALUE=$(cat "${GPIOPATH}${1}/value")
27   if [ "$GPIOVALUE" = "0" ]; then
28     echo -n "true"
29   else
30     echo -n "false"
31   fi
32 }
33
34 gpio_is_on() {
35   GPIOVALUE=$(cat "${GPIOPATH}${1}/value")
36   [ "$GPIOVALUE" = "0" ]
37 }
38
39 echo "Content-type: text/html"
40 echo ""
41
42 echo "{"
43 for CHECKID in $VALID_ONOFF_IDS; do
44   VAL=""
45   VAL="$(eval echo \$GPIO_$CHECKID)"
46   [ -z $VAL ] && continue
47   if [ $VAL = 1 -o $VAL = 0 ]; then
48     [ $VAL = 1 ] && VAL=0 || VAL=1
49     echo "$VAL" > "${GPIOPATH}${CHECKID}/value"
50   fi
51   echo -n "\"$CHECKID\":"
52   print_gpio_state $CHECKID
53   echo ","
54 done
55 echo "\"-1\":false}"
56 #      echo "<html>"
57 #      echo "<head>"
58 #      echo "<title>Realraum Relay Switch</title>"
59 #      echo '<script type="text/javascript">window.location="/cgi-bin/switch.cgi";</script>'
60 #      echo "</head></html>"
61 #      exit 0
62