raspberrypi_licht
[svn42.git] / raspberrypi_gpio_relay_licht / mswitch.cgi
diff --git a/raspberrypi_gpio_relay_licht/mswitch.cgi b/raspberrypi_gpio_relay_licht/mswitch.cgi
new file mode 100755 (executable)
index 0000000..dbfc79a
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+VALID_ONOFF_IDS="4 17 18 21 22 23"
+GPIOPATH=/sys/class/gpio/gpio
+
+for QUERY in `echo $QUERY_STRING | tr '&' ' '`; do
+  for VALIDID in $VALID_ONOFF_IDS; do
+    if [ "$QUERY" = "$VALIDID=1" ]; then
+      eval "GPIO_$VALIDID"=1
+    elif [ "$QUERY" = "$VALIDID=0" ]; then
+      eval "GPIO_$VALIDID=0"
+    elif [ "$QUERY" = "$VALIDID=q" ]; then
+      eval "GPIO_$VALIDID=q"
+    fi
+  done
+  if [ "$QUERY" = "mobile=1" ]; then
+    MOBILE='1'
+    NOFLOAT='1'
+  elif [ "$QUERY" = "nofloat=1" ]; then
+    NOFLOAT='1'
+  fi
+done
+
+
+print_gpio_state() {
+  GPIOVALUE=$(cat "${GPIOPATH}${1}/value")
+  if [ "$GPIOVALUE" = "0" ]; then
+    echo -n "true"
+  else
+    echo -n "false"
+  fi
+}
+
+gpio_is_on() {
+  GPIOVALUE=$(cat "${GPIOPATH}${1}/value")
+  [ "$GPIOVALUE" = "0" ]
+}
+
+echo "Content-type: text/html"
+echo ""
+
+echo "{"
+for CHECKID in $VALID_ONOFF_IDS; do
+  VAL=""
+  VAL="$(eval echo \$GPIO_$CHECKID)"
+  [ -z $VAL ] && continue
+  if [ $VAL = 1 -o $VAL = 0 ]; then
+    [ $VAL = 1 ] && VAL=0 || VAL=1
+    echo "$VAL" > "${GPIOPATH}${CHECKID}/value"
+  fi
+  echo -n "\"$CHECKID\":"
+  print_gpio_state $CHECKID
+  echo ","
+done
+echo "\"-1\":false}"
+#      echo "<html>"
+#      echo "<head>"
+#      echo "<title>Realraum Relay Switch</title>"
+#      echo '<script type="text/javascript">window.location="/cgi-bin/switch.cgi";</script>'
+#      echo "</head></html>"
+#      exit 0
+