diff --git a/custom_components/sigmesh_gateway/provisioning.py b/custom_components/sigmesh_gateway/provisioning.py index 9b629c0..cf2b682 100644 --- a/custom_components/sigmesh_gateway/provisioning.py +++ b/custom_components/sigmesh_gateway/provisioning.py @@ -144,17 +144,22 @@ class ProvisioningManager: _LOGGER.warning("无法开始扫描,当前状态:%s", self._state.value) return + # 确保 HCI 网关已初始化 + if not self.serial_reader.hci: + _LOGGER.warning("HCI 网关未初始化,等待...") + # 等待 HCI 网关初始化 + await asyncio.sleep(0.5) + if not self.serial_reader.hci: + _LOGGER.error("HCI 网关仍未初始化,无法扫描") + self._set_state(ProvState.PROV_FAILED) + return + self._set_state(ProvState.SCANNING) self._devices = {} self._scan_result = [] # 使用 HCI 协议发送扫描命令 try: - if not self.serial_reader.hci: - _LOGGER.error("HCI 网关未初始化") - self._set_state(ProvState.PROV_FAILED) - return - _LOGGER.debug("发送 HCI 扫描命令") result = await self.serial_reader.hci.start_scanning() if result: