From 9be6db04180aaf769175c30ea56c14ac5a15e636 Mon Sep 17 00:00:00 2001 From: Steven Looman Date: Sat, 3 Nov 2018 18:28:15 +0100 Subject: [PATCH 1/2] Upgrade to async_upnp_client==0.13.2, now (better) providing media_image_url for DLNA DMR devices --- homeassistant/components/media_player/dlna_dmr.py | 2 +- homeassistant/components/upnp/__init__.py | 2 +- requirements_all.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/media_player/dlna_dmr.py b/homeassistant/components/media_player/dlna_dmr.py index 7e87925dcc7aae..88fd23ce0cd03c 100644 --- a/homeassistant/components/media_player/dlna_dmr.py +++ b/homeassistant/components/media_player/dlna_dmr.py @@ -25,7 +25,7 @@ import homeassistant.helpers.config_validation as cv from homeassistant.util import get_local_ip -REQUIREMENTS = ['async-upnp-client==0.13.0'] +REQUIREMENTS = ['async-upnp-client==0.13.1'] _LOGGER = logging.getLogger(__name__) diff --git a/homeassistant/components/upnp/__init__.py b/homeassistant/components/upnp/__init__.py index e69943ae8b2ee2..1651879fd2c948 100644 --- a/homeassistant/components/upnp/__init__.py +++ b/homeassistant/components/upnp/__init__.py @@ -29,7 +29,7 @@ from .device import Device -REQUIREMENTS = ['async-upnp-client==0.13.0'] +REQUIREMENTS = ['async-upnp-client==0.13.1'] NOTIFICATION_ID = 'upnp_notification' NOTIFICATION_TITLE = 'UPnP/IGD Setup' diff --git a/requirements_all.txt b/requirements_all.txt index 22221a57e28c0c..1bb3e2e8fb5969 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -157,7 +157,7 @@ asterisk_mbox==0.5.0 # homeassistant.components.upnp # homeassistant.components.media_player.dlna_dmr -async-upnp-client==0.13.0 +async-upnp-client==0.13.1 # homeassistant.components.axis axis==16 From ce0d2e58f2712ea20cc21d59376a75a32579dc77 Mon Sep 17 00:00:00 2001 From: Steven Looman Date: Sat, 3 Nov 2018 18:28:52 +0100 Subject: [PATCH 2/2] Add SUPPORT_SEEK for DLNA DMR devices --- .../components/media_player/dlna_dmr.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/media_player/dlna_dmr.py b/homeassistant/components/media_player/dlna_dmr.py index 88fd23ce0cd03c..5869cf2dbf963c 100644 --- a/homeassistant/components/media_player/dlna_dmr.py +++ b/homeassistant/components/media_player/dlna_dmr.py @@ -6,6 +6,7 @@ """ import asyncio from datetime import datetime +from datetime import timedelta import functools import logging @@ -14,7 +15,7 @@ from homeassistant.components.media_player import ( PLATFORM_SCHEMA, SUPPORT_NEXT_TRACK, SUPPORT_PAUSE, SUPPORT_PLAY, - SUPPORT_PLAY_MEDIA, SUPPORT_PREVIOUS_TRACK, SUPPORT_STOP, + SUPPORT_PLAY_MEDIA, SUPPORT_PREVIOUS_TRACK, SUPPORT_SEEK, SUPPORT_STOP, SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, MediaPlayerDevice) from homeassistant.const import ( CONF_NAME, CONF_URL, EVENT_HOMEASSISTANT_STOP, STATE_IDLE, STATE_OFF, @@ -233,6 +234,8 @@ def supported_features(self): supported_features |= SUPPORT_NEXT_TRACK if self._device.has_play_media: supported_features |= SUPPORT_PLAY_MEDIA + if self._device.has_seek_rel_time: + supported_features |= SUPPORT_SEEK return supported_features @@ -284,6 +287,16 @@ async def async_media_stop(self): await self._device.async_stop() + @catch_request_errors() + async def async_media_seek(self, position): + """Send seek command.""" + if not self._device.can_seek_rel_time: + _LOGGER.debug('Cannot do Seek/rel_time') + return + + time = timedelta(seconds=position) + await self._device.async_seek_rel_time(time) + @catch_request_errors() async def async_play_media(self, media_type, media_id, **kwargs): """Play a piece of media.""" @@ -295,7 +308,7 @@ async def async_play_media(self, media_type, media_id, **kwargs): if self._device.can_stop: await self.async_media_stop() - # +ueue media + # Queue media await self._device.async_set_transport_uri( media_id, title, mime_type, upnp_class) await self._device.async_wait_for_can_play()