3 Commits

Author SHA1 Message Date
8b20cf4744 Improve subentry type detection 2026-02-13 19:29:11 +01:00
6de191b10b Handle missing subentry support 2026-02-13 19:18:01 +01:00
2175e5919e Fix subentry type compatibility 2026-02-13 19:08:13 +01:00
4 changed files with 39 additions and 5 deletions

View File

@@ -1,5 +1,14 @@
# Changelog
## 0.0.8 - 2026-02-13
- Improve subentry type detection for HA versions exposing different class names.
## 0.0.7 - 2026-02-13
- Avoid crashing config entries when subentries are unsupported.
## 0.0.6 - 2026-02-13
- Fix config flow subentry type compatibility with older Home Assistant versions.
## 0.0.5 - 2026-02-13
- Centralize DPT auto-selection for KNX event registration per address.

View File

@@ -65,6 +65,6 @@ Each group address has `invert incoming` and `invert outgoing` toggles to flip K
- Advanced DPT mapping options and inversion settings.
## Versioning and Releases
- Current version: 0.0.5
- Current version: 0.0.8
- `CHANGELOG.md` lists versions with the newest entries at the top.
- Release creation is manual and only done when explicitly requested.

View File

@@ -65,14 +65,20 @@ class HAKnxBridgeConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
@staticmethod
@callback
def async_get_supported_subentry_types(config_entry):
subentry_type = _get_subentry_type()
if subentry_type is None:
_LOGGER.warning(
"Config subentries are not supported in this Home Assistant version"
)
return {}
return {
"binary_sensor": config_entries.SubentryType(
"binary_sensor": subentry_type(
name="Binary Sensor Port", flow_class=BinarySensorPortSubentryFlow
),
"switch": config_entries.SubentryType(
"switch": subentry_type(
name="Switch Port", flow_class=SwitchPortSubentryFlow
),
"cover": config_entries.SubentryType(
"cover": subentry_type(
name="Cover Port", flow_class=CoverPortSubentryFlow
),
}
@@ -346,3 +352,22 @@ def _invert_in_key(address_key: str) -> str:
def _invert_out_key(address_key: str) -> str:
return f"{address_key}_{CONF_INVERT_OUTGOING}"
def _get_subentry_type():
candidates = [
"SubentryType",
"ConfigEntrySubentryType",
"ConfigSubentryType",
"SubEntryType",
]
for name in candidates:
subentry_type = getattr(config_entries, name, None)
if subentry_type is not None:
return subentry_type
_LOGGER.debug(
"Subentry type class not found on homeassistant.config_entries. "
"Available attrs: %s",
", ".join(sorted(dir(config_entries))),
)
return None

View File

@@ -1,7 +1,7 @@
{
"domain": "ha_knx_bridge",
"name": "HA KNX Bridge",
"version": "0.0.5",
"version": "0.0.8",
"config_flow": true,
"documentation": "https://github.com/bahmcloud/HA-KNX-Bridge",
"issue_tracker": "https://github.com/bahmcloud/HA-KNX-Bridge/issues",