home-assistant / home-assistant/core

Home Connect entities depend on appliance state during integration reload

Open
#181,792 4 comments 0 reactions 1 assignee Claimed by @MartinHjelmare View on GitHub
integration: home_connect
Dominant language
Python
Stars
90.5k
Forks
38.6k
Avg merge
1d 2h
Merged PRs (30d)
597

Description

### The problem

I am using the built-in Home Connect integration with a NEFF D85IFN1S0/05 cooker hood.

The capabilities/availability of some entities depend on the state of the appliance at the exact moment the Home Connect integration is reloaded.

This affects at least the worktop light and the fan-stage select.

### Worktop light

If I reload the Home Connect integration while the worktop light is OFF, the light entity is created as an on/off-only light:

```yaml
supported_color_modes:
- onoff
color_mode: null
supported_features: 0
```

If I turn the worktop light ON and reload the integration again, the same entity supports brightness:

```yaml
supported_color_modes:
- brightness
color_mode: brightness
brightness: 255
supported_features: 0
```

### Fan stage

The fan-stage select shows similar state-dependent behavior.

If I reload the integration while the hood/fan is OFF, the select entity becomes unavailable.

If I start the fan and reload the integration again, the select becomes available and exposes the fan stages, for example:

```text
cooking_hood_enum_type_stage_fan_off
cooking_hood_enum_type_stage_fan_stage_01
cooking_hood_enum_type_stage_fan_stage_02
cooking_hood_enum_type_stage_fan_stage_03
cooking_hood_enum_type_stage_fan_stage_04
```

### Reproduction

1. Turn the hood light and fan OFF.
2. Reload the Home Connect integration.
3. The light only supports on/off and the fan-stage select is unavailable.
4. Turn the light ON and start the fan.
5. Reload the integration again.
6. The light now supports brightness and the fan-stage select becomes available.
7. Turn both functions OFF again, but do NOT reload the integration.
8. The brightness capability and fan-stage select remain available.

The issue is fully reproducible by changing only the appliance state before reloading the integration.

### Expected behavior

Entity capabilities and availability should not depend on whether the corresponding appliance function happens to be active while the integration is initialized/reloaded.

If the appliance supports brightness control and fan-stage selection, these capabilities should remain available regardless of the current on/off state.

### What version of Home Assistant Core has the issue?

2026.9.1

### What was the last working version of Home Assistant Core?

_No response_

### What type of installation are you running?

Home Assistant OS

### Integration causing the issue

Home Connect

### Link to integration documentation on our website

https://www.home-assistant.io/integrations/home_connect

### Diagnostics information

I captured diagnostics in three states. Relevant excerpts are included below with device-specific IDs and unrelated appliances omitted.

### 1. Integration reloaded while hood/light were OFF

```yaml
status:
BSH.Common.Status.OperationState:
value: BSH.Common.EnumType.OperationState.Inactive

settings:
BSH.Common.Setting.PowerState:
value: BSH.Common.EnumType.PowerState.Off

Cooking.Common.Setting.Lighting:
value: false
```

`Cooking.Common.Setting.LightingBrightness` is absent in this state.

At this point Home Assistant exposes the light as `onoff` only, and the fan-stage select is unavailable.

### 2. Integration reloaded while hood was running and light was ON

```yaml
status:
BSH.Common.Status.OperationState:
value: BSH.Common.EnumType.OperationState.Run

settings:
BSH.Common.Setting.PowerState:
value: BSH.Common.EnumType.PowerState.On

Cooking.Common.Setting.Lighting:
value: true

Cooking.Common.Setting.LightingBrightness:
value: 100
unit: "%"

Cooking.Hood.Setting.ColorTemperature:
value: Cooking.Hood.EnumType.ColorTemperature.neutral
```

At this point the light supports brightness and the fan-stage select is available.

### 3. Same integration instance, then hood/light switched OFF without reloading

```yaml
status:
BSH.Common.Status.OperationState:
value: BSH.Common.EnumType.OperationState.Inactive

settings:
BSH.Common.Setting.PowerState:
value: BSH.Common.EnumType.PowerState.Off

Cooking.Common.Setting.Lighting:
value: false

Cooking.Common.Setting.LightingBrightness:
value: 100
unit: "%"

Cooking.Hood.Setting.ColorTemperature:
value: Cooking.Hood.EnumType.ColorTemperature.neutral
```

The brightness capability remains available in this case.

This suggests that supported settings/capabilities are determined from the state-dependent data available during integration setup/reload. Once a capability was discovered during setup, it remains available even after the appliance function becomes inactive.

### Example YAML snippet

```yaml

```

### Anything in the logs that might be useful for us?

```txt

```

### Additional information

Appliance: NEFF D85IFN1S0/05 cooker hood

Home Connect integration is built into Home Assistant Core and uses `aiohomeconnect 0.39.1`.

The behavior appears to be related to entity/capability discovery during integration setup rather than normal runtime state handling.

In particular, `Cooking.Common.Setting.LightingBrightness` is absent when the integration is initialized while the light is off, but appears when initialized while the light is on. Once discovered, it remains present after turning the light off again without reloading the integration.

The fan-stage select shows analogous state-dependent availability, although the diagnostics do not expose an obvious fan-stage setting in the same way as the brightness setting.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.