{"record":{"id":"b8f20c2b4ced8330","repo":"home-assistant/core","slug":"coordinator-connection-error","errorCode":"coordinator_connection_error","errorMessage":"Error while establishing connection with BSB-LAN device at {host}","messagePattern":"Error while establishing connection with BSB-LAN device at (.+?)","errorType":"exception","errorClass":"UpdateFailed","httpStatus":null,"severity":"error","filePath":"homeassistant/components/bsblan/coordinator.py","lineNumber":140,"sourceCode":"                    raise\n                except BSBLANError as err:\n                    raise UpdateFailed(\n                        translation_domain=DOMAIN,\n                        translation_key=\"coordinator_state_error\",\n                        translation_placeholders={\n                            \"host\": host,\n                            \"circuit\": str(circuit),\n                        },\n                    ) from err\n            sensor = await self.client.sensor(include=SENSOR_INCLUDE)\n\n        except BSBLANAuthError as err:\n            raise ConfigEntryAuthFailed(\n                translation_domain=DOMAIN,\n                translation_key=\"coordinator_auth_error\",\n            ) from err\n        except BSBLANConnectionError as err:\n            raise UpdateFailed(\n                translation_domain=DOMAIN,\n                translation_key=\"coordinator_connection_error\",\n                translation_placeholders={\"host\": host},\n            ) from err\n\n        # Fetch DHW state separately - device may not support hot water\n        dhw: HotWaterState | None = None\n        try:\n            dhw = await self.client.hot_water_state(include=DHW_STATE_INCLUDE)\n        except BSBLANError:\n            # Preserve last known DHW state if available (entity may depend on it)\n            if self.data:\n                dhw = self.data.dhw\n            LOGGER.debug(\n                \"DHW (Domestic Hot Water) state not available on device at %s\",\n                self.config_entry.data[CONF_HOST],\n            )\n","sourceCodeStart":122,"sourceCodeEnd":158,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/bsblan/coordinator.py#L122-L158","documentation":"Raised by the bsblan coordinator when a refresh raises BSBLANConnectionError (re-raised from the per-circuit loop or caught on the outer sensor fetch). It becomes UpdateFailed with translation key `coordinator_connection_error` and the host placeholder, marking bsblan entities unavailable until the device answers again. Unlike setup-time NotReady, the entry stays loaded and retries each scan interval.","triggerScenarios":"Any scheduled or manual coordinator refresh while the device is powered off, unreachable on the network, or the HTTP connection is refused/reset during `client.state()` or `client.sensor()`.","commonSituations":"Device reboot, Wi-Fi dropouts, router/DHCP changes, device in sleep mode, or nightly router maintenance windows.","solutions":["Verify reachability of the device web UI from the HA host; fix IP/reservation if changed.","Wait for the next coordinator interval — entities recover automatically once the device answers.","Stabilize the network (Wi-Fi signal, static IP) if the error recurs daily.","Power-cycle the BSB-LAN board if its web UI is hung."],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use a static IP or DHCP reservation for the BSB-LAN device.","Don't build automations that fail hard on entity unavailability — condition on state first.","The coordinator retries each interval; avoid manual reload storms during brief outages."],"tags":["home-assistant","bsblan","coordinator","connection","unavailable"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}