/// <summary> /// Initialisierung des ganzen /// </summary> /// <returns></returns> public string Get() { try { SonosHelper.Initialisierung(); return("Ready"); } catch (Exception x) { SonosHelper.ServerErrorsAdd("DeviceGetError", x); return(x.Message); } }
/// <summary> /// Gibt eine Liste mit allen Zonen aus /// </summary> /// <param name="id"></param> /// <returns></returns> public IList <SonosZone> GetCoordinator(int id) { if (SonosHelper.Sonos == null || SonosHelper.Sonos.Players.Count == 0) { SonosHelper.Initialisierung(); } SonosHelper.RemoveCoordinatorFromZonePlayerList(); if (SonosHelper.Sonos == null) { return(null); } return(SonosHelper.Sonos.Zones); }
public string Dash2(int id) { //Durch alle Zonen gehen und Gruppen auflösen und Pausieren, falls einer abspielt. #region STOPP Boolean foundplayed = false; //List<string> foundedPlayer = new List<string>(); try { try { if (SonosHelper.Sonos == null) { SonosHelper.Initialisierung(); } if (SonosHelper.Sonos == null) { return(retValReload + " Sonos ist null und konnte nicht initialisiert werden!"); } lock (SonosHelper.Sonos.Zones) { foreach (SonosZone sp in SonosHelper.Sonos.Zones) { try { if (sp.Coordinator.CurrentState.TransportState == PlayerStatus.PLAYING) { foundplayed = true; sp.Coordinator.SetPause(); } } catch (Exception ex) { return(retValReload + "Block1.1 Exception: Beim prüfen ob ausgeschaltet werden muss:" + ex.Message); } } } } catch (Exception ex) { return(retValReload + "Block1 Exception: Beim prüfen ob ausgeschaltet werden muss:" + ex.Message); } } catch (Exception ex) { return(retValReload + " Exception: Beim prüfen ob ausgeschaltet werden muss:" + ex.Message); } if (foundplayed) { try { Task.Factory.StartNew(DashHelper.PowerOffMarantz); } catch { return(retValReload + " Exception: Marantz konnte nicht geschaltet werden. "); } try { Task.Factory.StartNew(DashHelper.PowerOffAruroras); } catch (Exception ex) { return(retValReload + "exception: Aurora konnten nicht ausgeschaltet werden. " + ex.Message); } try { SonosPlayer primaryplayer = SonosHelper.GetPlayer(primaryPlayerName); SonosPlayer secondaryplayer = SonosHelper.GetPlayer(SonosConstants.EsszimmerName); SonosPlayer thirdplayer = SonosHelper.GetPlayer(SonosConstants.KücheName); ushort secondaryplayerVolume = SonosConstants.EsszimmerVolume; ushort thirdplayerVolume = SonosConstants.KücheVolume; if (secondaryplayer.GetVolume() != secondaryplayerVolume) { secondaryplayer.SetVolume(secondaryplayerVolume); } if (primaryplayer.GetVolume() != primaryplayerVolume) { primaryplayer.SetVolume(primaryplayerVolume); } if (thirdplayer.GetVolume() != thirdplayerVolume) { thirdplayer.SetVolume(thirdplayerVolume); } } catch (Exception ex) { return(retValReload + "Lautstärke resetet mit Fehler: " + ex.Message); } return("ok, Musik wurde ausgeschaltet."); } #endregion STOPP #region Start Devices try { //Aurora einschalten zwischen 18 Uhr und 5 Uhr oder immer Oktober bsi März //if (DateTime.Now.Hour > 17 || DateTime.Now.Hour < 6 || DateTime.Now.Month > 9 || DateTime.Now.Month < 4) //{ Task.Factory.StartNew(DashHelper.PowerOnAruroras); //} } catch (Exception ex) { return(retValReload + "exception: Aurora konnten nicht eingeschaltet werden. " + ex.Message); } try { //Marantz Verarbeiten. Task.Factory.StartNew(DashHelper.PowerOnMarantz); } catch (Exception ex) { return(retValReload + " Exception beim Marantz: " + ex.Message); } #endregion Start Devices try { //Alles ins Wohnzimmer legen. SonosPlayer primaryplayer = SonosHelper.GetPlayer(primaryPlayerName); SonosPlayer secondaryplayer = SonosHelper.GetPlayer(SonosConstants.EsszimmerName); SonosPlayer thirdplayer = SonosHelper.GetPlayer(SonosConstants.KücheName); if (DashHelper.IsSonosTargetGroupExist(primaryplayer, new List <SonosPlayer> { secondaryplayer, thirdplayer })) { //Die Zielarchitektur existiert, daher keine Lautstärkesondern nur Playlist int oldcurrenttrack = primaryplayer.GetAktSongInfo().TrackIndex; var playlists = GetAllPlaylist(); var playlist = playlists.FirstOrDefault(x => x.Title.ToLower() == defaultPlaylist.ToLower()); Boolean loadPlaylist = false; if (playlist != null) { loadPlaylist = DashHelper.CheckPlaylist(playlist.ContainerID, primaryplayer); } if (loadPlaylist) { if (!DashHelper.LoadPlaylist(playlist, primaryplayer)) { return("reload, weil Playlist nicht geladen werden konnte"); } } else { //alten Song aus der Playlist laden, da immer wieder auf 1 reset passiert. primaryplayer.SetTrackInPlaylist(oldcurrenttrack.ToString()); Thread.Sleep(100); } ushort secondaryplayerVolume = SonosConstants.EsszimmerVolume; ushort thirdplayerVolume = SonosConstants.KücheVolume; if (secondaryplayer.GetVolume() != secondaryplayerVolume) { secondaryplayer.SetVolume(secondaryplayerVolume); } if (primaryplayer.GetVolume() != primaryplayerVolume) { primaryplayer.SetVolume(primaryplayerVolume); } if (thirdplayer.GetVolume() != thirdplayerVolume) { thirdplayer.SetVolume(thirdplayerVolume); } } else { //alles neu try { primaryplayer.BecomeCoordinatorofStandaloneGroup(); Thread.Sleep(500); secondaryplayer.SetAVTransportURI(SonosConstants.xrincon + primaryplayer.UUID); Thread.Sleep(300); thirdplayer.SetAVTransportURI(SonosConstants.xrincon + primaryplayer.UUID); Thread.Sleep(300); } catch (Exception ex) { return(retValReload + " Exception beim Gruppenauflösen: " + ex.Message); } try { ushort secondaryplayerVolume = SonosConstants.EsszimmerVolume; ushort thirdplayerVolume = SonosConstants.KücheVolume; if (secondaryplayer.GetVolume() != secondaryplayerVolume) { secondaryplayer.SetVolume(secondaryplayerVolume); } if (primaryplayer.GetVolume() != primaryplayerVolume) { primaryplayer.SetVolume(primaryplayerVolume); } if (thirdplayer.GetVolume() != thirdplayerVolume) { thirdplayer.SetVolume(thirdplayerVolume); } } catch (Exception ex) { return(retValReload + " Exception beim Lautstärke setzen: " + ex.Message); } try { //Playlist verarveiten var playlists = GetAllPlaylist(); var playlist = playlists.FirstOrDefault(x => x.Title.ToLower() == defaultPlaylist.ToLower()); if (!DashHelper.LoadPlaylist(playlist, primaryplayer)) { return("reload, weil Playlist nicht geladen werden konnte"); } } catch (Exception ex) { return(retValReload + " Exception beim Playlist setzen: " + ex.Message); } } try { primaryplayer.SetPlay(); } catch (Exception ex) { return(retValReload + " Exception beim Starten der Wiedergabe: " + ex.Message); } } catch (Exception ex) { return(retValReload + "exception: Großer Block nicht abgefangen: " + ex.Message); } return(retValok); }