From d934e87ae52892417b83b66f457df5b7a014ba64 Mon Sep 17 00:00:00 2001 From: Andrey Date: Mon, 25 Jan 2021 15:46:40 +0300 Subject: [PATCH] force use http while scanning --- custom_components/mega/hub.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/custom_components/mega/hub.py b/custom_components/mega/hub.py index 9fb0f78..102a095 100644 --- a/custom_components/mega/hub.py +++ b/custom_components/mega/hub.py @@ -209,13 +209,13 @@ class MegaD: ret = {'value': ret} return ret - async def get_port(self, port): + async def get_port(self, port, force_http=False): """ Запрос состояния порта. Состояние всегда возвращается в виде объекта, всегда сохраняется в центральное хранилище values """ self.lg.debug(f'get port %s', port) - if self.mqtt is None: + if self.mqtt is None or force_http: ret = await self.request(pt=port, cmd='get') ret = self.parse_response(ret) self.values[port] = ret @@ -346,7 +346,7 @@ class MegaD: return pty, m async def scan_ports(self, nports=37): - for x in range(nports+1): + for x in range(1, nports+1): ret = await self.scan_port(x) if ret: yield [x, *ret] @@ -361,7 +361,7 @@ class MegaD: ret['light'][port].append({'dimmer': m == '1'}) elif pty == '3': try: - values = await self.get_port(port) + values = await self.get_port(port, force_http=True) except asyncio.TimeoutError: self.lg.warning(f'timout on port {port}') continue