From a398360a3b1c0f741a5e1c3bfe0837878972779e Mon Sep 17 00:00:00 2001 From: Cash Williams Date: Tue, 8 Nov 2022 22:45:21 -0600 Subject: [PATCH 1/2] Replace time.sleep() with asyncio.sleep() --- .../samsungtv_tizen/media_player.py | 17 +++++++++-------- custom_components/samsungtv_tizen/websockets.py | 10 +++++----- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/custom_components/samsungtv_tizen/media_player.py b/custom_components/samsungtv_tizen/media_player.py index f03b092..b4e7130 100755 --- a/custom_components/samsungtv_tizen/media_player.py +++ b/custom_components/samsungtv_tizen/media_player.py @@ -739,7 +739,7 @@ def device_class(self): """Set the device class to TV.""" return DEVICE_CLASS_TV - def turn_on(self): + async def turn_on(self): """Turn the media player on.""" if self._power_off_in_progress(): self._end_of_power_off = None @@ -752,11 +752,11 @@ def turn_on(self): if self._broadcast: for i in range(20): wakeonlan.send_magic_packet(self._mac, ip_address=self._broadcast) - time.sleep(0.25) + await asyncio.sleep(0.25) else: for i in range(20): wakeonlan.send_magic_packet(self._mac) - time.sleep(0.25) + await asyncio.sleep(0.25) #Force Update as send command not called self.update(no_throttle=True) self.schedule_update_ha_state(True) @@ -872,7 +872,7 @@ async def async_play_media(self, media_type, media_id, **kwargs): else: #Change to TV source before changing channel self.hass.async_add_job(self._smartthings_keys, "ST_TV") - time.sleep(5) + await asyncio.sleep(5) smartthings.device_update(self) if self._cloud_channel != media_id: await self.hass.async_add_job(self._smartthings_keys, f"ST_CH{media_id}") @@ -889,7 +889,7 @@ async def async_play_media(self, media_type, media_id, **kwargs): if source.lower() in ["tv", "live tv", "livetv"]: found_source = True await self.hass.async_add_job(self.async_select_source, source) - time.sleep(2) + await asyncio.sleep(2) break if found_source == False: keychain = "KEY_EXIT+KEY_EXIT+{}".format(keychain) @@ -911,13 +911,14 @@ async def async_play_media(self, media_type, media_id, **kwargs): for this_key in all_source_keys: if this_key.isdigit(): last_was_delay = True - time.sleep(int(this_key)/1000) + await asyncio.sleep(int(this_key)/1000) + else: if this_key.startswith("ST_"): await self.hass.async_add_job(self._smartthings_keys, this_key) else: if last_was_delay == False: - time.sleep(DEFAULT_KEY_CHAIN_DELAY) + await asyncio.sleep(DEFAULT_KEY_CHAIN_DELAY) last_was_delay = False self.hass.async_add_job(self.send_command, this_key) elif source_key.startswith("ST_"): @@ -955,7 +956,7 @@ async def async_select_source(self, source): all_source_keys = source_key.split("+") for this_key in all_source_keys: if this_key.isdigit(): - time.sleep(int(this_key)/1000) + await asyncio.sleep(int(this_key)/1000) else: if this_key.startswith("ST_"): await self.hass.async_add_job(self._smartthings_keys, this_key) diff --git a/custom_components/samsungtv_tizen/websockets.py b/custom_components/samsungtv_tizen/websockets.py index 072590c..d9ccc99 100755 --- a/custom_components/samsungtv_tizen/websockets.py +++ b/custom_components/samsungtv_tizen/websockets.py @@ -104,7 +104,7 @@ def _set_token(self, token): else: self.token = token - def _ws_send(self, command, key_press_delay=None): + async def _ws_send(self, command, key_press_delay=None): if self.connection is None: self.open() @@ -112,9 +112,9 @@ def _ws_send(self, command, key_press_delay=None): self.connection.send(payload) if key_press_delay is None: - time.sleep(self.key_press_delay) + await asyncio.sleep(self.key_press_delay) else: - time.sleep(key_press_delay) + await asyncio.sleep(key_press_delay) def _rest_request(self, target, method='GET'): url = self._format_rest_url(target) @@ -192,9 +192,9 @@ def send_key(self, key, key_press_delay=None, cmd='Click'): key_press_delay ) - def hold_key(self, key, seconds): + async def hold_key(self, key, seconds): self.send_key(key, cmd='Press') - time.sleep(seconds) + await asyncio.sleep(seconds) self.send_key(key, cmd='Release') def move_cursor(self, x, y, duration=0): From c24f56c6da0f9f6f3e0e0571a2d289b04db486d6 Mon Sep 17 00:00:00 2001 From: Cash Williams Date: Tue, 8 Nov 2022 22:51:31 -0600 Subject: [PATCH 2/2] Missed import --- custom_components/samsungtv_tizen/websockets.py | 1 + 1 file changed, 1 insertion(+) diff --git a/custom_components/samsungtv_tizen/websockets.py b/custom_components/samsungtv_tizen/websockets.py index d9ccc99..dbf0cdc 100755 --- a/custom_components/samsungtv_tizen/websockets.py +++ b/custom_components/samsungtv_tizen/websockets.py @@ -19,6 +19,7 @@ Boston, MA 02110-1335 USA """ +import asyncio import base64 import json import logging