Example #1
0
    def sched(self):

        d = Config.getSection("Scheduler")

	if not d == []:
            #print d
            while True:

                sleeptime = None
                for elem in d:
                    rhythm = eval(elem[1].split("|")[1])
                    # when has the thread to wake up next time for specific value?
                    tmp = rhythm - round(time.time()) % rhythm
                    if not sleeptime:
                        sleeptime = tmp
                    if sleeptime > tmp:
                        sleeptime = tmp

                time.sleep(sleeptime)

                execute = []
                for elem in d:
                    rhythm = eval(elem[1].split("|")[1])
                    if rhythm - round(time.time()) % rhythm == rhythm:
                        execute.append(elem)

                for elem in execute:
                    addr = Address(elem[1].split("|")[0])
                    print addr.__str__()
                    print EventEngine.root.getByAddress(addr.__str__()).use()
Example #2
0
    def run(self):
        while True:
            

            #get value from poti
            val = self.mega.getAdcPortPin(1, 1)
            val = (val-30)/738.*100


            #print str(int(val)),
            #print self.mega.getPortPin(0, 0),
            #print self.mega.getPortPin(0, 1),
            #print self.mega.getPortPin(0, 2)


            if self.mega.getPortPin(0,0) == 0:
	        print "Button 1"
		self.ledOn()
                address = Address("/Audio/LastFM/State")
                if self.root().getByAddress(address.__str__()).use() == playing:
                    address = Address("/Audio/LastFM/Stop")
                else:
                    address = Address("/Audio/LastFM/Playlist")
                EventEngine.root.getByAddress(address.__str__()).use()
                time.sleep(.5)
		self.ledOff()

            if self.mega.getPortPin(0,1) == 0:
	        print "Button 2"
                self.ledOn()
		address = Address("/Audio/LastFM/Love")
                EventEngine.root.getByAddress(address.__str__()).use()
                time.sleep(.5)
		self.ledOff()
                
            if self.mega.getPortPin(0,2) == 0:
	        print "Button 3"
                self.ledOn()
		address = Address("/Audio/LastFM/Stop")
                EventEngine.root.getByAddress(address.__str__()).use()
                time.sleep(.5)
		self.ledOff()

            if self.mega.getPortPin(0,3) == 0:
	        print "Button 4"
                self.ledOn()
		address = Address("/Audio/LastFM/Skip")
                EventEngine.root.getByAddress(address.__str__()).use()
                time.sleep(.5)
		self.ledOff()
            #if not str(int(self.lastval)).__eq__(str(int(val))):
            #    print "Default Volume"+str(val)+", "+str(int(self.lastval))+", "+str(int(val))
            #    address = Address("/Defaults/SetVol")
            #    print EventEngine.root.getByAddress(address.__str__())
            #    EventEngine.root.getByAddress(address.__str__()).use(val)
            #    self.lastval = val


            time.sleep(.3)
Example #3
0
    def batch(self, text=""):
        print "executing profile"
        for address in self.information:
            addr = Address(address)
            print addr.__str__()
            self.root().getByAddress(addr.__str__()).use()

        print "profile acrivated"
        return "should have been generated automatically" + self.token
Example #4
0
    def general(self, string=None):
        address = Address(self.information)

        if not self.getParent().arg:
	    print '\n *** sensors - NO-USE- trying to use: ', address , " with: " , self.getParent().arg 
            return EventEngine.root.getByAddress(address.__str__()).use()
        print '\n *** sensors - USE -  trying to use: ', address  , 'with : ' , self.getParent().arg 
        string = self.getText(string)
    	return EventEngine.root.getByAddress(address.__str__()).use(self.getParent().arg)
Example #5
0
    def general(self, string=None):
        address = Address(self.information)

        
        if not string:
          #  return EventEngine.root.getByAddress(
            return EventEngine.root.getByAddress(address.__str__()).use()
        
        string = self.getText(string)
    	return EventEngine.root.getByAddress(address.__str__()).use(string)
    def simpleHandler(self, d):

        address = Address("/Defaults/Notification")

        """a very simple handler for incoming calls, prints to stdout"""
        if d[1] == 'RING':
            print 'Incoming call from: %s to: %s' % (d[3], d[4])
            EventEngine.root.getByAddress(address.__str__()).use('Incoming call from: %s to: %s' % (d[3], d[4]))
        elif d[1] == 'CALL':
            print 'Outgoing call from: %s to: %s via: %s' % (d[4], d[5], d[6])
            EventEngine.root.getByAddress(address.__str__()).use('Outgoing call from: %s to: %s via: %s' % (d[4], d[5], d[6]))
        elif d[1] == 'DISCONNECT':
            print 'Call ended!'
            #EventEngine.root.getByAddress(address.__str__()).use('Call ended!')

        self.log.append("<br/>\n"+d.__str__())
