From adb65529a22b6029fc91737f082fa3e083a016a1 Mon Sep 17 00:00:00 2001 From: Andrey Date: Thu, 14 Jan 2021 23:05:30 +0300 Subject: [PATCH] hotfix --- custom_components/mega/hub.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/custom_components/mega/hub.py b/custom_components/mega/hub.py index bfaafaf..ad38d83 100644 --- a/custom_components/mega/hub.py +++ b/custom_components/mega/hub.py @@ -153,10 +153,12 @@ class MegaD: try: if '"value":NA' in msg.payload.decode(): - ftr.set_result(None) + if not ftr.done(): + ftr.set_result(None) return ret = json.loads(msg.payload).get('value') - ftr.set_result(ret) + if not ftr.done(): + ftr.set_result(ret) except Exception as exc: ret = None self.lg.exception(f'while parsing response from port {port}: {msg.payload}') @@ -167,12 +169,12 @@ class MegaD: ) async with self.lck: + unsub = await self.mqtt.async_subscribe( + topic=f'{self.mqtt_id}/{port}', + msg_callback=cb, + qos=1, + ) try: - unsub = await self.mqtt.async_subscribe( - topic=f'{self.mqtt_id}/{port}', - msg_callback=cb, - qos=1, - ) await self.mqtt.async_publish( topic=f'{self.mqtt_id}/cmd', payload=f'get:{port}',