diff --git a/devices/protocols/Meross/xaal/meross/bindings.py b/devices/protocols/Meross/xaal/meross/bindings.py
index 732ede73a4297cebf243a43a7aeeee1d2ec2eb62..ac6b165ddce0d0e557888d0e68e02f19f04a35d9 100644
--- a/devices/protocols/Meross/xaal/meross/bindings.py
+++ b/devices/protocols/Meross/xaal/meross/bindings.py
@@ -2,17 +2,19 @@ from xaal.schemas import devices
 
 import logging
 import colorsys
+import asyncio
 
 logger = logging.getLogger(__name__)
 
+
 def find_class(meross_dev):
     if meross_dev.type == 'msl430':
         return RGBLamp
-
     return None
 
+
 class MerossDev(object):
-    def __init__(self,meross_dev,base_addr):
+    def __init__(self, meross_dev, base_addr):
         self.meross = meross_dev
         self.base_addr = base_addr
         self.embs = []
@@ -30,6 +32,7 @@ class MerossDev(object):
             dev.info = self.meross.name
             dev.hw_id = self.meross.uuid
 
+
 class RGBLamp(MerossDev):
 
     temp_min = 2700
@@ -37,32 +40,33 @@ class RGBLamp(MerossDev):
 
     def setup(self):
         dev = devices.lamp_color(self.base_addr + 1)
-        dev.methods['turn_on']  = self.turn_on
+        dev.methods['turn_on'] = self.turn_on
         dev.methods['turn_off'] = self.turn_off
         dev.methods['toggle'] = self.toggle
         dev.methods['set_brightness'] = self.set_brightness
         dev.methods['set_hsv'] = self.set_hsv
         dev.methods['set_white_temperature'] = self.set_white_temperature
         dev.methods['set_mode'] = self.set_mode
-        dev.attributes['hsv'] = [0,0,0]
+        dev.attributes['hsv'] = [0, 0, 0]
         dev.unsupported_attributes = ['scene']
-        dev.unsupported_methods = ['get_scene','set_scene']
+        dev.unsupported_methods = ['get_scene', 'set_scene']
         dev.del_attribute(dev.get_attribute('scene'))
         self.embs.append(dev)
 
     async def update(self):
-        #await self.meross.async_update()
+        # await self.meross.async_update()
         dev = self.embs[0]
         dev.attributes['light'] = self.meross.is_on()
         dev.attributes['brightness'] = self.meross.get_luminance()
         temp = (self.temp_max - self.temp_min) / 100 * self.meross.get_color_temperature() + self.temp_min
-        dev.attributes['white_temperature'] = round(temp/100,1) * 100
+        dev.attributes['white_temperature'] = round(temp/100, 1) * 100
         rgb = self.meross.get_rgb_color()
-        hsv = colorsys.rgb_to_hsv(rgb[0]/255,rgb[1]/255,rgb[2]/255)
+        hsv = colorsys.rgb_to_hsv(rgb[0]/255, rgb[1]/255, rgb[2]/255)
         h = round(hsv[0] * 360)
-        s = round(hsv[1],2)
-        v = round(hsv[2],2)
-        dev.attributes['hsv'] = [h,s,v]
+        s = round(hsv[1], 2)
+        v = round(hsv[2], 2)
+        dev.attributes['hsv'] = [h, s, v]
+        await asyncio.sleep(0)
 
     async def turn_on(self):
         await self.meross.async_turn_on()
@@ -76,19 +80,19 @@ class RGBLamp(MerossDev):
         await self.meross.async_toggle()
         await self.update()
 
-    async def set_brightness(self,_brightness,_smooth=None):
+    async def set_brightness(self, _brightness, _smooth=None):
         val = int(_brightness)
         await self.meross.async_set_light_color(luminance=val)
         await self.update()
 
-    async def set_hsv(self,_hsv,_smooth=None):
+    async def set_hsv(self, _hsv, _smooth=None):
         # FIXME
-        if isinstance(_hsv,str):
+        if isinstance(_hsv, str):
             hsv = [float(k) for k in list(_hsv.split(','))]
         else:
             hsv = _hsv
-        h,s,v = hsv
-        rgb=tuple(round(i * 255) for i in colorsys.hsv_to_rgb(h/360.0,s,v))
+        h, s, v = hsv
+        rgb = tuple(round(i * 255) for i in colorsys.hsv_to_rgb(h/360.0, s, v))
         # meross API fail to detect when light is off and set_light_color() is called
         # set_light_color() will turn light on but the API think it is still off
         # so turn it on first
@@ -98,9 +102,8 @@ class RGBLamp(MerossDev):
         await self.update()
         self.embs[0].attributes['mode'] = 'color'
 
-    async def set_white_temperature(self,_white_temperature):
+    async def set_white_temperature(self, _white_temperature):
         temp = int(_white_temperature)
-        # 
         value = int((temp - self.temp_min) / (self.temp_max - self.temp_min) * 100)
         if value <= 1: value = 1
         if value >= 100: value = 100
@@ -108,10 +111,9 @@ class RGBLamp(MerossDev):
         await self.update()
         self.embs[0].attributes['mode'] = 'white'
 
-    async def set_mode(self,_mode):
+    async def set_mode(self, _mode):
         dev = self.embs[0]
         if _mode == 'color':
             await self.set_hsv(dev.attributes['hsv'])
         if _mode == 'white':
             await self.set_white_temperature(dev.attributes['white_temperature'])
-            
diff --git a/devices/protocols/Meross/xaal/meross/gw.py b/devices/protocols/Meross/xaal/meross/gw.py
index 28d4e4f20f6f3252bff5e125478f0f386fe75095..4ba5b2b70bd7be0296d5f1f3f69c1c326e3c5841 100644
--- a/devices/protocols/Meross/xaal/meross/gw.py
+++ b/devices/protocols/Meross/xaal/meross/gw.py
@@ -48,6 +48,8 @@ class GW(object):
         logger.info("Meross devices discovery")
         self.client = await MerossHttpClient.async_from_user_password(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
         await self.manager.async_init()
         await self.discover()
 
@@ -59,6 +61,7 @@ class GW(object):
             logger.error(e)
 
         meross_devices = self.manager.find_devices()
+        #import pdb;pdb.set_trace()
         # config
         devices_config = self.cfg.get('devices',{})
         # devices