X-Git-Url: https://git.realraum.at/?a=blobdiff_plain;f=raspberrypi_gpio_relay_licht%2Fswitch.cgi;fp=raspberrypi_gpio_relay_licht%2Fswitch.cgi;h=d6f152e83a664ae881388c06e2e55aaac561cbbf;hb=2630563d5a886a22c24e39d355a0f60558c996ee;hp=0000000000000000000000000000000000000000;hpb=2e3568aad15008c643a11d9a2dec3cc977751a82;p=svn42.git diff --git a/raspberrypi_gpio_relay_licht/switch.cgi b/raspberrypi_gpio_relay_licht/switch.cgi new file mode 100755 index 0000000..d6f152e --- /dev/null +++ b/raspberrypi_gpio_relay_licht/switch.cgi @@ -0,0 +1,250 @@ +#!/bin/sh + +for QUERY in `echo $QUERY_STRING | tr '&' ' '`; do + for VALUE in `echo $QUERY | tr '=' ' '`; do + if [ "$VALUE" = "id" ]; then + ID='?' + elif [ "$ID" = "?" ]; then + ID=$VALUE + elif [ "$VALUE" = "power" ]; then + POWER='?' + elif [ "$POWER" = "?" ]; then + POWER=$VALUE + elif [ "$VALUE" = "mobile" ]; then + MOBILE='1' + NOFLOAT='1' + elif [ "$VALUE" = "nofloat" ]; then + NOFLOAT='1' + fi + i=$i+1 + done +done + + +GPIOPATH=/sys/class/gpio/gpio +VALID_ONOFF_IDS="4 17 18 21 22 23" +VALID_SEND_IDS="" + +print_gpio_state() { + GPIOVALUE=$(cat "${GPIOPATH}${1}/value") + if [ "$GPIOVALUE" = "0" ]; then + echo "ON" + else + echo "Off" + fi +} + +gpio_is_on() { + GPIOVALUE=$(cat "${GPIOPATH}${1}/value") + [ "$GPIOVALUE" = "0" ] +} + +if [ "$POWER" = "1" -o "$POWER" = "0" ]; then + for CHECKID in $VALID_ONOFF_IDS ; do + if [ "$CHECKID" = "$ID" ]; then + [ $POWER = 1 ] && POWER=0 || POWER=1 + echo "$POWER" > "${GPIOPATH}${ID}/value" + echo "Content-type: text/html" + echo "" + echo "" + echo "" + echo "Realraum Relay Switch" + echo '' + echo "" + exit 0 + fi + done +fi + +DESC_23="Decke Links Leinwand" +DESC_4="Decke Rechts Leinwand" +DESC_18="Decke Eingang Mitte" +DESC_17="Decke Durchgang Mitte" +DESC_22="Decke Links Couch" +DESC_21="Decke Rechts Couch" + +echo "Content-type: text/html" +echo "" +echo "" +echo "" +echo "Realraum Relay Power" +echo '' +echo '' +echo "" +echo "" +#echo "

Realraum rf433ctl

" +#echo "
" +echo "
" +echo "
" +for DISPID in $VALID_ONOFF_IDS; do + NAME="$(eval echo -n \$DESC_$DISPID)" + [ -z "$NAME" ] && NAME=$DISPID + + echo "
" + echo "" + if gpio_is_on $DISPID; then + echo " " + echo " " + else + echo " " + echo " " + fi + echo "" + echo -n "
$NAME
" +# echo -n "
$NAME (" +# print_gpio_state $DISPID +# echo ")
" + echo "
" + + if [ "$NOFLOAT" = "1" ]; then + echo "
" + fi +done + +echo "
" +echo "" +echo -n " " +echo -n " " +echo "" +echo -n "
Alle
" +echo "
" +if [ "$NOFLOAT" = "1" ]; then + echo "
" +fi +echo "
" + +if [ "$MOBILE" != "1" -a -n "$VALID_SEND_IDS" ]; then + +echo "
" + +ITEMCOUNT=0 + +for DISPID in $VALID_SEND_IDS; do + ITEMCOUNT=$((ITEMCOUNT+1)) + NAME="$(eval echo \$DESC_$DISPID)" + [ -z "$NAME" ] && NAME=$DISPID + + echo "
" + echo "" + echo " " + echo "" + echo "
$NAME
" + echo "
" + if [ "$NOFLOAT" = "1" -a $((ITEMCOUNT % 2 )) -ne 1 ]; then + echo "
" + fi + +done +echo "
" +fi +echo "
" +echo "" +echo ""