From 082ce93334a91c705bf7c364aed734c2bcc28c0f Mon Sep 17 00:00:00 2001 From: bahmcloud Date: Sun, 15 Feb 2026 20:42:32 +0100 Subject: [PATCH] Fix light color temperature decoding --- .idea/PROJECT_STATE.md | 3 ++- CHANGELOG.md | 3 +++ README.md | 3 ++- custom_components/ha_knx_bridge/bridge.py | 7 +++---- custom_components/ha_knx_bridge/manifest.json | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.idea/PROJECT_STATE.md b/.idea/PROJECT_STATE.md index 7788226..208a6dd 100644 --- a/.idea/PROJECT_STATE.md +++ b/.idea/PROJECT_STATE.md @@ -41,7 +41,8 @@ Completed: - Light port support added with full KNX color/temperature mappings and individual color channels. - Light port keys renamed to avoid conflicts; outgoing updates now only target light state addresses. - Light port optional relative dimming address (DPT 3.007) added. -- Project version set to 0.0.23 and `CHANGELOG.md` maintained. +- Light color temperature event type mapping and relative dimming decoding fixed. +- Project version set to 0.0.24 and `CHANGELOG.md` maintained. Files created: - `custom_components/ha_knx_bridge/__init__.py` diff --git a/CHANGELOG.md b/CHANGELOG.md index eb440a4..74fae5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +## 0.0.24 - 2026-02-15 +- Fix light color temperature event type mapping and improve relative dimming decoding. + ## 0.0.23 - 2026-02-15 - Add optional light relative dimming address (DPT 3.007). diff --git a/README.md b/README.md index cb0f170..6ccfbad 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,7 @@ Only state addresses expose an `invert outgoing` toggle to flip KNX payloads. Notes: - For XY color, the bridge sends the brightness as the Y (luminance) component. - Relative dimming (DPT 3.007) maps KNX step values to `brightness_step_pct` in Home Assistant. +- Color temperature mode must match the KNX telegram DPT: `relative` for 5.001, `absolute` for 7.600, `absolute_float` for DPT 9. ## Notes - For DPT 1.008 (Up/Down), the bridge treats `0 = Up/Open` and `1 = Down/Close`. @@ -107,5 +108,5 @@ Notes: - Advanced DPT mapping options and inversion settings. ## Versioning and Releases -- Current version: 0.0.23 +- Current version: 0.0.24 - `CHANGELOG.md` lists versions with the newest entries at the top. diff --git a/custom_components/ha_knx_bridge/bridge.py b/custom_components/ha_knx_bridge/bridge.py index 35cc4be..fd772b9 100644 --- a/custom_components/ha_knx_bridge/bridge.py +++ b/custom_components/ha_knx_bridge/bridge.py @@ -1612,9 +1612,9 @@ def _light_color_temperature_event_type(mode: str) -> str | None: if mode == "relative": return "percent" if mode == "absolute": - return "7.600" + return "2byte_unsigned" if mode == "absolute_float": - return "9" + return "2byte_float" return None @@ -1668,8 +1668,7 @@ def _light_uses_white_channel(port: LightPort) -> bool: def _relative_dimming_step(value: int) -> tuple[str, int] | None: - if value < 0 or value > 15: - return None + value = value & 0x0F if value == 0 or value == 8: return None if value <= 7: diff --git a/custom_components/ha_knx_bridge/manifest.json b/custom_components/ha_knx_bridge/manifest.json index c2e04a7..00542fc 100644 --- a/custom_components/ha_knx_bridge/manifest.json +++ b/custom_components/ha_knx_bridge/manifest.json @@ -1,7 +1,7 @@ { "domain": "ha_knx_bridge", "name": "HA KNX Bridge", - "version": "0.0.23", + "version": "0.0.24", "config_flow": true, "documentation": "https://github.com/bahmcloud/HA-KNX-Bridge", "issue_tracker": "https://github.com/bahmcloud/HA-KNX-Bridge/issues",