From fd93e429e1f73f971bf1eec0193fc07909537a18 Mon Sep 17 00:00:00 2001 From: Jaruba Firanelli Date: Wed, 4 Mar 2020 14:25:37 +0200 Subject: [PATCH] Add Key Chaining and SmartThings Keys to `play_media` service --- .../samsungtv_tizen/media_player.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/custom_components/samsungtv_tizen/media_player.py b/custom_components/samsungtv_tizen/media_player.py index cb5e96c..983f19b 100755 --- a/custom_components/samsungtv_tizen/media_player.py +++ b/custom_components/samsungtv_tizen/media_player.py @@ -565,7 +565,22 @@ async def async_play_media(self, media_type, media_id, **kwargs): _LOGGER.error('Media ID must be a string (ex: "KEY_HOME"') return - await self.hass.async_add_job(self.send_command, media_id) + source_key = media_id + + if source_key.startswith("ST_"): + if source_key.startswith("ST_HDMI"): + smartthings.send_command(self, source_key.replace("ST_", ""), "selectsource") + elif source_key == "ST_TV": + smartthings.send_command(self, "digitalTv", "selectsource") + elif "+" in source_key: + all_source_keys = source_key.split("+") + for this_key in all_source_keys: + if this_key.isdigit(): + time.sleep(int(this_key)/1000) + else: + await self.hass.async_add_job(self.send_command, this_key) + else: + await self.hass.async_add_job(self.send_command, source_key) # Play media elif media_type == MEDIA_TYPE_URL: