From 1713675c895d1181631e2f496dc0a77cc4440d29 Mon Sep 17 00:00:00 2001
From: jkerdreu <jkerdreu@b32b6428-25c9-4566-ad07-03861ab6144f>
Date: Tue, 14 Nov 2023 23:48:51 +0000
Subject: [PATCH] Added support for different region (needed for the last API)

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@3073 b32b6428-25c9-4566-ad07-03861ab6144f
---
 devices/protocols/Meross/xaal/meross/gw.py | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/devices/protocols/Meross/xaal/meross/gw.py b/devices/protocols/Meross/xaal/meross/gw.py
index 4ba5b2b7..7d373af3 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
-- 
GitLab