def __init__(self):
        
        # Load configuration values & initialize class variables
        self.disableLogging = config.general['disableLogging']
        self.mediaRendererModelName = config.general['mediaRendererModelName'] 
        self.lastRFIDCard = ''
        self.initializeWifi = False
        
        # Set up logging       
        self.logger = logging.getLogger('DigitaleKassette')
        self.logger.setLevel(logging.DEBUG)
        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)
        formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
        ch.setFormatter(formatter)
        self.logger.addHandler(ch)
        self.logger.disabled = self.disableLogging
        
        os.system('gmediarender start &')
        time.sleep(5)
        
        # Initialize UPnP connection and discover devices
        self.uPNPController = UPNPController()
        self.uPNPController.discoverDevices()
        self.uPNPController.getDeviceInformation()
        self.uPNPController.getDeviceByModelName('MediaRenderer', self.mediaRendererModelName)
        self.uPNPController.getDevicesByDeviceType('urn:schemas-upnp-org:device:MediaServer:1', 'MediaServer')
        
        # Initialize ActionDB
        self.actionData = ActionData()

        # Initialize RFID-Reader
        self.reader = RFIDReader(True)
        
        # Initialize JukeBox
        self.jb = JukeBox(self.uPNPController, self.actionData)
        
        # Initalize Wifi
        self.wifi = Wifi() 
        if not self.wifi.isConnected():
            self.initializeWifi = True
            self.wifi.startAccessPoint()
        
        # Initialize WebApp
        self.webApp = WebApp(self.uPNPController, self.actionData, self, self.wifi, self.initializeWifi)          
class DigitaleKassette(threading.Thread):

    def __init__(self):
        
        # Load configuration values & initialize class variables
        self.disableLogging = config.general['disableLogging']
        self.mediaRendererModelName = config.general['mediaRendererModelName'] 
        self.lastRFIDCard = ''
        self.initializeWifi = False
        
        # Set up logging       
        self.logger = logging.getLogger('DigitaleKassette')
        self.logger.setLevel(logging.DEBUG)
        ch = logging.StreamHandler()
        ch.setLevel(logging.DEBUG)
        formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
        ch.setFormatter(formatter)
        self.logger.addHandler(ch)
        self.logger.disabled = self.disableLogging
        
        os.system('gmediarender start &')
        time.sleep(5)
        
        # Initialize UPnP connection and discover devices
        self.uPNPController = UPNPController()
        self.uPNPController.discoverDevices()
        self.uPNPController.getDeviceInformation()
        self.uPNPController.getDeviceByModelName('MediaRenderer', self.mediaRendererModelName)
        self.uPNPController.getDevicesByDeviceType('urn:schemas-upnp-org:device:MediaServer:1', 'MediaServer')
        
        # Initialize ActionDB
        self.actionData = ActionData()

        # Initialize RFID-Reader
        self.reader = RFIDReader(True)
        
        # Initialize JukeBox
        self.jb = JukeBox(self.uPNPController, self.actionData)
        
        # Initalize Wifi
        self.wifi = Wifi() 
        if not self.wifi.isConnected():
            self.initializeWifi = True
            self.wifi.startAccessPoint()
        
        # Initialize WebApp
        self.webApp = WebApp(self.uPNPController, self.actionData, self, self.wifi, self.initializeWifi)          

    def onNewConnection(self):
        os.system('gmediarender start &')
        time.sleep(5)
        self.uPNPController.discoverDevices()
        self.uPNPController.getDeviceInformation()
        self.uPNPController.getDeviceByModelName('MediaRenderer', self.mediaRendererModelName)
        self.uPNPController.getDevicesByDeviceType('urn:schemas-upnp-org:device:MediaServer:1', 'MediaServer')
       
        #os.system('sudo fuser -k 80/tcp')
        #self.webApp = WebApp(self.uPNPController, self.actionData, self, self.wifi, False)
        
        #Ready: make some noise
        os.system('mpg321 audio/beep.mp3 &')
        
    def lockRFID(self):
        if(self.jb.rfidIsLocked == False):
            
            self.jb.rfidIsLocked = True
            
            time.sleep(self.jb.rfidLockIntervall)
            self.jb.rfidIsLocked = False
            
            #hide last card from Jukebox
            self.reader.lastID = '' 
            
            return True
        else:
            self.logger.error('RFIDReader is already locked...')  
            return False