home-assistant/core · error · ConfigEntryNotReady
device_not_found
device_not_found
Error message
Could not find Avea device with address {address}: {reason} What it means
Raised as ConfigEntryNotReady (with translation_key device_not_found) by the Avea integration when async_ble_device_from_address() returns None — no connectable Bluetooth advertisement seen for the configured MAC address. The placeholders include address and a human-readable reachability diagnostic (from async_address_reachability_diagnostics). Setup retries automatically while the bulb remains undiscovered.
Source
Thrown at homeassistant/components/avea/__init__.py:27
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_ADDRESS, Platform
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady
from .const import DOMAIN
type AveaConfigEntry = ConfigEntry[avea.Bulb]
PLATFORMS: list[Platform] = [Platform.LIGHT]
async def async_setup_entry(hass: HomeAssistant, entry: AveaConfigEntry) -> bool:
"""Set up Avea from a config entry."""
address = entry.data[CONF_ADDRESS]
ble_device = async_ble_device_from_address(hass, address, connectable=True)
if not ble_device:
raise ConfigEntryNotReady(
translation_domain=DOMAIN,
translation_key="device_not_found",
translation_placeholders={
"address": address,
"reason": async_address_reachability_diagnostics(
hass,
address.upper(),
BluetoothReachabilityIntent.CONNECTION,
),
},
)
entry.runtime_data = avea.Bulb(ble_device)
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
return True
async def async_unload_entry(hass: HomeAssistant, entry: AveaConfigEntry) -> bool:View on GitHub (pinned to 58a3fdb3ea)
Solutions
- Power on the Avea bulb and bring it within range of the Home Assistant Bluetooth adapter, then let setup retry.
- Verify the configured CONF_ADDRESS matches the bulb's current BLE MAC (check via the Bluetooth integration's discovered devices).
- Ensure the Bluetooth integration and adapter are healthy (Settings > Devices > Bluetooth shows adapters).
- If the bulb rotates its MAC, re-pair it so a fresh config entry with the current address is created.
Defensive patterns
Strategy: validation
Validate before calling
from homeassistant.components.bluetooth import async_ble_device_from_address
def bulb_discovered(hass, address: str) -> bool:
return async_ble_device_from_address(hass, address.upper(), connectable=True) is not None
Try / catch
from homeassistant.exceptions import ConfigEntryNotReady
try:
await async_setup_entry(hass, entry)
except ConfigEntryNotReady as err:
# read translation placeholders: 'reason' explains why the address is unreachable
handle_bluetooth_retry(err) Prevention
- Power the device on before (re)installing BLE integrations — the scanner must see one advertisement first.
- Use uppercase normalized MAC addresses everywhere.
- Keep BLE devices away from 2.4GHz interference sources; check the Bluetooth adapter is healthy before setup.
When it happens
Trigger: async_setup_entry runs before the BLE scanner has ever seen the bulb: bulb powered off, out of range, using a random resolvable address, or Bluetooth adapter not ready. async_ble_device_from_address(hass, address, connectable=True) needs a recent advertisement cache entry.
Common situations: Bulb unplugged or dead; HA started before the BLE adapter was up; MAC address typo in config entry; bulb uses rotating MAC addresses so the stored address never matches; adapter on USB hub with poor reception.
Related errors
- Could not find Airthings device with address {address}: {rea
- Could not discover Avea bulbs for YAML import
- Credential is already linked to a user
- System generated users cannot disable multi-factor auth modu
- Invalid authentication
AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14).
Data as JSON: /api/errors/67c0f1b8344b99c5.
Report an issue: GitHub.