From 8fa6198d3824748bcc65fac76ecac5c1ea2693a0 Mon Sep 17 00:00:00 2001 From: impressionyang Date: Thu, 16 Apr 2026 20:00:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=AD=89=E5=BE=85=20HCI=20=E7=BD=91?= =?UTF-8?q?=E5=85=B3=E5=88=9D=E5=A7=8B=E5=8C=96=E5=90=8E=E5=86=8D=E6=89=AB?= =?UTF-8?q?=E6=8F=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 start_scanning 中检查并等待 HCI 网关初始化 --- custom_components/sigmesh_gateway/provisioning.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) 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: