mirror of
https://github.com/XiaoMi/ha_xiaomi_home.git
synced 2025-07-08 14:49:14 +08:00
fix: reconnect delay time (#1200)
* fix: reset the reconnect interval when connected (#1175) * feat: set the default reconnect delay time as 10 seconds * fix: get the minimum reconnect interval
This commit is contained in:
@ -216,7 +216,7 @@ class _MipsClient(ABC):
|
|||||||
MQTT_INTERVAL_S = 1
|
MQTT_INTERVAL_S = 1
|
||||||
MIPS_QOS: int = 2
|
MIPS_QOS: int = 2
|
||||||
UINT32_MAX: int = 0xFFFFFFFF
|
UINT32_MAX: int = 0xFFFFFFFF
|
||||||
MIPS_RECONNECT_INTERVAL_MIN: float = 30
|
MIPS_RECONNECT_INTERVAL_MIN: float = 10
|
||||||
MIPS_RECONNECT_INTERVAL_MAX: float = 600
|
MIPS_RECONNECT_INTERVAL_MAX: float = 600
|
||||||
MIPS_SUB_PATCH: int = 300
|
MIPS_SUB_PATCH: int = 300
|
||||||
MIPS_SUB_INTERVAL: float = 1
|
MIPS_SUB_INTERVAL: float = 1
|
||||||
@ -641,6 +641,7 @@ class _MipsClient(ABC):
|
|||||||
if not self._mqtt.is_connected():
|
if not self._mqtt.is_connected():
|
||||||
return
|
return
|
||||||
self.log_info(f'mips connect, {flags}, {rc}, {props}')
|
self.log_info(f'mips connect, {flags}, {rc}, {props}')
|
||||||
|
self.__reset_reconnect_time()
|
||||||
self._mqtt_state = True
|
self._mqtt_state = True
|
||||||
self._internal_loop.call_soon(
|
self._internal_loop.call_soon(
|
||||||
self._on_mips_connect, rc, props)
|
self._on_mips_connect, rc, props)
|
||||||
@ -822,7 +823,7 @@ class _MipsClient(ABC):
|
|||||||
self._internal_loop.stop()
|
self._internal_loop.stop()
|
||||||
|
|
||||||
def __get_next_reconnect_time(self) -> float:
|
def __get_next_reconnect_time(self) -> float:
|
||||||
if self._mips_reconnect_interval == 0:
|
if self._mips_reconnect_interval < self.MIPS_RECONNECT_INTERVAL_MIN:
|
||||||
self._mips_reconnect_interval = self.MIPS_RECONNECT_INTERVAL_MIN
|
self._mips_reconnect_interval = self.MIPS_RECONNECT_INTERVAL_MIN
|
||||||
else:
|
else:
|
||||||
self._mips_reconnect_interval = min(
|
self._mips_reconnect_interval = min(
|
||||||
@ -830,6 +831,9 @@ class _MipsClient(ABC):
|
|||||||
self.MIPS_RECONNECT_INTERVAL_MAX)
|
self.MIPS_RECONNECT_INTERVAL_MAX)
|
||||||
return self._mips_reconnect_interval
|
return self._mips_reconnect_interval
|
||||||
|
|
||||||
|
def __reset_reconnect_time(self) -> None:
|
||||||
|
self._mips_reconnect_interval = 0
|
||||||
|
|
||||||
|
|
||||||
class MipsCloudClient(_MipsClient):
|
class MipsCloudClient(_MipsClient):
|
||||||
"""MIoT Pub/Sub Cloud Client."""
|
"""MIoT Pub/Sub Cloud Client."""
|
||||||
|
Reference in New Issue
Block a user