Skip to content

fix: auto-detect hybrid devices using API features#740

Merged
CFenner merged 2 commits intoopenviess:masterfrom
lackas:feature/hybrid-auto-detect
Apr 16, 2026
Merged

fix: auto-detect hybrid devices using API features#740
CFenner merged 2 commits intoopenviess:masterfrom
lackas:feature/hybrid-auto-detect

Conversation

@lackas
Copy link
Copy Markdown
Contributor

@lackas lackas commented Apr 15, 2026

Problem

Hybrid devices like the Vitocaldens 222-F (controller CU401B_S) are detected as HeatPump because CU401B matches the heat pump regex pattern. The Hybrid class was never in the auto-detect list — it was only reachable via the manual heating_type: hybrid config option in Home Assistant, which was removed in home-assistant/core#165649.

This causes all burner entities to disappear, since HeatPump doesn't expose heating.burners.* features — only Hybrid (which inherits from both GazBoiler and HeatPump) does.

Solution

After regex/role matching picks GazBoiler or HeatPump, the device's API features are fetched and checked. If both heating.burners and heating.compressors features exist, the device is upgraded to Hybrid.

This is a fallback — the existing regex matching is unchanged. If the feature fetch fails, the original detection is silently kept.

Why not full feature-based detection?

Non-heating device types (ventilation, radiator actuators, room sensors, gateways) don't have obvious feature-prefix signatures, so they still need regex/role matching. This approach is the smallest change that catches all hybrid devices — current and future — without maintaining a model name list.

Fixes home-assistant/core#168288

Devices with both heating.burners and heating.compressors features
(e.g. Vitocaldens 222-F with CU401B_S controller) are now detected
as Hybrid instead of HeatPump or GazBoiler.

Previously, Hybrid was only reachable via the manual heating_type
config option in HA, which was removed in home-assistant/core#165649.
The regex-based auto-detect matched CU401B as HeatPump, losing all
burner entities.

This adds a feature-based fallback: after regex/role matching picks
GazBoiler or HeatPump, the API features are checked. If both burners
and compressors exist, the device is upgraded to Hybrid. If the API
call fails, the original detection is kept.

Fixes home-assistant/core#168288
Copy link
Copy Markdown
Member

@CFenner CFenner left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice catch!

@CFenner CFenner added the bugfix label Apr 15, 2026
@CFenner CFenner merged commit aae372b into openviess:master Apr 16, 2026
9 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ViCare] Vitocaldens 222-F - Hybrid Heatpump & Gas - Gas burner not showing any more

2 participants