3 VALID_ONOFF_IDS=(ceiling1 ceiling2 ceiling3 ceiling4 ceiling5 ceiling6)
4 VALID_GPIO_IDS=(4 23 18 17 22 21)
10 IDGPIOMAP[ceiling4]=17
11 IDGPIOMAP[ceiling5]=22
12 IDGPIOMAP[ceiling6]=21
13 GPIOPATH=/sys/class/gpio/gpio
15 for k v in ${(kv)IDGPIOMAP}; do
20 for QUERY in `echo $QUERY_STRING | tr '&' ' '`; do
21 for VALIDID in $VALID_ONOFF_IDS; do
22 if [ "$QUERY" = "$VALIDID=1" ]; then
23 GPIOS[$IDGPIOMAP[$VALIDID]]=1
24 elif [ "$QUERY" = "$VALIDID=0" ]; then
25 GPIOS[$IDGPIOMAP[$VALIDID]]=0
28 if [ "$QUERY" = "mobile=1" ]; then
31 elif [ "$QUERY" = "nofloat=1" ]; then
39 GPIOVALUE=$(cat "${GPIOPATH}${GPIO}/value")
40 if [[ $GPIOVALUE == "0" ]]; then
49 GPIOVALUE=$(cat "${GPIOPATH}${GPIO}/value")
50 [ "$GPIOVALUE" = "0" ]
53 echo "Content-type: text/html"
57 for CHECKID in $VALID_ONOFF_IDS; do
58 VAL=$GPIOS[$IDGPIOMAP[$CHECKID]]
59 if [[ $VAL == 1 || $VAL == 0 ]]; then
60 [[ $VAL == 1 ]] && VAL=0 || VAL=1
61 echo "$VAL" > "${GPIOPATH}${IDGPIOMAP[$CHECKID]}/value"
63 GPIOSTATES+=(\"${CHECKID}\":"$(print_gpio_state $CHECKID)")
65 JSON_STATE="{${(j:,:)GPIOSTATES}}"
66 print ${(q)JSON_STATE}
67 if ((#GPIOS > 0)); then
68 print "[$(date +%s),\"$REMOTE_ADDR\",${(q)JSON_STATE}]," >> /var/log/licht/mswitch.log