Add some new helper methods to file utils.
[python_utils.git] / smart_home / registry.py
index ae57a735794e07723311685ca994d0a5f936d258..7349081f1b9b1637e2c18db7465b29e82626f54e 100644 (file)
@@ -63,7 +63,8 @@ class SmartHomeRegistry(object):
             try:
                 (mac, name, keywords) = line.split(",")
             except ValueError:
-                logger.warning(f'SH-CONFIG> {line} is malformed?!')
+                msg = f'SH-CONFIG> "{line}" is malformed?!  Skipping it.'
+                logger.warning(msg)
                 continue
             mac = mac.strip()
             name = name.strip()
@@ -165,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)
@@ -180,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]: