moved raspberry and router gpio to pi_as_powerwitch on github
authorChristian Pointner <equinox@realraum.at>
Tue, 24 Feb 2015 02:32:10 +0000 (02:32 +0000)
committerChristian Pointner <equinox@realraum.at>
Tue, 24 Feb 2015 02:32:10 +0000 (02:32 +0000)
13 files changed:
raspberrypi_gpio_relay_licht/index.html [deleted file]
raspberrypi_gpio_relay_licht/indexz.html [deleted file]
raspberrypi_gpio_relay_licht/move_lights.sh [deleted file]
raspberrypi_gpio_relay_licht/rc.local [deleted file]
raspberrypi_gpio_relay_licht/realraumsimpel.png [deleted file]
raspberrypi_gpio_relay_licht/realraumsimpelz.png [deleted file]
raspberrypi_gpio_relay_licht/stuff.py [deleted file]
raspberrypi_gpio_relay_licht/style.css [deleted file]
raspberrypi_gpio_relay_licht/stylez.css [deleted file]
raspberrypi_gpio_relay_licht/switch.html [deleted file]
router_gpio_relay_licht/mswitch.cgi [deleted file]
router_gpio_relay_licht/rc.local [deleted file]
router_gpio_relay_licht/switch.cgi [deleted file]

