X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=smart_home%2Fregistry.py;h=7349081f1b9b1637e2c18db7465b29e82626f54e;hb=927b6920b62d581556c12ade7e9b09dc8978296b;hp=2d23981d00ad9aaafef04a45c0761bd4cdefd5af;hpb=eb9e6df32ed696158bf34dba6464277b648f5c74;p=python_utils.git diff --git a/smart_home/registry.py b/smart_home/registry.py index 2d23981..7349081 100644 --- a/smart_home/registry.py +++ b/smart_home/registry.py @@ -60,7 +60,12 @@ class SmartHomeRegistry(object): if line == "": continue logger.debug(f'SH-CONFIG> {line}') - (mac, name, keywords) = line.split(",") + try: + (mac, name, keywords) = line.split(",") + except ValueError: + msg = f'SH-CONFIG> "{line}" is malformed?! Skipping it.' + logger.warning(msg) + continue mac = mac.strip() name = name.strip() keywords = keywords.strip() @@ -161,6 +166,9 @@ class SmartHomeRegistry(object): else: logger.debug(' ...a TPLinkOutlet') return outlets.TPLinkOutlet(name, mac, kws) + elif 'meross' in kws.lower(): + logger.debug(' ...a MerossOutlet') + return outlets.MerossOutlet(name, mac, kws) elif 'goog' in kws.lower(): logger.debug(' ...a GoogleOutlet') return outlets.GoogleOutlet(name, mac, kws) @@ -176,11 +184,13 @@ class SmartHomeRegistry(object): logger.debug(' ...an unknown device (should this be here?)') return device.Device(name, mac, kws) except Exception as e: - logger.warning( - f'Got exception {e} while trying to communicate with device {name}/{mac}.' + logger.exception(e) + logger.debug( + f'Device {name} at {mac} with {kws} confused me, returning a generic Device' ) return device.Device(name, mac, kws) - logger.warning(f'{mac} is not a known smart home device, returning None') + msg = f'{mac} is not a known smart home device, returning None' + logger.warning(msg) return None def query(self, query: str) -> List[device.Device]: