{"record":{"id":"026b6f151d0a5fc8","repo":"home-assistant/core","slug":"could-not-find-airthings-device-with-address-addr","errorCode":null,"errorMessage":"Could not find Airthings device with address {address}: {reason}","messagePattern":"Could not find Airthings device with address (.+?): (.+?)","errorType":"exception","errorClass":"ConfigEntryNotReady","httpStatus":null,"severity":"warning","filePath":"homeassistant/components/airthings_ble/coordinator.py","lineNumber":65,"sourceCode":"            _LOGGER,\n            config_entry=entry,\n            name=DOMAIN,\n            update_interval=timedelta(seconds=interval),\n        )\n\n    @override\n    async def _async_setup(self) -> None:\n        \"\"\"Set up the coordinator.\"\"\"\n        address = self.config_entry.unique_id\n\n        assert address is not None\n\n        await close_stale_connections_by_address(address)\n\n        ble_device = bluetooth.async_ble_device_from_address(self.hass, address)\n\n        if not ble_device:\n            raise ConfigEntryNotReady(\n                translation_domain=DOMAIN,\n                translation_key=\"device_not_found\",\n                translation_placeholders={\n                    \"address\": address,\n                    \"reason\": bluetooth.async_address_reachability_diagnostics(\n                        self.hass,\n                        address.upper(),\n                        BluetoothReachabilityIntent.CONNECTION,\n                    ),\n                },\n            )\n        self.ble_device = ble_device\n\n        if DEVICE_MODEL not in self.config_entry.data:\n            _LOGGER.debug(\"Fetching device info for migration\")\n            try:\n                data = await self.airthings.update_device(self.ble_device)\n            except Exception as err:","sourceCodeStart":47,"sourceCodeEnd":83,"githubUrl":"https://github.com/home-assistant/core/blob/58a3fdb3ea0538617f0a07efcfba6294de64fd59/homeassistant/components/airthings_ble/coordinator.py#L47-L83","documentation":"ConfigEntryNotReady raised during airthings_ble coordinator setup when no Bluetooth device matching the config entry's unique_id (the BLE address) is currently known to the Bluetooth integration. The message is fully translated with the address and a reachability diagnostic reason explaining why the address is unknown or unreachable. Home Assistant will retry setup as Bluetooth discovery continues.","triggerScenarios":"async_ble_device_from_address returns None at setup time: device not yet discovered, out of range, powered off, battery dead, or no Bluetooth adapter/interface scanning. The placeholder 'reason' comes from async_address_reachability_diagnostics describing whether the address was ever seen and its last known state.","commonSituations":"Device battery empty, device too far from the Bluetooth proxy/adapter, Bluetooth adapter missing or HCI down, device MAC changed (some devices randomize), or setup raced ahead of first BLE advertisement.","solutions":["Bring the Airthings device close to the Home Assistant host or a Bluetooth proxy and wake it (press its button).","Confirm the Bluetooth integration is active and an adapter or proxy is available (Settings > Devices & Services > Bluetooth).","Check the 'reason' text — it states whether the address was never seen vs previously known, which distinguishes discovery issues from range issues.","Verify the device's battery.","Wait — ConfigEntryNotReady means setup retries automatically as discovery proceeds."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"from homeassistant.components import bluetooth\n\ndef ble_device_known(hass, address: str) -> bool:\n    return bluetooth.async_ble_device_from_address(hass, address) is not None","typeGuard":"def is_airthings_ble_not_ready(err: Exception) -> bool:\n    return isinstance(err, ConfigEntryNotReady) and getattr(err, \"translation_domain\", None) == \"airthings_ble\"","tryCatchPattern":"try:\n    await coordinator.async_config_entry_first_refresh()\nexcept ConfigEntryNotReady:\n    # normal during BLE discovery: no action needed, HA retries as advertisements arrive\n    pass","preventionTips":["Place a Bluetooth proxy near the Airthings device before setup.","Wake the device (button press) and confirm it appears in the Bluetooth integration's discovered devices list before adding it.","Replace batteries proactively; weak batteries shrink advertisement range."],"tags":["home-assistant","bluetooth","ble","airthings","discovery"],"backgroundTag":null,"analyzedSha":"58a3fdb3ea0538617f0a07efcfba6294de64fd59","analyzedAt":"2026-08-14T20:54:38.818Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}