コード例 #1
0
ファイル: cmd_samsung.py プロジェクト: chrihuc/steuerzentrale
 def set_device(self,device, commd):
     if commd in ["man", "auto"]:
         set_val_in_szenen(device=device, szene="Auto_Mode", value=commd)        
     if self.tv_remote_lan.sendKey([str(commd)]) or self.tv_remote.sendKey([str(commd)]):
         set_val_in_szenen(device=device, szene="Value", value=commd)
         return True
     else:
         return False
コード例 #2
0
 def set_device(self, device, commd): 
     if commd in ["man", "auto"]:
         set_val_in_szenen(device=device, szene="Auto_Mode", value=commd)
         return True      
     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     satellit=mdb_read_table_entry(table.name,device)
     command = {}
     if satellit.get('command_set') == 'server':
         command['Szene'] = commd
     else:
         command = mdb_read_table_entry(satellit.get('command_set'),commd)
     command["Device"]=device
     data = ""
     print command
     if str(satellit.get('PORT')) <> 'None':
         try:
             satelliten.mysocket_old.sendto(str(command),(satellit.get('IP'),satellit.get('PORT')))
             return True
         except:
             pass
     if str(satellit.get('BiPORT')) <> 'None':
         for i in range(0,3):
             try:
                 satelliten.mysocket.settimeout(10)
                 s.connect((satellit.get('IP'),satellit.get('BiPORT')))
                 s.send(str(command))
                 data=s.recv(1024)
                 s.close()
             except:
                 s.close()
             if data  == "True":
                 break
     if data  == "True":
         return True
     else:
         return False
コード例 #3
0
ファイル: cmd_xs1.py プロジェクト: chrihuc/steuerzentrale
 def set_device(self, device, commd):
     try:
         if commd in ["man", "auto"]:
             set_val_in_szenen(device=device, szene="Auto_Mode", value=commd)
         if commd == str(-1) or commd == "toggle":
             if self.GetSwitch(str(device)) > "0.0":
                 self.SetSwitch(str(device), "0.0")
                 set_val_in_szenen(device=device, szene="Value", value=0)
             else:
                 self.SetSwitch(str(device), "100.0")
                 set_val_in_szenen(device=device, szene="Value", value=100)
         else:
             self.SetSwitch(str(device), str(commd))
             set_val_in_szenen(device=device, szene="Value", value=commd)
         return True
     except:
         return False
コード例 #4
0
ファイル: cmd_hue.py プロジェクト: chrihuc/steuerzentrale
 def set_device(self, device, commd):
     h_dev = Light(hbridge, device)
     keys = ['bri', 'hue', 'sat', 'transitiontime']
     szene = mdb_read_table_entry(table.name,commd)
     success = False
     if szene.get('bri')<=0:
         szene['bri'] = 0
         szene['on'] = False
     if commd in ["man", "auto"]:
         set_val_in_szenen(device=device, szene="Auto_Mode", value=commd)
         return True
     elif commd == 'Save': 
         hue = hbridge.get_light(device, 'hue')
         bri = hbridge.get_light(device, 'bri')
         sat = hbridge.get_light(device, 'sat')
         an = hbridge.get_light(device, 'on') 
         #{'hue': '7', 'bri': '2', 'sat': 'True', 'on': 'False'}
         setting = {'hue': hue, 'bri': bri, 'sat': sat, 'an': an}
         mdb_set_table(table.name,device, setting)
         return True
     elif commd == 'Umschalten':
         an = hbridge.get_light(device, 'on') 
         if an:
             szene['on'] = False
         else:
             szene['on'] = True
     elif commd == 'sz_toggle':
         an = hbridge.get_light(device, 'on') 
         if an:
             commd="SZ_Aus"
         else:
             szene['on'] = True
     bright = szene.get('bri')
     if bright <> None and bright>0:
         szene['bri'] = int(bright)
     if bright <> None and bright<=0:
         pass            
     if str(szene.get('on')) == "1" or str(szene.get('on')) == "True":
         success = h_dev.on
         retry = 1
         while not success and retry < max_retry:
             try:
                 hbridge.set_light(device, {'on':True}) 
                 success = h_dev.on
             except:
                 time.sleep(1)
                 success = False
                 retry += 1
         if not success:
             return success            
         time.sleep(0.5)
     command = {}
     for key in keys:
         if ((szene.get(key) <> "") and (str(szene.get(key)) <> "None")):
             command[key] = int(szene.get(key))
     if command <> {} and h_dev.on:
         success = False
         retry = 1
         while not success and retry < max_retry:
             try:
                 hbridge.set_light(device, command)
                 success = True
             except:
                 time.sleep(1)
                 success = False 
                 retry += 1
     if str(szene.get('on')) == "0" or str(szene.get('on')) == "False":
         success = not h_dev.on
         retry = 1
         if 'transitiontime' in command:
             if command['transitiontime'] > 0:
                 time.sleep(command['transitiontime']/10)
         while not success and retry < max_retry:
             try:
                 hbridge.set_light(device, {'on':False})  
                 success = not h_dev.on
             except:
                 time.sleep(1)
                 success = False 
                 retry += 1
     set_val_in_szenen(device=device, szene="Value", value=szene.get('on'))
     if not h_dev.reachable:
         success = False
         aes.new_event(description=str(device) + " not reachable", prio=1)
     return success
