mirror of
https://github.com/bahmcloud/HA-KNX-Bridge.git
synced 2026-04-06 14:31:13 +00:00
Improve relative dimming decode
This commit is contained in:
@@ -1172,7 +1172,7 @@ class BridgeManager:
|
||||
return
|
||||
|
||||
if action == "relative_dimming":
|
||||
value = _extract_event_value(event)
|
||||
value = _extract_dimming_value(event)
|
||||
if value is None:
|
||||
return
|
||||
if value in (0, 8):
|
||||
@@ -1188,7 +1188,7 @@ class BridgeManager:
|
||||
return
|
||||
|
||||
if action == "relative_color_temperature":
|
||||
value = _extract_event_value(event)
|
||||
value = _extract_dimming_value(event)
|
||||
if value is None:
|
||||
return
|
||||
if value in (0, 8):
|
||||
@@ -1511,6 +1511,30 @@ def _extract_event_value(event: Event) -> int | None:
|
||||
return None
|
||||
|
||||
|
||||
def _extract_dimming_value(event: Event) -> int | None:
|
||||
if "value" in event.data:
|
||||
value = event.data["value"]
|
||||
if isinstance(value, dict):
|
||||
control = value.get("control")
|
||||
step = value.get("stepcode", value.get("step_code"))
|
||||
if control is not None and step is not None:
|
||||
try:
|
||||
control_bit = 1 if int(control) else 0
|
||||
step_code = int(step) & 0x07
|
||||
return (control_bit << 3) | step_code
|
||||
except (TypeError, ValueError):
|
||||
pass
|
||||
data = event.data.get("data")
|
||||
if isinstance(data, (list, tuple)) and len(data) >= 2:
|
||||
try:
|
||||
control_bit = 1 if int(data[0]) else 0
|
||||
step_code = int(data[1]) & 0x07
|
||||
return (control_bit << 3) | step_code
|
||||
except (TypeError, ValueError):
|
||||
return None
|
||||
return _extract_event_value(event)
|
||||
|
||||
|
||||
def _clean_address(address: Any) -> str | None:
|
||||
if not address:
|
||||
return None
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"domain": "ha_knx_bridge",
|
||||
"name": "HA KNX Bridge",
|
||||
"version": "0.0.29",
|
||||
"version": "0.0.30",
|
||||
"config_flow": true,
|
||||
"documentation": "https://github.com/bahmcloud/HA-KNX-Bridge",
|
||||
"issue_tracker": "https://github.com/bahmcloud/HA-KNX-Bridge/issues",
|
||||
|
||||
Reference in New Issue
Block a user