home-assistant/core · error · AbortFlow

integrations_disabled

integrations_disabled

Error message

This device doesn't have integrations enabled. Please enable smart home integrations using the app and try again.

What it means

AbortFlow with reason 'integrations_disabled' in the Aranet config flow. The advertisement's manufacturer data shows the device's 'integrations' flag is off, meaning the user disabled smart-home integrations in the Aranet app, so no sensor data is broadcast and the integration cannot work.

Source

Thrown at homeassistant/components/aranet/config_flow.py:47

    """Handle a config flow for Aranet."""

    VERSION = 1

    def __init__(self) -> None:
        """Set up a new config flow for Aranet."""
        self._discovery_info: BluetoothServiceInfoBleak | None = None
        self._discovered_device: Aranet4Advertisement | None = None
        self._discovered_devices: dict[str, tuple[str, Aranet4Advertisement]] = {}

    def _raise_for_advertisement_errors(self, adv: Aranet4Advertisement) -> None:
        """Raise any configuration errors that apply to an advertisement."""
        # Old versions of firmware don't expose sensor data in advertisements.
        if not adv.manufacturer_data or adv.manufacturer_data.version < MIN_VERSION:
            raise AbortFlow("outdated_version")

        # If integrations are disabled, we get no sensor data.
        if not adv.manufacturer_data.integrations:
            raise AbortFlow("integrations_disabled")

    @override
    async def async_step_bluetooth(
        self, discovery_info: BluetoothServiceInfoBleak
    ) -> ConfigFlowResult:
        """Handle the Bluetooth discovery step."""
        await self.async_set_unique_id(discovery_info.address)
        self._abort_if_unique_id_configured()
        adv = Aranet4Advertisement(discovery_info.device, discovery_info.advertisement)
        self._raise_for_advertisement_errors(adv)

        self._discovery_info = discovery_info
        self._discovered_device = adv
        return await self.async_step_bluetooth_confirm()

    async def async_step_bluetooth_confirm(
        self, user_input: dict[str, Any] | None = None
    ) -> ConfigFlowResult:

View on GitHub (pinned to 58a3fdb3ea)

Solutions

  1. Open the Aranet app, enable the smart home / integrations option for the device, then retry discovery in Home Assistant.
  2. Trigger a fresh BLE advertisement (press the button on the device or wait for the next broadcast cycle) so the updated flag is seen.
  3. If it still aborts, delete the aborted flow and start setup again.
Defensive patterns

Strategy: validation

Validate before calling

def integrations_enabled(adv: Aranet4Advertisement) -> bool:
    md = adv.manufacturer_data
    return md is not None and bool(md.integrations)

Try / catch

Catch AbortFlow around async_step_bluetooth and map reason 'integrations_disabled' to a user-facing instruction to enable integrations in the Aranet app.

Prevention

When it happens

Trigger: _raise_for_advertisement_errors is called with an Aranet4Advertisement whose manufacturer_data is present and version is OK but manufacturer_data.integrations is falsy; the flow aborts before saving the device.

Common situations: Aranet4 shipped with smart home integrations turned off by default for privacy; user toggled the setting off; device re-configured after a reset.

Related errors


AI-assisted analysis of home-assistant/core@58a3fdb3ea (2026-08-14). Data as JSON: /api/errors/2beb4da4f55c419f. Report an issue: GitHub.