diff --git a/custom_components/sigmesh_gateway/provisioning.py b/custom_components/sigmesh_gateway/provisioning.py index 0804cf9..056cce4 100644 --- a/custom_components/sigmesh_gateway/provisioning.py +++ b/custom_components/sigmesh_gateway/provisioning.py @@ -130,6 +130,13 @@ class ProvisioningManager: async def start_scanning(self) -> None: """开始扫描设备.""" + # 如果已经在扫描中,先重置状态(允许用户重新启动扫描) + if self._state == ProvState.SCANNING: + _LOGGER.info("扫描已在进行中,重置扫描状态...") + self._devices = {} + self._scan_result = [] + return + if self._state not in [ProvState.IDLE, ProvState.PROV_COMPLETED, ProvState.PROV_FAILED]: _LOGGER.warning("无法开始扫描,当前状态:%s", self._state.value) return