X-Git-Url: https://git.realraum.at/?p=svn42.git;a=blobdiff_plain;f=raspberrypi_gpio_relay_licht%2Fmswitch.cgi;h=08d1bcddcee656d45c366fb496530dc8d4c3133a;hp=adf1d1914050d24c4b4fed4fb06406c176ab0e40;hb=f509f01b85b420327de12c2e01eb5d9ba61d813e;hpb=e5f623a144f65281490dbcf9757557e0f14a9402 diff --git a/raspberrypi_gpio_relay_licht/mswitch.cgi b/raspberrypi_gpio_relay_licht/mswitch.cgi index adf1d19..08d1bcd 100755 --- a/raspberrypi_gpio_relay_licht/mswitch.cgi +++ b/raspberrypi_gpio_relay_licht/mswitch.cgi @@ -1,14 +1,28 @@ #!/bin/zsh -VALID_ONOFF_IDS=(4 17 18 21 22 23) +VALID_ONOFF_IDS=(ceiling1 ceiling2 ceiling3 ceiling4 ceiling5 ceiling6) +VALID_GPIO_IDS=(4 23 18 17 22 21) +local -A IDGPIOMAP +local -A GPIOIDMAP +IDGPIOMAP[ceiling1]=4 +IDGPIOMAP[ceiling2]=23 +IDGPIOMAP[ceiling3]=18 +IDGPIOMAP[ceiling4]=17 +IDGPIOMAP[ceiling5]=22 +IDGPIOMAP[ceiling6]=21 GPIOPATH=/sys/class/gpio/gpio + +for k v in ${(kv)IDGPIOMAP}; do + GPIOIDMAP[$v]=$k +done + local -A GPIOS for QUERY in `echo $QUERY_STRING | tr '&' ' '`; do for VALIDID in $VALID_ONOFF_IDS; do if [ "$QUERY" = "$VALIDID=1" ]; then - GPIOS[$VALIDID]=1 + GPIOS[$IDGPIOMAP[$VALIDID]]=1 elif [ "$QUERY" = "$VALIDID=0" ]; then - GPIOS[$VALIDID]=0 + GPIOS[$IDGPIOMAP[$VALIDID]]=0 fi done if [ "$QUERY" = "mobile=1" ]; then @@ -21,7 +35,8 @@ done print_gpio_state() { - GPIOVALUE=$(cat "${GPIOPATH}${1}/value") + GPIO=${IDGPIOMAP[$1]} + GPIOVALUE=$(cat "${GPIOPATH}${GPIO}/value") if [[ $GPIOVALUE == "0" ]]; then echo -n "true" else @@ -30,7 +45,8 @@ print_gpio_state() { } gpio_is_on() { - GPIOVALUE=$(cat "${GPIOPATH}${1}/value") + GPIO=${IDGPIOMAP[$1]} + GPIOVALUE=$(cat "${GPIOPATH}${GPIO}/value") [ "$GPIOVALUE" = "0" ] } @@ -39,10 +55,10 @@ echo "" local -a GPIOSTATES for CHECKID in $VALID_ONOFF_IDS; do - VAL=$GPIOS[$CHECKID] + VAL=$GPIOS[$IDGPIOMAP[$CHECKID]] if [[ $VAL == 1 || $VAL == 0 ]]; then [[ $VAL == 1 ]] && VAL=0 || VAL=1 - echo "$VAL" > "${GPIOPATH}${CHECKID}/value" + echo "$VAL" > "${GPIOPATH}${IDGPIOMAP[$CHECKID]}/value" fi GPIOSTATES+=(\"${CHECKID}\":"$(print_gpio_state $CHECKID)") done