Example #7
0
 def setScenario(self, var):
     print "\n **** Scenario set to: " , var
     global scenario
     
     if scenario == 'default':
         newaddr = Address('/Scenarios/'+var+'/toggleState')
         EventEngine.root.getByAddress(newaddr.__str__()).use()
     elif var == 'default':
         oldaddr = Address('/Scenarios/'+scenario+'/toggleState')
         EventEngine.root.getByAddress(oldaddr.__str__()).use()        
     else:
          newaddr = Address('/Scenarios/'+var+'/toggleState')
          EventEngine.root.getByAddress(newaddr.__str__()).use()
          oldaddr = Address('/Scenarios/'+scenario+'/toggleState')
          EventEngine.root.getByAddress(oldaddr.__str__()).use()
    
     scenario = var
Example #8
0
 def override(self,var):
     #self.getParent().addContainer("cmd",var,var,None)
     print "\n ****", self , var 
     global backend
     backend = var
     
     for addr in self.getParent().getAddressList():
         a = Address("/"+addr)
         info = EventEngine.root.getByAddress(a.__str__()).information
         if "Boxee" in info: 
             repl = "Boxee"
         elif "Madplay" in info:
             repl = "Madplay"
         elif "LastFM" in info:
             repl = "LastFM"
         else:
             pass    
         EventEngine.root.getByAddress(a.__str__()).information = info.replace(repl,var)
Example #9
0
 def triggerMotion(self,var):
     global lastMotion
     global active
     lastMotion = time.ctime()
     print "\n *********** ", lastMotion , " Motion Event Received - State: ", active     
     
     if active:
         #print(dir(EventEngine.root))
         addr = Address('/Defaults/notification')
         EventEngine.root.getByAddress(addr.__str__()).use('[openAMI] - Scenario set to : Chillout')
    def run(self):
        while True:
            

            #get value from poti
            val = self.mega.getAdcPortPin(1, 1)
            val = (val-30)/738.*100


            #print str(int(val)),
            #print self.mega.getPortPin(0, 0),
            #print self.mega.getPortPin(0, 1),
            #print self.mega.getPortPin(0, 2)


            if self.mega.getPortPin(0,0) == 0:
                self.mega.setPortPin(2,7,1)
                address = Address("/Defaults/Play")
                EventEngine.root.getByAddress(address.__str__()).use("http://www.mondayjazz.com/mixes/mj099_now_just_listen_by_dj_blueprint.mp3")
                time.sleep(.5)

            if self.mega.getPortPin(0,1) == 0:
                self.mega.setPortPin(2,7,0)
                address = Address("/Defaults/Stop")
                EventEngine.root.getByAddress(address.__str__()).use()
                time.sleep(.5)
                
            if self.mega.getPortPin(0,2) == 0:
                address = Address("/Defaults/Stop")
                EventEngine.root.getByAddress(address.__str__()).use()
                address = Address("/FeedReader/Random")
                EventEngine.root.getByAddress(address.__str__()).use()
                time.sleep(.5)

            #if not str(int(self.lastval)).__eq__(str(int(val))):
            #    print "Default Volume"+str(val)+", "+str(int(self.lastval))+", "+str(int(val))
            #    address = Address("/Defaults/SetVol")
            #    print EventEngine.root.getByAddress(address.__str__())
            #    EventEngine.root.getByAddress(address.__str__()).use(val)
            #    self.lastval = val


            time.sleep(.3)
Example #11
0
    def toggle(self, var):
        global states
        x = int(var)
        if states[x]:
            states[x] = False
            addr = Address(self.getParent().getAddress() + "/Port" + var + "/OFF")
        else:
            states[x] = True
            addr = Address(self.getParent().getAddress() + "/Port" + var + "/ON")

        print "\n *** toggled: ", var, " addr: ", addr
        EventEngine.root.getByAddress(addr.__str__()).use()
Example #12
0
    def playRandom(self, string=""):
        address = Address(self.information)
        data = EventEngine.root.getByAddress(address.__str__()).content.items()
        print data
        elem = None

        if data != []:
            index = random.randint(0, len(data) - 1)
            elem = data[index]

        if elem:
            print elem
            elem[1].use()
Example #13
0
 def use(self, str=None):
     address = Address("/Defaults/audioplay")
     EventEngine.root.getByAddress(address.__str__()).use(self.information)
 def stop(self, string=""):
     string = self.getText(string)
     address = Address(Config.audioStop)
 	EventEngine.root.getByAddress(address.__str__()).use(string)
