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()
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)
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
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)
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__())
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
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)
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)
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()
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()
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)
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)