示例#1
0
 def _discovered_player(self, soco: SoCo) -> None:
     """Handle a (re)discovered player."""
     try:
         speaker_info = soco.get_speaker_info(True)
         _LOGGER.debug("Adding new speaker: %s", speaker_info)
         speaker = SonosSpeaker(self.hass, soco, speaker_info)
         self.data.discovered[soco.uid] = speaker
         for coordinator, coord_dict in (
             (SonosAlarms, self.data.alarms),
             (SonosFavorites, self.data.favorites),
         ):
             if soco.household_id not in coord_dict:
                 new_coordinator = coordinator(self.hass, soco.household_id)
                 new_coordinator.setup(soco)
                 coord_dict[soco.household_id] = new_coordinator
         speaker.setup()
     except (OSError, SoCoException):
         _LOGGER.warning("Failed to add SonosSpeaker using %s", soco, exc_info=True)
示例#2
0
 def _add_speaker(self, soco: SoCo) -> None:
     """Create and set up a new SonosSpeaker instance."""
     try:
         speaker_info = soco.get_speaker_info(True)
         if soco.uid not in self.data.boot_counts:
             self.data.boot_counts[soco.uid] = soco.boot_seqnum
         _LOGGER.debug("Adding new speaker: %s", speaker_info)
         speaker = SonosSpeaker(self.hass, soco, speaker_info)
         self.data.discovered[soco.uid] = speaker
         for coordinator, coord_dict in (
             (SonosAlarms, self.data.alarms),
             (SonosFavorites, self.data.favorites),
         ):
             if soco.household_id not in coord_dict:
                 new_coordinator = coordinator(self.hass, soco.household_id)
                 new_coordinator.setup(soco)
                 coord_dict[soco.household_id] = new_coordinator
         speaker.setup(self.entry)
     except (OSError, SoCoException):
         _LOGGER.warning("Failed to add SonosSpeaker using %s", soco, exc_info=True)