* Move parts of ssdp to async_upnp_client
* Fix test for environments with multiple sources
* Fix sonos tests
* More fixes/changes
* More fixes
* Use async_upnp_client==0.21.0
* Pylint/test fixes
* More changes after review
* Fix tests
* Improve testing
* Fix mypy
* Fix yamaha_musiccast tests?
* Changes after review
* Pylint
* Reduce calls to combined_headers
* Update to async_upnp_client==0.21.1
* Update to async_upnp_client==0.21.2
* use as_dict
Co-authored-by: J. Nick Koston <nick@koston.org>
* Ensure ssdp can callback messages that do not have an ST
Sonos sends unsolicited messages when the device reboots. We want
to capture these to ensure we can recover the subscriptions as soon
as the device reboots
* Update homeassistant/components/ssdp/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
SSDP scans no longer runs in the executor
This is an interim step that converts the async_upnp_client
response to netdisco's object to ensure fully backwards
compatibility
* Ensure we do not start discovered flows until after the start event has fired
This change makes zeroconf and ssdp match discovery behavior of not
creating config flows until the start event has been fired. This
prevents config flow creation/dependency installs for discovered
config flows from competing for cpu time during startup.
* Start discovery/service browser/ssdp when EVENT_HOMEASSISTANT_STARTED is fired instead of EVENT_HOMEASSISTANT_START
* Include all SSDP data in discovery info
* Use UPnP device description as discovery info, inject some SSDP attrs
* Clean up attribute names
* Adapt existing SSDP flows to changed attribute names
* Prefix all SSDP UPnP attribute name constants with ATTR_UPNP, tweak a bit
* Add bandit to pre-commit and CI, use to catch known vulnerable XML parsing
* Use defusedxml instead of direct xml.etree to parse XML
* Move config to tests/bandit.yaml
* SSDP matching improvements
- support multiple match groups per domain
- require matches on all, not any item in a group
- support matching on all UPnP device description data
* Manifest structure fixes