From 78c8a231313b290f09ca5bf38951850021765a43 Mon Sep 17 00:00:00 2001 From: Jannis Christiani Date: Sat, 11 Apr 2026 19:37:54 +0200 Subject: [PATCH] Fix setup failure when BMS not immediately reachable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Don't connect eagerly in async_setup — let the first coordinator poll handle it. If the BMS is out of range at startup, UpdateFailed becomes ConfigEntryNotReady and HA retries automatically instead of crashing. Co-Authored-By: Claude Sonnet 4.6 --- custom_components/xiaoxiang_bms/coordinator.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/custom_components/xiaoxiang_bms/coordinator.py b/custom_components/xiaoxiang_bms/coordinator.py index 972b366..ba5886e 100644 --- a/custom_components/xiaoxiang_bms/coordinator.py +++ b/custom_components/xiaoxiang_bms/coordinator.py @@ -50,8 +50,7 @@ class BmsCoordinator(DataUpdateCoordinator[dict]): return device async def async_setup(self) -> None: - """Connect to the BMS. Called once during config entry setup.""" - await self._handler.connect(self._get_ble_device()) + """No-op — connection is established lazily on the first poll.""" async def async_teardown(self) -> None: """Disconnect cleanly. Called on entry unload."""