Example #15
0
    def messageHandler(self, conn, msg):
        print "---message--------------------------------------------------"
        #print unicode(dir(msg))
        #print unicode(msg.getFrom()).split("/")[0]
        #print " "+self.jid

        # extractint content from message

        if msg.getBody():

            sender = unicode(msg.getFrom())
            content = unicode(msg.getBody())
            type = unicode(msg.getType())
            self.chat = ""

            #try:
            #    content = msg.getBody().encode("iso-8859-1")
            #except (UnicodeDecodeError, UnicodeEncodeError):
            #    print "[ENCODING ERROR] ..."
            #    content=u""


            # GROUPCHAT
            try:
                if type.__eq__("groupchat"):
                    print "GROUPCHAT!!!!!!"
                    self.chat = sender.split("/")[0]
                    print u"chat: "+self.chat
            except Exception, e:
                print u"[ERROR] sender: "+sender
                print e

            #content = unicode(content, "iso-8859-1")

            print u"("+type+u") Sender: " + sender + u"\n Content: " + content


            # try to parse ass Address
            addr = Address(content)
            print "parsed address: " + addr.__str__()

            if content.__eq__("show"):
                print " parsing as show command"
                self.send(self.root.returnTree(0), sender)

            elif content.__eq__("xml"):
                print " parsing as xml command"
                self.send(self.root.toXml(), sender)

            elif content.__eq__("list"):
                print " parsing as list command"
                result = ""
                for elem in self.root.getChild(Config.get("jabber", "jid")).getAddressList():
                    result += elem+"\n"
                self.send(result, sender)

            elif content.__eq__("help"):
                print " parsing as help command"
                help = '''
    enter:
    help to print this message
    xml to print xml representation
    show to print message overview
    list to print all available addresses

    search:
    enter search command with * before
    eg "*play"

    Use following XML to sent a Packet:
    <?xml version="1.0" ?>
    <packet from="*****@*****.**" to="/Finder/Say">
      <string name="text">
        Hello master, my name is hal2000
      </string>
    </packet>'''
                self.send(help, sender)




            elif content[0:1].__eq__("*"):
                print " parsing as search command"
                result = []
                answer = ""

                # seperate search string form data string
                searchstring = content.split(" ")[0][1:]
                datastring = ""
                for elem in content.split(" ")[1:]:
                    datastring += " "+elem
                datastring = datastring[1:]

                print "'"+searchstring+"' - '"+datastring+"'"

                # search in address index for searchstring and build a list with resulting addresses
                for elem in self.root.getAddressList():
                    if not elem.lower().find(searchstring.lower()) == -1:
                        result.append(elem)

                print result, result.__len__()

                # if there is only one address resulting, execute it
                if result.__len__() == 1:
                    answer = " executing: "+result[0][5:]
                    #try:
                    if True:
                        if datastring.__len__() == 0:
                            tmp = str(self.root.getByAddress(result[0][5:]).use())
                        else:
                            tmp = str(self.root.getByAddress(result[0][5:]).use(datastring))

                        if not tmp == None:
                            answer+="\n"+str(tmp)

                        self.send(answer, sender)
                    #except Exception, e:
                    #    print "[SEARCH PARSE ERROR] "+str(e)

                # otherwise return result to sender
                else:
                    for elem in result:
                        answer += elem[5:]+"\n"
                    self.send(answer, sender)



            elif addr.isAddress():
                print " parsing as address command: "+addr.__str__()
                print " with data: >"+addr.data+"<"
                try:
                    if addr.data.__len__() == 0:
                        #print "call address WITHOUT parameter"
                        result = self.root.getByAddress(addr.__str__()).use()
                    else:
                        #print "call address WITH parameter"
                        result = self.root.getByAddress(addr.__str__()).use(addr.data)
                    if not result == None:
                        self.send(result, sender)
                        
                    print " "+str(result)
                except Exception, e:
                    self.send("[ADDRESS XMPP ERROR] "+content+" is not a valid address.", sender)
                    print "[ADDRESS XMPP ERROR] "+str(e)
 def general(self, string=""):
     string = self.getText(string)
     address = Address(self.information)
 	EventEngine.root.getByAddress(address.__str__()).use(string)
 def play(self, string="http://www.munich-radio.de:8000"):
     string = self.getText(string)
     address = Address(Config.audioPlay)
 	EventEngine.root.getByAddress(address.__str__()).use(string)
 def setVol(self, string=""):
     string = self.getText(string)
     address = Address(Config.setVol)
 	EventEngine.root.getByAddress(address.__str__()).use(string)
 def notify(self, string=""):
     string = self.getText(string)
     address = Address(Config.Notification)
 	EventEngine.root.getByAddress(address.__str__()).use(string)