X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=smart_home%2Fchromecasts.py;fp=smart_home%2Fchromecasts.py;h=7480cecc36826932ba90d69ecc83f70cf1a43a97;hb=1315e2d5356aa3616ef96ded72b7902c8591ebd7;hp=5e11ac011212e87d9f251cb4743d2fdf6698888a;hpb=07a9659282a6b7c7776eec85f0708de9f8815374;p=python_utils.git diff --git a/smart_home/chromecasts.py b/smart_home/chromecasts.py index 5e11ac0..7480cec 100644 --- a/smart_home/chromecasts.py +++ b/smart_home/chromecasts.py @@ -5,7 +5,6 @@ import atexit import datetime import logging -import time import pychromecast @@ -29,7 +28,11 @@ class BaseChromecast(dev.Device): or (now - BaseChromecast.refresh_ts).total_seconds() > 60 ): logger.debug('Refreshing the shared chromecast info list') - BaseChromecast.ccasts, BaseChromecast.browser = pychromecast.get_chromecasts() + if BaseChromecast.browser is not None: + BaseChromecast.browser.stop_discovery() + BaseChromecast.ccasts, BaseChromecast.browser = pychromecast.get_chromecasts( + timeout=10.0 + ) atexit.register(BaseChromecast.browser.stop_discovery) BaseChromecast.refresh_ts = now @@ -38,8 +41,7 @@ class BaseChromecast(dev.Device): if cc.cast_info.host == ip: logger.debug(f'Found chromecast at {ip}: {cc}') self.cast = cc - self.cast.wait() - time.sleep(0.1) + self.cast.wait(timeout=1.0) if self.cast is None: raise Exception(f'Can\'t find ccast device at {ip}, is that really a ccast device?')