コード例 #5
0
ファイル: cmd_sonos.py プロジェクト: chrihuc/steuerzentrale
 def set_device(self, player, command, text):
     if command in ["man", "auto"]:
         set_val_in_szenen(device=player, szene="Auto_Mode", value=command) 
     player, p_uid, playerName = self.get_addr(player)            
     if player in self.Devices:
         player = self.Devices.get(str(player))
     playerName = self.Names.get(player)
     if str(command) == "Pause":
         self.SetPause(player)
     elif str(command) == "Play":
         self.SetPlay(player)                
     elif str(command) == "Save":
         self.sonos_write_szene(player)                   
     elif str(command) == "Announce_Time":
         self.sonos_write_szene(player)
         lt = localtime()
         stunde = int(strftime("%H", lt))
         minute = int(strftime("%M", lt)) 
         if (minute <> 0) and (minute <> 30):
             text = "Es ist " + str(stunde) + " Uhr und " + str(minute) + " Minuten."
             laenge = downloadAudioFile(text)
             self.sonos_read_szene(player, mdb_read_table_entry(table.name,"TextToSonos"))
             time.sleep(laenge + 1)            
             self.sonos_read_szene(player, mdb_read_table_entry(table.name,playerName))
     elif str(command) == "Durchsage":
         self.durchsage(text)      
     elif str(command) == "Ansage":
         self.ansage(text,player)             
     elif str(command) == "Return":
         self.sonos_read_szene(player, mdb_read_table_entry(table.name,playerName), hergestellt = False)          
     elif ((str(command) == "resume") ):
         time.sleep(60)
         self.sonos_read_szene(player, mdb_read_table_entry(table.name,playerName))            
     elif (str(command) == "lauter"):
         ActVol = self.GetVolume(player)
         increment = 8
         VOLUME = ActVol + increment 
         self.SetVolume(player, VOLUME)
         return
     elif (str(command) == "leiser"):
         ActVol = self.GetVolume(player)
         increment = 8
         VOLUME = ActVol - increment 
         self.SetVolume(player, VOLUME)
         return
     elif (str(command) == "inc_lauter"):
         ActVol = self.GetVolume(player)
         if ActVol >= 20: increment = 8
         if ActVol < 20: increment = 4
         if ActVol < 8: increment = 2
         VOLUME = ActVol + increment 
         self.SetVolume(player, VOLUME)
     elif (str(command) == "inc_leiser"):
         ActVol = self.GetVolume(player)
         if ActVol >= 20: increment = 8
         if ActVol < 20: increment = 4
         if ActVol < 8: increment = 2
         VOLUME = ActVol - increment 
         self.SetVolume(player, VOLUME)                
     elif (str(command) == "WeckerAnsage"):
         self.SetPause(player)
         self.SetVolume(player, 20)
         setting_s("Durchsage", str(crn.next_wecker_heute_morgen()))
         text = setting_r("Durchsage")        
         laenge = downloadAudioFile(text)
         self.sonos_read_szene(player, mdb_read_table_entry(table.name,"TextToSonos"))
         time.sleep(laenge + 1)  
         self.SetPause(player) 
     elif (str(command) == "EingangWohnzi"):
         self.StreamInput(player, self.WohnZiZone)             
     elif ((str(command) <> "resume") and (str(command) <> "An") and (str(command) <> "None")):
         sonos_szene = mdb_read_table_entry(table.name,command)
         self.sonos_read_szene(player, sonos_szene)                                 
     return True