Commit Graph

62 Commits

Author SHA1 Message Date
Steven Looman
045c514c18 Bump async-upnp-client to 0.35.0 (#99129) 2023-08-27 09:08:58 -05:00
Steven Looman
9f551c0469 Bump async-upnp-client to 0.34.1 (#97105) 2023-07-23 22:38:21 +02:00
Steven Looman
63c2b5868e Bump async-upnp-client to 0.33.2 (#93329)
* Bump async-upnp-client to 0.33.2

* Fix tests
2023-05-21 17:17:08 -05:00
Erik Montnemery
87420e949d Sort manifests 2 (#87023) 2023-02-08 20:16:39 +01:00
Steven Looman
7e206b5854 Fix error on empty location in ssdp messages (#86970) 2023-01-30 22:43:58 +01:00
Steven Looman
682501eb47 Less tasks when receiving SSDP messages (#84186)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-12-21 11:35:52 -10:00
Michael Chisholm
fbab7413a5 Match config entries for dlna_dmr based on device MAC, in addition to UDN (#74619)
* Factor out _is_dmr_device function

* Use DMR device's MAC to match existing config entries

Some DMR devices change their every time they boot, against the DMR specs.
Try to match such devices to existing config entries by using their MAC
addresses.

* Add DMR device's MAC as a device_registry connection

* Use doc-only IPs (RFC5737) for dlna_dmr tests
2022-12-11 13:40:35 -05:00
Michael Chisholm
7378277212 Update async-upnp-client to 0.32.3 (#83215) 2022-12-04 10:05:53 -08:00
Steven Looman
a635e9c9d2 Fix repeating SSDP errors by checking address scope_ids and proper hostname (#81611) 2022-11-05 17:11:59 -05:00
Steven Looman
b5f70a404a Fix SSDP/UPnP server after testing (#80815) 2022-10-24 15:19:19 -05:00
Steven Looman
731f618028 Make home assistant discoverable via UPnP/SSDP (#79820) 2022-10-15 14:00:46 -04:00
Steven Looman
26641fc90d Bump async-upnp-client to 0.31.2 (#73712) 2022-06-19 12:59:37 -05:00
Steven Looman
6c9408aef5 Bump async-upnp-client==0.31.1 (#73135)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-06-06 11:46:52 -10:00
Steven Looman
01c211a7f9 Bump async-upnp-client to 0.30.1 (#72332)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-05-23 02:06:09 -05:00
Michael Chisholm
dd0f9350ac Update async-upnp-client to 0.30.0 (#72269) 2022-05-21 09:18:47 -05:00
J. Nick Koston
5224cf5968 Update async_upnp_client to 0.29.0 (#70604) 2022-04-25 09:53:35 -07:00
Steven Looman
776565c23f Bump async-upnp-client to 0.28.0 (#70582) 2022-04-24 08:46:13 -10:00
Steven Looman
f006cffac6 Bump async-upnp-client to 0.27.0 (#68310) 2022-03-17 12:32:46 -10:00
epenet
d656acfa2c Bump async-upnp-client to 0.26.0 (#67760) 2022-03-07 11:08:50 +01:00
Steven Looman
dbbb5655e5 Bump async-upnp-client to 0.25.0 (#66414)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-02-27 08:29:29 -10:00
Michael Chisholm
3c15fe8587 Add media browser support to dlna_dmr (#66425) 2022-02-19 21:07:38 -08:00
Ben Edmunds
c93d389544 Bump async-upnp-client to 0.23.5 (#65922) 2022-02-08 20:27:16 +02:00
J. Nick Koston
5b755b74fb Add loggers to integration manifest.json (#65083) 2022-01-28 13:37:53 -08:00
Michael Chisholm
45b8684b37 Bump async-upnp-client to 0.23.4 (#64287) 2022-01-17 14:55:07 +01:00
Steven Looman
cba752c1af Bump async-upnp-client==0.23.3 (#63282) 2022-01-03 13:42:09 +01:00
Steven Looman
cb82169e92 Bump async-upnp-client to 0.23.2 (#62634) 2021-12-22 13:23:22 -10:00
Michael Chisholm
f280b03df8 Update async-upnp-client library to 0.23.1 (#62298) 2021-12-18 23:41:32 -06:00
Diego Elio Pettenò
6ce99bfc80 Bump async-upnp-client to 0.23.0 (#62223) 2021-12-17 16:57:02 -06:00
Franck Nijhof
ddf0941275 Upgrade async-upnp-client to 0.22.12 (#59284) 2021-11-07 07:41:26 -08:00
Michael Chisholm
4f83a251fa Bump async-upnp-client to 0.22.11 (#58803) 2021-10-31 16:16:50 +01:00
Michael Chisholm
ce27fb87c6 dlna_dmr: less eager discovery (#58780) 2021-10-31 16:11:20 +01:00
Steven Looman
e5e38ace6c Bump async-upnp-client to 0.22.10 (#58387) 2021-10-25 12:22:19 +02:00
Michael Chisholm
ee087c7a05 Discovery ignores DLNA DMR devices when they are better supported by another integration (#57363) 2021-10-22 10:26:33 -10:00
J. Nick Koston
4a9209ebc8 Bump async-upnp-client to 0.22.9 (#58185)
Co-authored-by: Steven Looman <steven.looman@gmail.com>
2021-10-21 10:58:34 -10:00
Steven Looman
ba83433c64 Fix multiple upnp/ssdp issues (#57314) 2021-10-08 08:57:49 -07:00
Michael Chisholm
667e730946 Improve dlna_dmr code quality (#56886)
* Listen for config updates from DlnaDmrEntity.async_added_to_hass

Use `Entity.async_on_remove` for dealing with callback cancellation,
instead of re-inventing the wheel with `_remove_ssdp_callbacks`.

* Use async_write_ha_state within async methods

* Import YAML config from async_setup_platform

* Import flow prompts user when device is uncontactable during migration

When config flow is able to contact a device, or when it has information
from SSDP, it will create config entries without error. If the device is
uncontactable at this point then it will appear as unavailable in HA
until it is turned on again.

When import flow cannot migrate an entry because it needs to contact the
device and can't, it will notify the user with a config flow form.

* Don't del unused parameters, HA pylint doesn't care

* Remove unused imports from tests

* Abort config flow at earliest opportunity

* Return async_abort instead of raising AbortFlow

* Consolidate config entry test cleanup into a single function

* fixup! Consolidate config entry test cleanup into a single function

Revert "Consolidate config entry test cleanup into a single function"

This reverts commit 8220da7263e346a37c3e1a219dc374c4a43c7df5.

* Check resource acquisition/release in specific tests

* fixup! Check resource acquisition/release in specific tests

* Remove unused network dependency from manifest

* _on_event runs in async context

* Call async_write_ha_state directly (not via shedule_update)

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-10-07 22:14:00 +02:00
Steven Looman
41d2f03b2f Bump async-upnp-client to 0.22.5 (#56989) 2021-10-03 07:28:41 -10:00
Michael Chisholm
64d4e8537f Disable discovery for dlna_dmr until it is more selective (#56950) 2021-10-03 09:09:30 -06:00
Michael Chisholm
f7d95588f8 Provide most media metadata in DlnaDmrEntity (#56728)
Co-authored-by: Steven Looman <steven.looman@gmail.com>
2021-09-28 19:37:23 -05:00
Michael Chisholm
a28fd7d61b Config-flow for DLNA-DMR integration (#55267)
* Modernize dlna_dmr component: configflow, test, types

* Support config-flow with ssdp discovery
* Add unit tests
* Enforce strict typing
* Gracefully handle network devices (dis)appearing

* Fix Aiohttp mock response headers type to match actual response class

* Fixes from code review

* Fixes from code review

* Import device config in flow if unavailable at hass start

* Support SSDP advertisements

* Ignore bad BOOTID, fix ssdp:byebye handling

* Only listen for events on interface connected to device

* Release all listeners when entities are removed

* Warn about deprecated dlna_dmr configuration

* Use sublogger for dlna_dmr.config_flow for easier filtering

* Tests for dlna_dmr.data module

* Rewrite DMR tests for HA style

* Fix DMR strings: "Digital Media *Renderer*"

* Update DMR entity state and device info when changed

* Replace deprecated async_upnp_client State with TransportState

* supported_features are dynamic, based on current device state

* Cleanup fully when subscription fails

* Log warnings when device connection fails unexpectedly

* Set PARALLEL_UPDATES to unlimited

* Fix spelling

* Fixes from code review

* Simplify has & can checks to just can, which includes has

* Treat transitioning state as playing (not idle) to reduce UI jerking

* Test if device is usable

* Handle ssdp:update messages properly

* Fix _remove_ssdp_callbacks being shared by all DlnaDmrEntity instances

* Fix tests for transitioning state

* Mock DmrDevice.is_profile_device (added to support embedded devices)

* Use ST & NT SSDP headers to find DMR devices, not deviceType

The deviceType is extracted from the device's description XML, and will not
be what we want when dealing with embedded devices.

* Use UDN from SSDP headers, not device description, as unique_id

The SSDP headers have the UDN of the embedded device that we're interested
in, whereas the device description (`ATTR_UPNP_UDN`) field will always be
for the root device.

* Fix DMR string English localization

* Test config flow with UDN from SSDP headers

* Bump async-upnp-client==0.22.1, fix flake8 error

* fix test for remapping

* DMR HA Device connections based on root and embedded UDN

* DmrDevice's UpnpDevice is now named profile_device

* Use device type from SSDP headers, not device description

* Mark dlna_dmr constants as Final

* Use embedded device UDN and type for unique ID when connected via URL

* More informative connection error messages

* Also match SSDP messages on NT headers

The NT header is to ssdp:alive messages what ST is to M-SEARCH responses.

* Bump async-upnp-client==0.22.2

* fix merge

* Bump async-upnp-client==0.22.3

Co-authored-by: Steven Looman <steven.looman@gmail.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2021-09-27 15:47:01 -05:00
J. Nick Koston
26e031984b Ensure sonos always gets ssdp callbacks from searches (#56591) 2021-09-26 17:16:03 -05:00
Steven Looman
73260c5b88 Move parts of ssdp to async_upnp_client (#55540)
* 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>
2021-09-11 13:38:16 -10:00
J. Nick Koston
62015f5495 Bump async-upnp-client to 0.20.0, adapt to breaking changes (#54782) 2021-08-18 12:13:59 +02:00
Steven Looman
2c1728022d Use ssdp callbacks in upnp (#53840) 2021-08-13 11:13:25 -05:00
Simone Chemelli
75f7d3d696 Replace util.get_local_ip in favor of components.network.async_get_source_ip() - part 1 (#52980) 2021-07-22 08:12:33 -10:00
Steven Looman
34b1ab5f5c Upgrade to async-upnp-client==0.19.1 (#53288) 2021-07-21 14:29:27 -07:00
Steven Looman
a127131c1b Upgrade async_upnp_client to 0.19.0 (#52019) 2021-06-20 18:17:39 +02:00
J. Nick Koston
60e65a4bc2 Bump async-upnp-client to 0.18.0 (#51017)
- Adds support for a long running SSDP listener
2021-05-24 13:50:40 +02:00
Steven Looman
e284a14ccd Upgrade async_upnp_client to 0.17.0 (#50371) 2021-05-09 17:06:47 -05:00
J. Nick Koston
9689e06d3c Bump async-upnp-client to 0.16.2 (#49671) 2021-04-25 10:32:39 -10:00