Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Sonos error handling on slow networks #25902



Copy link

commented Aug 12, 2019


This fixes a number of uncaught exceptions that I discovered while running with a network conditioner causing 25%-50% packet loss. It handles crazy situations like this:

  1. A speaker is discovered.
  2. Creating the entity and getting current state takes a long time.
  3. The same speaker is rediscovered so it is set "available". However, it is actually not yet ready because it is still being added.

I hope avoiding the exceptions will fix some reports about the Sonos discovery thread stopping but I do not have enough information to be sure.

Changelog: pysonos 0.0.23

Related issue (if applicable): chatter in the forum


  • The code change is tested and works locally.
  • Local tests pass with tox. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly. Update and include derived files by running python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt by running python3 -m script.gen_requirements_all.
  • Untested files have been added to .coveragerc.

Dev automation moved this from Needs review to Reviewer approved Aug 14, 2019

@balloob balloob merged commit cbcf49a into home-assistant:dev Aug 14, 2019

11 checks passed

CI Build #20190812.34 succeeded
CI (FullCheck Mypy) FullCheck Mypy succeeded
CI (FullCheck Pylint) FullCheck Pylint succeeded
CI (Overview CheckFormat) Overview CheckFormat succeeded
CI (Overview Lint) Overview Lint succeeded
CI (Overview Validate) Overview Validate succeeded
CI (Tests PyTest Python36) Tests PyTest Python36 succeeded
CI (Tests PyTest Python37) Tests PyTest Python37 succeeded
cla-bot Everyone involved has signed the CLA
codecov/patch Coverage not affected.
codecov/project 94.02% (target 90%)

Dev automation moved this from Reviewer approved to Done Aug 14, 2019

@lock lock bot locked and limited conversation to collaborators Aug 15, 2019

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
3 participants
You can’t perform that action at this time.