diff --git a/raspberrypi_gpio_relay_licht/index.html b/raspberrypi_gpio_relay_licht/index.html
deleted file mode 100644 (file)
index 55f7c1b..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-<html>
-<head>
-<link rel="stylesheet" type="text/css" href="style.css">
-</head>
-
-
-
-<script type="text/javascript">
-
-   var pc1_state=false;
-   var pc2_state=false;
-   var pc3_state=false;
-   var pc4_state=false;
-   var pc5_state=false;
-   var pc6_state=false;
-
-function callBackButtons(req)
-{
-       if(req.status != 200)
-       {
-               return;
-       }
-
-
-       var data = JSON.parse(req.responseText);
-
-               if(data['ceiling1']==true)
-               {
-                       pc1_state=true;
-                       document.getElementById("pc1").style.background="green";
-               }
-               else 
-               {
-                       pc1_state=false;
-                       document.getElementById("pc1").style.background="red";
-               }
-               
-
-                if(data['ceiling2']==true)
-                {
-                        pc2_state=true;
-                        document.getElementById("pc2").style.background="green";
-                }
-                else 
-                {
-                        pc2_state=false;
-                        document.getElementById("pc2").style.background="red";
-                }
-               
-                if(data['ceiling3']==true)
-                {
-                        pc3_state=true;
-                        document.getElementById("pc3").style.background="green";
-                }
-                else 
-                {
-                        pc3_state=false;
-                        document.getElementById("pc3").style.background="red";
-                }
-               
-
-                if(data['ceiling4']==true)
-                {
-                        pc4_state=true;
-                        document.getElementById("pc4").style.background="green";
-                }
-                else 
-                {
-                        pc4_state=false;
-                        document.getElementById("pc4").style.background="red";
-                }
-
-
-                if(data['ceiling5']==true)
-                {
-                        pc5_state=true;
-                        document.getElementById("pc5").style.background="green";
-                }
-                else 
-                {
-                        pc5_state=false;
-                        document.getElementById("pc5").style.background="red";
-                }
-
-                if(data['ceiling6']==true)
-                {
-                        pc6_state=true;
-                        document.getElementById("pc6").style.background="green";
-                }
-                else 
-                {
-                        pc6_state=false;
-                        document.getElementById("pc6").style.background="red";
-                }
-}
-
-function updateButtons(uri) {
-  var req = new XMLHttpRequest;
-  req.overrideMimeType("application/json");
-  req.open("GET", uri, true);
-  req.onload  = function() {callBackButtons(req)};
-  req.setRequestHeader("googlechromefix","");
-  req.send(null);
-}
-function sendMultiButton( str ) {
- url = "/cgi-bin/mswitch.cgi?"+str;
-  updateButtons(url);
-}
-
-
-//function pc(n) switches light n
-
-function pc1()
-{
-       if(pc1_state===true)
-        {
-          pc1_state=false;
-          sendMultiButton("ceiling1=0")
-          document.getElementById("pc1").style.background="red";
-       }       
-       else
-       {
-          pc1_state=true;
-          sendMultiButton("ceiling1=1")
-           document.getElementById("pc1").style.background="green";
-       }
-}
-function pc2()
-{
-       if(pc2_state===true)
-        {
-          pc2_state=false;
-           sendMultiButton("ceiling2=0")               
-          document.getElementById("pc2").style.background="red";
-       }       
-       else
-       {
-          pc2_state=true;
-          sendMultiButton("ceiling2=1")        
-           document.getElementById("pc2").style.background="green";
-       }
-}
-function pc3()
-{
-       if(pc3_state===true)
-        {
-          pc3_state=false;
-          sendMultiButton("ceiling3=0")        
-          document.getElementById("pc3").style.background="red";
-       }       
-       else
-       {
-          pc3_state=true;
-          sendMultiButton("ceiling3=1")
-           document.getElementById("pc3").style.background="green";
-       }
-}
-function pc4()
-{
-       if(pc4_state===true)
-        {
-          pc4_state=false;
-          sendMultiButton("ceiling4=0")
-          document.getElementById("pc4").style.background="red";
-       }       
-       else
-       {
-          pc4_state=true;
-          sendMultiButton("ceiling4=1")
-           document.getElementById("pc4").style.background="green";
-       }
-}
-function pc5()
-{
-       if(pc5_state===true)
-        {
-          pc5_state=false;
-          sendMultiButton("ceiling5=0")
-          document.getElementById("pc5").style.background="red";
-       }       
-       else
-       {
-          pc5_state=true;
-          sendMultiButton("ceiling5=1")
-           document.getElementById("pc5").style.background="green";
-       }
-}
-
-function pc6()
-{
-       if(pc6_state===true)
-        {
-          pc6_state=false;
-          sendMultiButton("ceiling6=0")
-          document.getElementById("pc6").style.background="red";
-       }       
-       else
-       {
-          pc6_state=true;
-          sendMultiButton("ceiling6=1")
-           document.getElementById("pc6").style.background="green";
-       }
-}
-
-setInterval("updateButtons('/cgi-bin/mswitch.cgi');", 30*100 );
-updateButtons("/cgi-bin/mswitch.cgi");
-</script>
-
-<body>
-<div style="position:absolute; top:640px;"><a href="switch.html">Link to ALL switches</a></div>
-<div class="pc1" id="pc1" onclick="pc1()"></div>
-<div class="pc2" id="pc2" onclick="pc2()"></div>
-<div class="pc3" id="pc3" onclick="pc3()"></div>
-<div class="pc4" id="pc4" onclick="pc4()"></div>
-<div class="pc5" id="pc5" onclick="pc5()"></div>
-<div class="pc6" id="pc6" onclick="pc6()"></div>
-</body>
-</html>
diff --git a/raspberrypi_gpio_relay_licht/indexz.html b/raspberrypi_gpio_relay_licht/indexz.html
deleted file mode 100755 (executable)
index fa03ef3..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-<html>
-<head>
-<link rel="stylesheet" type="text/css" href="stylez.css">
-</head>
-
-
-
-<script type="text/javascript">
-
-   var pc1_state=false;
-   var pc2_state=false;
-   var pc3_state=false;
-   var pc4_state=false;
-   var pc5_state=false;
-   var pc6_state=false;
-
-function callBackButtons(req)
-{
-       if(req.status != 200)
-       {
-               return;
-       }
-
-
-       var data = JSON.parse(req.responseText);
-
-               if(data['ceiling1']==true)
-               {
-                       pc1_state=true;
-                       document.getElementById("pc1").style.background="green";
-               }
-               else 
-               {
-                       pc1_state=false;
-                       document.getElementById("pc1").style.background="red";
-               }
-               
-
-                if(data['ceiling2']==true)
-                {
-                        pc2_state=true;
-                        document.getElementById("pc2").style.background="green";
-                }
-                else 
-                {
-                        pc2_state=false;
-                        document.getElementById("pc2").style.background="red";
-                }
-               
-                if(data['ceiling3']==true)
-                {
-                        pc3_state=true;
-                        document.getElementById("pc3").style.background="green";
-                }
-                else 
-                {
-                        pc3_state=false;
-                        document.getElementById("pc3").style.background="red";
-                }
-               
-
-                if(data['ceiling4']==true)
-                {
-                        pc4_state=true;
-                        document.getElementById("pc4").style.background="green";
-                }
-                else 
-                {
-                        pc4_state=false;
-                        document.getElementById("pc4").style.background="red";
-                }
-
-
-                if(data['ceiling5']==true)
-                {
-                        pc5_state=true;
-                        document.getElementById("pc5").style.background="green";
-                }
-                else 
-                {
-                        pc5_state=false;
-                        document.getElementById("pc5").style.background="red";
-                }
-
-                if(data['ceiling6']==true)
-                {
-                        pc6_state=true;
-                        document.getElementById("pc6").style.background="green";
-                }
-                else 
-                {
-                        pc6_state=false;
-                        document.getElementById("pc6").style.background="red";
-                }
-}
-
-function updateButtons(uri) {
-  var req = new XMLHttpRequest;
-  req.overrideMimeType("application/json");
-  req.open("GET", uri, true);
-  req.onload  = function() {callBackButtons(req)};
-  req.setRequestHeader("googlechromefix","");
-  req.send(null);
-}
-function sendMultiButton( str ) {
- url = "/cgi-bin/mswitch.cgi?"+str;
-  updateButtons(url);
-}
-
-
-//function pc(n) switches light n
-
-function pc1()
-{
-       if(pc1_state===true)
-        {
-          pc1_state=false;
-          sendMultiButton("ceiling1=0")
-          document.getElementById("pc1").style.background="red";
-       }       
-       else
-       {
-          pc1_state=true;
-          sendMultiButton("ceiling1=1")
-           document.getElementById("pc1").style.background="green";
-       }
-}
-function pc2()
-{
-       if(pc2_state===true)
-        {
-          pc2_state=false;
-           sendMultiButton("ceiling2=0")               
-          document.getElementById("pc2").style.background="red";
-       }       
-       else
-       {
-          pc2_state=true;
-          sendMultiButton("ceiling2=1")        
-           document.getElementById("pc2").style.background="green";
-       }
-}
-function pc3()
-{
-       if(pc3_state===true)
-        {
-          pc3_state=false;
-          sendMultiButton("ceiling3=0")        
-          document.getElementById("pc3").style.background="red";
-       }       
-       else
-       {
-          pc3_state=true;
-          sendMultiButton("ceiling3=1")
-           document.getElementById("pc3").style.background="green";
-       }
-}
-function pc4()
-{
-       if(pc4_state===true)
-        {
-          pc4_state=false;
-          sendMultiButton("ceiling4=0")
-          document.getElementById("pc4").style.background="red";
-       }       
-       else
-       {
-          pc4_state=true;
-          sendMultiButton("ceiling4=1")
-           document.getElementById("pc4").style.background="green";
-       }
-}
-function pc5()
-{
-       if(pc5_state===true)
-        {
-          pc5_state=false;
-          sendMultiButton("ceiling5=0")
-          document.getElementById("pc5").style.background="red";
-       }       
-       else
-       {
-          pc5_state=true;
-          sendMultiButton("ceiling5=1")
-           document.getElementById("pc5").style.background="green";
-       }
-}
-
-function pc6()
-{
-       if(pc6_state===true)
-        {
-          pc6_state=false;
-          sendMultiButton("ceiling6=0")
-          document.getElementById("pc6").style.background="red";
-       }       
-       else
-       {
-          pc6_state=true;
-          sendMultiButton("ceiling6=1")
-           document.getElementById("pc6").style.background="green";
-       }
-}
-
-setInterval("updateButtons('/cgi-bin/mswitch.cgi');", 30*100 );
-updateButtons("/cgi-bin/mswitch.cgi");
-</script>
-
-<body>
-<div class="pc1" id="pc1" onclick="pc1()"></div>
-<div class="pc2" id="pc2" onclick="pc2()"></div>
-<div class="pc3" id="pc3" onclick="pc3()"></div>
-<div class="pc4" id="pc4" onclick="pc4()"></div>
-<div class="pc5" id="pc5" onclick="pc5()"></div>
-<div class="pc6" id="pc6" onclick="pc6()"></div>
-
-</body>
-</html>
diff --git a/raspberrypi_gpio_relay_licht/move_lights.sh b/raspberrypi_gpio_relay_licht/move_lights.sh
deleted file mode 100644 (file)
index cf7b075..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-curl 'http://licht.realraum.at/cgi-bin/mswitch.cgi?ceiling1=1&ceiling2=0&ceiling3=0&ceiling4=0&ceiling5=0&ceiling6=0'; sleep 3; curl 'http://licht.realraum.at/cgi-bin/mswitch.cgi?ceiling1=1&ceiling2=1&ceiling3=0&ceiling4=0&ceiling5=0&ceiling6=0'; sleep 3; curl 'http://licht.realraum.at/cgi-bin/mswitch.cgi?ceiling1=0&ceiling2=1&ceiling3=0&ceiling4=1&ceiling5=0&ceiling6=0'; sleep 3; curl 'http://licht.realraum.at/cgi-bin/mswitch.cgi?ceiling1=0&ceiling2=0&ceiling3=1&ceiling4=1&ceiling5=0&ceiling6=0'; sleep 3; curl 'http://licht.realraum.at/cgi-bin/mswitch.cgi?ceiling1=0&ceiling2=0&ceiling3=1&ceiling4=0&ceiling5=1&ceiling6=0'; sleep 3; curl 'http://licht.realraum.at/cgi-bin/mswitch.cgi?ceiling1=0&ceiling2=0&ceiling3=0&ceiling4=0&ceiling5=1&ceiling6=1'; sleep 3; curl 'http://licht.realraum.at/cgi-bin/mswitch.cgi?ceiling1=0&ceiling2=0&ceiling3=0&ceiling4=0&ceiling5=0&ceiling6=1'; sleep 3; curl 'http://licht.realraum.at/cgi-bin/mswitch.cgi?ceiling1=0&ceiling2=0&ceiling3=0&ceiling4=0&ceiling5=0&ceiling6=0';
diff --git a/raspberrypi_gpio_relay_licht/rc.local b/raspberrypi_gpio_relay_licht/rc.local
deleted file mode 100644 (file)
index 33672c7..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides:          rc.local
-# Required-Start:    $all
-# Required-Stop:
-# Default-Start:     2 3 4 5
-# Default-Stop:
-# Short-Description: Run /etc/rc.local if it exist
-### END INIT INFO
-
-
-PATH=/sbin:/usr/sbin:/bin:/usr/bin
-
-. /lib/init/vars.sh
-. /lib/lsb/init-functions
-
-do_start() {
-       if [ -x /etc/rc.local ]; then
-               [ "$VERBOSE" != no ] && log_begin_msg "Running local boot scripts (/etc/rc.local)"
-               /etc/rc.local
-               ES=$?
-               [ "$VERBOSE" != no ] && log_end_msg $ES
-               return $ES
-       fi
-}
-
-case "$1" in
-    start)
-       do_start
-        ;;
-    restart|reload|force-reload)
-        echo "Error: argument '$1' not supported" >&2
-        exit 3
-        ;;
-    stop)
-        ;;
-    *)
-        echo "Usage: $0 start|stop" >&2
-        exit 3
-        ;;
-esac
diff --git a/raspberrypi_gpio_relay_licht/realraumsimpel.png b/raspberrypi_gpio_relay_licht/realraumsimpel.png
deleted file mode 100755 (executable)
index 0b9cbb1..0000000
Binary files a/raspberrypi_gpio_relay_licht/realraumsimpel.png and /dev/null differ
diff --git a/raspberrypi_gpio_relay_licht/realraumsimpelz.png b/raspberrypi_gpio_relay_licht/realraumsimpelz.png
deleted file mode 100755 (executable)
index 38e2904..0000000
Binary files a/raspberrypi_gpio_relay_licht/realraumsimpelz.png and /dev/null differ
diff --git a/raspberrypi_gpio_relay_licht/stuff.py b/raspberrypi_gpio_relay_licht/stuff.py
deleted file mode 100755 (executable)
index 689c345..0000000
+++ /dev/null
@@ -1,348 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-import os
-import os.path
-import sys
-#import threading
-import logging
-import logging.handlers
-import time
-import signal
-import subprocess
-import types
-import ConfigParser
-import traceback
-import random
-import zmq
-import zmq.utils.jsonapi as json
-import urllib
-import ephem
-
-logger = logging.getLogger()
-logger.setLevel(logging.INFO)
-lh_syslog = logging.handlers.SysLogHandler(address="/dev/log",facility=logging.handlers.SysLogHandler.LOG_LOCAL2)
-lh_syslog.setFormatter(logging.Formatter('play-sound-status.py: %(levelname)s %(message)s'))
-logger.addHandler(lh_syslog)
-lh_stderr = logging.StreamHandler()
-logger.addHandler(lh_stderr)
-
-def isTheSunDown():
-    ephemobs=ephem.Observer()
-    ephemobs.lat='47.06'
-    ephemobs.lon='15.45'
-    ephemsun=ephem.Sun()
-    ephemsun.compute()
-    return ephemobs.date > ephemobs.previous_setting(ephemsun) and ephemobs.date < ephemobs.next_rising(ephemsun)
-
-
-class UWSConfig:
-  def __init__(self,configfile=None):
-    self.configfile=configfile
-    self.config_parser=ConfigParser.ConfigParser()
-    #make option variable names case sensitive
-    self.config_parser.optionxform = str
-    self.config_parser.add_section('debug')
-    self.config_parser.set('debug','enabled',"False")
-    self.config_parser.add_section('broker')
-    self.config_parser.set('broker','uri',"tcp://torwaechter.realraum.at:4244")    
-    self.config_parser.add_section('tracker')
-    self.config_parser.set('tracker','secs_movement_before_presence_to_launch_event','1')
-    self.config_parser.set('tracker','secs_presence_before_movement_to_launch_event','120')
-    self.config_mtime=0
-    if not self.configfile is None:
-      try:
-        cf_handle = open(self.configfile,"r")
-        cf_handle.close()
-      except IOError:
-        self.writeConfigFile()
-      else:
-        self.checkConfigUpdates()
-
-  def checkConfigUpdates(self):
-    global logger
-    if self.configfile is None:
-      return
-    logging.debug("Checking Configfile mtime: "+self.configfile)
-    try:
-      mtime = os.path.getmtime(self.configfile)
-    except (IOError,OSError):
-      return
-    if self.config_mtime < mtime:
-      logging.debug("Reading Configfile")
-      try:
-        self.config_parser.read(self.configfile)
-        self.config_mtime=os.path.getmtime(self.configfile)
-      except (ConfigParser.ParsingError, IOError), pe_ex:
-        logging.error("Error parsing Configfile: "+str(pe_ex))
-      if self.config_parser.get('debug','enabled') == "True":
-        logger.setLevel(logging.DEBUG)
-      else:
-        logger.setLevel(logging.INFO)
-
-  def writeConfigFile(self):
-    if self.configfile is None:
-      return
-    logging.debug("Writing Configfile "+self.configfile)
-    try:
-      cf_handle = open(self.configfile,"w")
-      self.config_parser.write(cf_handle)
-      cf_handle.close()
-      self.config_mtime=os.path.getmtime(self.configfile)
-    except IOError, io_ex:
-      logging.error("Error writing Configfile: "+str(io_ex))
-      self.configfile=None
-
-  def getValue(self, name):
-    underscore_pos=name.find('_')
-    if underscore_pos < 0:
-      raise AttributeError
-    return self.getSectionValue(name[0:underscore_pos], name[underscore_pos+1:])
-
-  def getSectionValue(self, section, name):
-    try:
-      return self.config_parser.get(section,name)
-    except (ConfigParser.NoOptionError, ConfigParser.NoSectionError):
-      return None
-
-  def __getattr__(self, name):
-    underscore_pos=name.find('_')
-    if underscore_pos < 0:
-      raise AttributeError
-    try:
-      return self.config_parser.get(name[0:underscore_pos], name[underscore_pos+1:])
-    except (ConfigParser.NoOptionError, ConfigParser.NoSectionError):
-      raise AttributeError
-
-
-def runRandomAction(action_list,user,args=[]):
-  if not type(action_list) == types.ListType:
-    raise ValueError("runRandomAction: action_list must be a list")
-  return executeAction(random.choice(action_list),user,args)
-
-def runRemoteCommand(remote_host,remote_shell,user,args=[]):
-  global sshp,uwscfg
-  sshp = None
-  try:
-    cmd = "ssh -i /flash/tuer/id_rsa -o PasswordAuthentication=no -o StrictHostKeyChecking=no %RHOST% %RSHELL%"
-    cmd = cmd.replace("%RHOST%",remote_host).replace("%RSHELL%",remote_shell).replace("%ARG%", " ".join(args)).replace("%USER%", user)
-    logging.debug("runRemoteCommand: Executing: "+cmd)
-    sshp = subprocess.Popen(cmd.split(" "), bufsize=1024, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=False)
-    logging.debug("runRemoteCommand: pid %d: running=%d" % (sshp.pid,sshp.poll() is None))
-    if not sshp.poll() is None:
-      logging.error("runRemoteCommand: subprocess %d not started ?, returncode: %d" % (sshp.pid,sshp.returncode))
-      return False
-    return True
-  except Exception, ex:
-    logging.error("runRemoteCommand: "+str(ex))
-    traceback.print_exc(file=sys.stdout)
-    if not sshp is None and sshp.poll() is None:
-      if sys.hexversion >= 0x020600F0:
-        sshp.terminate()
-      else:
-        subprocess.call(["kill",str(sshp.pid)])
-      time.sleep(1.5)
-      if sshp.poll() is None:
-        logging.error("runRemoteCommand: subprocess still alive, sending SIGKILL to pid %d" % (sshp.pid))
-        if sys.hexversion >= 0x020600F0:
-          sshp.kill()
-        else:
-          subprocess.call(["kill","-9",str(sshp.pid)])
-    time.sleep(5)
-    return False
-
-def runShellCommand(cmd,ptimeout,stdinput,user,args=[]):
-  global uwscfg
-  cmd = cmd.replace("%ARG%"," ".join(args)).replace("%USER%", user)
-  if ptimeout is None or float(ptimeout) > 45:
-    ptimeout = 45
-  else:
-    ptimeout = int(float(ptimeout))
-  popenTimeout2(cmd,stdinput,ptimeout=ptimeout)
-
-def executeAction(action_name, user, args=[]):
-  if action_name is None:
-    logging.error("executeAction: action_name is None")
-    return False
-  action_type = uwscfg.getValue(action_name+"_type")
-  if action_type is None:
-    logging.error("executeAction: action %s not found or has no type" % action_name)
-    return False
-  action_delay=uwscfg.getValue(action_name+"_delay")
-  logging.info("executeAction %s of type %s for user %s with delay %s" % (action_name,action_type,user,action_delay))
-  if not action_delay is None:
-    time.sleep(float(action_delay))
-
-  action_arg = uwscfg.getValue(action_name+"_arg")
-  if not action_arg is None:
-    args += [action_arg]
-
-  #"registered" actions
-  if action_type == "remotecmd":
-    return runRemoteCommand(uwscfg.getSectionValue(action_name,"remote_host"), uwscfg.getSectionValue(action_name,"remote_shell"), user=user, args=args)
-  elif action_type == "shellcmd":
-    return runShellCommand(cmd=uwscfg.getSectionValue(action_name,"cmd"), ptimeout=uwscfg.getSectionValue(action_name,"timeout"), stdinput=uwscfg.getSectionValue(action_name,"stdinput"), user=user, args=args)
-  elif action_type == "nothing":
-    return True
-  elif action_type == "random":
-    return runRandomAction(action_list=uwscfg.getSectionValue(action_name,"one_of").split(" "),user=user,args=args)
-  else:
-    return executeAction(action_type,user=user,args=args)
-
-def playThemeOf(user,fallback_default):
-  global uwscfg
-  uwscfg.checkConfigUpdates()
-  if user is None:
-    user = ""
-  config=uwscfg.getValue("mapping_"+str(user))
-  if config is None:
-    config=uwscfg.getValue("mapping_"+str(fallback_default))
-  logging.debug("playThemeOf: action for user %s: %s" % (user,config))
-  executeAction(config,user,[])
-
-def popenTimeout1(cmd, pinput, returncode_ok=[0], ptimeout = 20.0, pcheckint = 0.25):
-  logging.debug("popenTimeout1: starting: " + cmd)
-  try:
-    sppoo = subprocess.Popen(cmd, stdin=subprocess.PIPE, shell=True)
-    sppoo.communicate(input=pinput)
-    timeout_counter=ptimeout
-    while timeout_counter > 0:
-      time.sleep(pcheckint)
-      timeout_counter -= pcheckint
-      if not sppoo.poll() is None:
-        logging.debug("popenTimeout1: subprocess %d finished, returncode: %d" % (sppoo.pid,sppoo.returncode))
-        return (sppoo.returncode in returncode_ok)
-    #timeout reached
-    logging.error("popenTimeout1: subprocess took too long (>%fs), sending SIGTERM to pid %d" % (ptimeout,sppoo.pid))
-    if sys.hexversion >= 0x020600F0:
-      sppoo.terminate()
-    else:
-      subprocess.call(["kill",str(sppoo.pid)])
-    time.sleep(1.0)
-    if sppoo.poll() is None:
-      logging.error("popenTimeout1: subprocess still alive, sending SIGKILL to pid %d" % (sppoo.pid))
-      if sys.hexversion >= 0x020600F0:
-        sppoo.kill()
-      else:
-        subprocess.call(["kill","-9",str(sppoo.pid)])
-    return False
-  except Exception, e:
-    logging.error("popenTimeout1: "+str(e))
-    return False
-
-def popenTimeout2(cmd, pinput, returncode_ok=[0], ptimeout=21):
-  logging.debug("popenTimeout2: starting: " + cmd)
-  try:
-    sppoo = subprocess.Popen(cmd, stdin=subprocess.PIPE, shell=True)
-    if sys.hexversion >= 0x020600F0:
-      old_shandler = signal.signal(signal.SIGALRM,lambda sn,sf: sppoo.kill())
-    else:
-      old_shandler = signal.signal(signal.SIGALRM,lambda sn,sf: os.system("kill -9 %d" % sppoo.pid))
-    signal.alarm(ptimeout) #schedule alarm
-    if not pinput is None:
-      sppoo.communicate(input=pinput)
-    sppoo.wait()
-    signal.alarm(0) #disable pending alarms
-    signal.signal(signal.SIGALRM, old_shandler)
-    logging.debug("popenTimeout2: subprocess %d finished, returncode: %d" % (sppoo.pid,sppoo.returncode))
-    if sppoo.returncode < 0:
-      logging.error("popenTimeout2: subprocess took too long (>%ds) and pid %d was killed" % (ptimeout,sppoo.pid))
-    return (sppoo.returncode in returncode_ok)
-  except Exception, e:
-    logging.error("popenTimeout2: "+str(e))
-    try:
-      signal.signal(signal.SIGALRM, old_shandler)
-    except:
-      pass
-    return False
-
-def decodeR3Message(multipart_msg):
-    try:
-        return (multipart_msg[0], json.loads(multipart_msg[1]))
-    except Exception, e:
-        logging.debug("decodeR3Message:"+str(e))
-        return ("",{})
-
-
-def touchURL(url):
-  try:
-    f = urllib.urlopen(url)
-    rq_response = f.read()
-    logging.debug("touchURL: url: "+url)
-    #logging.debug("touchURL: Response "+rq_response)
-    f.close()
-    return rq_response
-  except Exception, e:
-    logging.error("touchURL: "+str(e))
-
-
-def exitHandler(signum, frame):
-  logging.info("stopping")
-  try:
-    zmqsub.close()
-    zmqctx.destroy()
-  except:
-    pass
-  sys.exit(0)
-
-#signals proapbly don't work because of readline
-#signal.signal(signal.SIGTERM, exitHandler)
-signal.signal(signal.SIGINT, exitHandler)
-signal.signal(signal.SIGQUIT, exitHandler)
-
-logging.info("Door Status Listener 'PlaySound' started")
-
-if len(sys.argv) > 1:
-  uwscfg = UWSConfig(sys.argv[1])
-else:
-  uwscfg = UWSConfig()
-
-while True:
-  try:
-    #Start zmq connection to publish / forward sensor data
-    zmqctx = zmq.Context()
-    zmqctx.linger = 0
-    zmqsub = zmqctx.socket(zmq.SUB)
-    zmqsub.setsockopt(zmq.SUBSCRIBE, "DoorCommandEvent")
-    zmqsub.setsockopt(zmq.SUBSCRIBE, "PresenceUpdate")
-    zmqsub.setsockopt(zmq.SUBSCRIBE, "BoreDoomButtonPressEvent")
-#    zmqsub.setsockopt(zmq.SUBSCRIBE, "MovementSensorUpdate")
-    zmqsub.setsockopt(zmq.SUBSCRIBE, "DoorAjarUpdate")
-    zmqsub.setsockopt(zmq.SUBSCRIBE, "DoorProblemEvent")
-    zmqsub.connect(uwscfg.broker_uri)
-
-    last_status=None
-    last_user=None
-    unixts_panic_button=None
-    unixts_last_movement=0
-    unixts_last_presence=0
-    while True:
-      data = zmqsub.recv_multipart()
-      (structname, dictdata) = decodeR3Message(data)
-      logging.debug("Got data: " + structname + ":"+ str(dictdata))
-
-      #uwscfg.checkConfigUpdates()
-
-      if structname == "PresenceUpdate" and "Present" in dictdata:
-        if dictdata["Present"] and last_status != dictdata["Present"]:
-          #someone just arrived
-          if isTheSunDown():
-            touchURL("http://slug.realraum.at/cgi-bin/switch.cgi?id=mashadecke&power=on")
-            touchURL("http://localhost/cgi-bin/mswitch.cgi?ceiling3=1&ceiling4=1")
-            touchURL("http://slug.realraum.at/cgi-bin/switch.cgi?id=couchred&power=on")
-            touchURL("http://slug.realraum.at/cgi-bin/switch.cgi?id=bluebar&power=on")
-        last_status=dictdata["Present"]
-        if not last_status:
-          #everybody left
-          touchURL("http://localhost/cgi-bin/mswitch.cgi?ceiling1=0&ceiling2=0&ceiling3=0&ceiling4=0&ceiling5=0&ceiling6=0")
-          touchURL("http://slug.realraum.at/cgi-bin/switch.cgi?id=all&power=off")
-        continue
-
-  except Exception, ex:
-    logging.error("main: "+str(ex))
-    traceback.print_exc(file=sys.stdout)
-    try:
-      zmqsub.close()
-      zmqctx.destroy()
-    except:
-      pass
-    time.sleep(5)
diff --git a/raspberrypi_gpio_relay_licht/style.css b/raspberrypi_gpio_relay_licht/style.css
deleted file mode 100755 (executable)
index 2560904..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-body 
-{
-       background-image:url("./realraumsimpel.png");
-        background-repeat:no-repeat;
-}
-
-#pc1
-{
-    background-color:#f00;     
-}
-.pc1
-{
-    position:absolute;
-    height:122px;
-    width:122px;
-    top:370px;
-    left:697px;
-    background-color:#f00;
-    z-index:20;
-}
-.pc2
-{
-    position:absolute;
-    height:122px;
-    width:122px;
-    top:142px;
-    left:697px;
-    background-color:#f00;
-    z-index:20;
-}
-.pc3
-{
-    position:absolute;
-    height:122px;
-    width:122px;
-    top:370px;
-    left:402px;
-    background-color:#f00;
-    z-index:20;
-}
-.pc4
-{
-    position:absolute;
-    height:122px;
-    width:122px;
-    top:142px;
-    left:402px;
-    background-color:#f00;
-    z-index:20;
-}
-.pc5
-{
-    position:absolute;
-    height:122px;
-    width:122px;
-    top:370px;
-    left:127px;
-    background-color:#f00;
-    z-index:20;
-}
-.pc6
-{
-    position:absolute;
-    height:122px;
-    width:122px;
-    top:142px;
-    left:127px;
-    background-color:#f00;
-    z-index:20;
-}
diff --git a/raspberrypi_gpio_relay_licht/stylez.css b/raspberrypi_gpio_relay_licht/stylez.css
deleted file mode 100755 (executable)
index 96a87fb..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-body 
-{
-       background-image:url("./realraumsimpelz.png");
-        background-repeat:no-repeat;
-}
-
-#pc1
-{
-    background-color:#f00;     
-}
-.pc1
-{
-    position:absolute;
-    height:122px;
-    width:122px;
-    top:370px;
-    left:697px;
-    background-color:#f00;
-    z-index:20;
-}
-.pc2
-{
-    position:absolute;
-    height:122px;
-    width:122px;
-    top:142px;
-    left:697px;
-    background-color:#f00;
-    z-index:20;
-}
-.pc3
-{
-    position:absolute;
-    height:122px;
-    width:122px;
-    top:370px;
-    left:402px;
-    background-color:#f00;
-    z-index:20;
-}
-.pc4
-{
-    position:absolute;
-    height:122px;
-    width:122px;
-    top:142px;
-    left:402px;
-    background-color:#f00;
-    z-index:20;
-}
-.pc5
-{
-    position:absolute;
-    height:122px;
-    width:122px;
-    top:370px;
-    left:127px;
-    background-color:#f00;
-    z-index:20;
-}
-.pc6
-{
-    position:absolute;
-    height:122px;
-    width:122px;
-    top:142px;
-    left:127px;
-    background-color:#f00;
-    z-index:20;
-}
diff --git a/raspberrypi_gpio_relay_licht/switch.html b/raspberrypi_gpio_relay_licht/switch.html
deleted file mode 100644 (file)
index 5bf1fba..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<html>
-<head>
-<meta http-equiv="refresh" content="0; URL=http://licht.realraum.at/cgi-bin/switch.cgi?nofloat=1">
-</head>
-</html>
diff --git a/router_gpio_relay_licht/mswitch.cgi b/router_gpio_relay_licht/mswitch.cgi
deleted file mode 100755 (executable)
index c389c38..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/sh
-
-VALID_ONOFF_IDS="7 18 20"
-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" = "1" ]; then
-    echo -n "true"
-  else
-    echo -n "false"
-  fi
-}
-
-gpio_is_on() {
-  GPIOVALUE=$(cat "${GPIOPATH}${1}/value")
-  [ "$GPIOVALUE" = "1" ]
-}
-
-echo "Content-type: text/html"
-echo ""
-
-echo "{"
-for CHECKID in $VALID_ONOFF_IDS; do
-  VAL=""
-  VAL="$(eval echo \$GPIO_$CHECKID)"
-  if [ $VAL == 1 -o $VAL == 0 ]; then
-    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
-
diff --git a/router_gpio_relay_licht/rc.local b/router_gpio_relay_licht/rc.local
deleted file mode 100644 (file)
index 4978362..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-# Put your custom commands here that should be executed once
-# the system init finished. By default this file does nothing.
-
-rmmod gpio_button_hotplug
-echo 7 > /sys/class/gpio/export
-echo 18 > /sys/class/gpio/export
-echo 20 > /sys/class/gpio/export
-echo 29 > /sys/class/gpio/export
-echo out > /sys/class/gpio/gpio7/direction
-echo out > /sys/class/gpio/gpio18/direction
-echo out > /sys/class/gpio/gpio20/direction
-echo out > /sys/class/gpio/gpio29/direction
-
-exit 0
diff --git a/router_gpio_relay_licht/switch.cgi b/router_gpio_relay_licht/switch.cgi
deleted file mode 100755 (executable)
index 01dce98..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-#!/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="7 18 20 29"
-VALID_ONOFF_IDS="7 18 20"
-VALID_SEND_IDS=""
-
-print_gpio_state() {
-  GPIOVALUE=$(cat "${GPIOPATH}${1}/value")
-  if [ "$GPIOVALUE" = "1" ]; then
-    echo "ON"
-  else
-    echo "Off"
-  fi
-}
-
-gpio_is_on() {
-  GPIOVALUE=$(cat "${GPIOPATH}${1}/value")
-  [ "$GPIOVALUE" = "1" ]
-}
-
-if [ "$POWER" == "1" -o "$POWER" == "0" ]; then
-  for CHECKID in $VALID_ONOFF_IDS ; do
-    if [ "$CHECKID" == "$ID" ]; then
-      echo "$POWER" > "${GPIOPATH}${ID}/value"
-      echo "Content-type: text/html"
-      echo ""
-      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
-    fi
-  done
-fi
-
-DESC_7="Decke Links Vorne"
-DESC_20="Decke Rechts Vorne"
-DESC_18="Decke Rechts Mitte"
-#DESC_29="GPIO Nicht Belegt"
-
-echo "Content-type: text/html"
-echo ""
-echo "<html>"
-echo "<head>"
-echo "<title>Realraum Relay Power</title>"
-echo '<script type="text/javascript">'
-
-echo 'function callbackUpdateButtons(req) {
-  if (req.status != 200) {
-    return;
-  }
-  var data = JSON.parse(req.responseText);
-  for (var keyid in data) {
-    on_btn = document.getElementById("onbtn_"+keyid);
-    off_btn = document.getElementById("offbtn_"+keyid);
-    if (on_btn && off_btn)
-    {
-      on_btn.className = "onbutton";
-      off_btn.className = "offbutton";
-      if (data[keyid])
-      { on_btn.className += " enableborder"; }
-      else
-      { off_btn.className += " enableborder"; }
-    }
-  }
-}'
-
-echo 'function updateButtons(uri) {
-  var req = new XMLHttpRequest;
-  req.overrideMimeType("application/json");
-  req.open("GET", uri, true);
-  req.onload  = function() {callbackUpdateButtons(req)};
-  req.setRequestHeader("googlechromefix","");
-  req.send(null);
-}'
-
-echo 'function sendMultiButton( str ) {
- url = "/cgi-bin/mswitch.cgi?"+str;
-  updateButtons(url);
-}'
-
-echo 'setInterval("updateButtons(\"/cgi-bin/mswitch.cgi\");", 30*1000);'
-
-echo 'function sendButton( onoff, btn )'
-echo '{'
-echo ' var req = new XMLHttpRequest();'
-echo ' url = "/cgi-bin/switch.cgi?power="+onoff+"&id="+btn;'
-echo ' req.open("GET", url ,false);'
-echo ' //google chrome workaround'
-echo ' req.setRequestHeader("googlechromefix","");'
-echo ' req.send(null);'
-echo '}'
-echo '</script>'
-echo '<style>'
-echo 'div.switchbox {'
-echo '    float:left;'
-echo '    margin:2px;'
-#echo '    max-width:236px;'
-echo '    max-width:300px;'
-echo '    font-size:10pt;'
-echo '    border:1px solid black;'
-#echo '    height: 32px;'
-echo '    padding:0;'
-echo '}'
-
-echo 'div.switchnameleft {'
-echo '    width:12em; display:inline-block; vertical-align:middle; margin-left:3px;'
-echo '}'
-
-echo 'span.alignbuttonsright {'
-echo '    top:0px; float:right; display:inline-block; text-align:right; padding:0;'
-echo '}'
-
-echo 'div.switchnameright {'
-echo '    width:12em; display:inline-block; vertical-align:middle; float:right; display:inline-block; margin-left:1ex; margin-right:3px; margin-top:3px; margin-bottom:3px;'
-echo '}'
-
-echo 'span.alignbuttonsleft {'
-echo '    float:left; text-align:left; padding:0;'
-echo '}'
-
-echo '.onbutton {'
-echo '    font-size:11pt;'
-echo '    width: 40px;'
-echo '    height: 32px;'
-echo '    background-color: lime;'
-echo '    margin: 0px;'
-echo '}'
-
-echo '.offbutton {'
-echo '    font-size:11pt;'
-echo '    width: 40px;'
-echo '    height: 32px;'
-echo '    background-color: red;'
-echo '    margin: 0px;'
-echo '}'
-
-echo '.sendbutton {'
-echo '    font-size:11pt;'
-echo '    width: 40px;'
-echo '    height: 32px;'
-#echo '    background-color: grey;'
-echo '    margin: 0px;'
-echo '}'
-
-echo '.enableborder {
-    font-weight: bold;
-    font-variant: small-caps;
-    border-style: inset;'
-echo '}'
-echo '</style>'
-echo "</head>"
-echo "<body>"
-#echo "<h1>Realraum rf433ctl</h1>"
-#echo "<div style=\"float:left; border:1px solid black;\">"
-echo "<div style=\"float:left;\">"
-echo "<div style=\"float:left; border:1px solid black; margin-right:2ex; margin-bottom:2ex;\">"
-for DISPID in $VALID_ONOFF_IDS; do
-  NAME="$(eval echo -n \$DESC_$DISPID)"
-  [ -z "$NAME" ] && NAME=$DISPID
-
-  echo "<div class=\"switchbox\">"
-  echo "<span class=\"alignbuttonsleft\">"
-  if gpio_is_on $DISPID; then
-  echo " <button id=\"onbtn_$DISPID\" class=\"onbutton enableborder\" onClick='sendMultiButton(\"$DISPID=1\");'>On</button>"
-  echo " <button id=\"offbtn_$DISPID\" class=\"offbutton\" onClick='sendMultiButton(\"$DISPID=0\");'>Off</button>"
-  else
-  echo " <button id=\"onbtn_$DISPID\" class=\"onbutton\" onClick='sendMultiButton(\"$DISPID=1\");'>On</button>"
-  echo " <button id=\"offbtn_$DISPID\" class=\"offbutton enableborder\" onClick='sendMultiButton(\"$DISPID=0\");'>Off</button>"
-  fi
-  echo "</span>"
-  echo -n "<div class=\"switchnameright\">$NAME</div>"
-#  echo -n "<div class=\"switchnameright\">$NAME ("
-#  print_gpio_state $DISPID
-#  echo ")</div>"
-  echo "</div>"
-
-  if [ "$NOFLOAT" == "1" ]; then
-    echo "<br/>"
-  fi
-done
-
-echo "<div class=\"switchbox\">"
-echo "<span class=\"alignbuttonsleft\">"
-echo -n " <button class=\"onbutton\" onClick='sendMultiButton(\""
-for DISPID in $VALID_ONOFF_IDS; do echo -n "$DISPID=1&"; done
-echo "\");'>On</button>"
-echo -n " <button class=\"offbutton\" onClick='sendMultiButton(\""
-for DISPID in $VALID_ONOFF_IDS; do echo -n "$DISPID=0&"; done
-echo "\");'>Off</button>"
-echo "</span>"
-echo -n "<div class=\"switchnameright\">Alle</div>"
-echo "</div>"
-if [ "$NOFLOAT" == "1" ]; then
-  echo "<br/>"
-fi
-echo "</div>"
-
-if [ "$MOBILE" != "1" -a -n "$VALID_SEND_IDS" ]; then
-
-echo "<div style=\"float:left; border:1px solid black; margin-right:2ex; margin-bottom:2ex;\">"
-
-ITEMCOUNT=0
-
-for DISPID in $VALID_SEND_IDS; do
-  ITEMCOUNT=$((ITEMCOUNT+1))
-  NAME="$(eval echo \$DESC_$DISPID)"
-  [ -z "$NAME" ] && NAME=$DISPID
-
-  echo "<div class=\"switchbox\">"
-  echo "<span class=\"alignbuttonsleft\">"
-  echo " <button class=\"sendbutton\" onClick='sendButton(\"on\",\"$DISPID\");'> </button>"
-  echo "</span>"
-  echo "<div class=\"switchnameright\">$NAME</div>"
-  echo "</div>"
-  if [ "$NOFLOAT" == "1" -a $((ITEMCOUNT % 2 )) -ne 1 ]; then
-    echo "<br/>"
-  fi
-
-done
-echo "</div>"
-fi
-echo "</div>"
-echo "</body>"
-echo "</html>"