diff --git a/devices/protocols/Meross/xaal/meross/gw.py b/devices/protocols/Meross/xaal/meross/gw.py index 4ba5b2b70bd7be0296d5f1f3f69c1c326e3c5841..7d373af346d3bbfb9af01c89b8a535334362c33f 100644 --- a/devices/protocols/Meross/xaal/meross/gw.py +++ b/devices/protocols/Meross/xaal/meross/gw.py @@ -38,15 +38,21 @@ class GW(object): self.cfg = cfg async def setup(self): - config = self.cfg.get('config',{}) - login = config.get('login',None) - passwd = config.get('password',None) + config = self.cfg.get('config', {}) + login = config.get('login', None) + passwd = config.get('password', None) + region = config.get('region', 'eu') + if not login or not passwd: logger.warning('No email or password in configuration file') return + if region not in ['eu', 'ap', 'us']: + logger.warning('Please select the right region: eu / ap / us') + return + base_url = "https://iotx-%s.meross.com" % region logger.info("Meross devices discovery") - self.client = await MerossHttpClient.async_from_user_password(email=login, password=passwd) + self.client = await MerossHttpClient.async_from_user_password(api_base_url=base_url, email=login, password=passwd) self.manager = MerossManager(http_client=self.client) # from meross_iot.manager import TransportMode # self.manager.default_transport_mode = TransportMode.LAN_HTTP_FIRST