def do(self, params): speaker = SoCo(socket.gethostbyname(params['host'])) print(speaker.groups) if 'volume' in params: speaker.volume = params['volume'] if 'clear_queue' in params: speaker.clear_queue() if 'add_playlist_id_to_queue' in params: playlist = speaker.get_sonos_playlists()[ params['add_playlist_id_to_queue']] speaker.add_uri_to_queue(playlist.resources[0].uri) if 'switch_to_tv' in params: speaker.switch_to_tv() if 'next' in params: speaker.next() elif 'previous' in params: speaker.previous() if 'play' in params: speaker.play() elif 'pause' in params: speaker.pause() if 'set_sleep_timer' in params: speaker.set_sleep_timer(params['set_sleep_timer'] * 60)
def play_spot(junk, location): time.sleep(5) play_room = (str(pod_dict['Rooms']['Living'])) sonos = SoCo(play_room) uri = location['location'] sonos.clear_queue() sonos.add_uri_to_queue(uri=uri) sonos.play_from_queue(index=0) sonos.play_mode = "SHUFFLE_NOREPEAT"
def playTheme(themes, sonosPlayer): sonos = SoCo(sonosPlayer) #syslog.syslog('%s' % str(sonos.get_current_track_info())) #return ''; if playerPlays(sonos): syslog.syslog('Already playing') return ''; sonos.unjoin() sonos.clear_queue() sonos.add_uri_to_queue(themes['closer']) sonos.play_mode = 'REPEAT_ALL' syslog.syslog('%s' % sonos.play_mode) sonos.volume = 5; if playerPlays(sonos): return ''; sonos.play() syslog.syslog('Playing Closer')
class SonoController(): def __init__(self, ip): self.core = SoCo(ip) def play_uri(self, url): self.core.play_uri(url) def play_by_userName(self, name): url = URL_BASE.get(name, "Unknown") if (url == "Unknown"): track = self.core.get_current_track_info() current_play = track['title'] # print track['title'] target_play = MUSIC_BASE.get(url, "Unknow") # print target_play if (current_play == target_play): print "unknown person" else: self.core.clear_queue() self.core.add_uri_to_queue(ALARM_URL) self.core.add_uri_to_queue(END_URL) self.core.play_from_queue(0, True) else: track = self.core.get_current_track_info() current_play = track['title'] # print track['title'] target_play = MUSIC_BASE.get(url, "Unknow") # print target_play if (current_play == target_play): print "the same person" else: self.core.clear_queue() self.core.add_uri_to_queue(url) self.core.add_uri_to_queue(END_URL) self.core.play_from_queue(0, True) def pause(self): self.core.pause() def mute(self): self.core.mute = True def unMute(self): self.core.mute = False def setVolume(self, val): self.core.volume = val def alarm(self): self.play_uri(ALARM_URL) time.sleep(8.0) self.pause()